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:
-rw-r--r--.gitignore1
-rw-r--r--.travis.yml2
-rw-r--r--CHANGELOG.md8
-rw-r--r--composer.json3
-rw-r--r--composer.lock45
-rw-r--r--config/global.ini.php8
-rw-r--r--core/API/ResponseBuilder.php2
-rw-r--r--core/Archive.php32
-rw-r--r--core/Archive/DataCollection.php43
-rw-r--r--core/Archive/DataTableFactory.php219
-rw-r--r--core/Archiver/Request.php42
-rw-r--r--core/AssetManager/UIAssetMerger/StylesheetUIAssetMerger.php6
-rw-r--r--core/CliMulti.php5
-rw-r--r--core/CliMulti/CliPhp.php3
-rw-r--r--core/Common.php18
-rw-r--r--core/Console.php12
-rw-r--r--core/Container/ContainerFactory.php16
-rw-r--r--core/CronArchive.php138
-rw-r--r--core/DataAccess/ArchiveSelector.php14
-rw-r--r--core/DataTable.php20
-rw-r--r--core/DataTable/BaseFilter.php2
-rw-r--r--core/DataTable/Filter/ColumnCallbackAddMetadata.php2
-rw-r--r--core/DataTable/Manager.php10
-rw-r--r--core/DataTable/Map.php3
-rw-r--r--core/DataTable/Row.php2
-rw-r--r--core/Db.php4
-rw-r--r--core/ErrorHandler.php15
-rw-r--r--core/Notification/Manager.php2
-rw-r--r--core/Period/Factory.php10
-rw-r--r--core/Period/PeriodValidator.php52
-rw-r--r--core/Piwik.php2
-rw-r--r--core/Plugin/Controller.php15
-rw-r--r--core/Plugin/Menu.php23
-rw-r--r--core/Plugin/Report.php24
-rw-r--r--core/Profiler.php13
-rw-r--r--core/Site.php72
-rw-r--r--core/Tracker/Visit/ReferrerSpamFilter.php51
-rw-r--r--core/Tracker/VisitExcluded.php45
-rw-r--r--core/Translation/Transifex/API.php148
-rwxr-xr-xcore/Twig.php1
-rw-r--r--core/Version.php2
-rw-r--r--core/View.php2
-rw-r--r--core/testMinimumPhpVersion.php7
-rw-r--r--js/piwik.js8
-rw-r--r--lang/am.json1
-rw-r--r--lang/ar.json1
-rw-r--r--lang/be.json3
-rw-r--r--lang/bg.json5
-rw-r--r--lang/bn.json1
-rw-r--r--lang/ca.json46
-rw-r--r--lang/cs.json26
-rw-r--r--lang/cy.json1
-rw-r--r--lang/da.json31
-rw-r--r--lang/de.json26
-rw-r--r--lang/el.json26
-rw-r--r--lang/en.json1
-rw-r--r--lang/es.json5
-rw-r--r--lang/et.json2
-rw-r--r--lang/eu.json1
-rw-r--r--lang/fa.json5
-rw-r--r--lang/fi.json10
-rw-r--r--lang/fr.json28
-rw-r--r--lang/gl.json2
-rw-r--r--lang/he.json1
-rw-r--r--lang/hi.json2
-rw-r--r--lang/hr.json69
-rw-r--r--lang/hu.json3
-rw-r--r--lang/id.json3
-rw-r--r--lang/is.json1
-rw-r--r--lang/it.json25
-rw-r--r--lang/ja.json19
-rw-r--r--lang/ka.json1
-rw-r--r--lang/ko.json3
-rw-r--r--lang/lt.json1
-rw-r--r--lang/lv.json3
-rw-r--r--lang/nb.json119
-rw-r--r--lang/nl.json164
-rw-r--r--lang/nn.json3
-rw-r--r--lang/pl.json15
-rw-r--r--lang/pt-br.json3
-rw-r--r--lang/pt.json3
-rw-r--r--lang/ro.json4
-rw-r--r--lang/sk.json3
-rw-r--r--lang/sl.json3
-rw-r--r--lang/sq.json108
-rw-r--r--lang/sr.json14
-rw-r--r--lang/sv.json13
-rw-r--r--lang/ta.json74
-rw-r--r--lang/te.json1
-rw-r--r--lang/th.json3
-rw-r--r--lang/tl.json14
-rw-r--r--lang/tr.json5
-rw-r--r--lang/uk.json2
-rw-r--r--lang/vi.json3
-rw-r--r--lang/zh-cn.json3
-rw-r--r--lang/zh-tw.json12
m---------misc/log-analytics0
-rw-r--r--piwik.js28
-rw-r--r--piwik.php2
-rw-r--r--plugins/API/API.php40
-rw-r--r--plugins/API/DataTable/MergeDataTables.php55
-rw-r--r--plugins/API/lang/da.json1
-rw-r--r--plugins/API/lang/fr.json1
-rw-r--r--plugins/API/lang/nl.json4
-rw-r--r--plugins/API/lang/ru.json1
-rw-r--r--plugins/Actions/lang/da.json1
-rw-r--r--plugins/Actions/lang/fr.json1
-rw-r--r--plugins/Actions/lang/nl.json1
-rw-r--r--plugins/Actions/lang/pl.json1
-rw-r--r--plugins/Actions/lang/ru.json1
-rw-r--r--plugins/Annotations/lang/sq.json11
-rw-r--r--plugins/Contents/lang/da.json10
-rw-r--r--plugins/Contents/lang/el.json10
-rw-r--r--plugins/Contents/lang/es.json8
-rw-r--r--plugins/Contents/lang/ru.json4
-rw-r--r--plugins/Contents/lang/sq.json12
-rw-r--r--plugins/CoreAdminHome/Commands/RunScheduledTasks.php10
-rw-r--r--plugins/CoreAdminHome/lang/ar.json1
-rw-r--r--plugins/CoreAdminHome/lang/bg.json3
-rw-r--r--plugins/CoreAdminHome/lang/cs.json11
-rw-r--r--plugins/CoreAdminHome/lang/da.json11
-rw-r--r--plugins/CoreAdminHome/lang/de.json12
-rw-r--r--plugins/CoreAdminHome/lang/el.json10
-rw-r--r--plugins/CoreAdminHome/lang/es.json9
-rw-r--r--plugins/CoreAdminHome/lang/et.json1
-rw-r--r--plugins/CoreAdminHome/lang/fa.json3
-rw-r--r--plugins/CoreAdminHome/lang/fi.json7
-rw-r--r--plugins/CoreAdminHome/lang/fr.json12
-rw-r--r--plugins/CoreAdminHome/lang/he.json1
-rw-r--r--plugins/CoreAdminHome/lang/hu.json9
-rw-r--r--plugins/CoreAdminHome/lang/id.json1
-rw-r--r--plugins/CoreAdminHome/lang/it.json11
-rw-r--r--plugins/CoreAdminHome/lang/ja.json7
-rw-r--r--plugins/CoreAdminHome/lang/nb.json4
-rw-r--r--plugins/CoreAdminHome/lang/nl.json13
-rw-r--r--plugins/CoreAdminHome/lang/pl.json7
-rw-r--r--plugins/CoreAdminHome/lang/pt-br.json1
-rw-r--r--plugins/CoreAdminHome/lang/pt.json7
-rw-r--r--plugins/CoreAdminHome/lang/ro.json3
-rw-r--r--plugins/CoreAdminHome/lang/ru.json10
-rw-r--r--plugins/CoreAdminHome/lang/sl.json2
-rw-r--r--plugins/CoreAdminHome/lang/sr.json7
-rw-r--r--plugins/CoreAdminHome/lang/sv.json11
-rw-r--r--plugins/CoreAdminHome/lang/tl.json5
-rw-r--r--plugins/CoreAdminHome/lang/tr.json5
-rw-r--r--plugins/CoreAdminHome/lang/vi.json1
-rw-r--r--plugins/CoreAdminHome/lang/zh-cn.json5
-rw-r--r--plugins/CoreConsole/Commands/CoreArchiver.php3
-rw-r--r--plugins/CoreConsole/Commands/DevelopmentSyncUITestScreenshots.php4
-rw-r--r--plugins/CoreHome/lang/da.json9
-rw-r--r--plugins/CoreHome/lang/el.json8
-rw-r--r--plugins/CoreHome/lang/fr.json6
-rw-r--r--plugins/CoreHome/lang/nb.json28
-rw-r--r--plugins/CoreHome/lang/nl.json12
-rw-r--r--plugins/CoreHome/lang/pl.json6
-rw-r--r--plugins/CoreHome/lang/ru.json4
-rw-r--r--plugins/CoreHome/stylesheets/coreHome.less6
-rw-r--r--plugins/CoreHome/templates/_headerMessage.twig2
-rw-r--r--plugins/CorePluginsAdmin/lang/da.json8
-rw-r--r--plugins/CorePluginsAdmin/lang/el.json8
-rw-r--r--plugins/CorePluginsAdmin/lang/es.json4
-rw-r--r--plugins/CorePluginsAdmin/lang/fr.json10
-rw-r--r--plugins/CorePluginsAdmin/lang/nl.json16
-rw-r--r--plugins/CorePluginsAdmin/lang/ru.json10
-rw-r--r--plugins/CorePluginsAdmin/lang/sq.json7
-rw-r--r--plugins/CorePluginsAdmin/stylesheets/marketplace.less8
-rw-r--r--plugins/CorePluginsAdmin/templates/browsePluginsActions.twig2
-rw-r--r--plugins/CorePluginsAdmin/templates/browseThemes.twig1
-rw-r--r--plugins/CoreUpdater/lang/am.json1
-rw-r--r--plugins/CoreUpdater/lang/ar.json1
-rw-r--r--plugins/CoreUpdater/lang/be.json1
-rw-r--r--plugins/CoreUpdater/lang/bg.json1
-rw-r--r--plugins/CoreUpdater/lang/ca.json1
-rw-r--r--plugins/CoreUpdater/lang/cs.json7
-rw-r--r--plugins/CoreUpdater/lang/da.json6
-rw-r--r--plugins/CoreUpdater/lang/de.json19
-rw-r--r--plugins/CoreUpdater/lang/el.json19
-rw-r--r--plugins/CoreUpdater/lang/es.json1
-rw-r--r--plugins/CoreUpdater/lang/et.json1
-rw-r--r--plugins/CoreUpdater/lang/eu.json1
-rw-r--r--plugins/CoreUpdater/lang/fa.json1
-rw-r--r--plugins/CoreUpdater/lang/fi.json3
-rw-r--r--plugins/CoreUpdater/lang/fr.json19
-rw-r--r--plugins/CoreUpdater/lang/he.json1
-rw-r--r--plugins/CoreUpdater/lang/hi.json1
-rw-r--r--plugins/CoreUpdater/lang/hu.json1
-rw-r--r--plugins/CoreUpdater/lang/id.json1
-rw-r--r--plugins/CoreUpdater/lang/it.json7
-rw-r--r--plugins/CoreUpdater/lang/ja.json3
-rw-r--r--plugins/CoreUpdater/lang/ka.json1
-rw-r--r--plugins/CoreUpdater/lang/ko.json1
-rw-r--r--plugins/CoreUpdater/lang/lt.json1
-rw-r--r--plugins/CoreUpdater/lang/lv.json1
-rw-r--r--plugins/CoreUpdater/lang/nb.json19
-rw-r--r--plugins/CoreUpdater/lang/nl.json23
-rw-r--r--plugins/CoreUpdater/lang/nn.json1
-rw-r--r--plugins/CoreUpdater/lang/pl.json3
-rw-r--r--plugins/CoreUpdater/lang/pt-br.json1
-rw-r--r--plugins/CoreUpdater/lang/pt.json1
-rw-r--r--plugins/CoreUpdater/lang/ro.json1
-rw-r--r--plugins/CoreUpdater/lang/ru.json7
-rw-r--r--plugins/CoreUpdater/lang/sk.json1
-rw-r--r--plugins/CoreUpdater/lang/sl.json1
-rw-r--r--plugins/CoreUpdater/lang/sq.json1
-rw-r--r--plugins/CoreUpdater/lang/sr.json3
-rw-r--r--plugins/CoreUpdater/lang/sv.json1
-rw-r--r--plugins/CoreUpdater/lang/ta.json1
-rw-r--r--plugins/CoreUpdater/lang/th.json1
-rw-r--r--plugins/CoreUpdater/lang/tl.json3
-rw-r--r--plugins/CoreUpdater/lang/tr.json1
-rw-r--r--plugins/CoreUpdater/lang/uk.json1
-rw-r--r--plugins/CoreUpdater/lang/vi.json1
-rw-r--r--plugins/CoreUpdater/lang/zh-cn.json1
-rw-r--r--plugins/CoreUpdater/lang/zh-tw.json1
m---------plugins/CustomAlerts0
-rw-r--r--plugins/CustomVariables/lang/da.json1
-rw-r--r--plugins/CustomVariables/lang/fr.json1
-rw-r--r--plugins/CustomVariables/lang/nl.json1
-rw-r--r--plugins/DBStats/lang/fr.json3
-rw-r--r--plugins/Dashboard/lang/ca.json1
-rw-r--r--plugins/Dashboard/lang/da.json1
-rw-r--r--plugins/Dashboard/lang/nl.json1
-rw-r--r--plugins/DevicePlugins/lang/da.json1
-rw-r--r--plugins/DevicePlugins/lang/fr.json1
-rw-r--r--plugins/DevicePlugins/lang/ru.json1
-rw-r--r--plugins/DevicesDetection/lang/am.json1
-rw-r--r--plugins/DevicesDetection/lang/ar.json2
-rw-r--r--plugins/DevicesDetection/lang/be.json2
-rw-r--r--plugins/DevicesDetection/lang/bg.json3
-rw-r--r--plugins/DevicesDetection/lang/ca.json1
-rw-r--r--plugins/DevicesDetection/lang/cs.json7
-rw-r--r--plugins/DevicesDetection/lang/da.json6
-rw-r--r--plugins/DevicesDetection/lang/de.json7
-rw-r--r--plugins/DevicesDetection/lang/el.json7
-rw-r--r--plugins/DevicesDetection/lang/et.json1
-rw-r--r--plugins/DevicesDetection/lang/fa.json1
-rw-r--r--plugins/DevicesDetection/lang/fi.json1
-rw-r--r--plugins/DevicesDetection/lang/fr.json5
-rw-r--r--plugins/DevicesDetection/lang/hi.json1
-rw-r--r--plugins/DevicesDetection/lang/hr.json1
-rw-r--r--plugins/DevicesDetection/lang/hu.json1
-rw-r--r--plugins/DevicesDetection/lang/id.json1
-rw-r--r--plugins/DevicesDetection/lang/is.json1
-rw-r--r--plugins/DevicesDetection/lang/it.json6
-rw-r--r--plugins/DevicesDetection/lang/ja.json1
-rw-r--r--plugins/DevicesDetection/lang/ka.json1
-rw-r--r--plugins/DevicesDetection/lang/ko.json1
-rw-r--r--plugins/DevicesDetection/lang/lt.json1
-rw-r--r--plugins/DevicesDetection/lang/lv.json1
-rw-r--r--plugins/DevicesDetection/lang/nb.json1
-rw-r--r--plugins/DevicesDetection/lang/nl.json6
-rw-r--r--plugins/DevicesDetection/lang/nn.json1
-rw-r--r--plugins/DevicesDetection/lang/pl.json3
-rw-r--r--plugins/DevicesDetection/lang/pt-br.json1
-rw-r--r--plugins/DevicesDetection/lang/ro.json1
-rw-r--r--plugins/DevicesDetection/lang/ru.json6
-rw-r--r--plugins/DevicesDetection/lang/sk.json1
-rw-r--r--plugins/DevicesDetection/lang/sl.json2
-rw-r--r--plugins/DevicesDetection/lang/sq.json1
-rw-r--r--plugins/DevicesDetection/lang/sr.json1
-rw-r--r--plugins/DevicesDetection/lang/sv.json3
-rw-r--r--plugins/DevicesDetection/lang/ta.json5
-rw-r--r--plugins/DevicesDetection/lang/te.json1
-rw-r--r--plugins/DevicesDetection/lang/th.json1
-rw-r--r--plugins/DevicesDetection/lang/tl.json1
-rw-r--r--plugins/DevicesDetection/lang/tr.json3
-rw-r--r--plugins/DevicesDetection/lang/uk.json1
-rw-r--r--plugins/DevicesDetection/lang/vi.json1
-rw-r--r--plugins/DevicesDetection/lang/zh-cn.json1
-rw-r--r--plugins/Diagnostics/Commands/Run.php19
-rw-r--r--plugins/Ecommerce/lang/fr.json3
-rw-r--r--plugins/ExamplePlugin/tests/System/expected/test___API.get_day.xml10
-rw-r--r--plugins/Feedback/lang/ar.json2
-rw-r--r--plugins/Feedback/lang/be.json2
-rw-r--r--plugins/Feedback/lang/bg.json5
-rw-r--r--plugins/Feedback/lang/ca.json2
-rw-r--r--plugins/Feedback/lang/cs.json8
-rw-r--r--plugins/Feedback/lang/da.json6
-rw-r--r--plugins/Feedback/lang/de.json18
-rw-r--r--plugins/Feedback/lang/el.json18
-rw-r--r--plugins/Feedback/lang/es.json6
-rw-r--r--plugins/Feedback/lang/fa.json2
-rw-r--r--plugins/Feedback/lang/fi.json5
-rw-r--r--plugins/Feedback/lang/fr.json19
-rw-r--r--plugins/Feedback/lang/hi.json2
-rw-r--r--plugins/Feedback/lang/hu.json2
-rw-r--r--plugins/Feedback/lang/id.json2
-rw-r--r--plugins/Feedback/lang/it.json18
-rw-r--r--plugins/Feedback/lang/ja.json6
-rw-r--r--plugins/Feedback/lang/ka.json2
-rw-r--r--plugins/Feedback/lang/ko.json2
-rw-r--r--plugins/Feedback/lang/lt.json2
-rw-r--r--plugins/Feedback/lang/lv.json2
-rw-r--r--plugins/Feedback/lang/nb.json2
-rw-r--r--plugins/Feedback/lang/nl.json5
-rw-r--r--plugins/Feedback/lang/nn.json2
-rw-r--r--plugins/Feedback/lang/pl.json6
-rw-r--r--plugins/Feedback/lang/pt-br.json2
-rw-r--r--plugins/Feedback/lang/pt.json2
-rw-r--r--plugins/Feedback/lang/ro.json6
-rw-r--r--plugins/Feedback/lang/ru.json7
-rw-r--r--plugins/Feedback/lang/sl.json1
-rw-r--r--plugins/Feedback/lang/sq.json2
-rw-r--r--plugins/Feedback/lang/sr.json6
-rw-r--r--plugins/Feedback/lang/sv.json6
-rw-r--r--plugins/Feedback/lang/ta.json4
-rw-r--r--plugins/Feedback/lang/th.json2
-rw-r--r--plugins/Feedback/lang/tl.json6
-rw-r--r--plugins/Feedback/lang/tr.json5
-rw-r--r--plugins/Feedback/lang/uk.json2
-rw-r--r--plugins/Feedback/lang/vi.json2
-rw-r--r--plugins/Feedback/lang/zh-cn.json2
-rw-r--r--plugins/Feedback/lang/zh-tw.json2
-rw-r--r--plugins/Goals/API.php75
-rw-r--r--plugins/Goals/Controller.php70
-rw-r--r--plugins/Goals/DataTable/Filter/AppendNameToColumnNames.php57
-rw-r--r--plugins/Goals/Menu.php47
-rw-r--r--plugins/Goals/Reports/Get.php3
-rw-r--r--plugins/Goals/Reports/GetMetrics.php32
-rw-r--r--plugins/Goals/lang/da.json8
-rw-r--r--plugins/Goals/lang/el.json8
-rw-r--r--plugins/Goals/lang/fr.json9
-rw-r--r--plugins/Goals/lang/ru.json8
-rw-r--r--plugins/Goals/templates/addNewGoal.twig2
-rw-r--r--plugins/Goals/templates/editGoals.twig17
-rw-r--r--plugins/Goals/templates/getOverviewView.twig11
-rw-r--r--plugins/Goals/tests/Unit/AppendNameToColumnNamesTest.php100
-rw-r--r--plugins/ImageGraph/lang/da.json3
-rw-r--r--plugins/ImageGraph/lang/fr.json3
-rw-r--r--plugins/Insights/Visualizations/Insight/RequestConfig.php1
-rw-r--r--plugins/Insights/lang/bg.json4
-rw-r--r--plugins/Insights/lang/cs.json8
-rw-r--r--plugins/Insights/lang/et.json7
-rw-r--r--plugins/Insights/lang/it.json4
-rw-r--r--plugins/Insights/lang/ja.json6
-rw-r--r--plugins/Insights/lang/nl.json6
-rw-r--r--plugins/Insights/lang/pt-br.json10
-rw-r--r--plugins/Insights/lang/pt.json10
-rw-r--r--plugins/Insights/lang/ro.json10
-rw-r--r--plugins/Insights/lang/ru.json1
-rw-r--r--plugins/Insights/lang/sq.json7
-rw-r--r--plugins/Insights/lang/tr.json2
-rw-r--r--plugins/Insights/lang/vi.json5
-rw-r--r--plugins/Installation/lang/bg.json2
-rw-r--r--plugins/Installation/lang/cs.json27
-rw-r--r--plugins/Installation/lang/da.json25
-rw-r--r--plugins/Installation/lang/de.json29
-rw-r--r--plugins/Installation/lang/el.json29
-rw-r--r--plugins/Installation/lang/es.json6
-rw-r--r--plugins/Installation/lang/fa.json6
-rw-r--r--plugins/Installation/lang/fi.json12
-rw-r--r--plugins/Installation/lang/fr.json28
-rw-r--r--plugins/Installation/lang/it.json26
-rw-r--r--plugins/Installation/lang/ja.json14
-rw-r--r--plugins/Installation/lang/nb.json8
-rw-r--r--plugins/Installation/lang/nl.json15
-rw-r--r--plugins/Installation/lang/pl.json10
-rw-r--r--plugins/Installation/lang/ro.json8
-rw-r--r--plugins/Installation/lang/ru.json32
-rw-r--r--plugins/Installation/lang/sk.json31
-rw-r--r--plugins/Installation/lang/sr.json14
-rw-r--r--plugins/Installation/lang/sv.json18
-rw-r--r--plugins/Installation/lang/tl.json14
-rw-r--r--plugins/Installation/lang/tr.json4
-rw-r--r--plugins/Installation/lang/zh-cn.json2
-rw-r--r--plugins/LanguagesManager/Commands/CompareKeys.php111
-rw-r--r--plugins/LanguagesManager/Commands/CreatePull.php6
-rw-r--r--plugins/LanguagesManager/Commands/FetchFromOTrance.php182
-rw-r--r--plugins/LanguagesManager/Commands/FetchTranslations.php114
-rw-r--r--plugins/LanguagesManager/Commands/Update.php168
-rwxr-xr-xplugins/LanguagesManager/Test/Integration/LanguagesManagerTest.php2
-rw-r--r--plugins/LanguagesManager/lang/ru.json3
-rw-r--r--plugins/LeftMenu/lang/cs.json8
-rw-r--r--plugins/LeftMenu/lang/da.json8
-rw-r--r--plugins/LeftMenu/lang/de.json8
-rw-r--r--plugins/LeftMenu/lang/el.json8
-rw-r--r--plugins/LeftMenu/lang/fi.json2
-rw-r--r--plugins/LeftMenu/lang/fr.json8
-rw-r--r--plugins/LeftMenu/lang/it.json8
-rw-r--r--plugins/LeftMenu/lang/ja.json8
-rw-r--r--plugins/LeftMenu/lang/nl.json4
-rw-r--r--plugins/LeftMenu/lang/pl.json4
-rw-r--r--plugins/LeftMenu/lang/ro.json8
-rw-r--r--plugins/LeftMenu/lang/ru.json4
-rw-r--r--plugins/LeftMenu/lang/sr.json8
-rw-r--r--plugins/LeftMenu/lang/sv.json8
-rw-r--r--plugins/LeftMenu/lang/tl.json8
-rw-r--r--plugins/Live/lang/cs.json9
-rw-r--r--plugins/Live/lang/da.json8
-rw-r--r--plugins/Live/lang/de.json10
-rw-r--r--plugins/Live/lang/el.json10
-rw-r--r--plugins/Live/lang/fr.json7
-rw-r--r--plugins/Live/lang/it.json9
-rw-r--r--plugins/Live/lang/nl.json4
-rw-r--r--plugins/Live/lang/ru.json8
-rw-r--r--plugins/Live/lang/sv.json2
-rw-r--r--plugins/Login/lang/da.json1
-rw-r--r--plugins/Login/lang/fr.json1
-rw-r--r--plugins/Login/lang/ru.json1
-rw-r--r--plugins/Monolog/config/cli.php (renamed from config/environment/cli.php)2
-rw-r--r--plugins/Monolog/config/config.php4
-rw-r--r--plugins/Monolog/config/tracker.php16
-rw-r--r--plugins/Morpheus/stylesheets/general/_jqueryUI.less11
-rw-r--r--plugins/Morpheus/stylesheets/ui/_components.less3
-rw-r--r--plugins/MultiSites/.gitignore1
-rwxr-xr-xplugins/MultiSites/API.php170
-rw-r--r--plugins/MultiSites/Columns/Metrics/EcommerceOnlyEvolutionMetric.php12
-rw-r--r--plugins/MultiSites/Controller.php33
-rw-r--r--plugins/MultiSites/Dashboard.php312
-rw-r--r--plugins/MultiSites/MultiSites.php2
-rw-r--r--plugins/MultiSites/angularjs/dashboard/dashboard-group.filter.js67
-rw-r--r--plugins/MultiSites/angularjs/dashboard/dashboard-model.service.js290
-rw-r--r--plugins/MultiSites/angularjs/dashboard/dashboard.controller.js16
-rw-r--r--plugins/MultiSites/angularjs/dashboard/dashboard.directive.html39
-rw-r--r--plugins/MultiSites/angularjs/dashboard/dashboard.directive.less1
-rw-r--r--plugins/MultiSites/lang/bg.json4
-rw-r--r--plugins/MultiSites/lang/ca.json3
-rw-r--r--plugins/MultiSites/lang/cs.json4
-rw-r--r--plugins/MultiSites/lang/da.json4
-rw-r--r--plugins/MultiSites/lang/de.json4
-rw-r--r--plugins/MultiSites/lang/el.json4
-rw-r--r--plugins/MultiSites/lang/fr.json5
-rw-r--r--plugins/MultiSites/lang/it.json4
-rw-r--r--plugins/MultiSites/lang/ja.json4
-rw-r--r--plugins/MultiSites/lang/nl.json4
-rw-r--r--plugins/MultiSites/lang/ro.json4
-rw-r--r--plugins/MultiSites/lang/sq.json3
-rw-r--r--plugins/MultiSites/lang/sr.json4
-rw-r--r--plugins/MultiSites/lang/sv.json4
-rw-r--r--plugins/MultiSites/lang/tl.json4
-rw-r--r--plugins/MultiSites/tests/Fixtures/ManySitesWithVisits.php83
-rw-r--r--plugins/MultiSites/tests/Integration/ControllerTest.php126
-rw-r--r--plugins/MultiSites/tests/Integration/DashboardTest.php401
-rw-r--r--plugins/Overlay/lang/ar.json5
-rw-r--r--plugins/Overlay/lang/be.json5
-rw-r--r--plugins/Overlay/lang/da.json1
-rw-r--r--plugins/Overlay/lang/fa.json2
-rw-r--r--plugins/Overlay/lang/fr.json1
-rw-r--r--plugins/Overlay/lang/he.json1
-rw-r--r--plugins/Overlay/lang/hi.json2
-rw-r--r--plugins/Overlay/lang/hr.json5
-rw-r--r--plugins/Overlay/lang/hu.json5
-rw-r--r--plugins/Overlay/lang/is.json5
-rw-r--r--plugins/Overlay/lang/ka.json5
-rw-r--r--plugins/Overlay/lang/lt.json5
-rw-r--r--plugins/Overlay/lang/lv.json5
-rw-r--r--plugins/Overlay/lang/nn.json5
-rw-r--r--plugins/Overlay/lang/pl.json2
-rw-r--r--plugins/Overlay/lang/pt.json5
-rw-r--r--plugins/Overlay/lang/ru.json4
-rw-r--r--plugins/Overlay/lang/sk.json1
-rw-r--r--plugins/Overlay/lang/sl.json5
-rw-r--r--plugins/Overlay/lang/sq.json5
-rw-r--r--plugins/Overlay/lang/th.json1
-rw-r--r--plugins/Overlay/lang/tr.json5
-rw-r--r--plugins/Overlay/lang/uk.json5
-rw-r--r--plugins/Overlay/lang/zh-tw.json5
-rw-r--r--plugins/PrivacyManager/lang/da.json2
-rw-r--r--plugins/PrivacyManager/lang/el.json2
-rw-r--r--plugins/PrivacyManager/lang/fr.json3
-rw-r--r--plugins/PrivacyManager/lang/ru.json1
-rw-r--r--plugins/Provider/lang/cs.json4
-rw-r--r--plugins/Provider/lang/da.json5
-rw-r--r--plugins/Provider/lang/de.json4
-rw-r--r--plugins/Provider/lang/el.json4
-rw-r--r--plugins/Provider/lang/fr.json5
-rw-r--r--plugins/Provider/lang/it.json4
-rw-r--r--plugins/Provider/lang/ja.json4
-rw-r--r--plugins/Provider/lang/ru.json1
-rw-r--r--plugins/Provider/lang/sl.json4
-rw-r--r--plugins/Provider/lang/tl.json4
m---------plugins/QueuedTracking0
-rw-r--r--plugins/Referrers/lang/bn.json5
-rw-r--r--plugins/Referrers/lang/bs.json5
-rw-r--r--plugins/Referrers/lang/ca.json2
-rw-r--r--plugins/Referrers/lang/cs.json8
-rw-r--r--plugins/Referrers/lang/cy.json5
-rw-r--r--plugins/Referrers/lang/da.json1
-rw-r--r--plugins/Referrers/lang/el.json8
-rw-r--r--plugins/Referrers/lang/fi.json4
-rw-r--r--plugins/Referrers/lang/fr.json6
-rw-r--r--plugins/Referrers/lang/gl.json3
-rw-r--r--plugins/Referrers/lang/he.json2
-rw-r--r--plugins/Referrers/lang/hr.json5
-rw-r--r--plugins/Referrers/lang/it.json6
-rw-r--r--plugins/Referrers/lang/ja.json2
-rw-r--r--plugins/Referrers/lang/nl.json4
-rw-r--r--plugins/Referrers/lang/nn.json2
-rw-r--r--plugins/Referrers/lang/pl.json4
-rw-r--r--plugins/Referrers/lang/pt-br.json2
-rw-r--r--plugins/Referrers/lang/ro.json6
-rw-r--r--plugins/Referrers/lang/sk.json4
-rw-r--r--plugins/Referrers/lang/sq.json2
-rw-r--r--plugins/Referrers/lang/sv.json6
-rw-r--r--plugins/Referrers/lang/ta.json5
-rw-r--r--plugins/Referrers/lang/te.json2
-rw-r--r--plugins/Referrers/lang/tr.json3
-rw-r--r--plugins/Referrers/lang/uk.json2
-rw-r--r--plugins/Referrers/lang/vi.json6
-rw-r--r--plugins/Resolution/lang/da.json1
-rw-r--r--plugins/Resolution/lang/fr.json1
-rw-r--r--plugins/Resolution/lang/hr.json7
-rw-r--r--plugins/Resolution/lang/ru.json1
-rw-r--r--plugins/ScheduledReports/lang/cs.json2
-rw-r--r--plugins/ScheduledReports/lang/da.json1
-rw-r--r--plugins/ScheduledReports/lang/de.json2
-rw-r--r--plugins/ScheduledReports/lang/el.json2
-rw-r--r--plugins/ScheduledReports/lang/fr.json2
-rw-r--r--plugins/ScheduledReports/lang/it.json2
-rw-r--r--plugins/ScheduledReports/lang/nl.json2
-rw-r--r--plugins/ScheduledReports/lang/ru.json4
m---------plugins/SecurityInfo0
-rw-r--r--plugins/SegmentEditor/lang/cs.json6
-rw-r--r--plugins/SegmentEditor/lang/da.json6
-rw-r--r--plugins/SegmentEditor/lang/de.json6
-rw-r--r--plugins/SegmentEditor/lang/el.json6
-rw-r--r--plugins/SegmentEditor/lang/fr.json6
-rw-r--r--plugins/SegmentEditor/lang/it.json6
-rw-r--r--plugins/SegmentEditor/lang/ja.json6
-rw-r--r--plugins/SegmentEditor/lang/nl.json6
-rw-r--r--plugins/SegmentEditor/lang/ro.json4
-rw-r--r--plugins/SegmentEditor/lang/sr.json4
-rw-r--r--plugins/SegmentEditor/lang/sv.json4
-rw-r--r--plugins/SegmentEditor/lang/tl.json6
-rw-r--r--plugins/SitesManager/SitesManager.php1
-rw-r--r--plugins/SitesManager/lang/am.json2
-rw-r--r--plugins/SitesManager/lang/bs.json3
-rw-r--r--plugins/SitesManager/lang/cs.json2
-rw-r--r--plugins/SitesManager/lang/da.json7
-rw-r--r--plugins/SitesManager/lang/de.json3
-rw-r--r--plugins/SitesManager/lang/el.json5
-rw-r--r--plugins/SitesManager/lang/fi.json2
-rw-r--r--plugins/SitesManager/lang/fr.json6
-rw-r--r--plugins/SitesManager/lang/hr.json2
-rw-r--r--plugins/SitesManager/lang/is.json1
-rw-r--r--plugins/SitesManager/lang/it.json2
-rw-r--r--plugins/SitesManager/lang/ro.json2
-rw-r--r--plugins/SitesManager/lang/ru.json1
-rw-r--r--plugins/SitesManager/lang/sv.json2
-rw-r--r--plugins/SitesManager/lang/tr.json1
-rw-r--r--plugins/SitesManager/lang/vi.json2
-rw-r--r--plugins/SitesManager/stylesheets/SitesManager.less25
-rw-r--r--plugins/SitesManager/templates/loading.html2
-rw-r--r--plugins/SitesManager/templates/sites-list/add-site-link.html10
-rw-r--r--plugins/SitesManager/templates/sites-list/sites-list.html2
m---------plugins/TasksTimetable0
-rw-r--r--plugins/TestRunner/Runner/Remote.php1
-rw-r--r--plugins/TestRunner/TravisYml/TravisYmlView.php3
-rw-r--r--plugins/TestRunner/templates/travis.yml.twig2
-rw-r--r--plugins/Transitions/lang/fr.json1
m---------plugins/TreemapVisualization0
-rw-r--r--plugins/UserCountry/Columns/Base.php2
-rw-r--r--plugins/UserCountry/lang/am.json1
-rw-r--r--plugins/UserCountry/lang/bn.json3
-rw-r--r--plugins/UserCountry/lang/bs.json7
-rw-r--r--plugins/UserCountry/lang/ca.json4
-rw-r--r--plugins/UserCountry/lang/cs.json10
-rw-r--r--plugins/UserCountry/lang/cy.json7
-rw-r--r--plugins/UserCountry/lang/da.json1
-rw-r--r--plugins/UserCountry/lang/el.json2
-rw-r--r--plugins/UserCountry/lang/et.json8
-rw-r--r--plugins/UserCountry/lang/eu.json3
-rw-r--r--plugins/UserCountry/lang/fa.json8
-rw-r--r--plugins/UserCountry/lang/fi.json6
-rw-r--r--plugins/UserCountry/lang/fr.json3
-rw-r--r--plugins/UserCountry/lang/gl.json6
-rw-r--r--plugins/UserCountry/lang/he.json6
-rw-r--r--plugins/UserCountry/lang/hi.json12
-rw-r--r--plugins/UserCountry/lang/hr.json24
-rw-r--r--plugins/UserCountry/lang/hu.json4
-rw-r--r--plugins/UserCountry/lang/id.json6
-rw-r--r--plugins/UserCountry/lang/is.json6
-rw-r--r--plugins/UserCountry/lang/it.json5
-rw-r--r--plugins/UserCountry/lang/ja.json10
-rw-r--r--plugins/UserCountry/lang/ko.json10
-rw-r--r--plugins/UserCountry/lang/lt.json10
-rw-r--r--plugins/UserCountry/lang/nb.json10
-rw-r--r--plugins/UserCountry/lang/nl.json2
-rw-r--r--plugins/UserCountry/lang/nn.json4
-rw-r--r--plugins/UserCountry/lang/pl.json6
-rw-r--r--plugins/UserCountry/lang/pt-br.json4
-rw-r--r--plugins/UserCountry/lang/pt.json6
-rw-r--r--plugins/UserCountry/lang/ro.json4
-rw-r--r--plugins/UserCountry/lang/ru.json3
-rw-r--r--plugins/UserCountry/lang/sk.json7
-rw-r--r--plugins/UserCountry/lang/sl.json4
-rw-r--r--plugins/UserCountry/lang/sq.json2
-rw-r--r--plugins/UserCountry/lang/sr.json4
-rw-r--r--plugins/UserCountry/lang/ta.json11
-rw-r--r--plugins/UserCountry/lang/te.json3
-rw-r--r--plugins/UserCountry/lang/th.json1
-rw-r--r--plugins/UserCountry/lang/tl.json2
-rw-r--r--plugins/UserCountry/lang/tr.json6
-rw-r--r--plugins/UserCountry/lang/uk.json6
-rw-r--r--plugins/UserCountry/lang/vi.json6
-rw-r--r--plugins/UserCountry/lang/zh-cn.json12
-rw-r--r--plugins/UserCountry/lang/zh-tw.json5
-rw-r--r--plugins/UserCountryMap/lang/da.json4
-rw-r--r--plugins/UserCountryMap/lang/el.json4
-rw-r--r--plugins/UserCountryMap/lang/ru.json4
-rw-r--r--plugins/UserLanguage/lang/da.json3
-rw-r--r--plugins/UserLanguage/lang/el.json4
-rw-r--r--plugins/UserLanguage/lang/fr.json9
-rw-r--r--plugins/UserLanguage/lang/hr.json7
-rw-r--r--plugins/UserLanguage/lang/nl.json5
-rw-r--r--plugins/UserLanguage/lang/pl.json5
-rw-r--r--plugins/UserLanguage/lang/ru.json3
-rw-r--r--plugins/UserLanguage/lang/sk.json6
-rw-r--r--plugins/UserLanguage/lang/ta.json9
-rw-r--r--plugins/UserLanguage/lang/zh-tw.json9
-rw-r--r--plugins/UsersManager/UserPreferences.php71
-rw-r--r--plugins/UsersManager/lang/bs.json6
-rw-r--r--plugins/UsersManager/lang/cs.json6
-rw-r--r--plugins/UsersManager/lang/da.json4
-rw-r--r--plugins/UsersManager/lang/de.json4
-rw-r--r--plugins/UsersManager/lang/el.json4
-rw-r--r--plugins/UsersManager/lang/et.json4
-rw-r--r--plugins/UsersManager/lang/fi.json2
-rw-r--r--plugins/UsersManager/lang/fr.json7
-rw-r--r--plugins/UsersManager/lang/hi.json5
-rw-r--r--plugins/UsersManager/lang/it.json6
-rw-r--r--plugins/UsersManager/lang/ja.json2
-rw-r--r--plugins/UsersManager/lang/lv.json2
-rw-r--r--plugins/UsersManager/lang/nb.json4
-rw-r--r--plugins/UsersManager/lang/nl.json6
-rw-r--r--plugins/UsersManager/lang/nn.json2
-rw-r--r--plugins/UsersManager/lang/pt-br.json2
-rw-r--r--plugins/UsersManager/lang/ru.json4
-rw-r--r--plugins/UsersManager/lang/sk.json2
-rw-r--r--plugins/UsersManager/lang/sl.json2
-rw-r--r--plugins/UsersManager/lang/sq.json2
-rw-r--r--plugins/UsersManager/lang/ta.json6
-rw-r--r--plugins/UsersManager/lang/th.json2
-rw-r--r--plugins/UsersManager/lang/zh-cn.json2
-rw-r--r--plugins/UsersManager/tests/Integration/UserPreferencesTest.php51
-rw-r--r--plugins/VisitFrequency/lang/cs.json2
-rw-r--r--plugins/VisitFrequency/lang/da.json3
-rw-r--r--plugins/VisitFrequency/lang/de.json2
-rw-r--r--plugins/VisitFrequency/lang/el.json2
-rw-r--r--plugins/VisitFrequency/lang/fr.json3
-rw-r--r--plugins/VisitFrequency/lang/it.json2
-rw-r--r--plugins/VisitFrequency/lang/nl.json2
-rw-r--r--plugins/VisitFrequency/lang/pl.json3
-rw-r--r--plugins/VisitFrequency/lang/ru.json2
-rw-r--r--plugins/VisitFrequency/templates/_sparklines.twig12
-rw-r--r--plugins/VisitTime/lang/fr.json1
-rw-r--r--plugins/VisitTime/lang/ru.json1
m---------plugins/VisitorGenerator0
-rw-r--r--plugins/VisitorInterest/lang/fr.json1
-rw-r--r--plugins/VisitsSummary/lang/da.json1
-rw-r--r--plugins/VisitsSummary/lang/fr.json1
-rw-r--r--plugins/VisitsSummary/templates/_sparklines.twig13
-rw-r--r--plugins/Widgetize/lang/da.json1
-rw-r--r--plugins/Widgetize/lang/fr.json1
-rw-r--r--plugins/Widgetize/lang/nl.json4
-rw-r--r--plugins/Widgetize/lang/ru.json1
-rw-r--r--plugins/ZenMode/lang/cs.json6
-rw-r--r--plugins/ZenMode/lang/da.json6
-rw-r--r--plugins/ZenMode/lang/de.json6
-rw-r--r--plugins/ZenMode/lang/el.json6
-rw-r--r--plugins/ZenMode/lang/fr.json6
-rw-r--r--plugins/ZenMode/lang/it.json6
-rw-r--r--plugins/ZenMode/lang/ja.json6
-rw-r--r--plugins/ZenMode/lang/nl.json6
-rw-r--r--plugins/ZenMode/lang/pl.json6
-rw-r--r--plugins/ZenMode/lang/ru.json6
-rw-r--r--plugins/ZenMode/lang/sr.json6
-rw-r--r--plugins/ZenMode/lang/sv.json6
-rw-r--r--plugins/ZenMode/lang/ta.json6
-rw-r--r--plugins/ZenMode/lang/tl.json6
-rw-r--r--tests/PHPUnit/Framework/Mock/FakeLogger.php19
-rw-r--r--tests/PHPUnit/Integration/Archive/DataTableFactoryTest.php360
-rw-r--r--tests/PHPUnit/Integration/CronArchiveTest.php98
-rw-r--r--tests/PHPUnit/Integration/ReportTest.php8
-rw-r--r--tests/PHPUnit/System/BackwardsCompatibility1XTest.php3
-rw-r--r--tests/PHPUnit/System/CliMultiTest.php14
-rwxr-xr-xtests/PHPUnit/System/PeriodIsRangeDateIsLastNMetadataAndNormalAPITest.php6
-rw-r--r--tests/PHPUnit/System/TrackerTest.php18
-rw-r--r--tests/PHPUnit/System/expected/test_BackwardsCompatibility1XTest__Goals.get_day.xml15
-rw-r--r--tests/PHPUnit/System/expected/test_BackwardsCompatibility1XTest__MultiSites.getAll_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Goals.getMetrics_month.xml7
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs_withEnhancedAndLast7__MultiSites.getAll_month.xml50
-rw-r--r--tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_sortByProcessedMetric_constantRowsCountShouldKeepEmptyRows__API.getProcessedReport_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Goals.getConversionRate_day.xml6
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Goals.getMetrics_day.xml7
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Goals.get_day.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__MultiSites.getAll_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_csv__API.get_month.csvbin1444 -> 1922 bytes
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Goals.getMetrics_day.xml7
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Goals.get_day.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_CustomVariables.getCustomVariables_firstSite_lastN__API.getProcessedReport_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_CustomVariables.getCustomVariables_firstSite_lastN__API.getProcessedReport_month.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_MultiSites.getAll_firstSite_lastN__API.getProcessedReport_day.xml16
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_NotLastNPeriods__Goals.get_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_NotLastNPeriods__Goals.get_month.xml12
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_day.xml16
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_month.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_week.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_year.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_day.xml16
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_month.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_week.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_year.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_NotLastNPeriods__Goals.get_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_NotLastNPeriods__Goals.get_month.xml12
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Referrers.getWebsites_firstSite_lastN__API.getProcessedReport_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_csv__ScheduledReports.generateReport_month.original.csv24
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html266
-rw-r--r--tests/PHPUnit/System/expected/test_UserId_VisitorId_segmentUserId__Goals.get_day.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getMetadata_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getProcessedReport_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml162
-rw-r--r--tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.get_day.xml10
-rw-r--r--tests/PHPUnit/System/expected/test_apiGetReportMetadata_showRawMetrics__API.getProcessedReport_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_apiGetReportMetadata_year__API.getProcessedReport_year.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalAbandonedCart__Goals.get_day.xml12
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalAbandonedCart__Goals.get_week.xml12
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalMatchTitle__Goals.get_day.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalMatchTitle__Goals.get_week.xml8
-rwxr-xr-xtests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOrder__Goals.get_day.xml20
-rwxr-xr-xtests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOrder__Goals.get_week.xml20
-rwxr-xr-xtests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOverall__Goals.get_day.xml8
-rwxr-xr-xtests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOverall__Goals.get_week.xml8
-rwxr-xr-xtests/PHPUnit/System/expected/test_ecommerceOrderWithItems_Metadata_VisitTime.getVisitInformationPerServerTime__API.getProcessedReport_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_SegmentNoVisit_HaveConvertedNonExistingGoal__Goals.get_week.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_SegmentVisitHasConvertedGoal__Goals.get_week.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_SegmentVisitHasNotOrderedAndConvertedGoal__Goals.get_week.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_Website2__Goals.get_week.xml8
-rwxr-xr-xtests/PHPUnit/System/expected/test_ecommerceOrderWithItems__API.getProcessedReport_day.xml4
-rwxr-xr-xtests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Goals.get_day.xml8
-rwxr-xr-xtests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Goals.get_week.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_csv__ScheduledReports.generateReport_week.original.csv10
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html54
-rw-r--r--tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__Goals.getMetrics_day.xml10
-rw-r--r--tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__Goals.getMetrics_week.xml10
-rw-r--r--tests/PHPUnit/System/expected/test_noVisit__Goals.getMetrics_day.xml7
-rw-r--r--tests/PHPUnit/System/expected/test_noVisit__Goals.get_day.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange_IndexedByDate__MultiSites.getAll_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange_MultipleDatesNotSupported__MultiSites.getAll_day.xml10
-rw-r--r--tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange__MultiSites.getAll_range.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__API.getProcessedReport_range.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Goals.get_range.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getVisitorProfile.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__API.getProcessedReport_range.xml77
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Actions.getPageUrls_range.xml47
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__CustomVariables.getCustomVariables_range.xml234
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Goals.get_range.xml15
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getCounters.xml9
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisits.xml415
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisitsDetails_range.xml415
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getMostRecentVisitorId.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getVisitorProfile.xml280
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Referrers.getCampaigns_range.xml32
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Referrers.getKeywords_range.xml47
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/System/expected/test_twoVisitsWithCustomVariables__subtable__API.getProcessedReport_day.xml4
-rw-r--r--tests/PHPUnit/Unit/Archive/DataCollectionTest.php284
m---------tests/UI/expected-ui-screenshots0
-rw-r--r--tests/UI/screenshot-diffs/singlediff.html2
-rw-r--r--tests/UI/specs/Insights_spec.js21
-rw-r--r--tests/UI/specs/MultiSites_spec.js35
-rw-r--r--tests/UI/specs/SegmentSelectorEditor_spec.js10
-rw-r--r--tests/UI/specs/SitesManager_spec.js2
-rw-r--r--tests/UI/specs/UIIntegration_spec.js6
-rw-r--r--tests/javascript/index.php84
767 files changed, 8290 insertions, 2864 deletions
diff --git a/.gitignore b/.gitignore
index 6180aa71bf..6969b9d3ed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -63,4 +63,5 @@ php_errors.log
/config/*.config.ini.php
/Vagrantfile
/misc/vagrant
+/.vagrant
/plugins/.gitignore
diff --git a/.travis.yml b/.travis.yml
index 78def33e1c..73ebc84cd5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -78,6 +78,8 @@ matrix:
- php: hhvm
env: TEST_SUITE=AngularJSTests MYSQL_ADAPTER=PDO_MYSQL
+sudo: required
+
script: $PIWIK_ROOT_DIR/tests/travis/travis.sh
before_install:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6a300ac3d8..d57774a516 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,15 +10,21 @@ This is a changelog for Piwik platform developers. All changes for our HTTP API'
### Breaking Changes
* The API method `Live.getLastVisitsDetails` does no longer support the API parameter `filter_sort_column` to prevent possible memory issues when `filter_offset` is large.
+* The Event `Site.setSite` was removed as it causes performance problems.
### New commands
* There is now a `diagnostic:run` command to run the system check from the command line.
+* There is now an option `--xhprof` that can be used with any command to profile that command via XHProf.
### APIs Improvements
* Visitor details now additionally contain: `deviceTypeIcon`, `deviceBrand` and `deviceModel`
* In 2.6.0 we added the possibility to use `filter_limit` and `filter_offset` if an API returns an indexed array. This was not working in all cases and is fixed now.
* The API parameter `filter_pattern` and `filter_offset[]` can now be used if an API returns an indexed array.
+### Internal changes
+
+* The referrer spam filter has moved from the `referrer_urls_spam` INI option (in `global.ini.php`) to a separate package (see [https://github.com/piwik/referrer-spam-blacklist](https://github.com/piwik/referrer-spam-blacklist)).
+
## Piwik 2.12.0
### Breaking Changes
@@ -84,7 +90,7 @@ This is a changelog for Piwik platform developers. All changes for our HTTP API'
* During UI tests we do now add a CSS class to the HTML element called `uiTest`. This allows you do hide content when screenshots are captured.
### New commands
-* A new command (core:fix-duplicate-log-actions) has been added which can be used to remove duplicate actions and correct references to them in other tables. Duplicates were caused by this bug: https://github.com/piwik/piwik/issues/6436
+* A new command (core:fix-duplicate-log-actions) has been added which can be used to remove duplicate actions and correct references to them in other tables. Duplicates were caused by this bug: [#6436](https://github.com/piwik/piwik/issues/6436)
### Library updates
* Updated AngularJS from 1.2.26 to 1.2.28
diff --git a/composer.json b/composer.json
index 7acbf4508f..f452c42abc 100644
--- a/composer.json
+++ b/composer.json
@@ -53,7 +53,8 @@
"symfony/monolog-bridge": "~2.6",
"symfony/event-dispatcher": "~2.6",
"pear/pear_exception": "~1.0.0",
- "pear/pear-core-minimal": "~1.9.5"
+ "pear/pear-core-minimal": "~1.9.5",
+ "piwik/referrer-spam-blacklist": "~1.0"
},
"require-dev": {
"aws/aws-sdk-php": "2.7.1",
diff --git a/composer.lock b/composer.lock
index 48e17c8f11..82da13c21a 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "hash": "f0c9c70091696d6197a4c438b9c12860",
+ "hash": "5033f5c1e5d1d67add5f5e75bbe59aaf",
"packages": [
{
"name": "container-interop/container-interop",
@@ -272,12 +272,12 @@
"source": {
"type": "git",
"url": "https://github.com/mnapoli/PHP-DI.git",
- "reference": "92e2f01c7f2076649235aa50f415dda11b87e6da"
+ "reference": "b555566822ce0bdf1c946d46785a038317908ed1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mnapoli/PHP-DI/zipball/92e2f01c7f2076649235aa50f415dda11b87e6da",
- "reference": "92e2f01c7f2076649235aa50f415dda11b87e6da",
+ "url": "https://api.github.com/repos/mnapoli/PHP-DI/zipball/b555566822ce0bdf1c946d46785a038317908ed1",
+ "reference": "b555566822ce0bdf1c946d46785a038317908ed1",
"shasum": ""
},
"require": {
@@ -321,7 +321,7 @@
"dependency injection",
"di"
],
- "time": "2015-04-12 06:13:26"
+ "time": "2015-04-19 08:13:30"
},
{
"name": "mnapoli/phpdocreader",
@@ -863,22 +863,23 @@
},
{
"name": "piwik/ini",
- "version": "1.0.3",
+ "version": "1.0.4",
"source": {
"type": "git",
"url": "https://github.com/piwik/component-ini.git",
- "reference": "5863e8a006d490c2eb50e32ef08c1c684dff0ed0"
+ "reference": "9269255fd187e5bda2e5778041c8d143eb615b0a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/piwik/component-ini/zipball/5863e8a006d490c2eb50e32ef08c1c684dff0ed0",
- "reference": "5863e8a006d490c2eb50e32ef08c1c684dff0ed0",
+ "url": "https://api.github.com/repos/piwik/component-ini/zipball/9269255fd187e5bda2e5778041c8d143eb615b0a",
+ "reference": "9269255fd187e5bda2e5778041c8d143eb615b0a",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
+ "athletic/athletic": "0.1.*",
"phpunit/phpunit": "~4.0"
},
"type": "library",
@@ -891,7 +892,7 @@
"license": [
"LGPL-3.0"
],
- "time": "2015-03-03 22:19:39"
+ "time": "2015-04-21 04:59:09"
},
{
"name": "piwik/network",
@@ -926,6 +927,28 @@
"time": "2014-10-23 03:30:23"
},
{
+ "name": "piwik/referrer-spam-blacklist",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/piwik/referrer-spam-blacklist.git",
+ "reference": "4508617435cd8b93c0fbd0fd430dc24d2a898cdb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/piwik/referrer-spam-blacklist/zipball/4508617435cd8b93c0fbd0fd430dc24d2a898cdb",
+ "reference": "4508617435cd8b93c0fbd0fd430dc24d2a898cdb",
+ "shasum": ""
+ },
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Public Domain"
+ ],
+ "description": "Community-contributed list of referrer spammers",
+ "time": "2015-04-19 23:20:51"
+ },
+ {
"name": "psr/log",
"version": "1.0.0",
"source": {
@@ -1384,7 +1407,7 @@
"performance",
"profiling"
],
- "time": "2015-02-26 14:37:51"
+ "time": "2014-08-28 17:34:52"
},
{
"name": "guzzle/guzzle",
diff --git a/config/global.ini.php b/config/global.ini.php
index 526f8b3e24..2302fd582b 100644
--- a/config/global.ini.php
+++ b/config/global.ini.php
@@ -119,6 +119,9 @@ tracker_always_new_visitor = 0
; Allow automatic upgrades to Beta or RC releases
allow_upgrades_to_beta = 0
+; if set to 1, all SQL queries will be logged using the DEBUG log level
+log_sql_queries = 0
+
[DebugTests]
; When set to 1, standalone plugins (those with their own git repositories)
; will be loaded when executing tests.
@@ -651,11 +654,6 @@ bulk_requests_require_authentication = 0
; This greatly increases performance of Log Analytics and in general any Bulk Tracking API requests.
bulk_requests_use_transaction = 1
-; Comma separated list of known Referrer Spammers, ie. bot visits that set a fake Referrer field.
-; All Visits with a Referrer URL host set to one of these will be excluded.
-; If you find new spam entries in Referrers>Websites, please report them here: https://github.com/piwik/piwik/issues/5099
-referrer_urls_spam = "4webmasters.org,7makemoneyonline.com,anticrawler.org,best-seo-solution.com,bestwebsitesawards.com,blackhatworth.com,buttons-for-website.com,darodar.com,econom.co,hulfingtonpost.com,ilovevitaly.com,kambasoft.com,o-o-6-o-o.com,priceg.com,ranksonic.info,ranksonic.org,savetubevideo.com,semalt.com"
-
; DO NOT USE THIS SETTING ON PUBLICLY AVAILABLE PIWIK SERVER
; !!! Security risk: if set to 0, it would allow anyone to push data to Piwik with custom dates in the past/future and even with fake IPs!
; When using the Tracking API, to override either the datetime and/or the visitor IP,
diff --git a/core/API/ResponseBuilder.php b/core/API/ResponseBuilder.php
index 9688aff83b..f12f1f494b 100644
--- a/core/API/ResponseBuilder.php
+++ b/core/API/ResponseBuilder.php
@@ -202,7 +202,7 @@ class ResponseBuilder
$offset = Common::getRequestVar('filter_offset', '0', 'integer', $this->request);
if ($this->shouldApplyLimitOnArray($limit, $offset)) {
- $array = array_slice($array, $offset, $limit, $firstKey !== 0);
+ $array = array_slice($array, $offset, $limit, $preserveKeys = false);
}
}
diff --git a/core/Archive.php b/core/Archive.php
index 161afb33ba..257aa5315e 100644
--- a/core/Archive.php
+++ b/core/Archive.php
@@ -357,6 +357,24 @@ class Archive
}
/**
+ * Similar to {@link getDataTableFromNumeric()} but merges all children on the created DataTable.
+ *
+ * This is the same as doing `$this->getDataTableFromNumeric()->mergeChildren()` but this way it is much faster.
+ *
+ * @return DataTable|DataTable\Map
+ *
+ * @internal Currently only used by MultiSites.getAll plugin. Feel free to remove internal tag if needed somewhere
+ * else. If no longer needed by MultiSites.getAll please remove this method. If you need this to work in
+ * a bit different way feel free to refactor as always.
+ */
+ public function getDataTableFromNumericAndMergeChildren($names)
+ {
+ $data = $this->get($names, 'numeric');
+ $resultIndexes = $this->getResultIndices();
+ return $data->getMergedDataTable($resultIndexes);
+ }
+
+ /**
* Queries and returns one or more reports as DataTable instances.
*
* This method will query blob data that is a serialized array of of {@link DataTable\Row}'s and
@@ -616,21 +634,19 @@ class Archive
$archiveData = ArchiveSelector::getArchiveData($archiveIds, $archiveNames, $archiveDataType, $idSubtable);
+ $isNumeric = $archiveDataType == 'numeric';
+
foreach ($archiveData as $row) {
// values are grouped by idsite (site ID), date1-date2 (date range), then name (field name)
- $idSite = $row['idsite'];
- $periodStr = $row['date1'] . "," . $row['date2'];
+ $periodStr = $row['date1'] . ',' . $row['date2'];
- if ($archiveDataType == 'numeric') {
+ if ($isNumeric) {
$row['value'] = $this->formatNumericValue($row['value']);
} else {
- $result->addMetadata($idSite, $periodStr, 'ts_archived', $row['ts_archived']);
+ $result->addMetadata($row['idsite'], $periodStr, 'ts_archived', $row['ts_archived']);
}
- $resultRow = & $result->get($idSite, $periodStr);
-
- // one blob per datatable or subtable
- $resultRow[$row['name']] = $row['value'];
+ $result->set($row['idsite'], $periodStr, $row['name'], $row['value']);
}
return $result;
diff --git a/core/Archive/DataCollection.php b/core/Archive/DataCollection.php
index efd63cd925..7973d01481 100644
--- a/core/Archive/DataCollection.php
+++ b/core/Archive/DataCollection.php
@@ -138,6 +138,21 @@ class DataCollection
}
/**
+ * Set data for a specific site & period. If there is no data for the given site ID & period,
+ * it is set to the default row.
+ *
+ * @param int $idSite
+ * @param string $period eg, '2012-01-01,2012-01-31'
+ * @param string $name eg 'nb_visits'
+ * @param string $value eg 5
+ */
+ public function set($idSite, $period, $name, $value)
+ {
+ $row = & $this->get($idSite, $period);
+ $row[$name] = $value;
+ }
+
+ /**
* Adds a new metadata to the data for specific site & period. If there is no
* data for the given site ID & period, it is set to the default row.
*
@@ -214,6 +229,23 @@ class DataCollection
}
/**
+ * See {@link DataTableFactory::makeMerged()}
+ *
+ * @param array $resultIndices
+ * @return DataTable|DataTable\Map
+ * @throws Exception
+ */
+ public function getMergedDataTable($resultIndices)
+ {
+ $dataTableFactory = new DataTableFactory(
+ $this->dataNames, $this->dataType, $this->sitesId, $this->periods, $this->defaultRow);
+
+ $index = $this->getIndexedArray($resultIndices);
+
+ return $dataTableFactory->makeMerged($index, $resultIndices);
+ }
+
+ /**
* Returns archive data as a DataTable indexed by metadata. Indexed data will
* be represented by Map instances. Each DataTable will have
* its subtable IDs set.
@@ -303,9 +335,14 @@ class DataCollection
$indexKeyValues = array_keys($this->periods);
}
- foreach ($indexKeyValues as $key) {
- $result[$key] = $this->createOrderedIndex($metadataNamesToIndexBy);
+ if (empty($metadataNamesToIndexBy)) {
+ $result = array_fill_keys($indexKeyValues, array());
+ } else {
+ foreach ($indexKeyValues as $key) {
+ $result[$key] = $this->createOrderedIndex($metadataNamesToIndexBy);
+ }
}
+
}
return $result;
@@ -321,7 +358,7 @@ class DataCollection
foreach ($metadataNamesToIndexBy as $metadataName) {
if ($metadataName == DataTableFactory::TABLE_METADATA_SITE_INDEX) {
$key = $idSite;
- } else if ($metadataName == DataTableFactory::TABLE_METADATA_PERIOD_INDEX) {
+ } elseif ($metadataName == DataTableFactory::TABLE_METADATA_PERIOD_INDEX) {
$key = $period;
} else {
$key = $row[self::METADATA_CONTAINER_ROW_KEY][$metadataName];
diff --git a/core/Archive/DataTableFactory.php b/core/Archive/DataTableFactory.php
index cfc1937813..a82b43bb74 100644
--- a/core/Archive/DataTableFactory.php
+++ b/core/Archive/DataTableFactory.php
@@ -10,7 +10,6 @@
namespace Piwik\Archive;
use Piwik\DataTable;
-use Piwik\DataTable\DataTableInterface;
use Piwik\DataTable\Row;
use Piwik\Site;
@@ -146,6 +145,11 @@ class DataTableFactory
$this->idSubtable = $idSubtable;
}
+ private function isNumericDataType()
+ {
+ return $this->dataType == 'numeric';
+ }
+
/**
* Creates a DataTable|Set instance using an index of
* archive data.
@@ -157,21 +161,62 @@ class DataTableFactory
*/
public function make($index, $resultIndices)
{
+ $keyMetadata = $this->getDefaultMetadata();
+
if (empty($resultIndices)) {
// for numeric data, if there's no index (and thus only 1 site & period in the query),
// we want to display every queried metric name
if (empty($index)
- && $this->dataType == 'numeric'
+ && $this->isNumericDataType()
) {
$index = $this->defaultRow;
}
- $dataTable = $this->createDataTable($index, $keyMetadata = array());
+ $dataTable = $this->createDataTable($index, $keyMetadata);
} else {
- $dataTable = $this->createDataTableMapFromIndex($index, $resultIndices, $keyMetadata = array());
+ $dataTable = $this->createDataTableMapFromIndex($index, $resultIndices, $keyMetadata);
+ }
+
+ return $dataTable;
+ }
+
+ /**
+ * Creates a merged DataTable|Map instance using an index of archive data similar to {@link make()}.
+ *
+ * Whereas {@link make()} creates a Map for each result index (period and|or site), this will only create a Map
+ * for a period result index and move all site related indices into one dataTable. This is the same as doing
+ * `$dataTableFactory->make()->mergeChildren()` just much faster. It is mainly useful for reports across many sites
+ * eg `MultiSites.getAll`. Was done as part of https://github.com/piwik/piwik/issues/6809
+ *
+ * @param array $index @see DataCollection
+ * @param array $resultIndices an array mapping metadata names with pretty metadata labels.
+ *
+ * @return DataTable|DataTable\Map
+ * @throws \Exception
+ */
+ public function makeMerged($index, $resultIndices)
+ {
+ if (!$this->isNumericDataType()) {
+ throw new \Exception('This method is supposed to work with non-numeric data types but it is not tested. To use it, remove this exception and write tests to be sure it works.');
+ }
+
+ $hasSiteIndex = isset($resultIndices[self::TABLE_METADATA_SITE_INDEX]);
+ $hasPeriodIndex = isset($resultIndices[self::TABLE_METADATA_PERIOD_INDEX]);
+
+ $isNumeric = $this->isNumericDataType();
+ // to be backwards compatible use a Simple table if needed as it will be formatted differently
+ $useSimpleDataTable = !$hasSiteIndex && $isNumeric;
+
+ if (!$hasSiteIndex) {
+ $firstIdSite = reset($this->sitesId);
+ $index = array($firstIdSite => $index);
}
- $this->transformMetadata($dataTable);
+ if ($hasPeriodIndex) {
+ $dataTable = $this->makeMergedTableWithPeriodAndSiteIndex($index, $resultIndices, $useSimpleDataTable, $isNumeric);
+ } else {
+ $dataTable = $this->makeMergedWithSiteIndex($index, $useSimpleDataTable, $isNumeric);
+ }
return $dataTable;
}
@@ -190,16 +235,16 @@ class DataTableFactory
* @param array $blobRow
* @return DataTable|DataTable\Map
*/
- private function makeFromBlobRow($blobRow)
+ private function makeFromBlobRow($blobRow, $keyMetadata)
{
if ($blobRow === false) {
return new DataTable();
}
if (count($this->dataNames) === 1) {
- return $this->makeDataTableFromSingleBlob($blobRow);
+ return $this->makeDataTableFromSingleBlob($blobRow, $keyMetadata);
} else {
- return $this->makeIndexedByRecordNameDataTable($blobRow);
+ return $this->makeIndexedByRecordNameDataTable($blobRow, $keyMetadata);
}
}
@@ -211,7 +256,7 @@ class DataTableFactory
* @param array $blobRow
* @return DataTable
*/
- private function makeDataTableFromSingleBlob($blobRow)
+ private function makeDataTableFromSingleBlob($blobRow, $keyMetadata)
{
$recordName = reset($this->dataNames);
if ($this->idSubtable !== null) {
@@ -225,7 +270,7 @@ class DataTableFactory
}
// set table metadata
- $table->setMetadataValues(DataCollection::getDataRowMetadata($blobRow));
+ $table->setAllTableMetadata(array_merge(DataCollection::getDataRowMetadata($blobRow), $keyMetadata));
if ($this->expandDataTable) {
$table->enableRecursiveFilters();
@@ -242,12 +287,12 @@ class DataTableFactory
* @param array $blobRow
* @return DataTable\Map
*/
- private function makeIndexedByRecordNameDataTable($blobRow)
+ private function makeIndexedByRecordNameDataTable($blobRow, $keyMetadata)
{
$table = new DataTable\Map();
$table->setKeyName('recordName');
- $tableMetadata = DataCollection::getDataRowMetadata($blobRow);
+ $tableMetadata = array_merge(DataCollection::getDataRowMetadata($blobRow), $keyMetadata);
foreach ($blobRow as $name => $blob) {
$newTable = DataTable::fromSerializedArray($blob);
@@ -267,23 +312,23 @@ class DataTableFactory
* @param array $keyMetadata The metadata to add to the table when it's created.
* @return DataTable\Map
*/
- private function createDataTableMapFromIndex($index, $resultIndices, $keyMetadata = array())
+ private function createDataTableMapFromIndex($index, $resultIndices, $keyMetadata)
{
- $resultIndexLabel = reset($resultIndices);
+ $result = new DataTable\Map();
+ $result->setKeyName(reset($resultIndices));
$resultIndex = key($resultIndices);
array_shift($resultIndices);
- $result = new DataTable\Map();
- $result->setKeyName($resultIndexLabel);
+ $hasIndices = !empty($resultIndices);
foreach ($index as $label => $value) {
- $keyMetadata[$resultIndex] = $label;
+ $keyMetadata[$resultIndex] = $this->createTableIndexMetadata($resultIndex, $label);
- if (empty($resultIndices)) {
- $newTable = $this->createDataTable($value, $keyMetadata);
- } else {
+ if ($hasIndices) {
$newTable = $this->createDataTableMapFromIndex($value, $resultIndices, $keyMetadata);
+ } else {
+ $newTable = $this->createDataTable($value, $keyMetadata);
}
$result->addTable($newTable, $this->prettifyIndexLabel($resultIndex, $label));
@@ -292,6 +337,15 @@ class DataTableFactory
return $result;
}
+ private function createTableIndexMetadata($resultIndex, $label)
+ {
+ if ($resultIndex === DataTableFactory::TABLE_METADATA_SITE_INDEX) {
+ return new Site($label);
+ } elseif ($resultIndex === DataTableFactory::TABLE_METADATA_PERIOD_INDEX) {
+ return $this->periods[$label];
+ }
+ }
+
/**
* Creates a DataTable instance from an index row.
*
@@ -302,11 +356,11 @@ class DataTableFactory
private function createDataTable($data, $keyMetadata)
{
if ($this->dataType == 'blob') {
- $result = $this->makeFromBlobRow($data);
+ $result = $this->makeFromBlobRow($data, $keyMetadata);
} else {
- $result = $this->makeFromMetricsArray($data);
+ $result = $this->makeFromMetricsArray($data, $keyMetadata);
}
- $this->setTableMetadata($keyMetadata, $result);
+
return $result;
}
@@ -359,17 +413,12 @@ class DataTableFactory
}
}
- /**
- * Converts site IDs and period string ranges into Site instances and
- * Period instances in DataTable metadata.
- */
- private function transformMetadata(DataTableInterface $table)
+ private function getDefaultMetadata()
{
- $periods = $this->periods;
- $table->filter(function (DataTable $table) use ($periods) {
- $table->setMetadata(DataTableFactory::TABLE_METADATA_SITE_INDEX, new Site($table->getMetadata(DataTableFactory::TABLE_METADATA_SITE_INDEX)));
- $table->setMetadata(DataTableFactory::TABLE_METADATA_PERIOD_INDEX, $periods[$table->getMetadata(DataTableFactory::TABLE_METADATA_PERIOD_INDEX)]);
- });
+ return array(
+ DataTableFactory::TABLE_METADATA_SITE_INDEX => new Site(reset($this->sitesId)),
+ DataTableFactory::TABLE_METADATA_PERIOD_INDEX => reset($this->periods),
+ );
}
/**
@@ -388,38 +437,15 @@ class DataTableFactory
}
/**
- * @param $keyMetadata
- * @param $result
- */
- private function setTableMetadata($keyMetadata, DataTableInterface $result)
- {
- if (!isset($keyMetadata[DataTableFactory::TABLE_METADATA_SITE_INDEX])) {
- $keyMetadata[DataTableFactory::TABLE_METADATA_SITE_INDEX] = reset($this->sitesId);
- }
-
- if (!isset($keyMetadata[DataTableFactory::TABLE_METADATA_PERIOD_INDEX])) {
- reset($this->periods);
- $keyMetadata[DataTableFactory::TABLE_METADATA_PERIOD_INDEX] = key($this->periods);
- }
-
- // Note: $result can be a DataTable\Map
- $result->filter(function (DataTable $table) use ($keyMetadata) {
- foreach ($keyMetadata as $name => $value) {
- $table->setMetadata($name, $value);
- }
- });
- }
-
- /**
* @param $data
* @return DataTable\Simple
*/
- private function makeFromMetricsArray($data)
+ private function makeFromMetricsArray($data, $keyMetadata)
{
$table = new DataTable\Simple();
if (!empty($data)) {
- $table->setAllTableMetadata(DataCollection::getDataRowMetadata($data));
+ $table->setAllTableMetadata(array_merge(DataCollection::getDataRowMetadata($data), $keyMetadata));
DataCollection::removeMetadataFromDataRow($data);
@@ -431,14 +457,89 @@ class DataTableFactory
// w/o this code, an empty array would be created, and other parts of Piwik
// would break.
if (count($this->dataNames) == 1
- && $this->dataType == 'numeric'
+ && $this->isNumericDataType()
) {
$name = reset($this->dataNames);
$table->addRow(new Row(array(Row::COLUMNS => array($name => 0))));
}
+
+ $table->setAllTableMetadata($keyMetadata);
}
$result = $table;
return $result;
}
+
+ private function makeMergedTableWithPeriodAndSiteIndex($index, $resultIndices, $useSimpleDataTable, $isNumeric)
+ {
+ $map = new DataTable\Map();
+ $map->setKeyName($resultIndices[self::TABLE_METADATA_PERIOD_INDEX]);
+
+ // we save all tables of the map in this array to be able to add rows fast
+ $tables = array();
+
+ foreach ($this->periods as $range => $period) {
+ // as the resulting table is "merged", we do only set Period metedata and no metadata for site. Instead each
+ // row will have an idsite metadata entry.
+ $metadata = array(self::TABLE_METADATA_PERIOD_INDEX => $period);
+
+ if ($useSimpleDataTable) {
+ $table = new DataTable\Simple();
+ } else {
+ $table = new DataTable();
+ }
+
+ $table->setAllTableMetadata($metadata);
+ $map->addTable($table, $this->prettifyIndexLabel(self::TABLE_METADATA_PERIOD_INDEX, $range));
+
+ $tables[$range] = $table;
+ }
+
+ foreach ($index as $idsite => $table) {
+ $rowMeta = array('idsite' => $idsite);
+
+ foreach ($table as $range => $row) {
+ if (!empty($row)) {
+ $tables[$range]->addRow(new Row(array(
+ Row::COLUMNS => $row,
+ Row::METADATA => $rowMeta)
+ ));
+ } elseif ($isNumeric) {
+ $tables[$range]->addRow(new Row(array(
+ Row::COLUMNS => $this->defaultRow,
+ Row::METADATA => $rowMeta)
+ ));
+ }
+ }
+ }
+
+ return $map;
+ }
+
+ private function makeMergedWithSiteIndex($index, $useSimpleDataTable, $isNumeric)
+ {
+ if ($useSimpleDataTable) {
+ $table = new DataTable\Simple();
+ } else {
+ $table = new DataTable();
+ }
+
+ $table->setAllTableMetadata(array(DataTableFactory::TABLE_METADATA_PERIOD_INDEX => reset($this->periods)));
+
+ foreach ($index as $idsite => $row) {
+ if (!empty($row)) {
+ $table->addRow(new Row(array(
+ Row::COLUMNS => $row,
+ Row::METADATA => array('idsite' => $idsite))
+ ));
+ } elseif ($isNumeric) {
+ $table->addRow(new Row(array(
+ Row::COLUMNS => $this->defaultRow,
+ Row::METADATA => array('idsite' => $idsite))
+ ));
+ }
+ }
+
+ return $table;
+ }
} \ No newline at end of file
diff --git a/core/Archiver/Request.php b/core/Archiver/Request.php
new file mode 100644
index 0000000000..3c0a55e2f9
--- /dev/null
+++ b/core/Archiver/Request.php
@@ -0,0 +1,42 @@
+<?php
+
+namespace Piwik\Archiver;
+
+class Request
+{
+ /**
+ * @var string
+ */
+ private $url;
+
+ /**
+ * @var callable|null
+ */
+ private $before;
+
+ /**
+ * @param string $url
+ */
+ public function __construct($url)
+ {
+ $this->url = $url;
+ }
+
+ public function before($callable)
+ {
+ $this->before = $callable;
+ }
+
+ public function start()
+ {
+ if ($this->before) {
+ $callable = $this->before;
+ $callable();
+ }
+ }
+
+ public function __toString()
+ {
+ return $this->url;
+ }
+}
diff --git a/core/AssetManager/UIAssetMerger/StylesheetUIAssetMerger.php b/core/AssetManager/UIAssetMerger/StylesheetUIAssetMerger.php
index de0f5f1ffa..232b1ab825 100644
--- a/core/AssetManager/UIAssetMerger/StylesheetUIAssetMerger.php
+++ b/core/AssetManager/UIAssetMerger/StylesheetUIAssetMerger.php
@@ -92,7 +92,7 @@ class StylesheetUIAssetMerger extends UIAssetMerger
* Rewrite CSS url() directives
*
* @param string $content
- * @param function $pathsRewriter
+ * @param callable $pathsRewriter
* @return string
*/
private function rewriteCssImagePaths($content, $pathsRewriter)
@@ -105,7 +105,7 @@ class StylesheetUIAssetMerger extends UIAssetMerger
* Rewrite CSS import directives
*
* @param string $content
- * @param function $pathsRewriter
+ * @param callable $pathsRewriter
* @return string
*/
private function rewriteCssImportPaths($content, $pathsRewriter)
@@ -119,7 +119,7 @@ class StylesheetUIAssetMerger extends UIAssetMerger
* - rewrites paths defined relatively to their css/less definition file
* - rewrite windows directory separator \\ to /
*
- * @param string $baseDirectory
+ * @param UIAsset $uiAsset
* @return \Closure
*/
private function getCssPathsRewriter($uiAsset)
diff --git a/core/CliMulti.php b/core/CliMulti.php
index 3fb8dcdeba..101e9238e2 100644
--- a/core/CliMulti.php
+++ b/core/CliMulti.php
@@ -7,6 +7,7 @@
*/
namespace Piwik;
+use Piwik\Archiver\Request;
use Piwik\CliMulti\CliPhp;
use Piwik\CliMulti\Output;
use Piwik\CliMulti\Process;
@@ -96,6 +97,10 @@ class CliMulti {
private function start($piwikUrls)
{
foreach ($piwikUrls as $index => $url) {
+ if ($url instanceof Request) {
+ $url->start();
+ }
+
$cmdId = $this->generateCommandId($url) . $index;
$this->executeUrlCommand($cmdId, $url);
}
diff --git a/core/CliMulti/CliPhp.php b/core/CliMulti/CliPhp.php
index 3bf7b3888e..101f9277c6 100644
--- a/core/CliMulti/CliPhp.php
+++ b/core/CliMulti/CliPhp.php
@@ -87,10 +87,11 @@ class CliPhp
return $path;
}
}
+ return null;
}
/**
- * @param $bin PHP binary
+ * @param string $bin PHP binary
* @return string
*/
private function getPhpVersion($bin)
diff --git a/core/Common.php b/core/Common.php
index 1400704599..22f8cac2f1 100644
--- a/core/Common.php
+++ b/core/Common.php
@@ -111,12 +111,12 @@ class Common
*/
public static function isGoalPluginEnabled()
{
- return \Piwik\Plugin\Manager::getInstance()->isPluginActivated('Goals');
+ return Plugin\Manager::getInstance()->isPluginActivated('Goals');
}
public static function isActionsPluginEnabled()
{
- return \Piwik\Plugin\Manager::getInstance()->isPluginActivated('Actions');
+ return Plugin\Manager::getInstance()->isPluginActivated('Actions');
}
/**
@@ -535,7 +535,7 @@ class Common
}
/**
- * Configureable hash() algorithm (defaults to md5)
+ * Configurable hash() algorithm (defaults to md5)
*
* @param string $str String to be hashed
* @param bool $raw_output
@@ -717,14 +717,14 @@ class Common
/**
* Returns the list of parent classes for the given class.
*
- * @param string $klass A class name.
+ * @param string $class A class name.
* @return string[] The list of parent classes in order from highest ancestor to the descended class.
*/
- public static function getClassLineage($klass)
+ public static function getClassLineage($class)
{
- $klasses = array_merge(array($klass), array_values(class_parents($klass, $autoload = false)));
+ $classes = array_merge(array($class), array_values(class_parents($class, $autoload = false)));
- return array_reverse($klasses);
+ return array_reverse($classes);
}
/*
@@ -1081,7 +1081,7 @@ class Common
/**
* Returns the continent of a given country
*
- * @param string $country 2 letters isocode
+ * @param string $country 2 letters iso code
*
* @return string Continent (3 letters code : afr, asi, eur, amn, ams, oce)
*/
@@ -1245,7 +1245,7 @@ class Common
* Marks an orphaned object for garbage collection.
*
* For more information: {@link https://github.com/piwik/piwik/issues/374}
- * @param $var The object to destroy.
+ * @param mixed $var The object to destroy.
* @api
*/
public static function destroy(&$var)
diff --git a/core/Console.php b/core/Console.php
index beec44bb09..d46bc2d2d4 100644
--- a/core/Console.php
+++ b/core/Console.php
@@ -39,10 +39,22 @@ class Console extends Application
);
$this->getDefinition()->addOption($option);
+
+ $option = new InputOption('xhprof',
+ null,
+ InputOption::VALUE_NONE,
+ 'Enable profiling with XHProf'
+ );
+
+ $this->getDefinition()->addOption($option);
}
public function doRun(InputInterface $input, OutputInterface $output)
{
+ if ($input->hasParameterOption('--xhprof')) {
+ Profiler::setupProfilerXHProf(true, true);
+ }
+
$this->initPiwikHost($input);
$this->initEnvironment($output);
$this->initLoggerOutput($output);
diff --git a/core/Container/ContainerFactory.php b/core/Container/ContainerFactory.php
index 101a9c0aef..bc15fe9e6f 100644
--- a/core/Container/ContainerFactory.php
+++ b/core/Container/ContainerFactory.php
@@ -111,7 +111,9 @@ class ContainerFactory
$file = sprintf('%s/config/environment/%s.php', PIWIK_USER_PATH, $this->environment);
- $builder->addDefinitions($file);
+ if (file_exists($file)) {
+ $builder->addDefinitions($file);
+ }
}
private function addPluginConfigs(ContainerBuilder $builder)
@@ -119,13 +121,17 @@ class ContainerFactory
$plugins = $this->pluginList->getActivatedPlugins();
foreach ($plugins as $plugin) {
- $file = Manager::getPluginsDirectory() . $plugin . '/config/config.php';
+ $baseDir = Manager::getPluginsDirectory() . $plugin;
- if (! file_exists($file)) {
- continue;
+ $file = $baseDir . '/config/config.php';
+ if (file_exists($file)) {
+ $builder->addDefinitions($file);
}
- $builder->addDefinitions($file);
+ $environmentFile = $baseDir . '/config/' . $this->environment . '.php';
+ if (file_exists($environmentFile)) {
+ $builder->addDefinitions($environmentFile);
+ }
}
}
diff --git a/core/CronArchive.php b/core/CronArchive.php
index 2c3cefc7a4..f98191270a 100644
--- a/core/CronArchive.php
+++ b/core/CronArchive.php
@@ -10,6 +10,7 @@ namespace Piwik;
use Exception;
use Piwik\ArchiveProcessor\Rules;
+use Piwik\Archiver\Request;
use Piwik\Container\StaticContainer;
use Piwik\CronArchive\FixedSiteIds;
use Piwik\CronArchive\SharedSiteIds;
@@ -23,6 +24,7 @@ use Piwik\Plugins\CoreAdminHome\API as CoreAdminHomeAPI;
use Piwik\Plugins\SitesManager\API as APISitesManager;
use Piwik\Plugins\UsersManager\API as APIUsersManager;
use Piwik\Plugins\UsersManager\UserPreferences;
+use Psr\Log\LoggerInterface;
/**
* ./console core:archive runs as a cron and is a useful tool for general maintenance,
@@ -83,7 +85,6 @@ class CronArchive
private $validTokenAuths = array();
private $visitsToday = 0;
private $requests = 0;
- private $output = '';
private $archiveAndRespectTTL = true;
private $lastSuccessRunTimestamp = false;
@@ -206,6 +207,11 @@ class CronArchive
private $segmentArchivingRequestUrlProvider;
/**
+ * @var LoggerInterface
+ */
+ private $logger;
+
+ /**
* Returns the option name of the option that stores the time core:archive was last executed.
*
* @param int $idSite
@@ -227,8 +233,9 @@ class CronArchive
* @param string|null $processNewSegmentsFrom When to archive new segments from. See [General] process_new_segments_from
* for possible values.
*/
- public function __construct($piwikUrl = false, $processNewSegmentsFrom = null)
+ public function __construct($piwikUrl = false, $processNewSegmentsFrom = null, LoggerInterface $logger = null)
{
+ $this->logger = $logger ?: StaticContainer::get('Psr\Log\LoggerInterface');
$this->formatter = new Formatter();
$this->initPiwikHost($piwikUrl);
@@ -269,7 +276,7 @@ class CronArchive
$this->allWebsites = APISitesManager::getInstance()->getAllSitesId();
if (!empty($this->shouldArchiveOnlySpecificPeriods)) {
- $this->log("- Will only process the following periods: " . implode(", ", $this->shouldArchiveOnlySpecificPeriods) . " (--force-periods)");
+ $this->logger->info("- Will only process the following periods: " . implode(", ", $this->shouldArchiveOnlySpecificPeriods) . " (--force-periods)");
}
$this->invalidateArchivedReportsForSitesThatNeedToBeArchivedAgain();
@@ -280,12 +287,7 @@ class CronArchive
$this->websites = $this->createSitesToArchiveQueue($websitesIds);
if ($this->websites->getInitialSiteIds() != $websitesIds) {
- $this->log('Will ignore websites and help finish a previous started queue instead. IDs: ' . implode(', ', $this->websites->getInitialSiteIds()));
- }
-
- if ($this->shouldStartProfiler) {
- \Piwik\Profiler::setupProfilerXHProf($mainRun = true);
- $this->log("XHProf profiling is enabled.");
+ $this->logger->info('Will ignore websites and help finish a previous started queue instead. IDs: ' . implode(', ', $this->websites->getInitialSiteIds()));
}
/**
@@ -315,7 +317,7 @@ class CronArchive
$timer = new Timer;
$this->logSection("START");
- $this->log("Starting Piwik reports archiving...");
+ $this->logger->info("Starting Piwik reports archiving...");
do {
$idSite = $this->websites->getNextSiteId();
@@ -332,7 +334,7 @@ class CronArchive
$skipWebsiteForced = in_array($idSite, $this->shouldSkipSpecifiedSites);
if ($skipWebsiteForced) {
- $this->log("Skipped website id $idSite, found in --skip-idsites ");
+ $this->logger->info("Skipped website id $idSite, found in --skip-idsites ");
$this->skipped++;
continue;
}
@@ -356,25 +358,25 @@ class CronArchive
Piwik::postEvent('CronArchive.archiveSingleSite.finish', array($idSite, $completed));
} while (!empty($idSite));
- $this->log("Done archiving!");
+ $this->logger->info("Done archiving!");
$this->logSection("SUMMARY");
- $this->log("Total visits for today across archived websites: " . $this->visitsToday);
+ $this->logger->info("Total visits for today across archived websites: " . $this->visitsToday);
$totalWebsites = count($this->allWebsites);
$this->skipped = $totalWebsites - $this->websitesWithVisitsSinceLastRun;
- $this->log("Archived today's reports for {$this->websitesWithVisitsSinceLastRun} websites");
- $this->log("Archived week/month/year for {$this->archivedPeriodsArchivesWebsite} websites");
- $this->log("Skipped {$this->skipped} websites: no new visit since the last script execution");
- $this->log("Skipped {$this->skippedDayArchivesWebsites} websites day archiving: existing daily reports are less than {$this->todayArchiveTimeToLive} seconds old");
- $this->log("Skipped {$this->skippedPeriodsArchivesWebsite} websites week/month/year archiving: existing periods reports are less than {$this->processPeriodsMaximumEverySeconds} seconds old");
- $this->log("Total API requests: {$this->requests}");
+ $this->logger->info("Archived today's reports for {$this->websitesWithVisitsSinceLastRun} websites");
+ $this->logger->info("Archived week/month/year for {$this->archivedPeriodsArchivesWebsite} websites");
+ $this->logger->info("Skipped {$this->skipped} websites: no new visit since the last script execution");
+ $this->logger->info("Skipped {$this->skippedDayArchivesWebsites} websites day archiving: existing daily reports are less than {$this->todayArchiveTimeToLive} seconds old");
+ $this->logger->info("Skipped {$this->skippedPeriodsArchivesWebsite} websites week/month/year archiving: existing periods reports are less than {$this->processPeriodsMaximumEverySeconds} seconds old");
+ $this->logger->info("Total API requests: {$this->requests}");
//DONE: done/total, visits, wtoday, wperiods, reqs, time, errors[count]: first eg.
$percent = $this->websites->getNumSites() == 0
? ""
: " " . round($this->processed * 100 / $this->websites->getNumSites(), 0) . "%";
- $this->log("done: " .
+ $this->logger->info("done: " .
$this->processed . "/" . $this->websites->getNumSites() . "" . $percent . ", " .
$this->visitsToday . " vtoday, $this->websitesWithVisitsSinceLastRun wtoday, {$this->archivedPeriodsArchivesWebsite} wperiods, " .
$this->requests . " req, " . round($timer->getTimeMs()) . " ms, " .
@@ -382,7 +384,7 @@ class CronArchive
? self::NO_ERROR
: (count($this->errors) . " errors."))
);
- $this->log($timer->__toString());
+ $this->logger->info($timer->__toString());
}
/**
@@ -399,7 +401,7 @@ class CronArchive
$this->logSection("SUMMARY OF ERRORS");
foreach ($this->errors as $error) {
// do not logError since errors are already in stderr
- $this->log("Error: " . $error);
+ $this->logger->info("Error: " . $error);
}
$summary = count($this->errors) . " total errors during this script execution, please investigate and try and fix these errors.";
@@ -418,7 +420,7 @@ class CronArchive
$this->logSection("SCHEDULED TASKS");
if ($this->disableScheduledTasks) {
- $this->log("Scheduled tasks are disabled with --disable-scheduled-tasks");
+ $this->logger->info("Scheduled tasks are disabled with --disable-scheduled-tasks");
return;
}
@@ -506,7 +508,7 @@ class CronArchive
}
if ($skipDayArchive) {
- $this->log("Skipped website id $idSite, already done "
+ $this->logger->info("Skipped website id $idSite, already done "
. $this->formatter->getPrettyTimeFromSeconds($elapsedSinceLastArchiving, true)
. " ago, " . $timerWebsite->__toString());
$this->skippedDayArchivesWebsites++;
@@ -519,7 +521,7 @@ class CronArchive
} catch(UnexpectedWebsiteFoundException $e) {
// this website was deleted in the meantime
$shouldProceed = false;
- $this->log("Skipped website id $idSite, got: UnexpectedWebsiteFoundException, " . $timerWebsite->__toString());
+ $this->logger->info("Skipped website id $idSite, got: UnexpectedWebsiteFoundException, " . $timerWebsite->__toString());
}
if (!$shouldProceed) {
@@ -527,7 +529,7 @@ class CronArchive
}
if (!$shouldArchivePeriods) {
- $this->log("Skipped website id $idSite periods processing, already done "
+ $this->logger->info("Skipped website id $idSite periods processing, already done "
. $this->formatter->getPrettyTimeFromSeconds($elapsedSinceLastArchiving, true)
. " ago, " . $timerWebsite->__toString());
$this->skippedDayArchivesWebsites++;
@@ -553,7 +555,7 @@ class CronArchive
$this->archivedPeriodsArchivesWebsite++;
$requestsWebsite = $this->requests - $requestsBefore;
- Log::info("Archived website id = $idSite, "
+ $this->logger->info("Archived website id = $idSite, "
. $requestsWebsite . " API requests, "
. $timerWebsite->__toString()
. " [" . $this->websites->getNumProcessedWebsites() . "/"
@@ -617,7 +619,7 @@ class CronArchive
return array();
}
- $this->log("- Will pre-process " . count($segments) . " Segments for each website and each period: " . implode(", ", $segments));
+ $this->logger->info("- Will pre-process " . count($segments) . " Segments for each website and each period: " . implode(", ", $segments));
return $segments;
}
@@ -691,7 +693,7 @@ class CronArchive
if (0 == $visitsToday
&& !$shouldArchivePeriods
) {
- $this->log("Skipped website id $idSite, no visit today, " . $timerWebsite->__toString());
+ $this->logger->info("Skipped website id $idSite, no visit today, " . $timerWebsite->__toString());
$this->skipped++;
return false;
}
@@ -700,7 +702,7 @@ class CronArchive
&& !$shouldArchivePeriods
&& $this->shouldArchiveAllSites
) {
- $this->log("Skipped website id $idSite, no visits in the last " . $date . " days, " . $timerWebsite->__toString());
+ $this->logger->info("Skipped website id $idSite, no visits in the last " . $date . " days, " . $timerWebsite->__toString());
$this->skipped++;
return false;
}
@@ -719,12 +721,11 @@ class CronArchive
$segmentsAllSites = $this->segments;
$segmentsThisSite = SettingsPiwik::getKnownSegmentsToArchiveForSite($idSite);
if (!empty($segmentsThisSite)) {
- $this->log(sprintf(
- "Will pre-process for website id = %s, %s period, the following %d segments: { %s } ",
+ $this->logger->info(sprintf(
+ "Will pre-process for website id = %s, %s period, %d segments",
$idSite,
$period,
- count($segmentsThisSite),
- implode(", ", $segmentsThisSite)
+ count($segmentsThisSite)
));
}
$segments = array_unique(array_merge($segmentsAllSites, $segmentsThisSite));
@@ -770,6 +771,8 @@ class CronArchive
$this->requests += count($urls);
+ $this->logger->info('- pre-processing all visits');
+
$cliMulti = new CliMulti();
$cliMulti->setAcceptInvalidSSLCertificate($this->acceptInvalidSSLCertificate);
$cliMulti->setConcurrentProcessesLimit($this->getConcurrentRequestsPerWebsite());
@@ -810,18 +813,12 @@ class CronArchive
*/
private function logSection($title = "")
{
- $this->log("---------------------------");
+ $this->logger->info("---------------------------");
if (!empty($title)) {
- $this->log($title);
+ $this->logger->info($title);
}
}
- public function log($m)
- {
- $this->output .= $m . "\n";
- Log::info($m);
- }
-
public function logError($m)
{
if (!defined('PIWIK_ARCHIVE_NO_TRUNCATE')) {
@@ -829,7 +826,7 @@ class CronArchive
}
$m = str_replace(array("\n", "\t"), " ", $m);
$this->errors[] = $m;
- Log::error($m);
+ $this->logger->error($m);
}
private function logNetworkError($url, $response)
@@ -975,10 +972,10 @@ class CronArchive
$listSiteIds = implode(',', $siteIds);
try {
- $this->log('Will invalidate archived reports for ' . $date . ' for following siteIds: ' . $listSiteIds);
+ $this->logger->info('Will invalidate archived reports for ' . $date . ' for following siteIds: ' . $listSiteIds);
$this->getApiToInvalidateArchivedReport()->invalidateArchivedReports($siteIds, $date);
} catch (Exception $e) {
- $this->log('Failed to invalidate archived reports: ' . $e->getMessage());
+ $this->logger->info('Failed to invalidate archived reports: ' . $e->getMessage());
}
}
}
@@ -990,12 +987,12 @@ class CronArchive
public function initWebsiteIds()
{
if (count($this->shouldArchiveSpecifiedSites) > 0) {
- $this->log("- Will process " . count($this->shouldArchiveSpecifiedSites) . " websites (--force-idsites)");
+ $this->logger->info("- Will process " . count($this->shouldArchiveSpecifiedSites) . " websites (--force-idsites)");
return $this->shouldArchiveSpecifiedSites;
}
if ($this->shouldArchiveAllSites) {
- $this->log("- Will process all " . count($this->allWebsites) . " websites");
+ $this->logger->info("- Will process all " . count($this->allWebsites) . " websites");
return $this->allWebsites;
}
@@ -1090,7 +1087,7 @@ class CronArchive
if (count($this->idSitesInvalidatedOldReports) > 0) {
$ids = ", IDs: " . implode(", ", $this->idSitesInvalidatedOldReports);
- $this->log("- Will process " . count($this->idSitesInvalidatedOldReports)
+ $this->logger->info("- Will process " . count($this->idSitesInvalidatedOldReports)
. " other websites because some old data reports have been invalidated (eg. using the Log Import script) "
. $ids);
}
@@ -1108,7 +1105,7 @@ class CronArchive
$sitesIdWithVisits = APISitesManager::getInstance()->getSitesIdWithVisits(time() - $this->shouldArchiveOnlySitesWithTrafficSince);
$websiteIds = !empty($sitesIdWithVisits) ? ", IDs: " . implode(", ", $sitesIdWithVisits) : "";
$prettySeconds = $this->formatter->getPrettyTimeFromSeconds( $this->shouldArchiveOnlySitesWithTrafficSince, true);
- $this->log("- Will process " . count($sitesIdWithVisits) . " websites with new visits since "
+ $this->logger->info("- Will process " . count($sitesIdWithVisits) . " websites with new visits since "
. $prettySeconds
. " "
. $websiteIds);
@@ -1169,7 +1166,7 @@ class CronArchive
if (count($websiteDayHasFinishedSinceLastRun) > 0) {
$ids = !empty($websiteDayHasFinishedSinceLastRun) ? ", IDs: " . implode(", ", $websiteDayHasFinishedSinceLastRun) : "";
- $this->log("- Will process " . count($websiteDayHasFinishedSinceLastRun)
+ $this->logger->info("- Will process " . count($websiteDayHasFinishedSinceLastRun)
. " other websites because the last time they were archived was on a different day (in the website's timezone) "
. $ids);
}
@@ -1194,8 +1191,8 @@ class CronArchive
private function logInitInfo()
{
$this->logSection("INIT");
- $this->log("Piwik is installed at: {$this->piwikUrl}");
- $this->log("Running Piwik " . Version::VERSION . " as Super User");
+ $this->logger->info("Piwik is installed at: {$this->piwikUrl}");
+ $this->logger->info("Running Piwik " . Version::VERSION . " as Super User");
}
private function logArchiveTimeoutInfo()
@@ -1204,18 +1201,18 @@ class CronArchive
// Recommend to disable browser archiving when using this script
if (Rules::isBrowserTriggerEnabled()) {
- $this->log("- If you execute this script at least once per hour (or more often) in a crontab, you may disable 'Browser trigger archiving' in Piwik UI > Settings > General Settings. ");
- $this->log(" See the doc at: http://piwik.org/docs/setup-auto-archiving/");
+ $this->logger->info("- If you execute this script at least once per hour (or more often) in a crontab, you may disable 'Browser trigger archiving' in Piwik UI > Settings > General Settings.");
+ $this->logger->info(" See the doc at: http://piwik.org/docs/setup-auto-archiving/");
}
- $this->log("- Reports for today will be processed at most every " . $this->todayArchiveTimeToLive
+ $this->logger->info("- Reports for today will be processed at most every " . $this->todayArchiveTimeToLive
. " seconds. You can change this value in Piwik UI > Settings > General Settings.");
- $this->log("- Reports for the current week/month/year will be refreshed at most every "
+ $this->logger->info("- Reports for the current week/month/year will be refreshed at most every "
. $this->processPeriodsMaximumEverySeconds . " seconds.");
// Try and not request older data we know is already archived
if ($this->lastSuccessRunTimestamp !== false) {
$dateLast = time() - $this->lastSuccessRunTimestamp;
- $this->log("- Archiving was last executed without error "
+ $this->logger->info("- Archiving was last executed without error "
. $this->formatter->getPrettyTimeFromSeconds($dateLast, true) . " ago");
}
}
@@ -1237,7 +1234,7 @@ class CronArchive
return $this->forceTimeoutPeriod;
}
- $this->log("WARNING: Automatically increasing --force-timeout-for-periods from {$this->forceTimeoutPeriod} to "
+ $this->logger->info("WARNING: Automatically increasing --force-timeout-for-periods from {$this->forceTimeoutPeriod} to "
. $this->todayArchiveTimeToLive
. " to match the cache timeout for Today's report specified in Piwik UI > Settings > General Settings");
@@ -1334,7 +1331,7 @@ class CronArchive
$visitsInLastPeriod = '';
}
- $this->log("Archived website id = $idSite, period = $period, "
+ $this->logger->info("Archived website id = $idSite, period = $period, "
. $visitsInLastPeriods
. $visitsInLastPeriod
. $timer->__toString());
@@ -1556,19 +1553,36 @@ class CronArchive
* @param $idSite
* @param $period
* @param $date
- * @return array
+ * @return Request[]
*/
private function getUrlsWithSegment($idSite, $period, $date)
{
$urlsWithSegment = array();
- foreach ($this->getSegmentsForSite($idSite, $period) as $segment) {
+ $segments = $this->getSegmentsForSite($idSite, $period);
+ $segmentCount = count($segments);
+ $processedSegmentCount = 0;
+
+ foreach ($segments as $segment) {
$dateParamForSegment = $this->segmentArchivingRequestUrlProvider->getUrlParameterDateString($idSite, $period, $date, $segment);
$urlWithSegment = $this->getVisitsRequestUrl($idSite, $period, $dateParamForSegment, $segment);
$urlWithSegment = $this->makeRequestUrl($urlWithSegment);
- $urlsWithSegment[] = $urlWithSegment;
+ $request = new Request($urlWithSegment);
+ $logger = $this->logger;
+ $request->before(function () use ($logger, $segment, $segmentCount, &$processedSegmentCount) {
+ $processedSegmentCount++;
+ $logger->info(sprintf(
+ '- pre-processing segment %d/%d %s',
+ $processedSegmentCount,
+ $segmentCount,
+ $segment
+ ));
+ });
+
+ $urlsWithSegment[] = $request;
}
+
return $urlsWithSegment;
}
diff --git a/core/DataAccess/ArchiveSelector.php b/core/DataAccess/ArchiveSelector.php
index faeef35b88..a500ef66e6 100644
--- a/core/DataAccess/ArchiveSelector.php
+++ b/core/DataAccess/ArchiveSelector.php
@@ -153,9 +153,13 @@ class ArchiveSelector
throw new \Exception("Website IDs could not be read from the request, ie. idSite=");
}
+ foreach ($siteIds as $index => $siteId) {
+ $siteIds[$index] = (int) $siteId;
+ }
+
$getArchiveIdsSql = "SELECT idsite, name, date1, date2, MAX(idarchive) as idarchive
FROM %s
- WHERE idsite IN (" . Common::getSqlStringFieldsArray($siteIds) . ")
+ WHERE idsite IN (" . implode(',', $siteIds) . ")
AND " . self::getNameCondition($plugins, $segment) . "
AND %s
GROUP BY idsite, date1, date2";
@@ -172,7 +176,7 @@ class ArchiveSelector
foreach ($monthToPeriods as $table => $periods) {
$firstPeriod = reset($periods);
- $bind = array_values($siteIds);
+ $bind = array();
if ($firstPeriod instanceof Range) {
$dateCondition = "period = ? AND date1 = ? AND date2 = ?";
@@ -203,12 +207,10 @@ class ArchiveSelector
// get the archive IDs
foreach ($archiveIds as $row) {
- $archiveName = $row['name'];
-
//FIXMEA duplicate with Archive.php
- $dateStr = $row['date1'] . "," . $row['date2'];
+ $dateStr = $row['date1'] . ',' . $row['date2'];
- $result[$archiveName][$dateStr][] = $row['idarchive'];
+ $result[$row['name']][$dateStr][] = $row['idarchive'];
}
}
diff --git a/core/DataTable.php b/core/DataTable.php
index a9be60d98c..884100b53a 100644
--- a/core/DataTable.php
+++ b/core/DataTable.php
@@ -895,7 +895,7 @@ class DataTable implements DataTableInterface, \IteratorAggregate, \ArrayAccess
/**
* Returns an array containing all column values of columns whose name starts with `$name`.
*
- * @param $namePrefix The column name prefix.
+ * @param string $namePrefix The column name prefix.
* @return array The array of column values.
*/
public function getColumnsStartingWith($namePrefix)
@@ -1133,12 +1133,12 @@ class DataTable implements DataTableInterface, \IteratorAggregate, \ArrayAccess
}
if (is_null($limit)) {
- $spliced = array_splice($this->rows, $offset);
+ array_splice($this->rows, $offset);
} else {
- $spliced = array_splice($this->rows, $offset, $limit);
+ array_splice($this->rows, $offset, $limit);
}
- $countDeleted = count($spliced);
- return $countDeleted;
+
+ return $count - $this->getRowsCount();
}
/**
@@ -1415,11 +1415,10 @@ class DataTable implements DataTableInterface, \IteratorAggregate, \ArrayAccess
return;
}
- // we define an exception we may throw if at one point we notice that we cannot handle the data structure
- $e = new Exception(" Data structure returned is not convertible in the requested format." .
+ $exceptionText = " Data structure returned is not convertible in the requested format." .
" Try to call this method with the parameters '&format=original&serialize=1'" .
"; you will get the original php data structure serialized." .
- " The data structure looks like this: \n \$data = " . var_export($array, true) . "; ");
+ " The data structure looks like this: \n \$data = %s; ";
// first pass to see if the array has the structure
// array(col1_name => val1, col2_name => val2, etc.)
@@ -1460,12 +1459,13 @@ class DataTable implements DataTableInterface, \IteratorAggregate, \ArrayAccess
// it cannot be lost during the conversion. Because we are not able to handle properly
// this key, we throw an explicit exception.
if (is_string($key)) {
- throw $e;
+ // we define an exception we may throw if at one point we notice that we cannot handle the data structure
+ throw new Exception(sprintf($exceptionText, var_export($array, true)));
}
// if any of the sub elements of row is an array we cannot handle this data structure...
foreach ($row as $subRow) {
if (is_array($subRow)) {
- throw $e;
+ throw new Exception(sprintf($exceptionText, var_export($array, true)));
}
}
$row = new Row(array(Row::COLUMNS => $row));
diff --git a/core/DataTable/BaseFilter.php b/core/DataTable/BaseFilter.php
index dc4756d82e..52a4863d0c 100644
--- a/core/DataTable/BaseFilter.php
+++ b/core/DataTable/BaseFilter.php
@@ -14,7 +14,7 @@ use Piwik\DataTable\Row;
/**
* A filter is set of logic that manipulates a DataTable. Existing filters do things like,
*
- * - remove rows
+ * - add/remove rows
* - change column values (change string to lowercase, truncate, etc.)
* - add/remove columns or metadata (compute percentage values, add an 'icon' metadata based on the label, etc.)
* - add/remove/edit subtable associated with rows
diff --git a/core/DataTable/Filter/ColumnCallbackAddMetadata.php b/core/DataTable/Filter/ColumnCallbackAddMetadata.php
index 805a5db5ab..a241cf4b5d 100644
--- a/core/DataTable/Filter/ColumnCallbackAddMetadata.php
+++ b/core/DataTable/Filter/ColumnCallbackAddMetadata.php
@@ -89,4 +89,4 @@ class ColumnCallbackAddMetadata extends BaseFilter
}
}
}
-}
+} \ No newline at end of file
diff --git a/core/DataTable/Manager.php b/core/DataTable/Manager.php
index 76444a074f..c823293c76 100644
--- a/core/DataTable/Manager.php
+++ b/core/DataTable/Manager.php
@@ -24,7 +24,7 @@ class Manager extends \ArrayObject
* Id of the next inserted table id in the Manager
* @var int
*/
- protected $nextTableId = 1;
+ protected $nextTableId = 0;
private static $instance;
@@ -45,9 +45,9 @@ class Manager extends \ArrayObject
*/
public function addTable($table)
{
- $this[$this->nextTableId] = $table;
$this->nextTableId++;
- return $this->nextTableId - 1;
+ $this[$this->nextTableId] = $table;
+ return $this->nextTableId;
}
/**
@@ -75,7 +75,7 @@ class Manager extends \ArrayObject
*/
public function getMostRecentTableId()
{
- return $this->nextTableId - 1;
+ return $this->nextTableId;
}
/**
@@ -91,7 +91,7 @@ class Manager extends \ArrayObject
if ($deleteWhenIdTableGreaterThan == 0) {
$this->exchangeArray(array());
- $this->nextTableId = 1;
+ $this->nextTableId = 0;
}
}
diff --git a/core/DataTable/Map.php b/core/DataTable/Map.php
index ccf201c5be..8f9d259f10 100644
--- a/core/DataTable/Map.php
+++ b/core/DataTable/Map.php
@@ -8,6 +8,7 @@
*/
namespace Piwik\DataTable;
+use Closure;
use Piwik\Common;
use Piwik\DataTable;
use Piwik\DataTable\Renderer\Console;
@@ -199,6 +200,8 @@ class Map implements DataTableInterface
return $subTableRow;
}
}
+
+ return null;
}
/**
diff --git a/core/DataTable/Row.php b/core/DataTable/Row.php
index a6c1de7c16..4b5547cf8b 100644
--- a/core/DataTable/Row.php
+++ b/core/DataTable/Row.php
@@ -326,7 +326,7 @@ class Row implements \ArrayAccess, \IteratorAggregate
/**
* Set all the columns at once. Overwrites **all** previously set columns.
*
- * @param array eg, `array('label' => 'www.php.net', 'nb_visits' => 15894)`
+ * @param array $columns eg, `array('label' => 'www.php.net', 'nb_visits' => 15894)`
*/
public function setColumns($columns)
{
diff --git a/core/Db.php b/core/Db.php
index 45681bfb3c..4d579605b2 100644
--- a/core/Db.php
+++ b/core/Db.php
@@ -717,7 +717,9 @@ class Db
private static function logSql($functionName, $sql, $parameters = array())
{
- if (self::$logQueries === false) {
+ if (self::$logQueries === false
+ || @Config::getInstance()->Debug['log_sql_queries'] != 1
+ ) {
return;
}
diff --git a/core/ErrorHandler.php b/core/ErrorHandler.php
index 1bb5e59bc9..965257c8db 100644
--- a/core/ErrorHandler.php
+++ b/core/ErrorHandler.php
@@ -122,14 +122,13 @@ class ErrorHandler
$message = ErrorHandler::getErrNoString($errno) . ' - ' . $errstr;
- $html = "<strong>There is an error. Please report the message (Piwik " . (class_exists('Piwik\Version') ? Version::VERSION : '') . ")
- and full backtrace in the <a href='?module=Proxy&action=redirect&url=http://forum.piwik.org' target='_blank'>Piwik forums</a> (please do a Search first as it might have been reported already!).</strong><br /><br/>
- ";
- $html .= "<strong>{$message}</strong> in <em>{$errfile}</em>";
- $html .= " on line {$errline}<br />";
- $html .= "<br />Backtrace:<div style=\"font-family:Courier;font-size:10pt\"><br />\n";
- $html .= str_replace("\n", "<br />\n", $trace);
- $html .= "</div>";
+ $html = "<p>There is an error. Please report the message (Piwik " . (class_exists('Piwik\Version') ? Version::VERSION : '') . ")
+ and full backtrace in the <a href='?module=Proxy&action=redirect&url=http://forum.piwik.org' target='_blank'>Piwik forums</a> (please do a Search firit might have been reported already!).</p>";
+ $html .= "<p><strong>{$message}</strong> in <em>{$errfile}</em>";
+ $html .= " on line {$errline}</p>";
+ $html .= "Backtrace:<pre>";
+ $html .= str_replace("\n", "\n", $trace);
+ $html .= "</pre>";
return $html;
}
diff --git a/core/Notification/Manager.php b/core/Notification/Manager.php
index 402f1aeaf0..6660429779 100644
--- a/core/Notification/Manager.php
+++ b/core/Notification/Manager.php
@@ -43,7 +43,7 @@ class Manager
/**
* Removes a posted notification by ID.
*
- * @param $id The notification ID, see {@link notify()}.
+ * @param string $id The notification ID, see {@link notify()}.
*/
public static function cancel($id)
{
diff --git a/core/Period/Factory.php b/core/Period/Factory.php
index 05303f40df..2da4bd9f55 100644
--- a/core/Period/Factory.php
+++ b/core/Period/Factory.php
@@ -116,8 +116,8 @@ class Factory
*/
public static function isPeriodEnabledForAPI($period)
{
- $enabledPeriodsInAPI = self::getPeriodsEnabledForAPI();
- return in_array($period, $enabledPeriodsInAPI);
+ $periodValidator = new PeriodValidator();
+ return $periodValidator->isPeriodAllowedForAPI($period);
}
/**
@@ -125,9 +125,7 @@ class Factory
*/
public static function getPeriodsEnabledForAPI()
{
- $enabledPeriodsInAPI = Config::getInstance()->General['enabled_periods_API'];
- $enabledPeriodsInAPI = explode(",", $enabledPeriodsInAPI);
- $enabledPeriodsInAPI = array_map('trim', $enabledPeriodsInAPI);
- return $enabledPeriodsInAPI;
+ $periodValidator = new PeriodValidator();
+ return $periodValidator->getPeriodsAllowedForAPI();
}
}
diff --git a/core/Period/PeriodValidator.php b/core/Period/PeriodValidator.php
new file mode 100644
index 0000000000..b29077b302
--- /dev/null
+++ b/core/Period/PeriodValidator.php
@@ -0,0 +1,52 @@
+<?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\Period;
+
+use Piwik\Config;
+
+class PeriodValidator
+{
+ /**
+ * @param string $period
+ * @return bool
+ */
+ public function isPeriodAllowedForUI($period)
+ {
+ return in_array($period, $this->getPeriodsAllowedForUI());
+ }
+
+ /**
+ * @param string $period
+ * @return bool
+ */
+ public function isPeriodAllowedForAPI($period)
+ {
+ return in_array($period, $this->getPeriodsAllowedForAPI());
+ }
+
+ /**
+ * @return string[]
+ */
+ public function getPeriodsAllowedForUI()
+ {
+ $periodsAllowed = Config::getInstance()->General['enabled_periods_UI'];
+
+ return array_map('trim', explode(',', $periodsAllowed));
+ }
+
+ /**
+ * @return string[]
+ */
+ public function getPeriodsAllowedForAPI()
+ {
+ $periodsAllowed = Config::getInstance()->General['enabled_periods_API'];
+
+ return array_map('trim', explode(',', $periodsAllowed));
+ }
+}
diff --git a/core/Piwik.php b/core/Piwik.php
index fdb38ed753..fa2392a14b 100644
--- a/core/Piwik.php
+++ b/core/Piwik.php
@@ -81,7 +81,7 @@ class Piwik
$output = "<style>a{color:red;}</style>\n" .
"<div style='color:red;font-family:Georgia;font-size:120%'>" .
- "<p><img src='plugins/Morpheus/images/error_medium.png' style='vertical-align:middle; float:left;padding:20 20 20 20' />" .
+ "<p><img src='plugins/Morpheus/images/error_medium.png' style='vertical-align:middle; float:left;padding:20px' />" .
$message .
"</p></div>";
print($output);
diff --git a/core/Plugin/Controller.php b/core/Plugin/Controller.php
index a810d38545..e7f96a490c 100644
--- a/core/Plugin/Controller.php
+++ b/core/Plugin/Controller.php
@@ -27,6 +27,7 @@ use Piwik\NoAccessException;
use Piwik\Notification\Manager as NotificationManager;
use Piwik\Period\Month;
use Piwik\Period;
+use Piwik\Period\PeriodValidator;
use Piwik\Period\Range;
use Piwik\Piwik;
use Piwik\Plugins\CoreAdminHome\CustomLogo;
@@ -186,10 +187,8 @@ abstract class Controller
*/
protected static function getEnabledPeriodsInUI()
{
- $periods = Config::getInstance()->General['enabled_periods_UI'];
- $periods = explode(",", $periods);
- $periods = array_map('trim', $periods);
- return $periods;
+ $periodValidator = new PeriodValidator();
+ return $periodValidator->getPeriodsAllowedForUI();
}
/**
@@ -825,12 +824,16 @@ abstract class Controller
return;
}
+ $periodValidator = new PeriodValidator();
+
$currentPeriod = Common::getRequestVar('period');
$view->displayUniqueVisitors = SettingsPiwik::isUniqueVisitorsEnabled($currentPeriod);
- $availablePeriods = self::getEnabledPeriodsInUI();
- if (!in_array($currentPeriod, $availablePeriods)) {
+ $availablePeriods = $periodValidator->getPeriodsAllowedForUI();
+
+ if (! $periodValidator->isPeriodAllowedForUI($currentPeriod)) {
throw new Exception("Period must be one of: " . implode(", ", $availablePeriods));
}
+
$found = array_search($currentPeriod, $availablePeriods);
unset($availablePeriods[$found]);
diff --git a/core/Plugin/Menu.php b/core/Plugin/Menu.php
index 4d08402d88..10d7945bf5 100644
--- a/core/Plugin/Menu.php
+++ b/core/Plugin/Menu.php
@@ -8,6 +8,7 @@
*/
namespace Piwik\Plugin;
+use Piwik\Common;
use Piwik\Development;
use Piwik\Menu\MenuAdmin;
use Piwik\Menu\MenuReporting;
@@ -138,12 +139,9 @@ class Menu
*/
protected function urlForActionWithDefaultUserParams($controllerAction, $additionalParams = array())
{
- $urlModuleAction = $this->urlForAction($controllerAction);
- return array_merge(
- $urlModuleAction,
- $this->urlForDefaultUserParams(),
- $additionalParams
- );
+ $module = $this->getModule();
+
+ return $this->urlForModuleActionWithDefaultUserParams($module, $controllerAction, $additionalParams);
}
/**
@@ -161,9 +159,20 @@ class Menu
protected function urlForModuleActionWithDefaultUserParams($module, $controllerAction, $additionalParams = array())
{
$urlModuleAction = $this->urlForModuleAction($module, $controllerAction);
+
+ $date = Common::getRequestVar('date', false);
+ if ($date) {
+ $urlModuleAction['date'] = $date;
+ }
+ $period = Common::getRequestVar('period', false);
+ if ($period) {
+ $urlModuleAction['period'] = $period;
+ }
+
+ // We want the current query parameters to override the user's defaults
return array_merge(
- $urlModuleAction,
$this->urlForDefaultUserParams(),
+ $urlModuleAction,
$additionalParams
);
}
diff --git a/core/Plugin/Report.php b/core/Plugin/Report.php
index c69792ba9c..a1c54e59d1 100644
--- a/core/Plugin/Report.php
+++ b/core/Plugin/Report.php
@@ -495,19 +495,21 @@ class Report
$processedMetrics = $this->processedMetrics ?: array();
foreach ($processedMetrics as $processedMetric) {
- if (!($processedMetric instanceof ProcessedMetric)) {
- continue;
- }
-
- $name = $processedMetric->getName();
- $metricDocs = $processedMetric->getDocumentation();
- if (empty($metricDocs)) {
- $metricDocs = @$translations[$name];
+ if (is_string($processedMetric) && !empty($translations[$processedMetric])) {
+ $documentation[$processedMetric] = $translations[$processedMetric];
+ } elseif ($processedMetric instanceof ProcessedMetric) {
+
+ $name = $processedMetric->getName();
+ $metricDocs = $processedMetric->getDocumentation();
+ if (empty($metricDocs)) {
+ $metricDocs = @$translations[$name];
+ }
+
+ if (!empty($metricDocs)) {
+ $documentation[$processedMetric->getName()] = $metricDocs;
+ }
}
- if (!empty($metricDocs)) {
- $documentation[$processedMetric->getName()] = $metricDocs;
- }
}
return $documentation;
diff --git a/core/Profiler.php b/core/Profiler.php
index b6cbfb67dd..e842994a8f 100644
--- a/core/Profiler.php
+++ b/core/Profiler.php
@@ -239,16 +239,13 @@ class Profiler
$profilerNamespace .= "-" . $currentGitBranch;
}
- xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
-
- $baseUrlStored = "";
if ($mainRun) {
self::setProfilingRunIds(array());
-
- $baseUrlStored = SettingsPiwik::getPiwikUrl();
}
- register_shutdown_function(function () use($profilerNamespace, $mainRun, $baseUrlStored) {
+ xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
+
+ register_shutdown_function(function () use($profilerNamespace, $mainRun) {
$xhprofData = xhprof_disable();
$xhprofRuns = new XHProfRuns_Default();
$runId = $xhprofRuns->save_run($xhprofData, $profilerNamespace);
@@ -263,6 +260,8 @@ class Profiler
if ($mainRun) {
Profiler::aggregateXhprofRuns($runs, $profilerNamespace, $saveTo = $runId);
+ $baseUrlStored = SettingsPiwik::getPiwikUrl();
+
$out = "\n\n";
$baseUrl = "http://" . @$_SERVER['HTTP_HOST'] . "/" . @$_SERVER['REQUEST_URI'];
if (strlen($baseUrlStored) > strlen($baseUrl)) {
@@ -338,6 +337,6 @@ class Profiler
*/
private static function getPathToXHProfRunIds()
{
- return StaticContainer::get('path.tmp') . '/cache/tests-xhprof-runs';
+ return PIWIK_INCLUDE_PATH . '/tmp/cache/tests-xhprof-runs';
}
}
diff --git a/core/Site.php b/core/Site.php
index 1a828fce47..9312fd5355 100644
--- a/core/Site.php
+++ b/core/Site.php
@@ -78,11 +78,38 @@ class Site
*/
public static function setSites($sites)
{
+ self::triggerSetSitesEvent($sites);
+
foreach($sites as $idsite => $site) {
self::setSite($idsite, $site);
}
}
+ private static function triggerSetSitesEvent(&$sites)
+ {
+ /**
+ * Triggered so plugins can modify website entities without modifying the database.
+ *
+ * This event should **not** be used to add data that is expensive to compute. If you
+ * need to make HTTP requests or query the database for more information, this is not
+ * the place to do it.
+ *
+ * **Example**
+ *
+ * Piwik::addAction('Site.setSites', function (&$sites) {
+ * foreach ($sites as &$site) {
+ * $site['name'] .= " (original)";
+ * }
+ * });
+ *
+ * @param array $sites An array of website entities. [Learn more.](/guides/persistence-and-the-mysql-backend#websites-aka-sites)
+ *
+ * This is not yet public as it doesn't work 100% accurately. Eg if `setSite()` is called directly this event will not be triggered.
+ * @ignore
+ */
+ Piwik::postEvent('Site.setSites', array(&$sites));
+ }
+
/**
* Sets a site information in memory (statically cached).
*
@@ -99,24 +126,6 @@ class Site
throw new UnexpectedWebsiteFoundException("An unexpected website was found, check idSite in the request.");
}
- /**
- * Triggered so plugins can modify website entities without modifying the database.
- *
- * This event should **not** be used to add data that is expensive to compute. If you
- * need to make HTTP requests or query the database for more information, this is not
- * the place to do it.
- *
- * **Example**
- *
- * Piwik::addAction('Site.setSite', function ($idSite, &$info) {
- * $info['name'] .= " (original)";
- * });
- *
- * @param int $idSite The ID of the website entity that will be modified.
- * @param array $infoSite The website entity. [Learn more.](/guides/persistence-and-the-mysql-backend#websites-aka-sites)
- */
- Piwik::postEvent('Site.setSite', array($idSite, &$infoSite));
-
self::$infoSites[$idSite] = $infoSite;
}
@@ -132,6 +141,8 @@ class Site
*/
public static function setSitesFromArray($sites)
{
+ self::triggerSetSitesEvent($sites);
+
foreach ($sites as $site) {
$idSite = null;
if (!empty($site['idsite'])) {
@@ -410,21 +421,17 @@ class Site
* site with the specified ID.
*
* @param int $idsite The ID of the site whose data is being accessed.
- * @param bool|string $field The name of the field to get.
- * @return array|string
+ * @param string $field The name of the field to get.
+ * @return string
*/
- protected static function getFor($idsite, $field = false)
+ protected static function getFor($idsite, $field)
{
- $idsite = (int)$idsite;
-
if (!isset(self::$infoSites[$idsite])) {
$site = API::getInstance()->getSiteFromId($idsite);
self::setSite($idsite, $site);
}
- if ($field) {
- return self::$infoSites[$idsite][$field];
- }
- return self::$infoSites[$idsite];
+
+ return self::$infoSites[$idsite][$field];
}
/**
@@ -440,9 +447,16 @@ class Site
/**
* @ignore
*/
- public static function getSite($id)
+ public static function getSite($idsite)
{
- return self::getFor($id);
+ $idsite = (int)$idsite;
+
+ if (!isset(self::$infoSites[$idsite])) {
+ $site = API::getInstance()->getSiteFromId($idsite);
+ self::setSite($idsite, $site);
+ }
+
+ return self::$infoSites[$idsite];
}
/**
diff --git a/core/Tracker/Visit/ReferrerSpamFilter.php b/core/Tracker/Visit/ReferrerSpamFilter.php
new file mode 100644
index 0000000000..51a50fcb2f
--- /dev/null
+++ b/core/Tracker/Visit/ReferrerSpamFilter.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace Piwik\Tracker\Visit;
+
+use Piwik\Common;
+use Piwik\Tracker\Request;
+
+/**
+ * Filters out tracking requests issued by spammers.
+ */
+class ReferrerSpamFilter
+{
+ /**
+ * @var string[]
+ */
+ private $spammerList;
+
+ /**
+ * Check if the request is from a known spammer host.
+ *
+ * @param Request $request
+ * @return bool
+ */
+ public function isSpam(Request $request)
+ {
+ $spammers = $this->loadSpammerList();
+
+ $referrerUrl = $request->getParam('urlref');
+
+ foreach($spammers as $spammerHost) {
+ if (strpos($referrerUrl, $spammerHost) !== false) {
+ Common::printDebug('Referrer URL is a known spam: ' . $spammerHost);
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ private function loadSpammerList()
+ {
+ if ($this->spammerList !== null) {
+ return $this->spammerList;
+ }
+
+ $file = PIWIK_INCLUDE_PATH . '/vendor/piwik/referrer-spam-blacklist/spammers.txt';
+ $this->spammerList = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
+
+ return $this->spammerList;
+ }
+}
diff --git a/core/Tracker/VisitExcluded.php b/core/Tracker/VisitExcluded.php
index ae380cac42..0081b37bc2 100644
--- a/core/Tracker/VisitExcluded.php
+++ b/core/Tracker/VisitExcluded.php
@@ -8,11 +8,13 @@
*/
namespace Piwik\Tracker;
+use Piwik\Cache as PiwikCache;
use Piwik\Common;
use Piwik\Config;
use Piwik\DeviceDetectorFactory;
use Piwik\Network\IP;
use Piwik\Piwik;
+use Piwik\Tracker\Visit\ReferrerSpamFilter;
/**
* This class contains the logic to exclude some visitors from being tracked as per user settings
@@ -20,12 +22,19 @@ use Piwik\Piwik;
class VisitExcluded
{
/**
+ * @var ReferrerSpamFilter
+ */
+ private $spamFilter;
+
+ /**
* @param Request $request
* @param bool|string $ip
* @param bool|string $userAgent
*/
public function __construct(Request $request, $ip = false, $userAgent = false)
{
+ $this->spamFilter = new ReferrerSpamFilter();
+
if (false === $ip) {
$ip = $request->getIp();
}
@@ -158,10 +167,25 @@ class VisitExcluded
$deviceDetector = DeviceDetectorFactory::getInstance($this->userAgent);
- $ip = IP::fromBinaryIP($this->ip);
-
return !$allowBots
- && ($deviceDetector->isBot() || $ip->isInRanges($this->getBotIpRanges()));
+ && ($deviceDetector->isBot() || $this->isIpInRange());
+ }
+
+ private function isIpInRange()
+ {
+ $cache = PiwikCache::getTransientCache();
+
+ $ip = IP::fromBinaryIP($this->ip);
+ $key = 'VisitExcludedIsIpInRange' . $ip->toString();
+
+ if ($cache->contains($key)) {
+ $isInRanges = $cache->fetch($key);
+ } else {
+ $isInRanges = $ip->isInRanges($this->getBotIpRanges());
+ $cache->save($key, $isInRanges);
+ }
+
+ return $isInRanges;
}
protected function getBotIpRanges()
@@ -266,19 +290,6 @@ class VisitExcluded
*/
protected function isReferrerSpamExcluded()
{
- $spamHosts = Config::getInstance()->Tracker['referrer_urls_spam'];
- $spamHosts = explode(",", $spamHosts);
-
- $referrerUrl = $this->request->getParam('urlref');
-
- foreach($spamHosts as $spamHost) {
- $spamHost = trim($spamHost);
- if ( strpos($referrerUrl, $spamHost) !== false) {
- Common::printDebug('Referrer URL is a known spam: ' . $spamHost);
- return true;
- }
- }
-
- return false;
+ return $this->spamFilter->isSpam($this->request);
}
}
diff --git a/core/Translation/Transifex/API.php b/core/Translation/Transifex/API.php
new file mode 100644
index 0000000000..1257607539
--- /dev/null
+++ b/core/Translation/Transifex/API.php
@@ -0,0 +1,148 @@
+<?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\Translation\Transifex;
+
+use Exception;
+use Piwik\Cache;
+use Piwik\Exception\AuthenticationFailedException;
+use Piwik\Http;
+
+class API
+{
+ protected $apiUrl = 'https://www.transifex.com/api/2/';
+ protected $username = '';
+ protected $password = '';
+ protected $projectSlug = '';
+
+ public function __construct($username, $password, $project = 'piwik')
+ {
+ $this->username = $username;
+ $this->password = $password;
+ $this->projectSlug = $project;
+ }
+
+ /**
+ * Returns all resources available on Transifex project
+ *
+ * @return array
+ */
+ public function getAvailableResources()
+ {
+ $cache = Cache::getTransientCache();
+ $cacheId = 'transifex_resources_' . $this->projectSlug;
+ $resources = $cache->fetch($cacheId);
+
+ if (empty($resources)) {
+ $apiPath = 'project/' . $this->projectSlug . '/resources';
+ $resources = $this->getApiResults($apiPath);
+ $cache->save($cacheId, $resources);
+ }
+
+ return $resources;
+ }
+
+ /**
+ * Checks if the given resource exists in Transifex project
+ *
+ * @param string $resource
+ * @return bool
+ */
+ public function resourceExists($resource)
+ {
+ $resources = $this->getAvailableResources();
+ foreach ($resources as $res) {
+ if ($res->slug == $resource) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Returns all language codes the transifex project is available for
+ *
+ * @return array
+ * @throws AuthenticationFailedException
+ * @throws Exception
+ */
+ public function getAvailableLanguageCodes()
+ {
+ $cache = Cache::getTransientCache();
+ $cacheId = 'transifex_languagescodes_' . $this->projectSlug;
+ $languageCodes = $cache->fetch($cacheId);
+
+ if (empty($languageCodes)) {
+ $apiData = $this->getApiResults('project/' . $this->projectSlug . '/languages');
+ foreach ($apiData as $languageData) {
+ $languageCodes[] = $languageData->language_code;
+ }
+ $cache->save($cacheId, $languageCodes);
+ }
+ return $languageCodes;
+ }
+
+ /**
+ * Returns statistic data for the given resource
+ *
+ * @param string $resource e.g. piwik-base, piwik-plugin-api,...
+ * @return array
+ * @throws AuthenticationFailedException
+ * @throws Exception
+ */
+ public function getStatistics($resource)
+ {
+ return $this->getApiResults('project/' . $this->projectSlug . '/resource/' . $resource . '/stats/');
+ }
+
+ /**
+ * Return the translations for the given resource and language
+ *
+ * @param string $resource e.g. piwik-base, piwik-plugin-api,...
+ * @param string $language e.g. de, pt_BR, hy,...
+ * @param bool $raw if true plain response wil be returned (unparsed json)
+ * @return mixed
+ * @throws AuthenticationFailedException
+ * @throws Exception
+ */
+ public function getTranslations($resource, $language, $raw = false)
+ {
+ if ($this->resourceExists($resource)) {
+ $apiPath = 'project/' . $this->projectSlug . '/resource/' . $resource . '/translation/' . $language . '/?mode=onlytranslated&file';
+ return $this->getApiResults($apiPath, $raw);
+ }
+ return null;
+ }
+
+ /**
+ * Returns response for API request with given path
+ *
+ * @param $apiPath
+ * @param bool $raw
+ * @return mixed
+ * @throws AuthenticationFailedException
+ * @throws Exception
+ */
+ protected function getApiResults($apiPath, $raw = false)
+ {
+ $apiUrl = $this->apiUrl . $apiPath;
+
+ $response = Http::sendHttpRequest($apiUrl, 1000, null, null, 5, false, false, true, 'GET', $this->username, $this->password);
+
+ $httpStatus = $response['status'];
+ $response = $response['data'];
+
+ if ($httpStatus == 401) {
+ throw new AuthenticationFailedException();
+ } else if ($httpStatus != 200) {
+ throw new Exception('Error while getting API results', $httpStatus);
+ }
+
+ return $raw ? $response : json_decode($response);
+ }
+} \ No newline at end of file
diff --git a/core/Twig.php b/core/Twig.php
index c60b430d50..3f1015cf3a 100755
--- a/core/Twig.php
+++ b/core/Twig.php
@@ -88,6 +88,7 @@ class Twig
$this->addFilter_safeDecodeRaw();
$this->twig->addFilter(new Twig_SimpleFilter('implode', 'implode'));
$this->twig->addFilter(new Twig_SimpleFilter('ucwords', 'ucwords'));
+ $this->twig->addFilter(new Twig_SimpleFilter('lcfirst', 'lcfirst'));
$this->addFunction_includeAssets();
$this->addFunction_linkTo();
diff --git a/core/Version.php b/core/Version.php
index 1b63ba15cf..cadeb34076 100644
--- a/core/Version.php
+++ b/core/Version.php
@@ -20,7 +20,7 @@ final class Version
* The current Piwik version.
* @var string
*/
- const VERSION = '2.13.0-b3';
+ const VERSION = '2.13.0-rc2';
public function isStableVersion($version)
{
diff --git a/core/View.php b/core/View.php
index 423aaeb278..08c65695b9 100644
--- a/core/View.php
+++ b/core/View.php
@@ -192,7 +192,7 @@ class View implements ViewInterface
/**
* Returns true if a template variable has been set or not.
*
- * @param $name The name of the template variable.
+ * @param string $name The name of the template variable.
* @return bool
*/
public function __isset($name)
diff --git a/core/testMinimumPhpVersion.php b/core/testMinimumPhpVersion.php
index ee0671247b..e91ec0b3af 100644
--- a/core/testMinimumPhpVersion.php
+++ b/core/testMinimumPhpVersion.php
@@ -77,11 +77,6 @@ if (!function_exists('Piwik_GetErrorMessagePage')) {
$bool = (defined('PIWIK_PRINT_ERROR_BACKTRACE') && PIWIK_PRINT_ERROR_BACKTRACE)
|| !empty($GLOBALS['PIWIK_TRACKER_DEBUG']);
- try {
- $bool = $bool || \Piwik\Development::isEnabled();
- } catch (Exception $e) {
- }
-
return $bool;
}
@@ -119,7 +114,7 @@ if (!function_exists('Piwik_GetErrorMessagePage')) {
}
if ($optionalTrace) {
- $optionalTrace = '<h2>Stack trace</h2><pre>' . $optionalTrace . '</pre></span>';
+ $optionalTrace = '<h2>Stack trace</h2><pre>' . htmlentities($optionalTrace) . '</pre>';
}
if ($isCli === null) {
diff --git a/js/piwik.js b/js/piwik.js
index d4fef8025d..50d589969e 100644
--- a/js/piwik.js
+++ b/js/piwik.js
@@ -2177,7 +2177,7 @@ if (typeof Piwik !== 'object') {
configTitle = documentAlias.title,
// Extensions to be treated as download links
- configDownloadExtensions = ['7z','aac','apk','arc','arj','asf','asx','avi','azw3','bin','csv','deb','dmg','doc','docx','epub','exe','flv','gif','gz','gzip','hqx','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'],
+ configDownloadExtensions = ['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'],
// Hosts or alias(es) to not treat as outlinks
configHostsAlias = [domainAlias],
@@ -3224,7 +3224,7 @@ if (typeof Piwik !== 'object') {
/*
* Link or Download?
*/
- function getLinkType(className, href, isInLink) {
+ function getLinkType(className, href, isInLink, hasDownloadAttribute) {
if (startsUrlWithTrackerUrl(href)) {
return 0;
}
@@ -3240,7 +3240,7 @@ if (typeof Piwik !== 'object') {
return 'link';
}
- if (downloadPattern.test(className) || downloadExtensionsPattern.test(href)) {
+ if (hasDownloadAttribute || downloadPattern.test(className) || downloadExtensionsPattern.test(href)) {
return 'download';
}
@@ -3298,7 +3298,7 @@ if (typeof Piwik !== 'object') {
if (!scriptProtocol.test(sourceHref)) {
// track outlinks and all downloads
- var linkType = getLinkType(sourceElement.className, sourceHref, isSiteHostName(sourceHostName));
+ var linkType = getLinkType(sourceElement.className, sourceHref, isSiteHostName(sourceHostName), query.hasNodeAttribute(sourceElement, 'download'));
if (linkType) {
return {
diff --git a/lang/am.json b/lang/am.json
index 71588db3d8..c8a0af03ef 100644
--- a/lang/am.json
+++ b/lang/am.json
@@ -13,6 +13,7 @@
"ColumnMaxActions": "በአንድ ጉብኝት የተወሰዱ ከፍተኛ ርምጃዎች",
"ColumnNbActions": "ርምጃዎች",
"ColumnNbUniqVisitors": "ብቸኛ ጎብኚዎች",
+ "ColumnNbUsers": "ተጠቃሚዎች",
"ColumnNbVisits": "ጉብኝቶች",
"ColumnPageviews": "ገፅ ትይታዎች",
"ColumnRevenue": "ገቢ",
diff --git a/lang/ar.json b/lang/ar.json
index 67ea382819..39ce060a63 100644
--- a/lang/ar.json
+++ b/lang/ar.json
@@ -39,6 +39,7 @@
"ColumnMaxActions": "أقصى عدد من السلوكيات في زيارة واحدة",
"ColumnNbActions": "السلوكيات",
"ColumnNbUniqVisitors": "زوار فريدين",
+ "ColumnNbUsers": "المستخدمون",
"ColumnNbVisits": "الزيارات",
"ColumnPageviews": "المشاهدات",
"ColumnPercentageVisits": "% زيارة",
diff --git a/lang/be.json b/lang/be.json
index d94b105a7b..0d2a9ec6b9 100644
--- a/lang/be.json
+++ b/lang/be.json
@@ -51,6 +51,7 @@
"ColumnNbActionsDocumentation": "Колькасць дзеянняў, якія выконваюцца вашымі наведвальнікамі. Дзеянні могуць быць прагляды старонак, запампоўка або аутлінкі.",
"ColumnNbUniqVisitors": "Унікальных наведвальнікаў",
"ColumnNbUniqVisitorsDocumentation": "Колькасць неповторяющихся наведвальнікаў, якія прыйшлі на ваш сайт. Кожны карыстальнік лічыцца толькі адзін раз, нават калі ён наведвае вэб-сайт некалькі разоў у дзень.",
+ "ColumnNbUsers": "Карыстачы",
"ColumnNbVisits": "Наведванні",
"ColumnNbVisitsDocumentation": "Калі наведвальнік прыходзіць на ваш сайт у першы раз або калі ён наведвае старонку больш чым за 30 хвілін пасля яго апошняга прагляду, гэта будзе ўлічвацца ў як новае наведванне.",
"ColumnPageBounceRateDocumentation": "Працэнт наведванняў, якія пачаліся на гэтай старонцы і адразу пакінулі вэб-сайт.",
@@ -306,8 +307,8 @@
"VisitorID": "ID наведвальніка",
"VisitorIP": "IP наведвальніка",
"Visitors": "Наведвальнікі",
- "VisitorSettings": "Налады карыстача",
"VisitsWith": "Наведванняў з %s",
+ "VisitorSettings": "Налады карыстача",
"VisitType": "Тып наведвальніка",
"VisitTypeExample": "Напрыклад, каб выбраць усіх наведвальнікаў, якія вяртаюцца на вэб-сайт, у тым ліку і тых, хто купіў нешта ў сваіх папярэдніх візітах, API-запыт будзе змяшчаць %s",
"Warning": "Увага",
diff --git a/lang/bg.json b/lang/bg.json
index 728d338da5..20f662b4e6 100644
--- a/lang/bg.json
+++ b/lang/bg.json
@@ -29,7 +29,6 @@
"ChooseLanguage": "Избери език",
"ChoosePeriod": "Избери период",
"ChooseWebsite": "Избери уеб сайт",
- "Clear": "Изчисти",
"ClickHere": "Кликнете тук за повече информация.",
"ClickToChangePeriod": "Натисни отново за да смениш периода.",
"Close": "Затваряне",
@@ -293,6 +292,7 @@
"OverlayRowActionTooltip": "Вижте анализите директно от сайта си (отваря нов подпрозорец)",
"Overview": "Общ преглед",
"Pages": "Страници",
+ "Pagination": "%s - %s като %s",
"ParameterMustIntegerBetween": "Параметърът %s трябва да има цифрова стойност от %s до %s.",
"Password": "Парола",
"Period": "Период",
@@ -336,6 +336,7 @@
"Save": "Запиши",
"SaveImageOnYourComputer": "За да запазите изображението на вашия компютър, натиснете с десен бутон на изображението и изберете \"Save Image As...\"",
"Search": "Търсене",
+ "Clear": "Изчисти",
"SearchNoResults": "Няма резултати",
"Seconds": "%sс",
"SeeAll": "вижте всички",
@@ -406,8 +407,8 @@
"VisitorID": "ID на посетител",
"VisitorIP": "IP на посетител",
"Visitors": "Посетители",
- "VisitorSettings": "Настройки на посетителя",
"VisitsWith": "Посещения с %s",
+ "VisitorSettings": "Настройки на посетителя",
"VisitType": "Тип на посетител",
"VisitTypeExample": "Например, ако изберете всички посетители, които са се завърнали на сайта, включително тези, които са купили нещо при предишните посещения, API заявката ще съдържа %s",
"Warning": "Предупреждение",
diff --git a/lang/bn.json b/lang/bn.json
index 6ec028348a..fba842bc78 100644
--- a/lang/bn.json
+++ b/lang/bn.json
@@ -94,6 +94,7 @@
"SmtpPort": "SMTP পোর্ট",
"SmtpServerAddress": "SMTP সার্ভারের ঠিকানা",
"SmtpUsername": "SMTP ব্যবহারকারীর নাম",
+ "Table": "সারণি",
"Today": "আজ",
"Total": "সর্বমোট",
"TranslatorEmail": "-",
diff --git a/lang/ca.json b/lang/ca.json
index 759cae5d79..ff62459994 100644
--- a/lang/ca.json
+++ b/lang/ca.json
@@ -6,6 +6,7 @@
"Actions": "Accions",
"Add": "Afegir",
"AfterEntry": "després d'entrar aquí",
+ "All": "Tots",
"AllowPiwikArchivingToTriggerBrowser": "Permetre que l'arxivat del Piwik es dispari quan els informes es veuen des del navegador",
"AllWebsitesDashboard": "Tauler de tots els llocs web",
"API": "API",
@@ -50,6 +51,7 @@
"ColumnExitRateDocumentation": "El percentatge de visites que han deixat el lloc web després de veure aquesta pàgina.",
"ColumnExits": "Sortides",
"ColumnExitsDocumentation": "Número de visites que acaben en aquesta pàgina.",
+ "ColumnGenerationTime": "Temps de generació",
"ColumnKeyword": "Paraula clau",
"ColumnLabel": "Etiqueta",
"ColumnMaxActions": "Accions màximes en una visita",
@@ -57,6 +59,7 @@
"ColumnNbActionsDocumentation": "El número d'accions que han realitzat els vostres visitant. Les accions poden ser pàgines vistes, descarregues o enllaços externs.",
"ColumnNbUniqVisitors": "Visitants únics",
"ColumnNbUniqVisitorsDocumentation": "El número de visitant únics que han vingut al vostre lloc web. Cada usuari es compta només una vegada, encara que visiti el lloc web més d'un cop al dia.",
+ "ColumnNbUsers": "Usuaris",
"ColumnNbVisits": "Visites",
"ColumnNbVisitsDocumentation": "Si la visita arriba al vostre lloc web per primera vegada o si obre una pàgina després de més de 30 minuts sense activitat, es comptarà com una nova visita.",
"ColumnPageBounceRateDocumentation": "El percentatge de visites que han començat en aquesta pàgina i han deixat el lloc web directament.",
@@ -82,6 +85,7 @@
"CurrentWeek": "Setmana actual",
"CurrentYear": "Any actual",
"Daily": "Diariament",
+ "DailyReport": "diari",
"DailyReports": "Informe diari",
"DailySum": "suma diaria",
"DashboardForASpecificWebsite": "Tauler per un lloc web concret",
@@ -105,6 +109,7 @@
"DayTu": "dt",
"DayWe": "dc",
"Default": "Per defecte",
+ "DefaultAppended": "(per defecte)",
"Delete": "Esborra",
"Description": "Descripció",
"Desktop": "Escriptori",
@@ -113,6 +118,7 @@
"DisplaySimpleTable": "Mostrar una taula simple",
"DisplayTableWithGoalMetrics": "Mostrar una taula amb paràmetres globals",
"DisplayTableWithMoreMetrics": "Mostrar una taula amb més paràmetres",
+ "Documentation": "Documentació",
"Donate": "Donar",
"Done": "Fet",
"Download": "Descàrrega",
@@ -161,8 +167,10 @@
"FileIntegrityWarningExplanation": "La verificació de la integritat dels fitxers ha fallat i ha trobat alguns errors. Això segurament és causa de una carrega parcial o incorrecta dels fitxers del Piwik. Haurieu de tornar a pujar tots els fitxers del Piwik en mode BINARY i refrescar aquesta pàgina fins que no mostri errors.",
"First": "Primer",
"ForExampleShort": "p.ex.",
+ "Forums": "Fòrums",
"FromReferrer": "de",
"GeneralInformation": "Informació General",
+ "General": "General",
"GetStarted": "Comenceu",
"GiveUsYourFeedback": "Què penseu del Piwik?",
"Goal": "Objectiu",
@@ -170,6 +178,7 @@
"GraphHelp": "Més informació sobre mostrar gràfiques al Piwik.",
"HelloUser": "Hola, %s!",
"Help": "Ajuda",
+ "Hide": "amaga",
"HoursMinutes": "%1$s hores %2$s min",
"Id": "Id",
"IfArchivingIsFastYouCanSetupCronRunMoreOften": "Assumint que l'arxivat és ràpid en el vostre entorn, podeu programar el crontab per funcionar més freqüentment.",
@@ -217,7 +226,11 @@
"MinutesSeconds": "%1$s min %2$ss",
"Mobile": "Mòbil",
"Monthly": "Mensualment",
+ "MonthlyReport": "mensual",
"MonthlyReports": "Informe mensual",
+ "More": "Més",
+ "MoreDetails": "Més detalls",
+ "MoreLowerCase": "més",
"MultiSitesSummary": "Tots els llocs web",
"Name": "Nom",
"NbActions": "Número d'accions",
@@ -229,6 +242,7 @@
"NewVisitor": "Nova visita",
"NewVisits": "Noves visites",
"Next": "Següent",
+ "NMinutes": "%s minuts",
"No": "No",
"NoDataForGraph": "No hi ha dades...",
"NoDataForTagCloud": "No hi ha dades...",
@@ -239,14 +253,22 @@
"NotValid": "%s no és vàlid",
"NSeconds": "%s segons",
"NumberOfVisits": "Número de visites",
+ "NUsers": "%s usuaris",
"NVisits": "%s visites",
"Ok": "D'acord",
+ "OneAction": "1 acció",
"OneDay": "1 dia",
+ "OneMinute": "1 minut",
"OneVisit": "1 visita",
"OnlyEnterIfRequired": "Només entreu un usuari si el vostre servidor SMTP ho requereix.",
"OnlyEnterIfRequiredPassword": "Només entreu una contrasenya si el vostre servidor STMP ho requereix.",
"OnlyUsedIfUserPwdIsSet": "Només es fa servir si l'usuari\/contrasenya estan configurats, pregunteu al vostre proveïdor si no esteu segur de quin mètode fer servir.",
"OpenSourceWebAnalytics": "Anàlisi web de codi obert",
+ "OperationAtLeast": "Com a mínim",
+ "OperationAtMost": "Com a màxim",
+ "OperationContains": "Conté",
+ "OperationDoesNotContain": "No conté",
+ "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",
@@ -258,6 +280,8 @@
"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",
"Password": "Contrasenya",
"Period": "Període",
@@ -300,8 +324,10 @@
"Save": "Desa",
"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",
"Seconds": "%ss",
"SeeTheOfficialDocumentationForMoreInformation": "Vegeu la %sinformació oficial%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",
"Shipping": "Enviament",
@@ -324,6 +350,7 @@
"ShortMonth_7": "Jul",
"ShortMonth_8": "Ago",
"ShortMonth_9": "Set",
+ "Show": "mostra",
"SingleWebsitesDashboard": "Tauler per un sol lloc web",
"SmallTrafficYouCanLeaveDefault": "Per llocs amb poc transit, pots deixar el valor per defecte de %s segons i accedir als informes en temps real.",
"SmtpEncryption": "encriptació SMTP",
@@ -332,6 +359,7 @@
"SmtpServerAddress": "adreça del servidor SMTP",
"SmtpUsername": "usuari SMTP",
"Subtotal": "Subtotal",
+ "Summary": "Resum",
"Table": "Taula",
"TagCloud": "Núvol d'etiquetes",
"Tax": "Impostos",
@@ -362,8 +390,8 @@
"VisitorID": "ID del visitant",
"VisitorIP": "Ip del visitant",
"Visitors": "Visitants",
- "VisitorSettings": "Configuració del visitant",
"VisitsWith": "Visites amb %s",
+ "VisitorSettings": "Configuració del visitant",
"VisitType": "Tipus de visitant",
"VisitTypeExample": "Per exemple, per seleccionar tots els visitants que han retornat al lloc web, incloent els que han comprat alguna cosa en anteriors visites, la petició de l'API tindria %s",
"Warning": "Avís",
@@ -375,6 +403,8 @@
"WeeklyReport": "setmanal",
"WeeklyReports": "Informe setmanal",
"Widgets": "Ginys",
+ "Widget": "Giny",
+ "YearlyReport": "anual",
"YearlyReports": "Informe anual",
"YearsDays": "%1$s anys %2$s dies",
"Yes": "Sí",
@@ -385,7 +415,9 @@
"YourChangesHaveBeenSaved": "Els vostres canvis s'han guardat"
},
"Mobile": {
+ "AboutPiwikMobile": "Sobre el Piwik al mòbil",
"AccessUrlLabel": "Url d'access al Piwik",
+ "Account": "Compte",
"Accounts": "Comptes",
"AddAccount": "Afegir un compte",
"AddPiwikDemo": "Afegir una demo del Piwik",
@@ -395,21 +427,30 @@
"ChooseHttpTimeout": "Seleccioneu el temps d'expiració HTTP",
"ChooseMetric": "Trieu una mètrica",
"ChooseReport": "Trieu un informe",
+ "ConfirmRemoveAccount": "Voleu eliminar aquest compte?",
"DefaultReportDate": "Data de l'informe",
+ "EmailUs": "Envia'ns un email",
"EnableGraphsLabel": "Mostra gràfiques",
"EvolutionGraph": "Gràfic històric",
"HelpUsToImprovePiwikMobile": "T'agradaria activar el rastreig anònim de l'us del Piwik en el teu mòbil?",
"HowtoDeleteAnAccountOniOS": "Pasa de l'esquerra cap a la dreta per eliminar un compte",
"HttpTimeout": "Temps d'expiració HTTP",
"LastUpdated": "Ultima actualització: %s",
+ "LoadingReport": "Carregant %s",
"LoginCredentials": "Credencials",
"LoginUseHttps": "Utilitza https",
"MultiChartLabel": "Mostra minigràfics",
"NavigationBack": "Enrere",
+ "NetworkError": "Error de xarxa",
+ "NetworkErrorWithStatusCodeShort": "Error de xarxa %s",
"NetworkNotReachable": "La xarxa no és accessible",
+ "NoDataShort": "Sense óinformaci",
"NoPiwikAccount": "No teniu un compte de Piwik?",
+ "NoReportsShort": "Sense informes",
"NoVisitorFound": "No s'han trobat visitants",
+ "NoVisitorsShort": "Sense visitants",
"NoWebsiteFound": "No s'ha trobat el lloc web",
+ "NoWebsitesShort": "Sense llocs web",
"PullDownToRefresh": "Estireu per actualitzar...",
"RatingDontRemindMe": "No em recordis",
"RatingNotNow": "Ara no",
@@ -421,8 +462,11 @@
"ShowAll": "Mostra-ho tot",
"ShowLess": "Mostra menys",
"StaticGraph": "Gràfic de visió general",
+ "TopVisitedWebsites": "Llocs web més visitats",
+ "TryIt": "Prova-ho",
"UseSearchBarHint": "Nomes es mostren els %s primers llocs webs aquí. Utilitzeu la barra de cerca per accedir als altres llocs web.",
"VerifyAccount": "Verificant el compte",
+ "ValidateSslCertificate": "Validar certificat SSL",
"VerifyLoginData": "Asegureu-vos del que el vostre nom d'usuari i contrasenya és correcte.",
"YouAreOffline": "Ho sentim, actualment estàs fora de línia."
},
diff --git a/lang/cs.json b/lang/cs.json
index 039e5b55f2..c45ab54fbf 100644
--- a/lang/cs.json
+++ b/lang/cs.json
@@ -29,7 +29,6 @@
"ChooseLanguage": "Zvolte jazyk",
"ChoosePeriod": "Zvolte období",
"ChooseWebsite": "Zvolte web",
- "Clear": "Vyčistit",
"ClickHere": "Klikněte zde pro více informací",
"ClickToChangePeriod": "Klikni znovu pro změnu období.",
"Close": "Zavřít",
@@ -143,9 +142,9 @@
"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.",
"EvolutionOverPeriod": "Vývoj za periodu",
"EvolutionSummaryGeneric": "%1$s v %2$s srovnáno s %3$s v %4$s. Vývin: %5$s",
+ "ExceptionContactSupportGeneric": "Pokud problém přetrvá, %skontaktujte pro pomoc vašeho Piwik administrátora%s.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Uživatel musí být super uživatel nebo uživatel %s.",
"ExceptionConfigurationFileNotFound": "Konfigurační soubor {%s} nebyl nalezen",
- "ExceptionContactSupportGeneric": "Pokud problém přetrvá, %skontaktujte pro pomoc vašeho Piwik administrátora%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.",
@@ -168,12 +167,12 @@
"ExceptionPrivilege": "Nemůžete přistupovat k tomuto zdroji, protože vyžaduje oprávnění %s.",
"ExceptionPrivilegeAccessWebsite": "Nemůžete přistupovat k tomuto zdroji, protože vyžaduje přístup %s pro stránku s ID = %d.",
"ExceptionPrivilegeAtLeastOneWebsite": "Nemůžete přistupovat k tomuto zdroji, protože vyžaduje oprávnění %s alespoň pro jeden web",
- "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í.",
- "ExceptionReportNotFound": "Požadované hlášení neexistuje.",
"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.",
+ "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í.",
"ExpandDataTableFooter": "Změnit vizualizaci nebo nastavit hlášení",
"Export": "Exportovat",
"ExportAsImage": "Exportovat obrázek",
@@ -185,8 +184,8 @@
"ForExampleShort": "např.",
"Forums": "Fóra",
"FromReferrer": "z",
- "General": "Obecné",
"GeneralInformation": "Obecné informace",
+ "General": "Obecné",
"GetStarted": "Začít",
"GiveUsYourFeedback": "Dejte nám zpětnou vazbu!",
"Goal": "Cíl",
@@ -306,6 +305,8 @@
"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.",
"Password": "Heslo",
"Period": "Období",
@@ -352,6 +353,7 @@
"Save": "Uložit",
"SaveImageOnYourComputer": "K uložení obrázku na váš počítač klikněte na obrázek pravým tlačítkem myši a zvolte \"Uložit obrázek jako...\"",
"Search": "Hledat",
+ "Clear": "Vyčistit",
"SearchNoResults": "Žádné výsledky",
"Seconds": "%s sekund",
"SeeAll": "Zobrazit vše",
@@ -426,24 +428,24 @@
"VisitorID": "ID návštěvníka",
"VisitorIP": "IP návštěvníka",
"Visitors": "Návštěvníci",
- "VisitorSettings": "Nastavení návštěvníků",
"VisitsWith": "Návštěv s %s",
+ "VisitorSettings": "Nastavení návštěvníků",
"VisitType": "Typ návštěvníka",
"VisitTypeExample": "Například pro výběr všech návštěvníků, kteří se vrátili na stránky včetně těch, co si v předcchozích návštěvách něco koupili, by API požadavek obsahoval %s",
"Warning": "Varování",
+ "WarningPhpVersionXIsTooOld": "PHP verze %s, kterou používáte již není podporována (EOL). Důrazně doporučujeme aktualizovat na novější verzi, protože stávající může obsahovat bezpečnostní a další problémy, které byly opraveny v novějších verzích PHP.",
+ "WarningPiwikWillStopSupportingPHPVersion": "Piwik tuto verzi PHP přestane podporovat za %s. Aktualizujte, dokud je čas!",
"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.",
- "WarningPhpVersionXIsTooOld": "PHP verze %s, kterou používáte již není podporována (EOL). Důrazně doporučujeme aktualizovat na novější verzi, protože stávající může obsahovat bezpečnostní a další problémy, které byly opraveny v novějších verzích PHP.",
- "WarningPiwikWillStopSupportingPHPVersion": "Piwik tuto verzi PHP přestane podporovat za %s. Aktualizujte, dokud je čas!",
"Website": "Web stránky",
"Weekly": "Týdně",
"WeeklyReport": "Týdně",
"WeeklyReports": "Tydenní hlášení",
"WellDone": "Výborně!",
- "Widget": "Widget",
"Widgets": "Widgety",
+ "Widget": "Widget",
"XComparedToY": "%1$s ve srovnání s %2$s",
"XFromY": "%1$s z %2$s",
"YearlyReport": "ročně",
@@ -483,7 +485,6 @@
"HowtoLoginAnonymous": "Pro anonymní přihlášení nevyplňujte uživatelské jméno a heslo",
"HttpIsNotSecureWarning": "Váš autorizační token (token_auth) je v případě použití HTTP poslán v podobě prostého textu. Z tohoto důvodu pro bezpečný přenos dat přes internet doporučujeme HTTPS. Chcete pokračovat?",
"HttpTimeout": "Časový limit HTTP",
- "IgnoreSslError": "Ignorovat chybu SSL",
"IncompatiblePiwikVersion": "Verze Piwiku, kterou používáte, není kompatibilní s Piwik Mobile 2. Aktualizujte instalaci Piwiku a zkuste to znovu, nebo nainstalujte Piwik mobile 1.",
"LastUpdated": "Poslední aktualizace: %s",
"LoadingReport": "Načítání %s",
@@ -504,9 +505,10 @@
"NoVisitorsShort": "Žádní návštěvníci",
"NoWebsiteFound": "Žádný web nenalezen",
"NoWebsitesShort": "Žádné webové stránky",
+ "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é.",
- "PullDownToRefresh": "Stáhněte pro obnovu...",
+ "IgnoreSslError": "Ignorovat chybu SSL",
"RatingDontRemindMe": "Neupozorňovat mě",
"RatingNotNow": "Ne nyní",
"RatingNow": "Dobrá, teď to ohodnotím",
@@ -524,8 +526,8 @@
"TopVisitedWebsites": "Nejvíce navštěvované webové stránky",
"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.",
- "ValidateSslCertificate": "Ověřit SSL certifikát",
"VerifyAccount": "Ověřování účtu",
+ "ValidateSslCertificate": "Ověřit SSL certifikát",
"VerifyLoginData": "Ujistěte se, že kombinace vašeho uživatelského jména a hesla je správná.",
"YouAreOffline": "Omlouváme se, momentálně jste offline"
},
diff --git a/lang/cy.json b/lang/cy.json
index 1d843000e2..ca948b22c8 100644
--- a/lang/cy.json
+++ b/lang/cy.json
@@ -74,6 +74,7 @@
"DaysSinceFirstVisit": "Nifer o ddiwrnodau ers yr ymweliad cyntaf",
"DaysSinceLastEcommerceOrder": "Nifer o ddiwrnodau ers yr archeb eFasnach diwethaf",
"DaysSinceLastVisit": "Diwrnodau ers yr ymweliad diwethaf",
+ "DayTu": "I",
"Default": "Diofyn",
"Delete": "Dileu",
"Description": "Disgrifiad",
diff --git a/lang/da.json b/lang/da.json
index 8729e3619e..d753f1ae42 100644
--- a/lang/da.json
+++ b/lang/da.json
@@ -29,7 +29,6 @@
"ChooseLanguage": "Vælg sprog",
"ChoosePeriod": "Vælg periode",
"ChooseWebsite": "Vælg hjemmeside",
- "Clear": "Ryd",
"ClickHere": "Klik her for yderligere oplysninger.",
"ClickToChangePeriod": "Klik igen for at ændre perioden.",
"Close": "Luk",
@@ -50,11 +49,11 @@
"ColumnConversionRateDocumentation": "Procentdelen af besøg, der udløste en mål konvertering.",
"ColumnDestinationPage": "Destinationsside",
"ColumnEntrances": "Indgange",
- "ColumnEntrancesDocumentation": " Antal besøg, der startede på siden.",
+ "ColumnEntrancesDocumentation": "Antal besøg, der startede på siden.",
"ColumnExitRate": "Udgangs %",
"ColumnExitRateDocumentation": "Procentdel af besøg, der forlod hjemmesiden efter at have set denne side.",
"ColumnExits": "Udgange",
- "ColumnExitsDocumentation": " Antal besøg, der sluttede på siden.",
+ "ColumnExitsDocumentation": "Antal besøg, der sluttede på siden.",
"ColumnGenerationTime": "Genereringstid",
"ColumnKeyword": "Søgeord",
"ColumnLabel": "Etiket",
@@ -152,7 +151,7 @@
"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.",
- "ExceptionInvalidArchiveTimeToLive": " Levetiden på \"I dag arkiv\" skal være et antal sekunder større end nul",
+ "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",
@@ -161,18 +160,18 @@
"ExceptionInvalidStaticGraphType": "Statisk diagramtype '%s' ikke gyldigt. Prøv en af følgende i stedet: %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 '%s' eksisterer ikke eller er ikke tilgængelig i modulet '%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.",
"ExceptionPrivilegeAccessWebsite": "Du kan ikke få adgang til denne ressource, da det kræver en %s adgang til hjemmeside id = %d.",
"ExceptionPrivilegeAtLeastOneWebsite": "Du kan ikke få adgang til denne ressource, da det kræver en %s adgang til mindst én hjemmeside.",
- "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.",
- "ExceptionReportNotFound": "Den ønskede rapport findes ikke.",
"ExceptionUnableToStartSession": "Kan ikke starte sessionen.",
"ExceptionUndeletableFile": "Kunne ikke slette %s",
"ExceptionUnreadableFileDisabledMethod": "Konfigurationsfilen (%s) kunne ikke læses. Udbyderen kan have deaktiveret %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.",
"ExpandDataTableFooter": "Ændre visualiseringen eller konfigurer rapporten",
"Export": "Eksporter",
"ExportAsImage": "Eksporter som billede",
@@ -184,8 +183,8 @@
"ForExampleShort": "fx.",
"Forums": "Forum",
"FromReferrer": "fra",
- "General": "Generelt",
"GeneralInformation": "General Information",
+ "General": "Generelt",
"GetStarted": "Kom i gang",
"GiveUsYourFeedback": "Tilbagemelding!",
"Goal": "Mål",
@@ -305,6 +304,8 @@
"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.",
"Password": "Adgangskode",
"Period": "Periode",
@@ -351,6 +352,7 @@
"Save": "Gem",
"SaveImageOnYourComputer": "Gem billedet på computer, højreklik på billede og vælg \"Gem billede som…\"",
"Search": "Søg",
+ "Clear": "Ryd",
"SearchNoResults": "Ingen resultater",
"Seconds": "%ss.",
"SeeAll": "se samtlige",
@@ -425,23 +427,24 @@
"VisitorID": "Besøgendes ID",
"VisitorIP": "Besøgendes IP",
"Visitors": "Besøgende",
- "VisitorSettings": "Besøgendes indstillinger",
"VisitsWith": "Besøg med %s",
+ "VisitorSettings": "Besøgendes indstillinger",
"VisitType": "Besøgstype",
"VisitTypeExample": "F. eks., for at vælge alle besøgende, som er vendt tilbage til hjemmesiden, herunder dem, der har købt noget i deres tidligere besøg, vil API-anmodningen indeholde %s",
"Warning": "Advarsel",
+ "WarningPhpVersionXIsTooOld": "PHP version %s har nået slutningen af ​​sin levetid (EOL). Du opfordres kraftigt til at opgradere til den aktuelle version, fordi brug af denne version kan udsætte dig for sikkerhedshuller og fejl, som er blevet rettet i nyere versioner af PHP.",
+ "WarningPiwikWillStopSupportingPHPVersion": "Piwik vil ophøre med at understøtte PHP-version i %s. Opgrader PHP versionen, før det er for sent!",
"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.",
- "WarningPhpVersionXIsTooOld": "PHP version %s har nået slutningen af ​​sin levetid (EOL). Du opfordres kraftigt til at opgradere til den aktuelle version, fordi brug af denne version kan udsætte dig for sikkerhedshuller og fejl, som er blevet rettet i nyere versioner af PHP.",
- "WarningPiwikWillStopSupportingPHPVersion": "Piwik vil ophøre med at understøtte PHP-version i %s. Opgrader PHP versionen, før det er for sent!",
"Website": "Hjemmeside",
"Weekly": "Ugentligt",
"WeeklyReport": "ugentlig",
"WeeklyReports": "Ugentlige rapporter",
"WellDone": "Godt klaret!",
"Widgets": "Moduler",
+ "Widget": "Modul",
"XComparedToY": "%1$s sammenlignet med %2$s",
"XFromY": "%1$s fra %2$s",
"YearlyReport": "årligt",
@@ -481,7 +484,6 @@
"HowtoLoginAnonymous": "Efterlad brugernavn og kodeord tomt for anonym log ind",
"HttpIsNotSecureWarning": "Piwik tilladelse token (token_auth) sendes i klar tekst, hvis der bruges \"HTTP\". Af denne grund anbefales HTTPS til sikker transport af data over internettet. Vil du fortsætte?",
"HttpTimeout": "HTTP Timeout",
- "IgnoreSslError": "Ignorer SSL fejl",
"IncompatiblePiwikVersion": "Piwik versionen er uforenelig med Piwik mobil 2 Opdater Piwik og prøv igen eller installer Piwik Mobile 1",
"LastUpdated": "Sidst opdateret: %s",
"LoadingReport": "Indlæser %s",
@@ -502,9 +504,10 @@
"NoVisitorsShort": "Ingen besøgende",
"NoWebsiteFound": "Ingen hjemmesider fundet",
"NoWebsitesShort": "Ingen websteder",
+ "PullDownToRefresh": "Træk ned for at opdatere...",
"PossibleSslError": "Mulig SSL certifikat fejl",
"PossibleSslErrorExplanation": "Der opstod en fejl, som kan skyldes et ugyldigt eller selvsigneret certifikat: \"%s\". Log ind virker måske, selvom SSL validering ignoreres, men det er mindre sikker. SSL validering kan til enhver tid ændres i indstillingerne.",
- "PullDownToRefresh": "Træk ned for at opdatere...",
+ "IgnoreSslError": "Ignorer SSL fejl",
"RatingDontRemindMe": "Påmind mig ikke",
"RatingNotNow": "Senere",
"RatingNow": "OK, jeg vil bedømme nu",
@@ -522,8 +525,8 @@
"TopVisitedWebsites": "Top besøgte websteder",
"TryIt": "Prøv!",
"UseSearchBarHint": "Kun de første %s hjemmesider er vist her. Brug søgefeltet til at få adgang til de andre hjemmesider.",
- "ValidateSslCertificate": "Valider SSL-certifikat",
"VerifyAccount": "Bekræftelse af konto",
+ "ValidateSslCertificate": "Valider SSL-certifikat",
"VerifyLoginData": "Kontroller at kombinationen af brugernavn og adgangskode er korrekt.",
"YouAreOffline": "Beklager, du er i øjeblikket offline"
},
diff --git a/lang/de.json b/lang/de.json
index b2a033e2ec..36265933fe 100644
--- a/lang/de.json
+++ b/lang/de.json
@@ -29,7 +29,6 @@
"ChooseLanguage": "Sprache wählen",
"ChoosePeriod": "Zeitraum wählen",
"ChooseWebsite": "Webseite wählen",
- "Clear": "Zurücksetzen",
"ClickHere": "Klicken Sie hier für mehr Informationen.",
"ClickToChangePeriod": "Klicke erneut, um den Zeitraum zu ändern.",
"Close": "Schließen",
@@ -143,9 +142,9 @@
"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.",
"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.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Der Benutzer muss entweder ein Hauptadministrator sein oder der Benutzer '%s'.",
"ExceptionConfigurationFileNotFound": "Die Konfigurationsdatei {%s} wurde nicht gefunden.",
- "ExceptionContactSupportGeneric": "Falls dieses Problem weiterhin besteht, %skontaktieren Sie bitte Ihren Piwik Administrator%s für Unterstützung.",
"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.",
@@ -168,12 +167,12 @@
"ExceptionPrivilege": "Sie können auf die Ressource nicht zugreifen, da Sie dafür mindestens %s Rechte benötigen.",
"ExceptionPrivilegeAccessWebsite": "Sie können auf diese Ressource nicht zugreifen, da es mindestens %s-Rechte für die Webseiten-ID %d benötigt.",
"ExceptionPrivilegeAtLeastOneWebsite": "Sie können auf diese Ressource nicht zugreifen, da eine %s Berechtigung für mindestens eine Webseite benötigt wird.",
- "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.",
- "ExceptionReportNotFound": "Der gesuchte Bericht existiert nicht.",
"ExceptionUnableToStartSession": "Starten einer Session nicht möglich.",
"ExceptionUndeletableFile": "Kann %s nicht löschen.",
"ExceptionUnreadableFileDisabledMethod": "Die Konfigurationsdatei {%s} konnte nicht gelesen werden. Ihr Host hat möglicherweise %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.",
"ExpandDataTableFooter": "Ändern Sie die Darstellung oder konfigurieren den Bericht",
"Export": "Export",
"ExportAsImage": "Als Bild exportieren",
@@ -185,8 +184,8 @@
"ForExampleShort": "z.B.",
"Forums": "Forum",
"FromReferrer": "von",
- "General": "Allgemein",
"GeneralInformation": "Allgemeine Information",
+ "General": "Allgemein",
"GetStarted": "Jetzt beginnen",
"GiveUsYourFeedback": "Feedback geben!",
"Goal": "Ziel",
@@ -306,6 +305,8 @@
"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.",
"Password": "Passwort",
"Period": "Zeitraum",
@@ -352,6 +353,7 @@
"Save": "Speichern",
"SaveImageOnYourComputer": "Um das Bild auf Ihrer Festplatte zu speichern, klicken Sie mit der rechten Maustaste auf das Bild und wählen Sie \"Bild speichern unter...\"",
"Search": "Suchen",
+ "Clear": "Zurücksetzen",
"SearchNoResults": "Keine Ergebnisse",
"Seconds": "%ss",
"SeeAll": "alle ansehen",
@@ -426,24 +428,24 @@
"VisitorID": "ID des Besuchers",
"VisitorIP": "IP des Besuchers",
"Visitors": "Besucher",
- "VisitorSettings": "Besuchereinstellungen",
"VisitsWith": "Besuche mit %s",
+ "VisitorSettings": "Besuchereinstellungen",
"VisitType": "Art des Besuchers",
"VisitTypeExample": "Um beispielsweise alle wiederkehrenden Besucher abzufragen, die Bestellungen getätigt haben, muss der API Aufruf folgendes enthalten: %s",
"Warning": "Warnung",
+ "WarningPhpVersionXIsTooOld": "Die von Ihnen eingesetzte PHP Version %s hat das Ende der Lebensdauer (EOL) erreicht. Es wird dringend angeraten, ein Update auf eine aktuelle Version durchzuführen, da der Einsatz dieser Version zu Sicherheitsrisiken und Fehlern führen kann, welche in neueren PHP Versionen korrigiert wurden.",
+ "WarningPiwikWillStopSupportingPHPVersion": "Piwik wird die Unterstützung für diese PHP Version im %s einstellen. Aktualisieren Sie ihre PHP Version, bevor es zu spät ist!",
"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.",
- "WarningPhpVersionXIsTooOld": "Die von Ihnen eingesetzte PHP Version %s hat das Ende der Lebensdauer (EOL) erreicht. Es wird dringend angeraten, ein Update auf eine aktuelle Version durchzuführen, da der Einsatz dieser Version zu Sicherheitsrisiken und Fehlern führen kann, welche in neueren PHP Versionen korrigiert wurden.",
- "WarningPiwikWillStopSupportingPHPVersion": "Piwik wird die Unterstützung für diese PHP Version im %s einstellen. Aktualisieren Sie ihre PHP Version, bevor es zu spät ist!",
"Website": "Webseite",
"Weekly": "Wöchentlich",
"WeeklyReport": "wöchentlich",
"WeeklyReports": "Wöchentliche Berichte",
"WellDone": "Gut gemacht!",
- "Widget": "Widget",
"Widgets": "Widgets",
+ "Widget": "Widget",
"XComparedToY": "%1$s verglichen mit %2$s",
"XFromY": "%1$s von %2$s",
"YearlyReport": "jährlich",
@@ -483,7 +485,6 @@
"HowtoLoginAnonymous": "Benutzername und Passwort leer lassen für anonymes anmelden",
"HttpIsNotSecureWarning": "Bei der Verwendung von HTTP wird ihr Piwik Authorisierungstoken (token_auth) im Klartext übertragen. Aus diesem Grund empfehlen wir HTTPS für eine sichere Übertragung von Daten über das Internet. Möchten Sie forfahren?",
"HttpTimeout": "HTTP Timeout",
- "IgnoreSslError": "Ignoriere SSL Fehler",
"IncompatiblePiwikVersion": "The Piwik Version, die Sie verwenden, ist nicht mit Piwik Mobile 2 kompatibel. Aktualisieren Sie Ihre Piwik Installation oder verwenden Sie alternativ Piwik Mobile 1.",
"LastUpdated": "Letzte Aktualisierung: %s",
"LoadingReport": "Lade %s",
@@ -504,9 +505,10 @@
"NoVisitorsShort": "Keine Besucher",
"NoWebsiteFound": "Webseite nicht gefunden",
"NoWebsitesShort": "Keine Webseiten",
+ "PullDownToRefresh": "Zum Aktualisieren herunterziehen...",
"PossibleSslError": "Möglicher SSL Zertifikat Fehler",
"PossibleSslErrorExplanation": "Ein Fehler ist aufgetreten, welcher durch ein invalides oder selbst signiertes SSL Zertifikat verursacht sein könnte: \"%s\". Die Anmeldung könnte funktionieren, indem die Validierung des SSL Zertifikat ignoriert wird, aber es ist weniger sicher. Die Einstellung kann jederzeit nachträglich geändert werden.",
- "PullDownToRefresh": "Zum Aktualisieren herunterziehen...",
+ "IgnoreSslError": "Ignoriere SSL Fehler",
"RatingDontRemindMe": "Bitte nicht daran erinnern",
"RatingNotNow": "Nicht jetzt",
"RatingNow": "OK, ich bewerte es jetzt",
@@ -524,8 +526,8 @@
"TopVisitedWebsites": "Top besuchte Webseiten",
"TryIt": "Testen!",
"UseSearchBarHint": "Hier werden nur die ersten %s Webseiten angezeigt. Bitte benutzen Sie die Suchbox, um auf die restlichen Seiten zuzugreifen.",
- "ValidateSslCertificate": "Validiere SSL Zertifikat",
"VerifyAccount": "Account wird überprüft...",
+ "ValidateSslCertificate": "Validiere SSL Zertifikat",
"VerifyLoginData": "Bitte überprüfen Sie, ob die Kombination aus Benutzername und Passwort korrekt ist.",
"YouAreOffline": "Sie sind derzeit offline"
},
diff --git a/lang/el.json b/lang/el.json
index f5a5cb0af6..a9d72a615f 100644
--- a/lang/el.json
+++ b/lang/el.json
@@ -29,7 +29,6 @@
"ChooseLanguage": "Επιλογή γλώσσας",
"ChoosePeriod": "Επιλογή περιόδου",
"ChooseWebsite": "Επιλογή ιστοσελίδας",
- "Clear": "Καθαρισμός",
"ClickHere": "Πατήστε εδώ για περισσότερες πληροφορίες.",
"ClickToChangePeriod": "Πατήστε πάλι για αλλαγή της περιόδου.",
"Close": "Κλείσιμο",
@@ -143,9 +142,9 @@
"ErrorRequest": "Ουπς... υπήρξε πρόβλημα κατά την επεξεργασία της αίτησης. Μπορεί ο διακομιστής να είχε ένα προσωρινό πρόβλημα ή μπορεί να ζητήσατε μια αναφορά με πάρα πολλά δεδομένα. Παρακαλούμε δοκιμάστε ξανά. Αν το σφάλμα επαναλαμβάνεται διαρκώς, παρακαλούμε %sεπικοινωνήστε με τον διαχειριστή του Piwik σας%s για βοήθεια.",
"EvolutionOverPeriod": "Εξέλιξη εντός της περιόδου",
"EvolutionSummaryGeneric": "%1$s στο %2$s σε σύγκριση με το %3$s στο %4$s. Εξέλιξη: %5$s",
+ "ExceptionContactSupportGeneric": "Αν συνεχίζετε να αντιμετωπίζετε αυτό το πρόβλημα, %sεπικοινωνήστε με τον διαχειριστή του Piwik σας%s για βοήθεια.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Ο χρήστης πρέπει να είναι είτε Υπερ-Χρήστης είτε ο ίδιος ο χρήστης '%s'.",
"ExceptionConfigurationFileNotFound": "Δεν βρέθηκε το αρχείο ρυθμίσεων {%s} ή δεν ήταν δυνατή η ανάγνωσή του.",
- "ExceptionContactSupportGeneric": "Αν συνεχίζετε να αντιμετωπίζετε αυτό το πρόβλημα, %sεπικοινωνήστε με τον διαχειριστή του Piwik σας%s για βοήθεια.",
"ExceptionDatabaseVersion": "Η έκδοσή %1$s είναι %2$s αλλά το Piwik απαιτεί τουλάχιστον %3$s.",
"ExceptionDatabaseVersionNewerThanCodebase": "Ο κώδικας του Piwik εκτελεί την παλιότερη έκδοση %1$s και εντοπίστηκε ότι η βάση δεδομένων του Piwik έχει ήδη αναβαθμιστεί στην νεότερη έκδοση %2$s.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Είναι πιθανόν οι διαχειριστές του Piwik να τελειώνουν τη διαδικασία αναβάθμισης. Παρακαλούμε δοκιμάστε πάλι αργότερα σε λίγα λεπτά.",
@@ -168,12 +167,12 @@
"ExceptionPrivilege": "Δεν έχετε πρόσβαση σε αυτή την προέλευση καθώς απαιτεί πρόσβαση %s.",
"ExceptionPrivilegeAccessWebsite": "Δεν έχετε πρόσβαση σε αυτή την προέλευση καθώς απαιτεί πρόσβαση %s για την ιστοσελίδα με ταυτότητα = %d.",
"ExceptionPrivilegeAtLeastOneWebsite": "Δεν έχετε πρόσβαση σε αυτή τη προέλευση καθώς απαιτεί πρόσβαση %s για τουλάχιστον μια ιστοσελίδα.",
- "ExceptionReportNotEnabled": "Η ζητούμενη αναφορά δεν είναι ενεργή. Αυτό συνήθως σημαίνει ότι είτε το πρόσθετο που ορίζει την αναφορά είναι ανενεργό είτε δεν έχετε την απαιτούμενη πρόσβαση για να την δείτε.",
- "ExceptionReportNotFound": "Δεν υπάρχει η ζητούμενη αναφορά.",
"ExceptionUnableToStartSession": "Αδύνατη η έναρξη της συνεδρίας.",
"ExceptionUndeletableFile": "Αδύνατη η διαγραφή του %s",
"ExceptionUnreadableFileDisabledMethod": "Δεν είναι δυνατή η ανάγνωση του αρχείου ρυθμίσεων {%s} δεν μπορεί να αναγνωστεί. Ο διακομιστής σας μπορεί να απενεργοποίησε το %s.",
+ "ExceptionReportNotFound": "Δεν υπάρχει η ζητούμενη αναφορά.",
"ExceptionWidgetNotFound": "Το ζητούμενο γραφικό συστατικό δεν υπάρχει.",
+ "ExceptionReportNotEnabled": "Η ζητούμενη αναφορά δεν είναι ενεργή. Αυτό συνήθως σημαίνει ότι είτε το πρόσθετο που ορίζει την αναφορά είναι ανενεργό είτε δεν έχετε την απαιτούμενη πρόσβαση για να την δείτε.",
"ExpandDataTableFooter": "Αλλάξτε την οπτική εμφάνιση ή διευθετήστε την αναφορά",
"Export": "Εξαγωγή",
"ExportAsImage": "Εξαγωγή ως εικόνα",
@@ -185,8 +184,8 @@
"ForExampleShort": "π.χ.",
"Forums": "Φόρουμ",
"FromReferrer": "από",
- "General": "Γενικά",
"GeneralInformation": "Γενικές Πληροφορίες",
+ "General": "Γενικά",
"GetStarted": "Ξεκινήστε",
"GiveUsYourFeedback": "Έχετε παρατηρήσεις;",
"Goal": "Στόχος",
@@ -306,6 +305,8 @@
"OverlayRowActionTooltipTitle": "Άνοιγμα Υπερκάλυψης Σελίδας",
"Overview": "Συνολική εικόνα",
"Pages": "Σελίδες",
+ "Pagination": "%s - %s από %s",
+ "PaginationWithoutTotal": "%s - %s",
"ParameterMustIntegerBetween": "Η παράμετρος %s πρέπει να είναι ακέραιος μεταξύ %s και %s.",
"Password": "Κωδικός",
"Period": "Περίοδος",
@@ -352,6 +353,7 @@
"Save": "Αποθήκευση",
"SaveImageOnYourComputer": "Για να αποθηκεύσετε την εικόνα στον υπολογιστή σας, δεξί κλικ στην εικόνα και επιλέξτε «Αποθήκευση εικόνας ως...»",
"Search": "Αναζήτηση",
+ "Clear": "Καθαρισμός",
"SearchNoResults": "Δεν υπάρχουν αποτελέσματα.",
"Seconds": "%s δευτερόλεπτα",
"SeeAll": "δείτε τα όλα",
@@ -426,24 +428,24 @@
"VisitorID": "Κωδικός Επισκέπτη",
"VisitorIP": "IP Επισκέπτη",
"Visitors": "Επισκέπτες",
- "VisitorSettings": "Ρυθμίσεις επισκέπτη",
"VisitsWith": "Επισκέψεις με %s",
+ "VisitorSettings": "Ρυθμίσεις επισκέπτη",
"VisitType": "Τύπος Επισκέπτη",
"VisitTypeExample": "Για παράδειγμα, για να επιλέξετε όλους τους επισκέπτες που έχουν επιστρέψει στην ιστοσελίδα και να περιλάβετε αυτούς που έχουν αγοράσει κάτι στις προηγούμενες επισκέψεις, το αίτημα API θα περιέχει %s",
"Warning": "Προειδοποίηση",
+ "WarningPhpVersionXIsTooOld": "Η έκδοση PHP %s που χρησιμοποιείτε έχει φτάσει στο Τέλος Ζωής της (EOL). Συνιστάται να αναβαθμίσετε στην τρέχουσα έκδοση, καθώς η χρήση αυτή της έκδοσης μπορεί να σας εκθέσει σε προβλήματα ασφαλείας και σφάλματα που έχουν διορθωθεί στις πρόσφατες εκδόσεις της PHP.",
+ "WarningPiwikWillStopSupportingPHPVersion": "Το Piwik θα σταματήσει να υποστηρίζει αυτή την έκδοση στο %s. Αναβαθμίστε την έκδοση της PHP σας προτού είναι αργά!",
"WarningFileIntegrityNoManifest": "Ο έλεγχος ακεραιότητας αρχείου δεν μπορεί να πραγματοποιηθεί επειδή λείπει το αρχείο manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Αν παίρνετε το Piwik από το Git, το μήνυμα αυτό είναι φυσιολογικό.",
"WarningFileIntegrityNoMd5file": "Ο έλεγχος ακεραιότητας αρχείου δεν μπορεί να ολοκληρωθεί γιατί είναι ανενεργή η συνάρτηση md5_file().",
"WarningPasswordStored": "%sΠροειδοποίηση:%s Αυτός ο κωδικός πρόσβασης θα αποθηκευτεί στο αρχείο ρυθμίσεων και θα είναι ορατός από οποιονδήποτε έχει πρόσβαση σε αυτό.",
- "WarningPhpVersionXIsTooOld": "Η έκδοση PHP %s που χρησιμοποιείτε έχει φτάσει στο Τέλος Ζωής της (EOL). Συνιστάται να αναβαθμίσετε στην τρέχουσα έκδοση, καθώς η χρήση αυτή της έκδοσης μπορεί να σας εκθέσει σε προβλήματα ασφαλείας και σφάλματα που έχουν διορθωθεί στις πρόσφατες εκδόσεις της PHP.",
- "WarningPiwikWillStopSupportingPHPVersion": "Το Piwik θα σταματήσει να υποστηρίζει αυτή την έκδοση στο %s. Αναβαθμίστε την έκδοση της PHP σας προτού είναι αργά!",
"Website": "Ιστοσελίδα",
"Weekly": "Εβδομαδιαίως",
"WeeklyReport": "εβδομαδιαία",
"WeeklyReports": "Εβδομαδιαίες αναφορές",
"WellDone": "Συγχαρητήρια!",
- "Widget": "Γραφικό Συστατικό",
"Widgets": "Μικροεφαρμογές",
+ "Widget": "Γραφικό Συστατικό",
"XComparedToY": "Το %1$s σε σύγκριση με το %2$s",
"XFromY": "%1$s από %2$s",
"YearlyReport": "ετήσια",
@@ -483,7 +485,6 @@
"HowtoLoginAnonymous": "Αφήστε κενά το όνομα χρήστη και το συνθηματικό για είσοδο ανώνυμου χρήστη",
"HttpIsNotSecureWarning": "Το τεκμήριο πιστοποίησης του Piwik (token_auth) αποστέλλεται ως απλό κείμενο αν χρησιμοποιείτε «HTTP». Για αυτό το λόγο, σας προτείνουμε το HTTPS για ασφαλή μεταφορά δεδομένων στο διαδίκτυο. Θέλετε να συνεχίσετε;",
"HttpTimeout": "Χρόνος λήξης HTTP",
- "IgnoreSslError": "Αγνόηση του σφάλματος SSL",
"IncompatiblePiwikVersion": "Η έκδοση του Piwik που χρησιμοποιείτε δεν είναι συμβατή με το Piwik Mobile 2. Ενημερώστε την εγκατάσταση του Piwik και ξαναδοκιμάστε ή διαφορετικά εγκατατήστε το Piwik Mobile 1.",
"LastUpdated": "Τελευταία ενημέρωση: %s",
"LoadingReport": "Φόρτωση του %s",
@@ -504,9 +505,10 @@
"NoVisitorsShort": "Δεν υπάρχουν επισκέπτες",
"NoWebsiteFound": "Δεν βρέθηκε ιστοσελίδα",
"NoWebsitesShort": "Δεν υπάρχουν ιστότοποι",
+ "PullDownToRefresh": "Κατεβείτε για ανανέωση...",
"PossibleSslError": "Πιθανό σφάλμα πιστοποιητικού SSL",
"PossibleSslErrorExplanation": "Υπήρξε σφάλμα που μπορεί να προήλθε από μη έγκυρο ή υπογεγραμμένο από την ίδια οντότητα πιστοποιητικό: \"%s\". Η είσοδος μπορεί να δουλέψει για εσάς αν αγνοήστε την επαλήθευση SSL, αλλά είναι λιγότερο ασφαλής. Μπορείτε να αλλάξετε ανά πάσα στιγμή την επιλογή για την επαλήθευση SSL στις ρυθμίσεις.",
- "PullDownToRefresh": "Κατεβείτε για ανανέωση...",
+ "IgnoreSslError": "Αγνόηση του σφάλματος SSL",
"RatingDontRemindMe": "Χωρίς υπενθύμιση",
"RatingNotNow": "Όχι τώρα",
"RatingNow": "Εντάξει, θα το βαθμολογήσω τώρα",
@@ -524,8 +526,8 @@
"TopVisitedWebsites": "κορυφαίοι σε επισκεψιμότητα ιστοτόποι",
"TryIt": "Δοκιμάστε το!",
"UseSearchBarHint": "Μόνο οι πρώτες %s ιστοσελίδες εμφανίζονται εδώ. Χρησιμοποιήστε την γραμμή αναζήτησης για να έχετε πρόσβαση στις άλλες ιστοσελίδες σας.",
- "ValidateSslCertificate": "Επαλήθευση του πιστοποιητικού SSL",
"VerifyAccount": "Πιστοποίηση λογαριασμού",
+ "ValidateSslCertificate": "Επαλήθευση του πιστοποιητικού SSL",
"VerifyLoginData": "Βεβαιωθείτε ότι ο συνδυασμός ονόματος χρήστη και συνθηματικού είναι σωστός.",
"YouAreOffline": "Συγγνώμη, είστε εκτός σύνδεσης αυτή την στιγμή"
},
diff --git a/lang/en.json b/lang/en.json
index d8b02f2204..5e3631c173 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -32,6 +32,7 @@
"ClickHere": "Click here for more information.",
"ClickToChangePeriod": "Click again to change the period.",
"Close": "Close",
+ "ClickToSearch": "Click to search",
"ColumnActionsPerVisit": "Actions per Visit",
"ColumnActionsPerVisitDocumentation": "The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.",
"ColumnAverageGenerationTime": "Avg. generation time",
diff --git a/lang/es.json b/lang/es.json
index 2b5eb113df..758c62ff15 100644
--- a/lang/es.json
+++ b/lang/es.json
@@ -29,7 +29,6 @@
"ChooseLanguage": "Elegir idioma",
"ChoosePeriod": "Elegir periodo",
"ChooseWebsite": "Elegir sitio web",
- "Clear": "Quitar",
"ClickHere": "Haga clic aquí para más información.",
"ClickToChangePeriod": "Haz un click nuevamente para modificar el período.",
"Close": "Cerrar",
@@ -63,6 +62,7 @@
"ColumnNbActionsDocumentation": "El número de acciones llevadas a cabo por sus visitantes. Las acciones incluyen cada vez que se ve una página, se descarga un archivo o se hace clic a un enlace externo.",
"ColumnNbUniqVisitors": "Visitantes únicos",
"ColumnNbUniqVisitorsDocumentation": "El número de visitantes sin duplicar que han entrado en su web. Cada usuario solo se cuenta una vez, incluso si visita la web varias veces al día.",
+ "ColumnNbUsers": "Usuarios",
"ColumnNbVisits": "Visitas",
"ColumnNbVisitsDocumentation": "Si un visitante entra en su web por primera vez o si entra en una página más de 30 minutos desde su última visita, se contará como una nueva visita.",
"ColumnPageBounceRateDocumentation": "El porcentaje de visitas que empezaron en esta página y salieron de la web de inmediato.",
@@ -341,6 +341,7 @@
"Save": "Guardar",
"SaveImageOnYourComputer": "Para guardar la imagen en tu computadora, haz clic derecho en la imagen y selecciona \"Guardar Imagen Como...\"",
"Search": "Buscar",
+ "Clear": "Quitar",
"SearchNoResults": "Sin resultados",
"Seconds": "%ss",
"SeeAll": "mostrar todo",
@@ -414,8 +415,8 @@
"VisitorID": "ID del visitante",
"VisitorIP": "IP del visitante",
"Visitors": "Visitantes",
- "VisitorSettings": "Configuración de visitantes",
"VisitsWith": "Visitas con %s",
+ "VisitorSettings": "Configuración de visitantes",
"VisitType": "Tipo de visitante",
"VisitTypeExample": "Por ejemplo, para seleccionar todos los visitantes que han vuelto al sitio web, incluyendo a aquellos que han comprado algo en sus anteriores visitas, la solicitud de la API debe contener %s",
"Warning": "Advertencia",
diff --git a/lang/et.json b/lang/et.json
index 183ff88c04..87d9b5cca9 100644
--- a/lang/et.json
+++ b/lang/et.json
@@ -342,8 +342,8 @@
"VisitorID": "Külastaja ID",
"VisitorIP": "Külastaja IP",
"Visitors": "Külastajad",
- "VisitorSettings": "Külastajate seaded",
"VisitsWith": "Külastused koos %s",
+ "VisitorSettings": "Külastajate seaded",
"VisitType": "Külalise tüüp",
"Warning": "Hoiatus",
"Website": "Veebileht",
diff --git a/lang/eu.json b/lang/eu.json
index 79703933f0..ca945fb173 100644
--- a/lang/eu.json
+++ b/lang/eu.json
@@ -26,6 +26,7 @@
"ColumnMaxActions": "Bisita bateko gehienezko ekintzak",
"ColumnNbActions": "Ekintzak",
"ColumnNbUniqVisitors": "Bisitari desberdinak",
+ "ColumnNbUsers": "Erabiltzaileak",
"ColumnNbVisits": "Bisitak",
"ColumnPageviews": "Orri-bistaratzeak",
"ColumnPercentageVisits": "% bisita",
diff --git a/lang/fa.json b/lang/fa.json
index 6d17f98a92..f9bd04c14e 100644
--- a/lang/fa.json
+++ b/lang/fa.json
@@ -61,6 +61,7 @@
"ColumnNbActionsDocumentation": "تعداد اقدامات انجام شده توسط بازدید کنندگان خود را. عملیات میتواند صفحه نمایش، دانلود یا لینک های خروجی.",
"ColumnNbUniqVisitors": "بازدید کنندگان یکتا",
"ColumnNbUniqVisitorsDocumentation": "تعداد بازدید کنندگان غیر تکراری به وب سایت شما. هر کاربر تنهایک بار شمارش، حتی اگر او چند بار در روز بازدید از وب سایت است.",
+ "ColumnNbUsers": "کاربران",
"ColumnNbVisits": "بازدید ها",
"ColumnNbVisitsDocumentation": "اگر بازدید کننده به وب سایت شما می آید برای اولین بار و یااگراو یک صفحه بیش از 30 دقیقه پس از مشاهده صفحه آخرین بار مشاهده شده است، این به عنوان یک بازدید جدید ثبت خواهد شد.",
"ColumnPageBounceRateDocumentation": "درصد از بازدیدکننده داشته است آغاز شده است که در این صفحه و سمت چپ وب سایت فورا.",
@@ -150,9 +151,9 @@
"ExceptionPrivilege": "شما نمی توانید به این منبع دسترسی داشته باشید زیرا این به دسترسی %s نیاز دارد.",
"ExceptionPrivilegeAccessWebsite": "شما می توانید به این منبع دسترسی داشته باشید نه به عنوان آن نیاز به %s دسترسی به سایت id = %d.",
"ExceptionPrivilegeAtLeastOneWebsite": "شما نمی توانید به این منبع دسترسی پیدا کنید زیرا این حداقل به دسترسی %s برای یک وبسایت نیاز دارید.",
- "ExceptionReportNotFound": "گزارش درخواست شده وجود ندارد.",
"ExceptionUnableToStartSession": "قادر به شروع جلسه نیست.",
"ExceptionUndeletableFile": "غیر قابل حذف %s",
+ "ExceptionReportNotFound": "گزارش درخواست شده وجود ندارد.",
"ExceptionWidgetNotFound": "ویجت درخواست شده وجود ندارد.",
"Export": "خروجی گرفتن",
"ExportAsImage": "عکس به عنوان خروجی",
@@ -394,8 +395,8 @@
"VisitorID": "آی دی بازدید کننده",
"VisitorIP": "آی پی بازدید کننده",
"Visitors": "بازدید کننده ها",
- "VisitorSettings": "تنظیمات بازدید کننده",
"VisitsWith": "بازدید ها با %s",
+ "VisitorSettings": "تنظیمات بازدید کننده",
"VisitType": "نوع بازدید کننده",
"VisitTypeExample": "به عنوان مثال، برای انتخاب تمام بازدید کنندگان که به وب سایت،از جمله کسانی که چیزی در بازدیدکننده داشته است گذشته خود را خریداری بازگردانده، درخواست API حاوی %s",
"Warning": "هشدار",
diff --git a/lang/fi.json b/lang/fi.json
index ad45a83d53..4a054d7a51 100644
--- a/lang/fi.json
+++ b/lang/fi.json
@@ -29,7 +29,6 @@
"ChooseLanguage": "Valitse kieli",
"ChoosePeriod": "Valitse aikaväli",
"ChooseWebsite": "Valitse verkkosivu",
- "Clear": "Tyhjennä",
"ClickHere": "Klikkaa tästä lisätietoja.",
"ClickToChangePeriod": "Vaihda aikaväliä klikkaamalla uudelleen",
"Close": "Sulje",
@@ -163,10 +162,10 @@
"ExceptionPrivilege": "Et voi käyttää resurssia, sillä tarvitset pääsyn %s.",
"ExceptionPrivilegeAccessWebsite": "Et voi käyttää tätä resurssia, sillä siihen vaaditaan %s pääsy sivulle %d.",
"ExceptionPrivilegeAtLeastOneWebsite": "Et voi käyttää resurssia, koska siihen vaaditaan %s pääsy vähintään yhdelle sivulle.",
- "ExceptionReportNotFound": "Pyydettyä raporttia ei ole olemassa.",
"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ä.",
+ "ExceptionReportNotFound": "Pyydettyä raporttia ei ole olemassa.",
"ExceptionWidgetNotFound": "Pyydettyä vimpainta ei ole olemassa.",
"ExpandDataTableFooter": "Vaihda visualisointia tai määrittele raportti",
"Export": "Vie",
@@ -212,7 +211,7 @@
"Logout": "Kirjaudu ulos",
"LongDay_1": "Maanantai",
"LongDay_2": "Tiistai",
- "LongDay_3": "Keskivikko",
+ "LongDay_3": "Keskiviikko",
"LongDay_4": "Torstai",
"LongDay_5": "Perjantai",
"LongDay_6": "Lauantai",
@@ -343,6 +342,7 @@
"Save": "Tallenna",
"SaveImageOnYourComputer": "Voit tallentaa kuvan painamalla hiiren oikeaa painiketta ja valitsemalla \"Tallenna kuva nimellä...\"",
"Search": "Hae",
+ "Clear": "Tyhjennä",
"SearchNoResults": "Ei tuloksia",
"Seconds": "%ss",
"SeeAll": "näytä kaikki",
@@ -416,16 +416,16 @@
"VisitorID": "Kävijän ID",
"VisitorIP": "Kävijän IP",
"Visitors": "Kävijät",
- "VisitorSettings": "Kävijöiden asetukset",
"VisitsWith": "Käynnit %s:n kanssa",
+ "VisitorSettings": "Kävijöiden asetukset",
"VisitType": "Kävijän tyyppi",
"VisitTypeExample": "Voit esimerkiksi valita kaikki kävijät jotka palasivat sivulle ja ostivat edellisellä käynnillä. Esimerkki pyynnöstä on %s",
"Warning": "Varoitus",
+ "WarningPiwikWillStopSupportingPHPVersion": "Piwik ei tue tätä versiota PHP:stä %s. Päivitä PHP:n versio ennen kuin se on liian myöhäistä!",
"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.",
- "WarningPiwikWillStopSupportingPHPVersion": "Piwik ei tue tätä versiota PHP:stä %s. Päivitä PHP:n versio ennen kuin se on liian myöhäistä!",
"Website": "Verkkosivu",
"Weekly": "Viikoittain",
"WeeklyReport": "viikottainen",
diff --git a/lang/fr.json b/lang/fr.json
index 2fac86173e..d6f9c3fa7c 100644
--- a/lang/fr.json
+++ b/lang/fr.json
@@ -29,7 +29,6 @@
"ChooseLanguage": "Sélectionnez la langue",
"ChoosePeriod": "Sélectionnez la période",
"ChooseWebsite": "Sélectionnez le site web",
- "Clear": "Réinitialiser",
"ClickHere": "Cliquez ici pour plus d'informations.",
"ClickToChangePeriod": "Cliquez à nouveau pour modifier la période.",
"Close": "Fermer",
@@ -143,9 +142,12 @@
"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.",
"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.",
"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é",
"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.",
@@ -165,12 +167,12 @@
"ExceptionPrivilege": "Vous ne pouvez accéder à cette ressource, ceci requiert un accès de type %s.",
"ExceptionPrivilegeAccessWebsite": "Vous ne pouvez pas accéder à cette ressource, ceci requiert un accès de type %s pour le site id = %d.",
"ExceptionPrivilegeAtLeastOneWebsite": "Vous ne pouvez accéder à cette ressource, ceci requiert au moins un accès de type %s à un site web.",
- "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.",
- "ExceptionReportNotFound": "Le rapport demandé n'existe pas.",
"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.",
+ "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.",
"ExpandDataTableFooter": "Modifier la visualisation ou configurer le rapport",
"Export": "Exporter",
"ExportAsImage": "Exporter au format Image",
@@ -182,8 +184,8 @@
"ForExampleShort": "ex.",
"Forums": "Forums",
"FromReferrer": "de",
- "General": "Général",
"GeneralInformation": "Informations Générales",
+ "General": "Général",
"GetStarted": "Pour bien commencer",
"GiveUsYourFeedback": "Envoyez-nous vos commentaires !",
"Goal": "Objectif",
@@ -303,7 +305,9 @@
"OverlayRowActionTooltipTitle": "Ouvrir l'analyse des pages web",
"Overview": "Récapitulatif",
"Pages": "Pages",
- "ParameterMustIntegerBetween": "Le paramètre %s doit être un entier entre les valeurs %s et %s.",
+ "Pagination": "%s - %s de %s",
+ "PaginationWithoutTotal": "%s - %s",
+ "ParameterMustIntegerBetween": "Le paramètre %s doit être un entier compris entre %s et %s.",
"Password": "Mot de passe",
"Period": "Période",
"Piechart": "Camembert",
@@ -349,6 +353,7 @@
"Save": "Enregistrer",
"SaveImageOnYourComputer": "Pour sauvegarder l'image sur votre ordinateur, faites un clic droit dessus et sélectionnez \"Enregistrer l'image sous...\"",
"Search": "Rechercher",
+ "Clear": "Réinitialiser",
"SearchNoResults": "Aucun résultat",
"Seconds": "%ss",
"SeeAll": "tout montrer",
@@ -423,23 +428,24 @@
"VisitorID": "ID du visiteur",
"VisitorIP": "IP du visiteur",
"Visitors": "Visiteurs",
- "VisitorSettings": "Paramètres visiteur",
"VisitsWith": "Visites avec %s",
+ "VisitorSettings": "Paramètres visiteur",
"VisitType": "Type du visiteur",
"VisitTypeExample": "Par exemple, pour sélectionner tous les visiteurs qui sont retournés sur le site web, en incluant ceux qui ont acheté quelque chose lors de leur dernière visite, la requête à l'API contiendrait %s",
"Warning": "Attention",
+ "WarningPhpVersionXIsTooOld": "La version de PHP que vous utilisez (%s) est en fin de support. Nous vous incitons vivement à upgrader vers une version plus récente. Votre version actuelle vous expose à des failles de sécurité et des bugs qui ont été corrigés dans les versions les plus récentes de PHP.",
+ "WarningPiwikWillStopSupportingPHPVersion": "Piwik va arrêter le support de cette version de PHP en %s. Mettez à jour votre version de PHP avant qu'il ne soit trop tard !",
"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.",
- "WarningPhpVersionXIsTooOld": "La version de PHP que vous utilisez (%s) est en fin de support. Nous vous incitons vivement à upgrader vers une version plus récente. Votre version actuelle vous expose à des failles de sécurité et des bugs qui ont été corrigés dans les versions les plus récentes de PHP.",
- "WarningPiwikWillStopSupportingPHPVersion": "Piwik va arrêter le support de cette version de PHP en %s. Mettez à jour votre version de PHP avant qu'il ne soit trop tard !",
"Website": "Site",
"Weekly": "Hebdomadaire",
"WeeklyReport": "hebdomadaire",
"WeeklyReports": "Rapports hebdomadaires",
"WellDone": "Bravo!",
"Widgets": "Widgets",
+ "Widget": "Gadget",
"XComparedToY": "%1$s comparé à %2$s",
"XFromY": "%1$s de %2$s",
"YearlyReport": "annuel",
@@ -479,7 +485,6 @@
"HowtoLoginAnonymous": "Laissez le login et le mot de passe vide pour une connexion anonyme.",
"HttpIsNotSecureWarning": "Votre token d'authentification Piwik (token_auth) est envoyée en texte clair si vous utilisez \"HTTP\". Pour cette raison, nous recommandons d'utiliser HTTPS pour sécuriser le transport des données sur Internet. Voulez-vous le faire ?",
"HttpTimeout": "Timeout HTTP",
- "IgnoreSslError": "Ignorer les erreurs SSL",
"IncompatiblePiwikVersion": "La version de Piwik que vous utilisez est incompatible avec Piwik Mobile 2. Mettez à jour votre installation de Piwik et essayez à nouveau ou bien installez Piwik Mobile 1.",
"LastUpdated": "Dernière mise à jour : %s",
"LoadingReport": "Chargement %s",
@@ -500,9 +505,10 @@
"NoVisitorsShort": "Aucun visiteur",
"NoWebsiteFound": "Aucun site trouvé",
"NoWebsitesShort": "Pas de site internet",
+ "PullDownToRefresh": "Faites glisser vers le bas pour actualiser",
"PossibleSslError": "Erreur potentielle de certificat SSL",
"PossibleSslErrorExplanation": "Une erreur peut être causée par un certificat invalide ou auto-signé : \"%s\". La connexion peut fonctionner pour vous en ignorant la validation SSL mais cela est moins sécurisé. Vous pouvez modifier la validation SSL à n'importe quel moment depuis les paramètres.",
- "PullDownToRefresh": "Faites glisser vers le bas pour actualiser",
+ "IgnoreSslError": "Ignorer les erreurs SSL",
"RatingDontRemindMe": "Ne pas me rappeler",
"RatingNotNow": "Pas maintenant",
"RatingNow": "OK, je vais le noter maintenant",
@@ -520,8 +526,8 @@
"TopVisitedWebsites": "Les sites les plus visités",
"TryIt": "Essayez le !",
"UseSearchBarHint": "Seuls les %s premiers sites Internet sont affichés ici. Veuillez utiliser la barre de recherche pour accéder aux autres sites Internet.",
- "ValidateSslCertificate": "Valider le certificat SSL",
"VerifyAccount": "Vérification du compte",
+ "ValidateSslCertificate": "Valider le certificat SSL",
"VerifyLoginData": "Verifier votre nom d'utilisateur et votre mot de passe.",
"YouAreOffline": "Désolé, vous êtes actuellement déconnecté(e)"
},
diff --git a/lang/gl.json b/lang/gl.json
index 4fb3aadab1..da99829814 100644
--- a/lang/gl.json
+++ b/lang/gl.json
@@ -20,6 +20,7 @@
"ColumnMaxActions": "Máximas accións nunha visita",
"ColumnNbActions": "Accións",
"ColumnNbUniqVisitors": "Visitantes únicos",
+ "ColumnNbUsers": "Usuario",
"ColumnNbVisits": "Visitas",
"ColumnPageviews": "Páxinas Vistas",
"ColumnPercentageVisits": "% Visitas",
@@ -118,6 +119,7 @@
"Password": "Contrasinal",
"Period": "Periodo",
"Piechart": "Gráfico circular",
+ "Plugin": "Complemento",
"Plugins": "Plugins",
"Previous": "Anterior",
"RefreshPage": "Actualizar páxina",
diff --git a/lang/he.json b/lang/he.json
index d4c1584e4f..0f41f4bfcc 100644
--- a/lang/he.json
+++ b/lang/he.json
@@ -32,6 +32,7 @@
"ColumnMaxActions": "מקסימום פעולות בביקור בודד",
"ColumnNbActions": "פעולות",
"ColumnNbUniqVisitors": "מבקרים יחודיים",
+ "ColumnNbUsers": "משתמשים",
"ColumnNbVisits": "ביקורים",
"ColumnPageviews": "צפיות",
"ColumnPercentageVisits": "% ביקורים",
diff --git a/lang/hi.json b/lang/hi.json
index 6abf8cbe5f..5001314e2d 100644
--- a/lang/hi.json
+++ b/lang/hi.json
@@ -398,8 +398,8 @@
"VisitorID": "आगंतुक आईडी",
"VisitorIP": "आगंतुक आईपी",
"Visitors": "आगंतुकों",
- "VisitorSettings": "आगंतुक सेटिंग्स",
"VisitsWith": "%s साथ दौरा",
+ "VisitorSettings": "आगंतुक सेटिंग्स",
"VisitType": "आगंतुक के प्रकार",
"VisitTypeExample": "उदाहरण के लिए, अपने पिछले दौरों में कुछ खरीदा है जो उन सहित, वेबसाइट पर लौट आए हैं, जो सभी आगंतुकों का चयन करने के लिए, एपीआई अनुरोध %s शामिल होगा",
"Warning": "चेतावनी",
diff --git a/lang/hr.json b/lang/hr.json
index ea57e4e315..6e4543ce6a 100644
--- a/lang/hr.json
+++ b/lang/hr.json
@@ -2,12 +2,14 @@
"General": {
"AbandonedCarts": "Napuštene košarice",
"AboutPiwikX": "O Piwiku %s",
+ "Action": "Radnja",
"Actions": "Radnje",
+ "Add": "Dodaj",
"AllowPiwikArchivingToTriggerBrowser": "Dozvoli pokretanje Piwik arhiviranja kada se izvještaji pregledavaju iz preglednika",
"AllWebsitesDashboard": "Upravljačka ploča za sve stranice",
"API": "API",
"ApplyDateRange": "Odredi vremenski raspon",
- "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 koja će obraditi Piwik izvještaje svakih sat vremena.",
+ "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.",
"AuthenticationMethodSmtp": "Način SMTP autorizacije",
"AverageOrderValue": "Prosječna vrijednost narudžbe",
@@ -25,6 +27,7 @@
"Close": "Zatvori",
"ColumnActionsPerVisit": "Radnji po posjeti",
"ColumnActionsPerVisitDocumentation": "Prosječan broj radnji koje su odrađene za vrijeme posjete",
+ "ColumnAverageGenerationTime": "Prosječno vrijeme kreiranja",
"ColumnAverageTimeOnPage": "Prosječno vrijeme na stranici",
"ColumnAverageTimeOnPageDocumentation": "Prosječno vrijeme koje su posjetitelji proveli na ovoj stranici (samo na ovoj stranici, ne na svim stranicama)",
"ColumnAvgTimeOnSite": "Prosječno vrijeme provedeno na stranici",
@@ -36,6 +39,7 @@
"ColumnBouncesDocumentation": "Broj posjeta koje su stigle i otišle sa ove stranice. Ovo znači da je posjetitelj otišao odmah nakon pregleda ove stranice.",
"ColumnConversionRate": "Stupanj konverzije",
"ColumnConversionRateDocumentation": "Postotak posjeta koje su ostvarile postavljene ciljeve",
+ "ColumnDestinationPage": "Odredišna stranica",
"ColumnEntrances": "Ulaza",
"ColumnEntrancesDocumentation": "Broj posjetitelja koji su započeli sa ovom stranicom",
"ColumnExitRate": "Stupanj odlaska",
@@ -49,12 +53,14 @@
"ColumnNbActionsDocumentation": "Broj radnji koje su izvršili vaši posjetitelji. Radnje mogu biti otvaranje stranica, skidanje datoteka ili klik na izlazni link.",
"ColumnNbUniqVisitors": "Jedinstveni posjetitelji",
"ColumnNbUniqVisitorsDocumentation": "Broj jedinstvenih posjetitelja na vašoj web stranici. Svaki se korisnik broji jednom, čak i u slučaju kada posjeti web stranicu više puta dnevno.",
+ "ColumnNbUsers": "Korisnici",
"ColumnNbVisits": "Posjeta",
"ColumnNbVisitsDocumentation": "Ako posjetitelj dođe na vašu web stranicu po prvi put ili ako posjeti stranicu više od 30 minuta nakon svoje posljednje posjete, to će se računati kao novi posjet",
"ColumnPageBounceRateDocumentation": "Postotak posjetitelja koji su krenuli sa ovom stranicom i zatim otišli.",
"ColumnPageviews": "Otvaranja",
"ColumnPageviewsDocumentation": "Koliko je puta stranica posjećena",
"ColumnPercentageVisits": "% Posjeta",
+ "ColumnRevenue": "Prihod",
"ColumnSumVisitLength": "Ukupno vrijeme koje su posjetitelji proveli na stranici (u sekundama)",
"ColumnUniquePageviews": "Jedinstvenih otvaranja",
"ColumnUniquePageviewsDocumentation": "Broj posjeta koji su bili i na ovoj stranici. U slučaju da je za vrijeme posjete stranica više puta otvorena, brojena će biti samo jednom.",
@@ -62,10 +68,13 @@
"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.",
+ "Continue": "Nastavi",
+ "ContinueToPiwik": "Nastavi na Piwik",
"CurrentMonth": "Tekući mjesec",
"CurrentWeek": "Tekući tjedan",
"CurrentYear": "Tekuća godina",
"Daily": "Dnevno",
+ "DailyReport": "dnevno",
"DashboardForASpecificWebsite": "Upravljačka ploča za određenu stranicu",
"Date": "Datum",
"DateRange": "Vremenski raspon:",
@@ -73,11 +82,19 @@
"DateRangeFromTo": "Od %s do %s",
"DateRangeInPeriodList": "Vremenski raspon",
"DateRangeTo": "Do",
+ "DayFr": "Pet",
+ "DayMo": "Pon",
+ "DaySa": "Sub",
"DaysHours": "%1$s dan(a) %2$s sat(a)",
"DaysSinceFirstVisit": "Dana od prve posjete",
"DaysSinceLastEcommerceOrder": "Dana od posljednje Ecommerce narudžbe",
"DaysSinceLastVisit": "Dana od prošle posjete",
+ "DaySu": "Ned",
+ "DayTh": "Čet",
+ "DayTu": "Uto",
+ "DayWe": "Sri",
"Default": "Pretpostavljeno",
+ "DefaultAppended": "(pretpostavljeno)",
"Delete": "Obriši",
"Description": "Opis",
"Details": "Detaljnije",
@@ -85,8 +102,11 @@
"DisplaySimpleTable": "Prikaži jednostavnu tablicu",
"DisplayTableWithGoalMetrics": "Prikaži tablicu sa podacima o ciljevima",
"DisplayTableWithMoreMetrics": "Prikaži tablicu sa detaljnim podacima",
+ "Documentation": "Dokumentacija",
+ "Donate": "Doniraj",
"Done": "Završeno",
"Download": "Skini",
+ "DownloadFail_FileExists": "Datoteka %s već postoji!",
"DownloadFullVersion": "%1$sPreuzmite%2$s punu verziju! Pogledajte %3$s",
"Downloads": "Preuzimanja",
"EcommerceOrders": "Ecommerce narudžbe",
@@ -96,6 +116,7 @@
"EncryptedSmtpTransport": "Odaberite oblik enkripcije koju zahtjeva vaš SMTP poslužitelj.",
"EnglishLanguageName": "Croatian",
"Error": "Greška",
+ "EvolutionOverPeriod": "Kretanje kroz razdoblje",
"ExceptionConfigurationFileNotFound": "Konfiguracijska datoteka {%s} nije pronađena.",
"ExceptionDatabaseVersion": "Vaša %1$s verzija je %2$s ali Piwik zahtjeva barem %3$s.",
"ExceptionFileIntegrity": "Provjera integriteta nije uspjela: %s",
@@ -118,9 +139,11 @@
"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.",
+ "ExceptionReportNotFound": "Zatraženi izvještaj ne postoji",
"Export": "Izvezi",
"ExportAsImage": "Izvezi kao sliku",
"ExportThisReport": "Izvezi ovaj zbir podataka u drugim oblicima",
+ "Faq": "ČPP",
"FileIntegrityWarningExplanation": "Provjera integriteta datoteke nije uspjela i prijavila je određene greške. Najvjerojatniji razlog je nepotpuno ili neuspjelo slanje nekih Piwik datoteka. Pošaljite nanovo sve Piwik datoteke na poslužitelj koristeći BINARY način slanja i osvježite ovu stranicu dok se greške ne otklone.",
"First": "Početak",
"ForExampleShort": "npr.",
@@ -131,6 +154,7 @@
"GraphHelp": "Više informacija o prikazu grafova u Piwiku.",
"HelloUser": "Pozdrav %s!",
"Help": "Pomoć",
+ "Hide": "sakrij",
"HoursMinutes": "%1$s sat(a) %2$s min",
"Id": "Oznaka",
"IfArchivingIsFastYouCanSetupCronRunMoreOften": "Ako je arhiviranje u vašem slučaju brzo, možete podesiti crontab da se izvršava češće.",
@@ -165,6 +189,7 @@
"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).",
"MinutesSeconds": "%1$s min %2$ss",
"Monthly": "Mjesečno",
+ "MonthlyReports": "Mjesečni izvještaji",
"MultiSitesSummary": "Sve stranice",
"Name": "Ime",
"NbActions": "Broj radnji",
@@ -181,23 +206,40 @@
"NSeconds": "%s sekundi",
"NumberOfVisits": "Broj posjeta",
"Ok": "U redu",
+ "OneAction": "1 radnja",
+ "OneDay": "1 dan",
+ "OneMinute": "1 minuta",
+ "OneVisit": "1 posjeta",
"OnlyEnterIfRequired": "Upišite korisničko ime samo ako ga vaš SMTP poslužitelj zahtjeva.",
"OnlyEnterIfRequiredPassword": "Upišite lozinku samo ako ga vaš SMTP poslužitelj zahtjeva.",
"OnlyUsedIfUserPwdIsSet": "Koristi se samo ako je postavljeno korisničko ime i lozinka. Provjerite sa vašim pružateljem usluge ako niste sigurni koju metodu koristiti.",
"OpenSourceWebAnalytics": "Open source web analitika",
+ "OperationAtLeast": "Najmanje",
+ "OperationAtMost": "Najviše",
+ "OperationContains": "Sadrži",
+ "OperationDoesNotContain": "Ne sadrži",
+ "OperationEquals": "Jednako",
+ "OperationGreaterThan": "Veće od",
+ "OperationIs": "Je",
+ "OperationIsNot": "Nije",
+ "OperationLessThan": "Manje od",
+ "OperationNotEquals": "Nije jednako",
"OptionalSmtpPort": "Opcionalno. Pretpostavljena vrijednost je 25 za neenkriptiranu i TLS vezu ili 465 za SSL vezu.",
"OrCancel": "ili %s odustani %s",
"OriginalLanguageName": "Hrvatski",
"Others": "Ostali",
+ "Outlink": "Odlazni link",
"Outlinks": "Odlazni linkovi",
"Overview": "Pregled",
"Pages": "Stranice",
+ "Password": "Lozinka",
"Period": "Razdoblje",
"Piechart": "Pita",
"PiwikXIsAvailablePleaseUpdateNow": "Dostupan je Piwik %1$s. %2$sInstalirajte novu verziju!%3$s (pogledajte %4$snovosti%5$s).",
"PleaseSpecifyValue": "Odredi vrijednost za '%s'.",
"PleaseUpdatePiwik": "Unaprijedite vašu Piwik instalaciju",
"Plugin": "Dodaci",
+ "Plugins": "Dodaci",
"PoweredBy": "Pogoni",
"Previous": "Prethodno",
"PreviousDays": "Prethodnih %s dana (ne računajući danas)",
@@ -207,6 +249,7 @@
"PurchasedProducts": "Kupljeni proizvodi",
"Quantity": "Količina",
"Recommended": "Preporuka",
+ "Refresh": "Osvježi",
"RefreshPage": "Osvježi stranicu",
"Report": "Izvještaj",
"Reports": "Izvještaji",
@@ -274,8 +317,8 @@
"VisitorID": "Oznaka posjetitelja",
"VisitorIP": "IP adresa posjetitelja",
"Visitors": "Posjetitelji",
- "VisitorSettings": "Postavke posjetitelja",
"VisitsWith": "Posjete sa %s",
+ "VisitorSettings": "Postavke posjetitelja",
"VisitType": "Vrsta posjetitelja",
"VisitTypeExample": "Na primjer, za biranje svih posjetitelja koji su se vratili na stranicu, uključujući i one koji su pri prošloj posjeti nešto i kupili, API zahtjev treba sadržavati %s",
"Warning": "Upozorenje",
@@ -293,6 +336,26 @@
"YourChangesHaveBeenSaved": "Tvoje su izmjene spremljene"
},
"Mobile": {
- "SaveSuccessError": "Molim provjerite postavke"
+ "AboutPiwikMobile": "O Piwiku Mobile",
+ "AccessUrlLabel": "Piwik pristupni URL",
+ "Advanced": "Napredno",
+ "ChooseSegment": "Odaberi segment",
+ "DefaultReportDate": "Datum izvještaja",
+ "EmailUs": "Pošalji nam email",
+ "LoadingReport": "Učitavam %s",
+ "LoginUseHttps": "Koristi https",
+ "NavigationBack": "Natrag",
+ "NetworkError": "Mrežna greška",
+ "NetworkErrorWithStatusCodeShort": "Mrežna greška %s",
+ "NoDataShort": "Nema podataka",
+ "NoVisitorsShort": "Nema posjetitelja",
+ "IgnoreSslError": "Zanemari SSL greške",
+ "RatingNotNow": "Ne sada",
+ "SaveSuccessError": "Molim provjerite postavke",
+ "ShowAll": "Prikaži sve",
+ "TopVisitedWebsites": "Najposjećenije stranice"
+ },
+ "RowEvolution": {
+ "PickARow": "Odaberi redak za usporedbu"
}
} \ No newline at end of file
diff --git a/lang/hu.json b/lang/hu.json
index 4fba3cc1ef..9343ac5035 100644
--- a/lang/hu.json
+++ b/lang/hu.json
@@ -51,6 +51,7 @@
"ColumnNbActionsDocumentation": "Akciók száma, melyet a látogatók hajtottak végre. Akció lehet egy weblap megtekintése, egy fájl letöltése vagy egy kimenő linkre klikkelés.",
"ColumnNbUniqVisitors": "Egyedi látogatók",
"ColumnNbUniqVisitorsDocumentation": "Az összes egyedi látogató, ami a weboldaladra érkezett. Minden felhasználót csak egyszer vesz számításba, még ha naponta többször is látogatta meg az webhelyet.",
+ "ColumnNbUsers": "Felhasználók",
"ColumnNbVisits": "Látogatások",
"ColumnNbVisitsDocumentation": "Ha egy látogató első alkalommal látogatja meg a webhelyet, vagy ha az utolsó lapmegtekintés után 30 percnél később tér vissza a webhelyre, akkor új látogatásként kerül rögzítésre.",
"ColumnPageBounceRateDocumentation": "Látogatások százaléka, mely ezen a weblapon kezdődött, majd további weblapok megtekintése nélkül itt is fejeződött be.",
@@ -292,8 +293,8 @@
"VisitorID": "Látogatóazonosító",
"VisitorIP": "Látogató IP-címe",
"Visitors": "Látogatók",
- "VisitorSettings": "Látogatók adatai",
"VisitsWith": "Látogatások ezzel: %s",
+ "VisitorSettings": "Látogatók adatai",
"VisitType": "Látogató típusa",
"VisitTypeExample": "Például azoknak a látogatóknak a kiválasztására, akik visszatértek a weboldalra, köztük azok, akik vásároltak valamit a korábbi látogatásaik során, az API lekérés ezt tartalmazná: %s",
"Warning": "Figyelmeztetés",
diff --git a/lang/id.json b/lang/id.json
index 410fb5b412..6c8099d1b7 100644
--- a/lang/id.json
+++ b/lang/id.json
@@ -61,6 +61,7 @@
"ColumnNbActionsDocumentation": "Jumlah tindakan yang dilakukan oleh pengunjung. Tindakan dapat berupa menampilkan halaman, mengunduh, atau tautan keluar.",
"ColumnNbUniqVisitors": "Pengunjung unik",
"ColumnNbUniqVisitorsDocumentation": "Jumlah pengunjung unik yang mengunjungi situs Anda. Setiap pengguna hanya terhitung satu kali, walaupun mengunjungi situs beberapa kali.",
+ "ColumnNbUsers": "Pengguna",
"ColumnNbVisits": "Kunjungan",
"ColumnNbVisitsDocumentation": "Bila pengunjung mengunjungi situs Anda untuk pertama kali atau bila mengunjungi sebuah halaman lebih dari 30 menit setelah halaman terakhir tampil, ini akan tercatat sebagai kunjungan baru.",
"ColumnPageBounceRateDocumentation": "Persentase kunjungan yang berawal pada halaman ini dan meninggalkan situs langsung.",
@@ -391,8 +392,8 @@
"VisitorID": "ID pengunjung",
"VisitorIP": "IP pengujung",
"Visitors": "Pengunjung",
- "VisitorSettings": "Pengaturan Pengunjung",
"VisitsWith": "Kunjungan dengan %s",
+ "VisitorSettings": "Pengaturan Pengunjung",
"VisitType": "Jenis pengunjung",
"VisitTypeExample": "Sebagai contoh, untuk memilih semua pengunjung yang telah kembali ke situs, termasuk yang telah membeli sesuatu saat kunjungan sebelumnya, permintaan API akan mengandung %s",
"Warning": "Peringatan",
diff --git a/lang/is.json b/lang/is.json
index adbb5478ec..123ee5e2ac 100644
--- a/lang/is.json
+++ b/lang/is.json
@@ -29,6 +29,7 @@
"ColumnMaxActions": "Hámark aðgerða í einni heimsókn",
"ColumnNbActions": "Aðgerðir",
"ColumnNbUniqVisitors": "Einstakir gestir",
+ "ColumnNbUsers": "Notendur",
"ColumnNbVisits": "Heimsóknir",
"ColumnPageviews": "Síðuflettingar",
"ColumnPercentageVisits": "% Heimsóknir",
diff --git a/lang/it.json b/lang/it.json
index a4ec98cfa7..c687598388 100644
--- a/lang/it.json
+++ b/lang/it.json
@@ -29,7 +29,6 @@
"ChooseLanguage": "Scegli la lingua",
"ChoosePeriod": "Scegli il periodo",
"ChooseWebsite": "Scegli il sito",
- "Clear": "Pulisci",
"ClickHere": "Ottieni più informazioni.",
"ClickToChangePeriod": "Clicca di nuovo per cambiare il periodo.",
"Close": "Chiudi",
@@ -143,9 +142,9 @@
"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.",
"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.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "L'utente deve essere un Super User o l'utente '%s' stesso.",
"ExceptionConfigurationFileNotFound": "Il file di configurazione {%s} non è stato trovato.",
- "ExceptionContactSupportGeneric": "Se hai ancora questo problema %scontatta il tuo amministratore di Piwik%s per assistenza.",
"ExceptionDatabaseVersion": "La tua %1$s versione è %2$s ma Piwik ha bisogno di almeno %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.",
@@ -168,12 +167,12 @@
"ExceptionPrivilege": "Non puoi accedere a questa risorsa con un accesso %s.",
"ExceptionPrivilegeAccessWebsite": "Non puoi accedere alla risorsa richiesta perché è necessario essere autorizzati per l'accesso %s per il sito con id = %d.",
"ExceptionPrivilegeAtLeastOneWebsite": "Non puoi accedere alla risorsa richiesta perché è necessario essere autorizzati come %s per almeno un sito web.",
- "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.",
- "ExceptionReportNotFound": "Il report richiesto non esiste.",
"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.",
+ "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.",
"ExpandDataTableFooter": "Cambia la visualizzazione o configura il report",
"Export": "Esporta",
"ExportAsImage": "Esporta come Immagine",
@@ -185,8 +184,8 @@
"ForExampleShort": "es.",
"Forums": "Forums",
"FromReferrer": "da",
- "General": "Generale",
"GeneralInformation": "Informazioni generali",
+ "General": "Generale",
"GetStarted": "Inizia",
"GiveUsYourFeedback": "Suggerimenti?",
"Goal": "Goal",
@@ -306,6 +305,7 @@
"OverlayRowActionTooltipTitle": "Copertura Open Page",
"Overview": "Riepilogo",
"Pages": "Pagine",
+ "Pagination": "%s - %s di %s",
"ParameterMustIntegerBetween": "Parametro %s deve essere un valore integer tra %s e %s",
"Password": "Password",
"Period": "Periodo",
@@ -352,6 +352,7 @@
"Save": "Salva",
"SaveImageOnYourComputer": "Per salvare l'immagine sul tuo computer, clicca di destro sull'immagine e seleziona \"Salva immagine con nome...\"",
"Search": "Cerca",
+ "Clear": "Pulisci",
"SearchNoResults": "Nessun risultato",
"Seconds": "%ss",
"SeeAll": "vedi tutto",
@@ -426,24 +427,24 @@
"VisitorID": "ID visitatore",
"VisitorIP": "IP visitatore",
"Visitors": "Visitatori",
- "VisitorSettings": "Impostazioni visitatori",
"VisitsWith": "Visite con %s",
+ "VisitorSettings": "Impostazioni visitatori",
"VisitType": "Tipo di visitatore",
"VisitTypeExample": "Ad esempio, per selezionare tutti i visitatori che sono ritornati al sito Web, compresi quelli che hanno comprato qualcosa nella loro precedenti visite, la richiesta di API conterrebbe %s",
"Warning": "Attenzione",
+ "WarningPhpVersionXIsTooOld": "La versione %s di PHP che stai utilizzando ha raggiunto il fine vita (EOL). Si invita caldamente ad aggiornare con urgenza all'ultima versione, perché l'uso di questa versione può esporti a vulnerabilità nella sicurezza e ai bug che sono stati corretti nelle versioni più recenti di PHP.",
+ "WarningPiwikWillStopSupportingPHPVersion": "Piwik cesserà di supportare questa versione del PHP nel %s. Aggiorna la tua versione del PHP prima che sia troppo tardi!",
"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 dell'integrità dei file non può essere eseguito 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.",
- "WarningPhpVersionXIsTooOld": "La versione %s di PHP che stai utilizzando ha raggiunto il fine vita (EOL). Si invita caldamente ad aggiornare con urgenza all'ultima versione, perché l'uso di questa versione può esporti a vulnerabilità nella sicurezza e ai bug che sono stati corretti nelle versioni più recenti di PHP.",
- "WarningPiwikWillStopSupportingPHPVersion": "Piwik cesserà di supportare questa versione del PHP nel %s. Aggiorna la tua versione del PHP prima che sia troppo tardi!",
"Website": "Sito:",
"Weekly": "Settimanale",
"WeeklyReport": "settimanale",
"WeeklyReports": "Reports settimanali",
"WellDone": "Ben fatto!",
- "Widget": "Widget",
"Widgets": "Widgets",
+ "Widget": "Widget",
"XComparedToY": "%1$s confrontato con %2$s",
"XFromY": "%1$s da %2$s",
"YearlyReport": "annualmente",
@@ -483,7 +484,6 @@
"HowtoLoginAnonymous": "Lascia vuoti username e password per un login anonimo",
"HttpIsNotSecureWarning": "Il tuo token di autorizzazione Piwik (token_auth) viene inviato in chiaro se si utilizza 'HTTP'. Per questo motivo si consiglia HTTPS per il trasporto sicuro dei dati su Internet. Vuoi continuare?",
"HttpTimeout": "HTTP Timeout",
- "IgnoreSslError": "Ignora errore SSL",
"IncompatiblePiwikVersion": "La versione di Piwik che stai utilizzando è incompatibile con Piwik Mobile 2. Aggiorna la tua installazione e prova ancora o installa Piwik Mobile 1.",
"LastUpdated": "Ultimo aggiornamento: %s",
"LoadingReport": "Sto caricando %s",
@@ -504,9 +504,10 @@
"NoVisitorsShort": "Nessun Visitatore",
"NoWebsiteFound": "Nessun sito web",
"NoWebsitesShort": "Nessun Sito Web",
+ "PullDownToRefresh": "Tira giù per aggiornare...",
"PossibleSslError": "Possibile errore nel certificato SSL",
"PossibleSslErrorExplanation": "Si è verificato un errore che potrebbe essere causato da un certificato non valido o autofirmato: \"%s\". Il login potrebbe funzionare meglio ignorando la convalida SSL ma ciò è meno sicuro. Puoi cambiare la convalida SSL in ogni momento nelle impostazioni.",
- "PullDownToRefresh": "Tira giù per aggiornare...",
+ "IgnoreSslError": "Ignora errore SSL",
"RatingDontRemindMe": "Non ricordarmelo",
"RatingNotNow": "Non ora",
"RatingNow": "OK, do un voto ora",
@@ -524,8 +525,8 @@
"TopVisitedWebsites": "Primi siti visitati",
"TryIt": "Provalo!",
"UseSearchBarHint": "Solo i primi %s siti sono qui mostrati. Usa la barra di ricerca per accedere ai tuoi altri siti.",
- "ValidateSslCertificate": "Valida Certificato SSL",
"VerifyAccount": "Verifica Account",
+ "ValidateSslCertificate": "Valida Certificato SSL",
"VerifyLoginData": "Verifica username e password.",
"YouAreOffline": "Spiacente, sei al momento offline"
},
diff --git a/lang/ja.json b/lang/ja.json
index 9bc21b65d3..6d2e399f55 100644
--- a/lang/ja.json
+++ b/lang/ja.json
@@ -29,7 +29,6 @@
"ChooseLanguage": "言語を選択",
"ChoosePeriod": "期間を選択",
"ChooseWebsite": "ウェブサイトを選択",
- "Clear": "クリア",
"ClickHere": "詳細はこちらをクリック",
"ClickToChangePeriod": "期間を変更するには、もう一度クリックしてください",
"Close": "閉じる",
@@ -165,12 +164,12 @@
"ExceptionPrivilege": "このリソースには %s アクセス権が必要なため、アクセスすることはできません。",
"ExceptionPrivilegeAccessWebsite": "このリソースには website id = %d 用の %s アクセス権が必要なため、アクセスすることはできません。",
"ExceptionPrivilegeAtLeastOneWebsite": "このリソースには少なくとも1つのウェブサイト用の %s アクセス権が必要なため、アクセスすることはできません。",
- "ExceptionReportNotEnabled": "リクエストされたレポートは、利用できません。レポートの定義が無効になっているか、このレポートにアクセスする十分な権限を持っていない可能性があります。",
- "ExceptionReportNotFound": "リクエストされたレポートは存在しません。",
"ExceptionUnableToStartSession": "セッションを開始できません",
"ExceptionUndeletableFile": "%s が削除できませんでした",
"ExceptionUnreadableFileDisabledMethod": "設定ファイル {%s} を読み込むことができませんでした。 サーバーで %s が無効化されている可能性があります。",
+ "ExceptionReportNotFound": "リクエストされたレポートは存在しません。",
"ExceptionWidgetNotFound": "リクエストされたウィジェットは存在しません。",
+ "ExceptionReportNotEnabled": "リクエストされたレポートは、利用できません。レポートの定義が無効になっているか、このレポートにアクセスする十分な権限を持っていない可能性があります。",
"ExpandDataTableFooter": "ビジュアルの変更やレポートの設定",
"Export": "エクスポート",
"ExportAsImage": "画像としてエクスポートする",
@@ -302,6 +301,7 @@
"OverlayRowActionTooltipTitle": "ページオーバーレイを開く",
"Overview": "概観",
"Pages": "ページ",
+ "Pagination": "%s の %s - %s",
"ParameterMustIntegerBetween": "%s パラメータは %s から %s までの整数値で指定してください",
"Password": "パスワード",
"Period": "期間",
@@ -348,6 +348,7 @@
"Save": "保存",
"SaveImageOnYourComputer": "画像を保存するには、画像を右クリックして \"名前を付けて画像を保存\" を選択します",
"Search": "検索",
+ "Clear": "クリア",
"SearchNoResults": "何もありません",
"Seconds": "%s 秒",
"SeeAll": "すべてを見る",
@@ -422,17 +423,17 @@
"VisitorID": "ビジターID",
"VisitorIP": "ビジターIP",
"Visitors": "ビジター",
- "VisitorSettings": "ビジターの環境",
"VisitsWith": "%s のビジット",
+ "VisitorSettings": "ビジターの環境",
"VisitType": "ビジター種類",
"VisitTypeExample": "例えば、前回のビジットで何かを購入した訪問者を含む、全てのリピーターを選択するためのAPIリクエストは %s を含むものとなります。",
"Warning": "警告",
+ "WarningPhpVersionXIsTooOld": "ご利用の PHP バージョン %s は、利用期間が終了( EOL )しています。セキュリティの脆弱性と、最新の PHP バージョンで既に修正されたバグに対するリスクを避けるため、必ず最新バージョンへアップグレードしてください。",
+ "WarningPiwikWillStopSupportingPHPVersion": "Piwik はこの PHP バージョン %s でサポートを停止します。手遅れになる前に PHP のバージョンをアップグレード しましょう!",
"WarningFileIntegrityNoManifest": "manifest.inc.php が不足しているため、ファイルの整合性チェックを実行することができませんでした。",
"WarningFileIntegrityNoManifestDeployingFromGit": "Git から Piwik を開発している場合、このメッセージは正常です。",
"WarningFileIntegrityNoMd5file": "md5_file() 関数が存在しないため、ファイルの整合性チェックを完了することができませんでした。",
"WarningPasswordStored": "%s警告:%s このパスワードは設定ファイルに保存されます。 この設定ファイルにアクセス可能な人であれば、パスワードを見られる可能性があることに注意してください。",
- "WarningPhpVersionXIsTooOld": "ご利用の PHP バージョン %s は、利用期間が終了( EOL )しています。セキュリティの脆弱性と、最新の PHP バージョンで既に修正されたバグに対するリスクを避けるため、必ず最新バージョンへアップグレードしてください。",
- "WarningPiwikWillStopSupportingPHPVersion": "Piwik はこの PHP バージョン %s でサポートを停止します。手遅れになる前に PHP のバージョンをアップグレード しましょう!",
"Website": "ウェブサイト",
"Weekly": "毎週",
"WeeklyReport": "毎週",
@@ -478,7 +479,6 @@
"HowtoLoginAnonymous": "匿名ログインのため、ユーザー名とパスワードを空のままにしてください。",
"HttpIsNotSecureWarning": "\"HTTP\" を使用している場合、Piwik 認証トークン( token_auth )が、平文で送信されます。インターネット経由で安全なデータ転送を行うには、HTTPS をお勧めします。続行しますか?",
"HttpTimeout": "HTTP タイムアウト",
- "IgnoreSslError": "SSL エラーを無視",
"IncompatiblePiwikVersion": "お使いの Piwik バージョンは、Piwik モバイル 2 と互換性がありません。Piwik インストールをアップデートし再度お試し頂くか、Piwik モバイル 1 をインストールしてください。",
"LastUpdated": "最新アップデート %s",
"LoadingReport": "ロード中 %s",
@@ -499,8 +499,9 @@
"NoVisitorsShort": "ビジターはいません",
"NoWebsiteFound": "ウェブサイトが見つかりません。",
"NoWebsitesShort": "ウェブサイトなし",
- "PossibleSslError": "SSL 証明エラーの可能性があります。",
"PullDownToRefresh": "プルダウンして更新 …",
+ "PossibleSslError": "SSL 証明エラーの可能性があります。",
+ "IgnoreSslError": "SSL エラーを無視",
"RatingDontRemindMe": "リマインドしないでください。",
"RatingNotNow": "今ではありません。",
"RatingNow": "OK です。いま、評価します。",
@@ -518,8 +519,8 @@
"TopVisitedWebsites": "最も訪問されたウェブサイト",
"TryIt": "試してみる !",
"UseSearchBarHint": "ここでは最初の %s ウェブサイトのみ表示されています。あなたの他のウェブサイトにアクセスするには、検索バーをご利用ください。",
- "ValidateSslCertificate": "SSL 証明の検証",
"VerifyAccount": "アカウントの検証",
+ "ValidateSslCertificate": "SSL 証明の検証",
"VerifyLoginData": "ユーザー名とパスワードの組み合わせが正しいことを確認してください。",
"YouAreOffline": "現在はオフラインです"
},
diff --git a/lang/ka.json b/lang/ka.json
index c273bec0fe..ae2fba468a 100644
--- a/lang/ka.json
+++ b/lang/ka.json
@@ -30,6 +30,7 @@
"ColumnMaxActions": "ერთი ვიზიტის დროს დასაშვები ქმედებების მაქსიმუმი",
"ColumnNbActions": "ქმედებები",
"ColumnNbUniqVisitors": "უნიკალური ვიზიტორი",
+ "ColumnNbUsers": "მომხმარებლები",
"ColumnNbVisits": "ვიზიტები",
"ColumnPageviews": "გვერდის ნახვები",
"ColumnPercentageVisits": "% ვიზიტი",
diff --git a/lang/ko.json b/lang/ko.json
index 5a7e41454f..edd2728178 100644
--- a/lang/ko.json
+++ b/lang/ko.json
@@ -57,6 +57,7 @@
"ColumnNbActionsDocumentation": "사용자가 수행 한 작업의 수입니다. 페이지 뷰, 다운로드, 또는 외부 링크 액션을 포함합니다.",
"ColumnNbUniqVisitors": "고유 방문자 수",
"ColumnNbUniqVisitorsDocumentation": "사이트를 방문한 고유 방문자 수입니다. 모든 사용자는 하루에 여러 번 방문하더라도 한번만 계산합니다.",
+ "ColumnNbUsers": "사용자",
"ColumnNbVisits": "방문 수",
"ColumnNbVisitsDocumentation": "처음 사이트에 접속한 방문자 또는 마지막 페이지를 보고 30분이 지난 후 페이지를 방문하면 새로운 방문으로 기록됩니다.",
"ColumnPageBounceRateDocumentation": "이 페이지에서 방문을 시작하고 떠난 웹사이트의 방문 비율입니다.",
@@ -368,8 +369,8 @@
"VisitorID": "방문자 ID",
"VisitorIP": "방문자 IP",
"Visitors": "방문",
- "VisitorSettings": "방문자 설정",
"VisitsWith": "%s의 방문",
+ "VisitorSettings": "방문자 설정",
"VisitType": "방문자 유형",
"VisitTypeExample": "예를 들어, 이전 방문에서 무언가를 구입한 방문자를 포함한 모든 리피터를 선택하기 위한 API 요청 %s를 포함합니다.",
"Warning": "경고",
diff --git a/lang/lt.json b/lang/lt.json
index 40e3b96a99..c1d1f42672 100644
--- a/lang/lt.json
+++ b/lang/lt.json
@@ -37,6 +37,7 @@
"ColumnMaxActions": "Daugiausia veiksmų per apsilankymą",
"ColumnNbActions": "Veiksmai",
"ColumnNbUniqVisitors": "Unikalūs lankytojai",
+ "ColumnNbUsers": "Naudotojai",
"ColumnNbVisits": "Apsilankymai",
"ColumnPageviews": "Puslapio peržiūros",
"ColumnPercentageVisits": "% apsilankymų",
diff --git a/lang/lv.json b/lang/lv.json
index 4a0d1f7a10..03d57900c8 100644
--- a/lang/lv.json
+++ b/lang/lv.json
@@ -49,6 +49,7 @@
"ColumnNbActionsDocumentation": "Apmeklētāju veikto darbību skaits. Darbības ir lapu skatījumi, lejupielādes vai ārējās saites.",
"ColumnNbUniqVisitors": "Unikālie apmeklētāji",
"ColumnNbUniqVisitorsDocumentation": "Unikālo vietnes apmeklētāju skaits. Pat ja apmeklētājs apmeklē vietni vairākas reizes dienā, tas tiek pieskaitīts vienreiz.",
+ "ColumnNbUsers": "Lietotāji",
"ColumnNbVisits": "Apmeklējumi",
"ColumnNbVisitsDocumentation": "Ja apmeklētājs ierodas vietnē pirmo reizi vai arī apmeklē lapu 30 minūtes pēc pēdējā lapas skatījuma, tas tiks skaitīts kā jauns apmeklējums.",
"ColumnPageBounceRateDocumentation": "Apmeklējumu daļa, kas sākās un uzreiz beidzās šajā lapā.",
@@ -291,8 +292,8 @@
"VisitorID": "Apmeklētāja ID",
"VisitorIP": "Apmeklētāja IP",
"Visitors": "Apmeklētāji",
- "VisitorSettings": "Apmeklētāju iestatījumi",
"VisitsWith": "Apmeklējumi ar %s",
+ "VisitorSettings": "Apmeklētāju iestatījumi",
"VisitType": "Apmeklētāja tips",
"VisitTypeExample": "Piemēram, lai izvēlētos visus apmeklētājus, kas atgriezušies vietnē (ieskaitot tos, kas veikuši pasūtījumu kādā no iepriekšējiem apmeklējumiem), API pieprasījumam būtu jāsatur %s",
"Warning": "Brīdinājums",
diff --git a/lang/nb.json b/lang/nb.json
index a8125c3525..90940a465f 100644
--- a/lang/nb.json
+++ b/lang/nb.json
@@ -1,57 +1,85 @@
{
"General": {
+ "AbandonedCarts": "Forlatte handlevogner",
"AboutPiwikX": "Om Piwik %s",
"Action": "Handling",
"Actions": "Handlinger",
"Add": "Legg til",
+ "AfterEntry": "etter at man har skrevet inn her",
"All": "Alle",
"AllowPiwikArchivingToTriggerBrowser": "Tillatt at Piwik-arkivering utløses når rapporter vises i nettleseren",
"AllWebsitesDashboard": "Oversiktspanel for alle nettsteder",
"And": "og",
"API": "API",
"ApplyDateRange": "Bruk datointervall",
+ "ArchivingInlineHelp": "For nettsteder med medium til høy trafikk, er det anbefalt å slå av at nettleseren kan utløse Piwik-arkivering. 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.",
"AuthenticationMethodSmtp": "Autentiseringsmetode for SMTP",
+ "AverageOrderValue": "Gjennomsnittlig ordrepris",
"AveragePrice": "Gjennomsnittlig pris",
+ "AverageQuantity": "Gjennomsnittlig antall",
"BackToPiwik": "Tilbake til Piwik",
+ "Broken": "Oppdelt",
+ "BrokenDownReportDocumentation": "Den er delt opp i forskjellige rapporter som er vist i sparklines på bunnen av side. Du kan forstørre grafene ved å klikke på den rapporten du ønsker å se.",
"Cancel": "Avbryt",
"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 merkelappsky. Bruk kontrollene på bunnen av rapporten for å gjøre det.",
"ChooseDate": "Velg dato",
"ChooseLanguage": "Velg språk",
"ChoosePeriod": "Velg periode",
"ChooseWebsite": "Velg nettsted",
- "Clear": "Tøm",
"ClickHere": "Klikk her for mer informasjon.",
"ClickToChangePeriod": "Klikk igjen for å endre periode.",
"Close": "Lukk",
"ColumnActionsPerVisit": "Handlinger pr besøk",
+ "ColumnActionsPerVisitDocumentation": "Det gjennomsnittlige antallet handlinger (sidevisninger, nettstedsøk, nedlastinger eller utlenker) som ble gjennomført i løpet av besøkene.",
"ColumnAverageGenerationTime": "Gj.snitt. genereringstid",
+ "ColumnAverageGenerationTimeDocumentation": "Den gjennomsnittlige tiden det tok å generere siden. Dette måltallet inkludere tiden det tok tjeneren å generere siden, pluss tiden det den besøkende å laste ned svar fra tjeneren. Et lavere gjennomsnitt betyr et raskere nettsted for dine besøkende!",
"ColumnAverageTimeOnPage": "Gj. tid på side",
+ "ColumnAverageTimeOnPageDocumentation": "Den gjennomsnittlige tiden besøkende tilbrakte på denne siden (bare siden, ikke hele nettstedet).",
"ColumnAvgTimeOnSite": "Gj. tid på nettstedet",
+ "ColumnAvgTimeOnSiteDocumentation": "Gjennomsnittlig varighet for et besøk.",
"ColumnBounceRate": "Sprettfrekvens",
+ "ColumnBounceRateDocumentation": "Prosentandelen av besøk som hadde bare en sidevisning. Dette betyr at den besøkende forlot nettstedet direkte fra inngangssiden.",
+ "ColumnBounceRateForPageDocumentation": "Prosentandel av besøk som startet og sluttet på denne siden.",
"ColumnBounces": "Sprett",
+ "ColumnBouncesDocumentation": "Prosentandel av besøk som startet og sluttet på denne siden. Dette betyr at den besøkende forlot nettstedet etter kun å ha sett denne siden.",
"ColumnConversionRate": "Konvertingsrate",
+ "ColumnConversionRateDocumentation": "Prosentandelen av besøk som utløste målkonvertering.",
+ "ColumnDestinationPage": "Destinasjonsside",
"ColumnEntrances": "Innganger",
+ "ColumnEntrancesDocumentation": "Antallet besøk som startet på denne siden.",
"ColumnExitRate": "Utgangsfrekvens",
+ "ColumnExitRateDocumentation": "Prosentandelen av besøk som forlot nettstedet etter å ha sett på denne siden.",
"ColumnExits": "Utganger",
+ "ColumnExitsDocumentation": "Antall besøk som sluttet på denne siden.",
"ColumnGenerationTime": "Genereringstid",
"ColumnKeyword": "Nøkkel",
"ColumnLabel": "Type",
"ColumnMaxActions": "Maksimalt antall handlinger under ett besøk",
"ColumnNbActions": "Handlinger",
+ "ColumnNbActionsDocumentation": "Antallet handlinger utført av dine besøkende. Handlinger kan være sidevisninger, interne nettstedsøk, nedlastinger eller utlenker.",
"ColumnNbUniqVisitors": "Unike besøkende",
+ "ColumnNbUniqVisitorsDocumentation": "Antallet unike besøkende som kommer til nettstedet ditt. Hver bruker blir telt bare en gang selv om han besøker nettstedet flere ganger om dagen.",
"ColumnNbUsers": "Brukere",
+ "ColumnNbUsersDocumentation": "Antallet bruker logget inn på nettstedet ditt. Det er antallet unike aktive brukere som har en bruker-ID satt (via sporsingskodefunksjonen «setUserId»).",
"ColumnNbVisits": "Besøk",
+ "ColumnNbVisitsDocumentation": "Hvis en besøkende kommer til nettstedet ditt for første gang eller han besøker nettstedet mer enn 30 minutter etter hans siste sidevisning, så vil det bli registrert som et nytt besøk.",
+ "ColumnPageBounceRateDocumentation": "Prosentandelen av besøk som startet på denne siden og forlot nettstedet med en gang.",
"ColumnPageviews": "Sidevisninger",
+ "ColumnPageviewsDocumentation": "Antallet ganger denne siden har vært besøkt.",
"ColumnPercentageVisits": "% besøk",
"ColumnRevenue": "Inntekter",
"ColumnSumVisitLength": "Total tid brukt av besøkende (i sekunder)",
+ "ColumnTotalPageviews": "Sidevisninger totalt",
"ColumnUniqueEntrances": "Unike innganger",
"ColumnUniqueExits": "Unike utganger",
"ColumnUniquePageviews": "Unike sidevisninger",
"ColumnUniquePageviewsDocumentation": "Antallet besøk som inkluderte denne sida. Hvis ei side ble vist flere ganger i løpet av et besøk, telles det bare som en gang.",
"ColumnValuePerVisit": "Verdi per besøk",
+ "ColumnViewedAfterSearch": "Klikket i søkeresultat",
+ "ColumnViewedAfterSearchDocumentation": "Antallet ganger denne siden var besøkt etter at en besøkende 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.",
@@ -65,6 +93,8 @@
"DailyReports": "Daglige rapporter",
"DailySum": "daglig sum",
"DashboardForASpecificWebsite": "Oversiktspanel for et bestemt nettsted",
+ "DataForThisGraphHasBeenPurged": "Dataene for denne grafen er mer enn %s måneder gamle og har blitt fjernet.",
+ "DataForThisTagCloudHasBeenPurged": "Dataene for denne merkelappskyen er mer enn %s måneder gamle og har blitt fjernet.",
"Date": "Dato",
"DateRange": "Datointervall:",
"DateRangeFrom": "Fra",
@@ -76,6 +106,7 @@
"DaySa": "Lø",
"DaysHours": "%1$s dager %2$s timer",
"DaysSinceFirstVisit": "Dager siden første besøk",
+ "DaysSinceLastEcommerceOrder": "Dager siden siste e-handelordre",
"DaysSinceLastVisit": "Dager siden siste besøk",
"DaySu": "Sø",
"DayTh": "To",
@@ -89,32 +120,57 @@
"Details": "Detaljer",
"Discount": "Rabatt",
"DisplaySimpleTable": "Vis enkel tabell",
+ "DisplayTableWithGoalMetrics": "Vis en tabell med måltall for mål",
"DisplayTableWithMoreMetrics": "Vis en tabell mer flere måltall",
"Documentation": "Dokumentasjon",
"Donate": "Doner",
"Done": "Ferdig",
"Download": "Last ned",
"DownloadFail_FileExists": "Filen %s finnes allerede!",
+ "DownloadFail_FileExistsContinue": "Prøver å fortsette nedlastingen for %s, men en komplett nedlastet fil eksisterer allerede.",
+ "DownloadFail_HttpRequestFail": "Klarte ikke laste ned fila. Noe kan være galt med nettstedet du laster ned fra. Du kan prøve igjen seinere eller laste ned fila på egenhånd.",
"DownloadFullVersion": "%1$sLast ned%2$s den fullstendige utgaven! Prøv %3$s",
"DownloadPleaseRemoveExisting": "Hvis du vil at den skal erstattes, må du fjerne den eksisterende filen.",
"Downloads": "Nedlastinger",
+ "EcommerceOrders": "E-handelordre",
+ "EcommerceVisitStatusDesc": "Besøk e-handelstatus etter slutten av besøket",
+ "EcommerceVisitStatusEg": "For eksempel, for å velge alle besøk som har lagt inn en e-handelordre, så vil API-forespørselen inneholde %s.",
"Edit": "Endre",
+ "EncryptedSmtpTransport": "Fyll inn transportlagkrypteringen som kreves av din SMTP-tjener.",
"EnglishLanguageName": "Norwegian Bokmål",
"Error": "Feil",
+ "ErrorRequest": "Obs ... 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.",
"EvolutionOverPeriod": "Utvikling over 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.",
+ "ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Bruker må enten være en superbruker eller brukeren «%s» selv.",
"ExceptionConfigurationFileNotFound": "Klarte ikke finne konfigurasjonsfila {%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.",
"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.",
"ExceptionInvalidToken": "Token er ikke gyldig.",
"ExceptionLanguageFileNotFound": "Fant ikke språkfila «%s».",
+ "ExceptionMethodNotFound": "Metoden «%s» eksisterer ikke eller er ikke tilgjengelig i modulen «%s».",
"ExceptionMissingFile": "Mangler fil: %s",
+ "ExceptionNonceMismatch": "Klarte ikke verifiserer sikkerhetstoken i dette skjemaet.",
+ "ExceptionPrivilege": "Du har ikke tilgang til denne ressursen siden den krever «%s»-tilgang.",
+ "ExceptionPrivilegeAccessWebsite": "Du har ikke tilgang til denne ressursen siden den krever «%s»-tilgang for nettstedet med id = %d.",
+ "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 konfigurasjonsfila {%s}. Verten din kan ha deaktivert %s.",
+ "ExceptionReportNotFound": "Den etterspurte rapporten fins ikke.",
+ "ExceptionWidgetNotFound": "Det etterspurte elementet fins ikke.",
"Export": "Eksporter",
"ExportAsImage": "Eksporter som bilde",
"ExportThisReport": "Eksporter dette datasett i andre format",
@@ -124,8 +180,8 @@
"ForExampleShort": "f.eks.",
"Forums": "Forum",
"FromReferrer": "fra",
- "General": "Generelt",
"GeneralInformation": "Generell informasjon",
+ "General": "Generelt",
"GetStarted": "Kom i gang",
"GiveUsYourFeedback": "Gi oss tilbakemeldinger!",
"Goal": "Mål",
@@ -137,6 +193,7 @@
"HoursMinutes": "%1$s timer %2$s min",
"Id": "Id",
"IfArchivingIsFastYouCanSetupCronRunMoreOften": "Forutsatt arkivering er raskt for ditt oppsett, kan du sette opp crontab til å kjøre oftere.",
+ "InfoFor": "Informasjon for %s",
"Installed": "Installert",
"InvalidDateRange": "Ugyldig datointervall, prøv igjen",
"InvalidResponse": "De mottatte dataene er ugyldige.",
@@ -147,6 +204,7 @@
"LastDaysShort": "Siste %s dager",
"LayoutDirection": "ltr",
"LearnMore": "%1$slær mer%2$s",
+ "Live": "Live",
"Loading": "Laster ...",
"LoadingData": "Laster data ...",
"LoadingPopover": "Laster %s...",
@@ -172,7 +230,13 @@
"LongMonth_7": "Juli",
"LongMonth_8": "August",
"LongMonth_9": "September",
+ "MainMetrics": "Hoved måltall",
+ "Matches": "Treff",
"Metadata": "Metadata",
+ "Metric": "Måltall",
+ "Metrics": "Måltall",
+ "MetricsToPlot": "Måltall å tegne",
+ "MetricToPlot": "Måltall å tegne",
"MinutesSeconds": "%1$s min %2$ss",
"Mobile": "Mobil",
"Monthly": "Månedlig",
@@ -187,8 +251,10 @@
"NbSearches": "Antall interne søk",
"NDays": "%s dager",
"Never": "Aldri",
+ "NewReportsWillBeProcessedByCron": "Hvis Piwik-arkivering ikke blir utløst av nettleseren, så vil nye rapporter bli prosessert ved hjelp av crontab.",
"NewUpdatePiwikX": "Ny utgave: Piwik %s",
"NewVisitor": "Ny besøk",
+ "NewVisits": "Nye besøk",
"Next": "Neste",
"NMinutes": "%s minutter",
"No": "Nei",
@@ -212,6 +278,8 @@
"OnlyEnterIfRequiredPassword": "Skriv bare inn et passord hvis din SMTP-tjener krever det",
"OnlyUsedIfUserPwdIsSet": "Brukes kun hvis et brukernavn\/passord er satt, spør din leverandør om du er usikker på hvilken metode som skal brukes.",
"OpenSourceWebAnalytics": "Åpen kildekode nettstatistikk",
+ "OperationAtLeast": "Minst",
+ "OperationAtMost": "Høyst",
"OperationContains": "Inneholder",
"OperationDoesNotContain": "Inneholder ikke",
"OperationEquals": "Er lik",
@@ -227,6 +295,7 @@
"Outlinks": "Utlenker",
"Overview": "Oversikt",
"Pages": "Sider",
+ "Pagination": "%s - %s av %s",
"ParameterMustIntegerBetween": "Parameteret %s må være et heltall mellom %s og %s.",
"Password": "Passord",
"Period": "Periode",
@@ -263,6 +332,7 @@
"Save": "Lagre",
"SaveImageOnYourComputer": "For å lagre bildet på din datamaskin, høyreklikk på bildet og velg \"Lagre bilde som ...\"",
"Search": "Søk",
+ "Clear": "Tøm",
"SearchNoResults": "Ingen resultater",
"Seconds": "%ss",
"SeeAll": "se alle",
@@ -348,47 +418,86 @@
},
"Mobile": {
"AboutPiwikMobile": "Om Piwik Mobile",
+ "AccessUrlLabel": "URL for Piwik-tilgang",
"Account": "Konto",
"Accounts": "Kontoer",
"AddAccount": "Legg til konto",
"AddPiwikDemo": "Legg til Piwik Demo",
"Advanced": "Avansert",
"AnonymousAccess": "Anonym tilgang",
+ "AnonymousTracking": "Anonym sporing",
"ChooseHttpTimeout": "Velg HTTP-tidsavbrudd verdi",
+ "ChooseMetric": "Velg måltall",
"ChooseReport": "Velg en rapport",
"ChooseSegment": "Velg segment",
+ "ConfirmRemoveAccount": "Vil du fjerne denne kontoen?",
"DefaultReportDate": "Rapportdato",
"EmailUs": "Send epost til oss",
"EnableGraphsLabel": "Vis grafer",
"EvolutionGraph": "Historisk graf",
+ "HelpUsToImprovePiwikMobile": "Vil du slå på anonym sporing av bruk i Piwik Mobile?",
+ "HowtoDeleteAnAccount": "Trykk lenge for å fjerne en konto.",
+ "HowtoDeleteAnAccountOniOS": "Sveip høyre til venstre for å slette en konto",
+ "HowtoLoginAnonymous": "La brukernavn og passord være tomt for anonym innlogging.",
+ "HttpIsNotSecureWarning": "Din Piwik autorisasjonstoken (token_auth) blir sendt i klartekst hvis du bruker HTTP. Av den grunn anbefaler vi HTTPS for sikker transport av data over internett. Vil du fortsette?",
"HttpTimeout": "HTTP-tidsavbrudd",
- "IgnoreSslError": "Ignorer SSL-feil",
+ "IncompatiblePiwikVersion": "Piwik-versjonen du bruker er ikke kompatibel med Piwik Mobile 2. Oppdater din Piwik-installasjon og prøv igjen eller installer Piwik Mobile 1.",
"LastUpdated": "Sist oppdatert: %s",
"LoadingReport": "Laster %s",
"LoginCredentials": "Påloggingsinformasjon",
+ "LoginToPiwikToChangeSettings": "Logg inn på din Piwik-tjener for å opprette og oppdatere nettsted og brukere eller for å endre generelle innstillinger som «Rapport som skal lastes som standard».",
"LoginUseHttps": "Bruk HTTPS",
+ "MultiChartLabel": "Vis sparklines",
"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.",
"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.",
"NoDataShort": "Ingen data",
"NoPiwikAccount": "Ingen Piwik-konto?",
"NoReportsShort": "Ingen rapporter",
+ "NoVisitorFound": "Ingen besøkende funnet",
+ "NoVisitorsShort": "Ingen besøkende",
"NoWebsiteFound": "Ingen nettside funnet",
"NoWebsitesShort": "Ingen nettsteder",
"PullDownToRefresh": "Trekk ned for å oppdatere...",
+ "PossibleSslError": "Mulig feil med SSL-sertifikat",
+ "PossibleSslErrorExplanation": "En feil oppstod som kan være forårsaket av et ugyldig eller selvsignert sertifikat: «%s» Innlogging kan virke for deg hvis du ignorerer SSL-validering, men det er mindre sikkert. Du kan endre SSL-validering når som helst i innstillingene.",
+ "IgnoreSslError": "Ignorer SSL-feil",
+ "RatingDontRemindMe": "Ikke minn meg på",
"RatingNotNow": "Ikke nå",
+ "RatingNow": "OK, jeg vil vurdere det 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",
"ReleaseToRefresh": "Slipp for å oppdatere...",
+ "Reloading": "Laster inn på nytt ...",
+ "RequestTimedOutShort": "Nettverksfeil - tidsavbrudd",
+ "RestrictedCompatibility": "Begrenset kompatibilitet",
+ "RestrictedCompatibilityExplanation": "Piwik-versjonen %s som du bruker er ikke fullt støttet av Piwik Mobile 2. Du kan oppleve noen feil. Vi anbefaler at du enten oppdatere Piwik til siste utgave eller bruker Piwik Mobile 1.",
+ "SaveSuccessError": "Piwik-URL eller kombinasjonen av brukernavn og passord er feil.",
+ "SearchWebsite": "Søk nettsteder",
"ShowAll": "Vis alle",
"ShowLess": "Vis mindre",
+ "StaticGraph": "Oversiktsgraf",
+ "TopVisitedWebsites": "Topp besøkte nettsteder",
"TryIt": "Prøv!",
- "ValidateSslCertificate": "Valider SSL-sertifikat",
+ "UseSearchBarHint": "Bare de første %s nettstedene er vist her. Bruk søkefeltet for å få tilgang til dine andre nettsteder.",
"VerifyAccount": "Verifiserer konto",
+ "ValidateSslCertificate": "Valider SSL-sertifikat",
"VerifyLoginData": "Sørg for at ditt brukernavn- og passordkombinasjon er riktig.",
"YouAreOffline": "Beklager, du er offline for øyeblikket"
},
"RowEvolution": {
+ "AvailableMetrics": "Tilgjengelige måltall",
+ "CompareRows": "Sammenlign oppføringer",
"ComparingRecords": "Sammenligner %s rader",
- "MetricBetweenText": "mellom %s og %s"
+ "Documentation": "Klikk måltallet for å vise det i den store utviklingsgrafen. Bruk SHIFT-klikk for å vise flere måltall på en gang.",
+ "MetricBetweenText": "mellom %s og %s",
+ "MetricChangeText": "%s endring over perioden",
+ "MetricMinMax": "%1$s rangert mellom %2$s og %3$s over perioden",
+ "MetricsFor": "Måltall for %s",
+ "MultiRowEvolutionTitle": "Utvikling av flere rader",
+ "PickAnotherRow": "Velg en annen rad å sammenligne",
+ "PickARow": "Velg en rad å sammenlign"
}
} \ No newline at end of file
diff --git a/lang/nl.json b/lang/nl.json
index ea522803d3..a4dbf7e710 100644
--- a/lang/nl.json
+++ b/lang/nl.json
@@ -24,26 +24,25 @@
"Cancel": "Cancel",
"CannotUnzipFile": "Kan bestand %1$s niet uitpakken: %2$s",
"ChangePassword": "Wijzig wachtwoord",
- "ChangeTagCloudView": "Let op dat u het rapport op andere manieren dan een tagcloud kunt bekijken door de icoontjes onderaan het rapport te gebruiken.",
+ "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",
- "Clear": "Duidelijk",
"ClickHere": "Klik hier voor meer informatie.",
"ClickToChangePeriod": "Klik nog een keer om de periode te veranderen.",
"Close": "Sluiten",
"ColumnActionsPerVisit": "Acties per bezoek",
"ColumnActionsPerVisitDocumentation": "Het gemiddelde aantal acties (pagina bezichtigingen, downloads of clicks op uitgaande links) gedurende de bezoeken.",
"ColumnAverageGenerationTime": "Gem. generatie tijd",
- "ColumnAverageGenerationTimeDocumentation": "De gemiddelde tijd dat het in beslag nam om de pagina te genereren. Deze meeteenheid toont de tijd welke het de server kost om de webpagina te genereren plus de tijd welke het de bezoeker kost om de pagina van de server te downloaden. Een lager 'Gem. generatie tijd' betekent een snellere website voor jouw bezoekers!",
+ "ColumnAverageGenerationTimeDocumentation": "De gemiddelde tijd dat het in beslag nam om de pagina te genereren. Deze meeteenheid toont de tijd welke het de server kost om de webpagina te genereren plus de tijd welke het de bezoeker kost om de pagina van de server te downloaden. Een lager 'Gem. generatie tijd' betekent een snellere website voor je bezoekers!",
"ColumnAverageTimeOnPage": "Gem. tijd op pagina",
"ColumnAverageTimeOnPageDocumentation": "De gemiddelde tijd die bezoekers op deze pagina doorbrengen (alleen deze pagina, niet de website).",
"ColumnAvgTimeOnSite": "Gem. tijd op de site",
"ColumnAvgTimeOnSiteDocumentation": "De gemiddelde tijd van een bezoek.",
"ColumnBounceRate": "Bounce Ratio",
"ColumnBounceRateDocumentation": "Het percentage bezoekers dat maar 1 pagina bekeken heeft. Dit betekend dus dat de bezoekers de website direct verlaten hebben vanaf de pagina waarop ze binnen zijn gekomen.",
- "ColumnBounceRateForPageDocumentation": "Percentage bezoeken dat op deze pagina begonnen en geeindigd is.",
+ "ColumnBounceRateForPageDocumentation": "Percentage bezoeken dat op deze pagina begonnen en geëindigd is.",
"ColumnBounces": "Bounces",
"ColumnBouncesDocumentation": "Het aantal bezoeken dat geëindigd is op deze pagina. Dit betekent dat de bezoeker de website heeft verlaten nadat deze alleen deze pagina bekeken heeft.",
"ColumnConversionRate": "Conversie ratio",
@@ -52,18 +51,19 @@
"ColumnEntrances": "Binnenkomsten",
"ColumnEntrancesDocumentation": "Aantal bezoeken dat op deze pagina begonnen is.",
"ColumnExitRate": "Exit ratio",
- "ColumnExitRateDocumentation": "Het percentage bezoeken dat de website heeft verlaten na deze pagina te hebben bekeken (aantal unieke pageviews gedeeld door het aantal bezoekers dat de pagina heeft verlaten)",
+ "ColumnExitRateDocumentation": "Het percentage bezoeken dat de website heeft verlaten na deze pagina te hebben bekeken.",
"ColumnExits": "Vertrekken",
"ColumnExitsDocumentation": "Het aantal bezoeken dat de website heeft verlaten vanaf deze pagina.",
"ColumnGenerationTime": "Genereer tijd",
"ColumnKeyword": "Sleutelwoord",
"ColumnLabel": "Waarde",
- "ColumnMaxActions": "Maximaal aantal acties per bezoek.",
+ "ColumnMaxActions": "Maximaal aantal acties in een bezoek.",
"ColumnNbActions": "Acties",
- "ColumnNbActionsDocumentation": "Het aantal acties dat de bezoekers doen, dit kunnen pagina bezichtingen, downloads of clicks op links naar buiten de site zijn.",
+ "ColumnNbActionsDocumentation": "Het aantal acties dat de bezoekers doen, dit kunnen pagina bezichtingen, downloads of clicks op links naar andere sites zijn.",
"ColumnNbUniqVisitors": "Unieke bezoekers",
"ColumnNbUniqVisitorsDocumentation": "Het aantal unieke bezoekers van uw website. Iedere bezoeker wordt eenmalig geteld, ook al bezoekt deze bezoeker de website meerdere malen per dag.",
"ColumnNbUsers": "Gebruikers",
+ "ColumnNbUsersDocumentation": "Het aantal gebruikers die ingelogd zijn op de website. Het is het aantal unieke actieve gebruikers die een User ID hebben (via de meetcode functie 'setUserId').",
"ColumnNbVisits": "Bezoeken",
"ColumnNbVisitsDocumentation": "Wanneer een bezoeker de website voor de eerste keer bezoekt of wanneer een bezoeker de website opnieuw bezoekt na 30 minuten dan wordt dit gezien al een nieuw website bezoek.",
"ColumnPageBounceRateDocumentation": "Het percentage bezoeken dat begonnen is op deze pagina en de website direct verlaten hebben.",
@@ -77,12 +77,12 @@
"ColumnUniqueExits": "Unieke uitgangen",
"ColumnUniquePageviews": "Unieke paginaweergaves",
"ColumnUniquePageviewsDocumentation": "Het aantal bezoeken waarbij ook deze pagina bezocht is. Wanneer een pagina meerdere keren bezocht is tijdens 1 uniek bezoek wordt dit maar 1 keer geteld.",
- "ColumnValuePerVisit": "Waarde per bezoek",
+ "ColumnValuePerVisit": "Inkomsten per bezoek",
"ColumnViewedAfterSearch": "Aangeklikt in zoekresultaten",
"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 is %s 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 %s is niet beschrijfbaar. Niet alle wijzigingen zullen worden bewaard. %s Wijzig de permissies van het configuratie bestand om het beschrijfbaar te maken.",
"Continue": "Ga verder",
"ContinueToPiwik": "Ga verder naar Piwik",
"CurrentMonth": "Huidige maand",
@@ -91,15 +91,15 @@
"Daily": "Dagelijks",
"DailyReport": "dagelijks",
"DailyReports": "Dagelijkse rapporten",
- "DailySum": "dagelijks bedrag",
+ "DailySum": "dagelijks totaal",
"DashboardForASpecificWebsite": "Dashboard voor een specifieke website.",
"DataForThisGraphHasBeenPurged": "De data voor deze grafiek is meer dan %s maanden oud en is reeds opgeschoond.",
- "DataForThisTagCloudHasBeenPurged": "De data voor deze tag wolk is meer dan %s maanden oud en is reeds opgeschoond.",
+ "DataForThisTagCloudHasBeenPurged": "De data voor deze tag cloud is meer dan %s maanden oud en is reeds opgeschoond.",
"Date": "Datum",
"DateRange": "Datumbereik:",
"DateRangeFrom": "Van",
"DateRangeFromTo": "Van %s tot %s",
- "DateRangeInPeriodList": "Datumbereik:",
+ "DateRangeInPeriodList": "Datumbereik",
"DateRangeTo": "Tot",
"DayFr": "Vr",
"DayMo": "Ma",
@@ -121,14 +121,14 @@
"Discount": "Korting",
"DisplaySimpleTable": "Toon simpele tabel",
"DisplayTableWithGoalMetrics": "Toon een tabel met gegevens over doelen.",
- "DisplayTableWithMoreMetrics": "Toon een tabel met meer gegevens.",
+ "DisplayTableWithMoreMetrics": "Toon een tabel met interactie cijfers van bezoekers",
"Documentation": "Documentatie",
"Donate": "Doneer",
"Done": "Klaar",
"Download": "Download",
"DownloadFail_FileExists": "Het bestand %s bestaat al!",
- "DownloadFail_FileExistsContinue": "Bezig met het verder gaan van de download van %s, maar een volledig bestand bestaat al!",
- "DownloadFail_HttpRequestFail": "Kon het bestand niet downloaden! Er kan iets fout gelopen zijn op de website waarvan je probeert te downloaden. Je kunt het later opnieuw proberen of het bestand zelf downloaden.",
+ "DownloadFail_FileExistsContinue": "Proberen met afronden van het downloaden van %s, maar een volledig bestand bestaat al!",
+ "DownloadFail_HttpRequestFail": "Kon het bestand niet downloaden! Er kan iets fout gegaan zijn op de website waarvan je probeert te downloaden. Je kunt het later opnieuw proberen of het bestand zelf downloaden.",
"DownloadFullVersion": "%1$sDownload%2$s de volledige versie! Bezoek %3$s",
"DownloadPleaseRemoveExisting": "Indien je wilt dat het vervangen wordt, verwijder het bestaande bestand.",
"Downloads": "Downloads",
@@ -139,54 +139,61 @@
"EncryptedSmtpTransport": "Geef de transport beveiligingslaag op die vereist is voor uw SMTP server.",
"EnglishLanguageName": "Dutch",
"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.",
"EvolutionOverPeriod": "Trend",
"EvolutionSummaryGeneric": "%1$s in %2$s vergeleken met %3$s in %4$s. Evolutie: %5$s",
- "ExceptionConfigurationFileNotFound": "Het configuratiebestand {%s} is niet gevonden.",
+ "ExceptionContactSupportGeneric": "Als het probleem zich nog steeds voordoet, neem dan %scontact op met je Piwik beheerder%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.",
"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": "Algemene rapporten formaat '%s' niet geldig. Probeer in plaats daarvan een van de volgende: %s.",
- "ExceptionInvalidArchiveTimeToLive": "Vandaag archief tijd moet een aantal seconden zijn groter dan nul.",
+ "ExceptionInvalidAggregateReportsFormat": "Samengesteld rapporten formaat '%s' niet geldig. Probeer in plaats daarvan een van de volgende: %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": "Het rapport formaat %s is niet geldig. Probeer: %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.",
"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'.",
"ExceptionMissingFile": "Bestand niet gevonden: %s",
"ExceptionNonceMismatch": "Kan het security token in dit formulier niet verifiëren.",
- "ExceptionPrivilege": "U kunt deze bron niet verwijderen omdat %s toegang is vereist.",
- "ExceptionPrivilegeAccessWebsite": "U kunt deze bron niet verwijderen omdat %s toegang is vereist voor website id=%d.",
- "ExceptionPrivilegeAtLeastOneWebsite": "U kunt deze bron niet verwijderen omdat %s toegang is vereist voor tenminste één website.",
- "ExceptionReportNotFound": "Het aangevraagde rapport bestaat niet.",
+ "ExceptionPrivilege": "Je hebt geen toegang tot deze bron, omdat %s toegang is vereist.",
+ "ExceptionPrivilegeAccessWebsite": "Je hebt geen toegang tot deze bron, omdat %s toegang is vereist voor website id=%d.",
+ "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.",
- "ExceptionWidgetNotFound": "Het opgevraagde widget bestaat niet.",
- "ExpandDataTableFooter": "Verander de visualisatie of configureer het rapport",
+ "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.",
+ "ExpandDataTableFooter": "Verander de weergave of configureer het rapport",
"Export": "Exporteren",
"ExportAsImage": "Exporteer als afbeelding",
"ExportThisReport": "Exporteer deze dataset naar andere formaten",
"Faq": "Veelgestelde vragen",
"FileIntegrityWarningExplanation": "Bestand integriteit controle mislukt en er zijn fouten ontdekt. Dit komt waarschijnlijk door een gedeeltelijke of mislukte upload van enkele Piwik bestanden. We raden u aan alle Piwik bestanden opnieuw te uploaden en deze pagina te vernieuwen tot er geen fouten meer weergegeven worden.",
"First": "Eerste",
- "Flatten": "Afvlakken",
+ "Flatten": "Plat maken",
"ForExampleShort": "bijv.",
"Forums": "Forums",
"FromReferrer": "van",
- "General": "Algemeen",
"GeneralInformation": "Algemene informatie",
+ "General": "Algemeen",
"GetStarted": "Aan de slag",
- "GiveUsYourFeedback": "Geef ons commentaar",
+ "GiveUsYourFeedback": "Geef ons commentaar!",
"Goal": "Doel",
"GoTo": "Ga naar %s",
"GraphHelp": "Meer informatie over grafieken weergeven in Piwik.",
"HelloUser": "Hallo, %s!",
"Help": "Help",
+ "HelpTranslatePiwik": "Wil je ons misschien %1$shelpen met de Piwik vertalingen%2$s?",
"Hide": "verberg",
"HoursMinutes": "%1$s uren %2$s minuten",
"Id": "id",
@@ -228,10 +235,10 @@
"LongMonth_7": "Juli",
"LongMonth_8": "Augustus",
"LongMonth_9": "September",
- "MainMetrics": "Algemene statistieken",
+ "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).",
- "Metadata": "Meta gegevens",
+ "Metadata": "Metadata",
"Metric": "Metric",
"Metrics": "Metrics",
"MetricsToPlot": "Statistieken tonen op een grafiek",
@@ -258,8 +265,8 @@
"NMinutes": "%s minuten",
"No": "Nee",
"NoDataForGraph": "Geen data gevonden voor deze grafiek.",
- "NoDataForTagCloud": "Geen data gevonden voor deze tag wolk.",
- "NotDefined": "%s niet ingevoerd",
+ "NoDataForTagCloud": "Geen data gevonden voor deze tag cloud.",
+ "NotDefined": "%s niet gedefinieerd",
"Note": "Opmerking",
"NotInstalled": "Niet geïnstalleerd",
"NotRecommended": "(niet aanbevolen)",
@@ -276,33 +283,37 @@
"OnlyEnterIfRequired": "Vul alleen een gebruikersnaam in als uw SMTP server het vereist.",
"OnlyEnterIfRequiredPassword": "Vul alleen een wachtwoord in als uw SMTP server het vereist.",
"OnlyUsedIfUserPwdIsSet": "Alleen gebruikt als een gebruikersnaam\/wachtwoord is ingesteld. Vraag na bij uw provider als u niet weet welke methode te gebruiken.",
- "OpenSourceWebAnalytics": "Open Source Web Analytics",
+ "OpenSourceWebAnalytics": "Open Source Web Analytics platform",
"OperationAtLeast": "Ten minste",
"OperationAtMost": "Op zijn hoogst",
"OperationContains": "Bevat",
"OperationDoesNotContain": "Bevat niet",
- "OperationEquals": "Gelijk",
+ "OperationEquals": "Gelijk aan",
"OperationGreaterThan": "Groter dan",
"OperationIs": "Is",
"OperationIsNot": "Is niet",
"OperationLessThan": "Kleiner dan",
- "OperationNotEquals": "Niet gelijk",
+ "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",
"OriginalLanguageName": "Nederlands",
"Others": "Andere",
"Outlink": "Uitgaande Link",
- "Outlinks": "Outlinks",
+ "Outlinks": "Uitgaande Links",
"OverlayRowActionTooltip": "Bekijk analyse data direct op je website (opent in een nieuwe tab)",
"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.",
"Password": "Wachtwoord",
"Period": "Periode",
"Piechart": "Taartdiagram",
- "PiwikXIsAvailablePleaseUpdateNow": "Piwik %1$s is beschikbaar. %2$s Gelieve nu te updaten! %3$s 'zie %4$s wijzigingen%5$s)",
+ "PiwikIsACollaborativeProjectYouCanContributeAndDonate": "%1$sPiwik%2$s is een samenwerkingsproject, wat door %7$sPiwik team%8$s leden, maar ook door vele andere personen die over de hele wereld hun steentje bijdragen. Als je een fan bent van Piwik, kun je helpen: kom te weten %3$shoe je kunt participeren in Piwik%4$s, of %5$sdoneer nu%6$s om Piwik 3.0 mee te financieren!",
+ "PiwikXIsAvailablePleaseNotifyPiwikAdmin": "%1$s is beschikbaar. Je kunt dit melden bij de %2$sPiwik beheerder%3$s.",
+ "PiwikXIsAvailablePleaseUpdateNow": "Piwik %1$s is beschikbaar. %2$s Gelieve nu te updaten!%3$s (zie %4$s wijzigingen%5$s)",
"PleaseSpecifyValue": "Gelieve een waarde op te geven voor '%s'.",
"PleaseUpdatePiwik": "Update uw Piwikinstallatie",
"Plugin": "Plugin",
@@ -312,7 +323,7 @@
"PreviousDays": "Afgelopen %s dagen (exclusief vandaag)",
"PreviousDaysShort": "Vorige %s dagen",
"Price": "Prijs",
- "ProductConversionRate": "Product Conversie ratio",
+ "ProductConversionRate": "Product Conversie verhouding",
"ProductRevenue": "Inkomsten per Product",
"PurchasedProducts": "Aangekochte Producten",
"Quantity": "Hoeveelheid",
@@ -331,17 +342,18 @@
"Reports": "Rapporten",
"ReportsContainingTodayWillBeProcessedAtMostEvery": "Rapporten voor vandaag ( of ieder ander datumbereik inclusief vandaag) worden uiterlijk verwerkt iedere",
"ReportsWillBeProcessedAtMostEveryHour": "Rapporten zullen daardoor niet vaker verwerkt worden dan eenmaal per uur.",
- "RequestTimedOut": "Een data request naar %s is verlopen. Probeer opnieuw.",
+ "RequestTimedOut": "Een data verzoek naar %s is verlopen. Probeer opnieuw.",
"Required": "%s vereist",
"ReturningVisitor": "Terugkerende bezoeker",
"ReturningVisitorAllVisits": "Bekijk alle bezoeken",
- "RowEvolutionRowActionTooltip": "Bekijk hoe de metrics voor deze rij over tijd wijzigden",
+ "RowEvolutionRowActionTooltip": "Bekijk hoe de statistieken voor deze rij over tijd wijzigden",
"RowEvolutionRowActionTooltipTitle": "Open Rij Evolutie",
"Rows": "Rijen",
"RowsToDisplay": "Rijen om te laten zien",
"Save": "Bewaar",
- "SaveImageOnYourComputer": "Om deze afbeelding te bewaren op uw computer, rechtsklik op de afbeelding en kies \"Afbeelding opslaan als…\"",
+ "SaveImageOnYourComputer": "Om deze afbeelding te bewaren op uw computer, geef een rechter muisklik op de afbeelding en kies \"Afbeelding opslaan als…\"",
"Search": "Zoek",
+ "Clear": "Duidelijk",
"SearchNoResults": "Geen resultaten",
"Seconds": "%ss",
"SeeAll": "Bekijk alles",
@@ -379,11 +391,11 @@
"SmtpServerAddress": "SMTP server adres",
"SmtpUsername": "SMTP gebruikersnaam",
"Source": "Bron",
- "StatisticsAreNotRecorded": "Piwik Bezoeker Tracking is momenteel uitgeschakeld! Schakel tracking opnieuw in door record_statistics = 1 in je config\/config.ini.php bestand aan de tapassen.",
+ "StatisticsAreNotRecorded": "Piwik Bezoeker Tracking is momenteel uitgeschakeld! Schakel tracking opnieuw in door record_statistics = 1 in je config\/config.ini.php bestand aan te passen.",
"Subtotal": "Subtotaal",
"Summary": "Samenvatting",
"Table": "Tabel",
- "TagCloud": "Tag wolk",
+ "TagCloud": "Tag Cloud",
"Tax": "Belasting",
"TimeAgo": "%s geleden",
"TimeOnPage": "Tijd op pagina",
@@ -394,13 +406,13 @@
"TotalVisitsPageviewsRevenue": "(Totaal: %s bezoeken, %s paginaweergaves, %s inkomsten)",
"TransitionsRowActionTooltip": "Bekijk wat bezoekers voor en na het bekijken van deze pagina deden",
"TransitionsRowActionTooltipTitle": "Open transities",
- "TranslatorEmail": "martijn@mvanlaar.net, hannes@randomize.be, benkheil.abdelouali@gmail.com, info@depree.nl",
- "TranslatorName": "Martijn van Laar, Hannes Bossuyt, Sigge Stegeman, Taco Vader, Benkheil Abdelouali, Ko de Pree",
+ "TranslatorEmail": "martijn@mvanlaar.net, hannes@randomize.be, benkheil.abdelouali@gmail.com, info@depree.nl, richardmastop@gmail.com",
+ "TranslatorName": "Martijn van Laar, Hannes Bossuyt, Sigge Stegeman, Taco Vader, Benkheil Abdelouali, Ko de Pree, Richard Mastop",
"UniquePurchases": "Unieke Aankopen",
"Unknown": "Onbekend",
"Upload": "Uploaden",
"UsePlusMinusIconsDocumentation": "Gebruik de + en - icoontjes aan de linkerzijde om te navigeren.",
- "UserId": "Gebruikersnaam",
+ "UserId": "Gebruikers ID",
"Username": "Gebruikersnaam",
"UseSMTPServerForEmail": "Gebruik SMTP server voor e-mail",
"Value": "Waarde",
@@ -413,26 +425,27 @@
"VisitConvertedNGoals": "Bezoek heeft %s doelen bereikt",
"VisitDuration": "Gem. duur bezoek (in seconden)",
"Visitor": "Bezoeker",
- "VisitorID": "Bezoekers ID",
- "VisitorIP": "Bezoekers IP",
+ "VisitorID": "ID Bezoeker",
+ "VisitorIP": "IP Bezoeker",
"Visitors": "Bezoekers",
- "VisitorSettings": "Bezoekers Instellingen",
"VisitsWith": "Bezoeken met %s",
+ "VisitorSettings": "Bezoeker Instellingen",
"VisitType": "Type bezoeker",
"VisitTypeExample": "Om bijvoorbeeld het aantal terugkerende bezoekers (inclusief die bezoekers die iets gekocht hebben) te selecteren moet de API %s bevatten",
"Warning": "Let op",
- "WarningFileIntegrityNoManifest": "Bestand integriteit controle kon niet worden uitgevoerd vanwege ontbrekend manifest.inc.php",
+ "WarningPhpVersionXIsTooOld": "Je gebruikt PHP versie %s. Deze heeft de status 'End of Life (OEL)'. We adviseren je ten zeerste om te upgraden naar de recente versie van PHP, omdat de versie die nu gebruikt beveiligingslekken en bugs kan bevatten, welke in meer recente versies van PHP opgelost zijn.",
+ "WarningPiwikWillStopSupportingPHPVersion": "Piwik stopt de ondersteuning van deze PHP versie in %s. Upgrade je PHP versie voor het te laat is!",
+ "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 dat toegang heeft.",
- "WarningPiwikWillStopSupportingPHPVersion": "Piwik stopt de ondersteuning van deze PHP versie in %s. Upgrade je PHP versie voor het te laat is!",
+ "WarningPasswordStored": "%sWaarschuwing:%s Dit wachtwoord zal worden bewaard in het configuratie bestand, zichtbaar voor iedereen die toegang heeft.",
"Website": "Website",
"Weekly": "Wekelijks",
"WeeklyReport": "wekelijks",
"WeeklyReports": "Wekelijkse rapporten",
"WellDone": "Goed gedaan!",
- "Widget": "Widget",
"Widgets": "Widgets",
+ "Widget": "Widget",
"XComparedToY": "%1$s vergeleken met %2$s",
"XFromY": "%1$s van %2$s",
"YearlyReport": "jaarlijks",
@@ -456,12 +469,12 @@
"Advanced": "Geavanceerd",
"AnonymousAccess": "Anonieme toegang",
"AnonymousTracking": "anonieme tracking",
- "AskForAnonymousTrackingPermission": "Wanneer ingeschakeld, zal Piwik Mobile stuurt anonieme gebruiksgegevens te piwik.org. De bedoeling is om deze gegevens te gebruiken om te helpen Piwik Mobile-ontwikkelaars beter te begrijpen hoe de applicatie wordt gebruikt. Gestuurd Informatie is: menu's en instellingen geklikt, OS naam en versie, elke fout weergegeven in Piwik Mobile. We zullen niet volgen van een van uw Analytics-gegevens. Deze anonieme gegevens zullen nooit openbaar worden gemaakt. U kunt uitschakelen \/ anonieme tracking staat in Instellingen op elk moment.",
+ "AskForAnonymousTrackingPermission": "Wanneer ingeschakeld, zal Piwik Mobile anonieme gebruiksgegevens sturen naar Piwik.org. Deze gegevens worden gebruikt om Piwik Mobile-ontwikkelaars te helpen om beter te begrijpen hoe de applicatie wordt gebruikt. De gebruiksgegevens bevatten: Kliks in menu's en instellingen, OS naam en versie, elke fout die weergegeven wordt in Piwik Mobile. We zullen NIETS van uw Analytics gegevens versturen. Deze anonieme gegevens zullen nooit openbaar worden gemaakt. U kunt het versturen van deze gegevens op elk moment uitschakelen in het Instellingen menu.",
"ChooseHttpTimeout": "Kies HTTP-timeout-waarde",
- "ChooseMetric": "Kies Metric",
+ "ChooseMetric": "Kies gegevens",
"ChooseReport": "Kies een rapport",
"ChooseSegment": "Kies het sement",
- "ConfirmRemoveAccount": "Wil je dit account verwijderen?",
+ "ConfirmRemoveAccount": "Wil je deze account verwijderen?",
"DefaultReportDate": "Rapporteer datum",
"EmailUs": "Email ons",
"EnableGraphsLabel": "Toon grafieken",
@@ -472,49 +485,50 @@
"HowtoLoginAnonymous": "Laat gebruikersnaam en wachtwoord leeg voor anonieme login.",
"HttpIsNotSecureWarning": "Uw Piwik autorisatie token (token_auth) wordt verzonden in gewone tekst als u 'HTTP'. Om deze reden adviseren wij HTTPS voor een veilig transport van gegevens via het internet. Wilt u doorgaan?",
"HttpTimeout": "HTTP-Time-out",
- "IgnoreSslError": "SLL Fout Negeren",
- "IncompatiblePiwikVersion": "De Piwik versie die u gebruikt is incompatibel met Piwik Mobile 2. Update uw Piwik installatie en probeer opnieuw of installeer Piwik Mobile 1.",
- "LastUpdated": "Laatste update: %s",
+ "IncompatiblePiwikVersion": "De Piwik versie die je gebruikt is incompatibel met Piwik Mobile 2. Update de Piwik installatie en probeer opnieuw of installeer Piwik Mobile 1.",
+ "LastUpdated": "Laatst Bijgewerkt: %s",
"LoadingReport": "Bezig met laden van %s",
- "LoginCredentials": "Referenties",
- "LoginToPiwikToChangeSettings": "Login op je Piwik server om websites of gebruikers aan te maken of up te daten, of om Algemene Instellingen zoals welk rapport standaard geladen wordt of welk Datuminterval standaard gebruikt wordt.",
+ "LoginCredentials": "Inloggegevens",
+ "LoginToPiwikToChangeSettings": "Log in op je Piwik server om websites of gebruikers aan te maken of te wijzigen, of om Algemene Instellingen zoals welk rapport er standaard geladen wordt.",
"LoginUseHttps": "Gebruik https",
"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.",
"NetworkErrorWithStatusCodeShort": "Netwerk fout %s",
- "NetworkNotReachable": "Network niet bereikbaar",
- "NoAccountIsSelected": "Je moet een account selecteren. Voeg een nieuw accountoe indien je nog geen hebt geconfigureerd.",
+ "NetworkNotReachable": "Netwerk niet bereikbaar",
+ "NoAccountIsSelected": "Je moet een account selecteren. Voeg een nieuwe account toe indien je nog geen hebt geconfigureerd.",
"NoDataShort": "Geen Data",
"NoPiwikAccount": "Geen Piwik account?",
"NoReportsShort": "Geen Rapporten",
- "NoVisitorFound": "Geen bezoekers gevonden",
+ "NoVisitorFound": "Geen bezoeker gevonden",
"NoVisitorsShort": "Geen Bezoekers",
"NoWebsiteFound": "Geen website gevonden",
"NoWebsitesShort": "Geen Websites",
+ "PullDownToRefresh": "Sleep omlaag om te vernieuwen ...",
"PossibleSslError": "Mogelijke SSL certificaat fout",
- "PossibleSslErrorExplanation": "Er is een fout opgetreden, waarvan de oorzaak een foutief of self signed certificaat kan zijn: \"%s\". Inloggen zou kunnen werken wanneer je SSL validatie negeerd, maar dat is minder veilig. Je kunt de SSL validatie op elk moment wijzigen in de instellingen.",
- "PullDownToRefresh": "Trek om te vernieuwen ...",
- "RatingDontRemindMe": "Herrinner me er niet aan",
+ "PossibleSslErrorExplanation": "Er is een fout opgetreden, waarvan de oorzaak een foutief of self signed certificaat kan zijn: \"%s\". Inloggen zou kunnen werken wanneer je SSL validatie negeerd, maar dat is minder veilig. Je kunt de SSL validatie op elk moment wijzigen in het instellingen scherm.",
+ "IgnoreSslError": "SLL Fout Negeren",
+ "RatingDontRemindMe": "Herinner me er niet aan",
"RatingNotNow": "Niet nu",
- "RatingNow": "Ok, waardeer het nu",
- "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 %s. Als u suggesties voor nieuwe functies heeft of foutmeldingen, neem dan a.u.b. contact op met %s",
- "ReleaseToRefresh": "Laat om te vernieuwen ...",
+ "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",
+ "ReleaseToRefresh": "Laat los om te vernieuwen ...",
"Reloading": "Herladen ...",
"RequestTimedOutShort": "Netwerk Timeout fout",
"RestrictedCompatibility": "Beperkte compatibiliteit",
- "SaveSuccessError": "Verifiër uw instellingen",
- "SearchWebsite": "Zoeken websites",
+ "RestrictedCompatibilityExplanation": "Je gebruikt Piwik versie %s. Deze wordt niet volledig ondersteund door Piwik Mobile 2. Je kunt wat problemen ondervinden. We adviseren je om Piwik te updaten naar de nieuwste versie, of gebruik te maken van Piwik Mobile 1.",
+ "SaveSuccessError": "De Piwik URL of je gebruikersnaam \/ wachtwoord combinatie is onjuist.",
+ "SearchWebsite": "Zoeksites",
"ShowAll": "Toon alle",
"ShowLess": "Toon minder",
"StaticGraph": "Overzicht Grafiek",
"TopVisitedWebsites": "Top bezochte websites",
"TryIt": "Probeer het!",
"UseSearchBarHint": "Alleen de eerste %s websites worden hier weergegeven. Gebruik de zoekbalk om uw andere websites te openen.",
+ "VerifyAccount": "Verifiëren Account",
"ValidateSslCertificate": "Valideer SSL Certificaat",
- "VerifyAccount": "verifiëren Account",
- "VerifyLoginData": "Zorg dat je gebruikersnaam en wachtwoord combinatie goed zijn.",
+ "VerifyLoginData": "Zorg dat je gebruikersnaam en wachtwoord combinatie goed is.",
"YouAreOffline": "Sorry, u bent momenteel offline"
},
"RowEvolution": {
@@ -526,7 +540,7 @@
"MetricBetweenText": "tussen %s en %s",
"MetricChangeText": "%s over de periode",
"MetricMinMax": "%1$s zat tussen %2$s en %3$s tijdens de periode",
- "MetricsFor": "Gegegevens voor %s",
+ "MetricsFor": "Gegevens voor %s",
"MultiRowEvolutionTitle": "Trends van meerdere rijen",
"PickAnotherRow": "Kies een volgende rij om te vergelijken",
"PickARow": "Kies een rij om te vergelijken"
diff --git a/lang/nn.json b/lang/nn.json
index cba964da26..264234ea12 100644
--- a/lang/nn.json
+++ b/lang/nn.json
@@ -49,6 +49,7 @@
"ColumnNbActionsDocumentation": "Talet på handlingar gjort av vitjarane dine. Ei handling kan vera sidevisning, nedlasting eller klikking på peikarar.",
"ColumnNbUniqVisitors": "Unike vitjarar",
"ColumnNbUniqVisitorsDocumentation": "Talet på unike vitjarar på nettstaden din. Kvar brukar teljast berre ein gong, sjølv viss dei vitjar vevstaden fleire gong per dag.",
+ "ColumnNbUsers": "Brukarar",
"ColumnNbVisits": "Vitjingar",
"ColumnNbVisitsDocumentation": "Viss ein vitjar kjem til nettstaden for fyrste gong, eller vitjar ei side meir enn 30 minutt etter førre sidevisning, vil dette reknast som ei ny vitjing.",
"ColumnPageBounceRateDocumentation": "Prosenten av vitjingar som starta på denne sida og forsvann frå nettstaden med ein gong.",
@@ -313,8 +314,8 @@
"VisitorID": "Vitjar-ID",
"VisitorIP": "Vitjar-IP",
"Visitors": "Vitjarar",
- "VisitorSettings": "Vitjarinnstillingar",
"VisitsWith": "Vitjingar med %s",
+ "VisitorSettings": "Vitjarinnstillingar",
"VisitType": "Vitjar-type",
"VisitTypeExample": "Døme: For å velja alle vitjarar som kjem attende til vevstaden, inkludert dei som har kjøpt noko førre gong, vil API-førespurnaden innehalde %s",
"Warning": "Åtvaring",
diff --git a/lang/pl.json b/lang/pl.json
index 23bb79bc42..31a5b05d3e 100644
--- a/lang/pl.json
+++ b/lang/pl.json
@@ -28,7 +28,6 @@
"ChooseLanguage": "Wybierz język",
"ChoosePeriod": "Wybierz okres",
"ChooseWebsite": "Wybierz stronę",
- "Clear": "Wyczyść",
"ClickHere": "Kliknij tutaj, aby uzyskać więcej informacji.",
"ClickToChangePeriod": "Kilknij jeszcze raz i zmień okres.",
"Close": "Zamknij",
@@ -154,12 +153,12 @@
"ExceptionPrivilege": "Nie posiadasz dostępu do tych zasobów, ponieważ one wymagają poziomu uprawnień określonych jako %s.",
"ExceptionPrivilegeAccessWebsite": "Nie posiadasz dostępu do tych zasobów, ponieważ one wymagają uprawnień jako %s dla strony o id = %d.",
"ExceptionPrivilegeAtLeastOneWebsite": "Nie posiadasz dostępu do tych zasobów, ponieważ one wymagają uprawnień jako %s w dostępie do przynajmniej jednej strony internetowej.",
- "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.",
- "ExceptionReportNotFound": "Raport nie istnieje.",
"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.",
+ "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.",
"ExpandDataTableFooter": "Zmienić wizualizację lub skonfigurować raport",
"Export": "Eksport",
"ExportAsImage": "Eksport jako obraz",
@@ -288,6 +287,7 @@
"OverlayRowActionTooltipTitle": "Nakładka Otwarta Strona",
"Overview": "Przegląd",
"Pages": "Strony",
+ "Pagination": "%s - %s z %s",
"ParameterMustIntegerBetween": "Parametr %s musi być liczbą całkowitą między %s a %s.",
"Password": "Hasło",
"Period": "Okres",
@@ -323,13 +323,14 @@
"ReportsWillBeProcessedAtMostEveryHour": "Raporty zostaną przetwarzane najwyżej co godzinę.",
"RequestTimedOut": "Żądanie danych w procesie %s nie zostało wykonane w wyznaczonym czasie - time out. Spróbuj ponownie.",
"Required": "%s wymagano",
- "ReturningVisitor": "Powróciło oglądających",
+ "ReturningVisitor": "Odwiedzający powrócił",
"ReturningVisitorAllVisits": "Zobacz wszytskie odwiedziny",
"Rows": "Wierszy",
"RowsToDisplay": "Ilość wierszy",
"Save": "Zapisz",
"SaveImageOnYourComputer": "By zapisać wykres na swoim komputerze, kliknij na nim prawym przyciskiem myszy i wybierz \"Zapisz obrazek jako...",
"Search": "Szukaj",
+ "Clear": "Wyczyść",
"SearchNoResults": "Brak wyników",
"Seconds": "%ss",
"SeeAll": "Zobacz wszystko",
@@ -400,8 +401,8 @@
"VisitorID": "ID oglądającego",
"VisitorIP": "IP oglądającego",
"Visitors": "Oglądający",
- "VisitorSettings": "Konfiguracje użytkownika",
"VisitsWith": "Odwiedzin z %s",
+ "VisitorSettings": "Konfiguracje użytkownika",
"VisitType": "Typ oglądającego",
"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",
@@ -437,6 +438,7 @@
"AddPiwikDemo": "Dodaj Piwik Demo",
"Advanced": "Zaawansowane",
"AnonymousAccess": "Dostęp anonimowy",
+ "AnonymousTracking": "Śledzenie anonimowe",
"ChooseMetric": "Wybierz metrykę",
"ChooseReport": "Wybierz raport",
"ChooseSegment": "Wybierz segment",
@@ -445,7 +447,6 @@
"EmailUs": "Wyślij nam wiadomośc email",
"EnableGraphsLabel": "Wyświetlanie wykresów",
"HowtoDeleteAnAccount": "Naciśnij i przytrzymaj by usunac konto.",
- "IgnoreSslError": "Ignoruj błąd SSL",
"LastUpdated": "Ostatnia aktualizacja: %s",
"LoadingReport": "Ładowanie %s",
"LoginCredentials": "Uprawnienia",
@@ -464,9 +465,11 @@
"NoWebsiteFound": "Nie znaleziono strony",
"NoWebsitesShort": "Brak stron",
"PossibleSslError": "Możliwy błąd certyfikatu SSL",
+ "IgnoreSslError": "Ignoruj błąd SSL",
"RatingDontRemindMe": "Nie przypominaj mi",
"RatingNotNow": "Nie teraz",
"Reloading": "Przeładowanie...",
+ "RestrictedCompatibility": "Ograniczona kompatybilność",
"SaveSuccessError": "Prosimy sprawdzić ustawienia konfiguracyjne",
"SearchWebsite": "Przeszukuj witryny",
"ShowAll": "Pokaż wszystko",
diff --git a/lang/pt-br.json b/lang/pt-br.json
index 6882289d54..903d48a6c5 100644
--- a/lang/pt-br.json
+++ b/lang/pt-br.json
@@ -62,6 +62,7 @@
"ColumnNbActionsDocumentation": "O número de ações realizadas por seus visitantes. As ações podem ser exibições de página, pesquisas internas do site, downloads ou outlinks.",
"ColumnNbUniqVisitors": "Visitantes Únicos",
"ColumnNbUniqVisitorsDocumentation": "O número de visitantes não duplicados que chegam ao seu site. Cada usuário só é contado uma vez, mesmo se ele visita o site várias vezes ao dia.",
+ "ColumnNbUsers": "Usuários",
"ColumnNbVisits": "Visitas",
"ColumnNbVisitsDocumentation": "Se um visitante chega ao seu site pela primeira vez, ou se ele visita uma página de mais de 30 minutos depois de sua última página vista, este será registrado como uma nova visita.",
"ColumnPageBounceRateDocumentation": "A porcentagem de visitas que começou nesta página e deixou o site de imediato.",
@@ -402,8 +403,8 @@
"VisitorID": "Visitante ID",
"VisitorIP": "IP do Visitante",
"Visitors": "Visitantes",
- "VisitorSettings": "Configurações dos visitantes",
"VisitsWith": "Visitas com %s",
+ "VisitorSettings": "Configurações dos visitantes",
"VisitType": "Tipo do Visitante",
"VisitTypeExample": "Por exemplo, para selecionar todos os visitantes que voltaram para o site, incluindo aqueles que compraram algo em suas visitas anteriores, a requisição a API deve conter %s",
"Warning": "Aviso",
diff --git a/lang/pt.json b/lang/pt.json
index 8644570d88..42943ad176 100644
--- a/lang/pt.json
+++ b/lang/pt.json
@@ -51,6 +51,7 @@
"ColumnNbActionsDocumentation": "O número de acções realizadas pelos seus visitantes. As ações podem ser: visualização de páginas, downloads ou links de saída.",
"ColumnNbUniqVisitors": "Visitantes únicos",
"ColumnNbUniqVisitorsDocumentation": "O número de visitantes não duplicados do seu website. Cada utilizador é apenas contabilizado uma vez, mesmo que este visite o site várias vezes ao dia.",
+ "ColumnNbUsers": "Utilizadores",
"ColumnNbVisits": "Visitas",
"ColumnNbVisitsDocumentation": "Se um utilizador visita o seu website pela primeira vez ou permanece mais do que 30 minutos depois da sua última visita, será processado como uma nova visita.",
"ColumnPageBounceRateDocumentation": "A percentagem de visitas que começaram nesta página e deixaram o website imediatamente depois.",
@@ -306,8 +307,8 @@
"VisitorID": "ID do Visitante",
"VisitorIP": "IP do Visitante",
"Visitors": "Visitantes",
- "VisitorSettings": "Definições do Visitante",
"VisitsWith": "Visitas com %s",
+ "VisitorSettings": "Definições do Visitante",
"VisitType": "Tipo de Visitante",
"VisitTypeExample": "Por exemplo, para selecionar todos os visitantes que voltaram ao website, incluindo aqueles que compraram algo nas visitas anteriores, o pedido API contem %s",
"Warning": "Aviso",
diff --git a/lang/ro.json b/lang/ro.json
index eefcb672f6..6e0cac65d7 100644
--- a/lang/ro.json
+++ b/lang/ro.json
@@ -62,6 +62,7 @@
"ColumnNbActionsDocumentation": "Numarul de actiuni facute de vizitatori. Acestea pot fi afisari de pagina, descarcari sau click-uri pe link-uri externe",
"ColumnNbUniqVisitors": "Vizitatori unici",
"ColumnNbUniqVisitorsDocumentation": "Numarul de vizitatori unici pe site-ul dvs. Fiecare utilizator este numarat o singura data, chiar daca a vizitat site-ul de mai multe ori pe zi.",
+ "ColumnNbUsers": "Utilizatori",
"ColumnNbVisits": "Vizite",
"ColumnNbVisitsDocumentation": "Daca un vizitator vine pe site-ul dvs. pentru prima data sau daca viziteaza o pagina mai mult de 30 minute dupa prima afisare, aceasta va fi inregistrata ca o noua vizita",
"ColumnPageBounceRateDocumentation": "Procentajul de vizite care au inceput pe aceasta pagina si au parasit imediat site-ul",
@@ -293,6 +294,7 @@
"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.",
"Password": "Parola",
"Period": "Perioada",
@@ -411,8 +413,8 @@
"VisitorID": "ID vizitator",
"VisitorIP": "IP vizitator",
"Visitors": "Vizitatori",
- "VisitorSettings": "Setări vizitatori",
"VisitsWith": "Vizite cu %s",
+ "VisitorSettings": "Setări vizitatori",
"VisitType": "Tip vizitator",
"VisitTypeExample": "De exemplu, pentru a selecta toti vizitatorii care s-au intors pe site, inclusiv cei care au cumparat in trecut, cererea catre API ar include %s",
"Warning": "Atentie",
diff --git a/lang/sk.json b/lang/sk.json
index 50cfdc1ba5..c7bf4e35a7 100644
--- a/lang/sk.json
+++ b/lang/sk.json
@@ -61,6 +61,7 @@
"ColumnNbActionsDocumentation": "Počet akcií vykonaných návštevníkmi. Akcie môžu byť zhliadnuté stránky, stiahnutia alebo odchádzajúce prekliky.",
"ColumnNbUniqVisitors": "Unikátny návštevníci",
"ColumnNbUniqVisitorsDocumentation": "Počet neduplikovaných návštevníkov na vašu webovú stránku. Každý návštevník sa počíta len raz, aj keď stránku navštívi niekoľko ráz za deň.",
+ "ColumnNbUsers": "Používatelia",
"ColumnNbVisits": "Návštevy",
"ColumnNbVisitsDocumentation": "Ak návšteník príde na vašu webovú stránku prvý krát alebo ak navštívi stránku viac ako 30 minút po poslednej impresii, tak sa to bude počítať ako nová návšteva.",
"ColumnPageBounceRateDocumentation": "Percento návštev, ktoré začali na tejto stránke a potom priamo z webového sídla odišli.",
@@ -370,8 +371,8 @@
"VisitorID": "ID návštevníka",
"VisitorIP": "IP návštevníka",
"Visitors": "Návštevníci",
- "VisitorSettings": "Nastavenia návštevníkov",
"VisitsWith": "Návštevy s %s",
+ "VisitorSettings": "Nastavenia návštevníkov",
"VisitType": "Typ návštevníka",
"VisitTypeExample": "Napríklad: Pre výber všetkých návštevníkov, ktorí sa vrátili na webovú stránku, vrátane tých, ktorí niečo nakúpili počas prechádzajúcej návštevy by API požiadavka obsahovala %s",
"Warning": "Varovanie",
diff --git a/lang/sl.json b/lang/sl.json
index 1621bf562c..d9c616a166 100644
--- a/lang/sl.json
+++ b/lang/sl.json
@@ -57,6 +57,7 @@
"ColumnNbActionsDocumentation": "Število akcij obiskovalcev. Akcije so lahko prikazi strani, prenosi ali izhodi preko zunanjih povezav.",
"ColumnNbUniqVisitors": "Edinstveni obiskovalci",
"ColumnNbUniqVisitorsDocumentation": "Število nepodvojenih obiskovalcev, prihajujočih na vašo spletno stran. V primeru, da obiskovalec spletno stran obišče večkrat v enem dnevu, se to šteje le enkrat.",
+ "ColumnNbUsers": "Uporabniki",
"ColumnNbVisits": "Obiskov",
"ColumnNbVisitsDocumentation": "V primeru da pride obiskovalec na vašo spletno stran prvič, ali pa je njegov obisk daljši od 30 minut, se bo to štelo kot novi obisk.",
"ColumnPageBounceRateDocumentation": "Delež obiskov, ki so se začeli na tej strani, a so nemudoma zapustili spletno stran.",
@@ -342,8 +343,8 @@
"VisitorID": "ID Obiskovalca",
"VisitorIP": "Obiskovalčev IP",
"Visitors": "Obiskovalci",
- "VisitorSettings": "Nastavitve obiskovalcev",
"VisitsWith": "Obiski z\/s %s",
+ "VisitorSettings": "Nastavitve obiskovalcev",
"VisitType": "Vrsta obiskovalca",
"VisitTypeExample": "Na primer, če želite zbrati vse obiskovalce, ki so se vrnili na spletno stran, vključno s tistimi, ki so v prejšnjih obiskih kaj kupili, bi API zahteva vsebovala %s",
"Warning": "Opozorilo",
diff --git a/lang/sq.json b/lang/sq.json
index 76522687c6..91c03ca8b9 100644
--- a/lang/sq.json
+++ b/lang/sq.json
@@ -4,76 +4,97 @@
"AboutPiwikX": "Rreth Piwik-ut %s",
"Action": "Veprim",
"Actions": "Veprime",
+ "Add": "Shtoni",
"AfterEntry": "pas hyrjes këtu",
- "AllowPiwikArchivingToTriggerBrowser": "Lejoje vënien në punë të arkivimit nga Piwik-u kur raportet shihen nga një shfletues",
- "AllWebsitesDashboard": "Pult për krejt site-et Web",
+ "All": "Krejt",
+ "AllowPiwikArchivingToTriggerBrowser": "Lejoje vënien në punë të arkivimit nga Piwik-u kur raportet shihen në një shfletues",
+ "AllWebsitesDashboard": "Pult për krejt sajtet",
+ "And": "dhe",
"API": "API",
"ApplyDateRange": "Zbato Intervalin e Datave",
- "ArchivingInlineHelp": "Për site-e web 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ë %srregulloni një akt cron-i%s që të përpunohen raportet automatikisht.",
+ "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.",
"AuthenticationMethodSmtp": "Metodë mirëfilltësimi për SMTP",
"AverageOrderValue": "Vlerë Mesatare Porosie",
"AveragePrice": "Çmim Mesatar",
"AverageQuantity": "Sasi Mesatare",
"BackToPiwik": "Mbrapsht te Piwik-u",
- "BrokenDownReportDocumentation": "Është zbërthyer në raporte të ndryshme, që tregohen me grafikë vijëzorë në fund të faqes. Grafikët mund t'i zmadhoni duke klikuar te raporti që dëshironi të shihni.",
+ "Broken": "E dëmtuar",
+ "BrokenDownReportDocumentation": "Është zbërthyer në raporte të ndryshme, që tregohen me grafikë vijëzorë në fund të faqes. Grafikët mund t’i zmadhoni duke klikuar te raporti që dëshironi të shihni.",
+ "Cancel": "Anulojeni",
+ "CannotUnzipFile": "S’mund të hapë kartelën zip %1$s: %2$s",
"ChangePassword": "Ndryshoni fjalëkalimin",
- "ChangeTagCloudView": "Ju lutem, 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.",
+ "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 site-in web",
+ "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",
"ColumnActionsPerVisit": "Veprime për Vizitë",
"ColumnActionsPerVisitDocumentation": "Numri mesatar i veprimeve (parje faqesh, shkarkime ose klikime lidhjesh për gjetkë) që janë kryer gjatë vizitave.",
+ "ColumnAverageGenerationTime": "Kohë mesatare krijimi",
+ "ColumnAverageGenerationTimeDocumentation": "Koha mesatare që u desh për krijimin e faqes. Kjo matje përfshin kohën që iu desh shërbyesit të prodhojë faqen web, plus kohën që iu desh vizitorit të shkarkojë përgjigjen nga shërbyesi. Një 'Kohë mesatare krijimi' e ulët nënkupton një sajt më të shpejtë për vizitorët tuaj!",
"ColumnAverageTimeOnPage": "Kohë mesatarisht në faqe",
- "ColumnAverageTimeOnPageDocumentation": "Sasia mesatare e kohës që vizitorët harxhuan në këtë faqe (vetëm te faqja, jo në krejt site-in web).",
- "ColumnAvgTimeOnSite": "Kohë Mesatare te Site-i Web",
+ "ColumnAverageTimeOnPageDocumentation": "Sasia mesatare e kohës që vizitorët harxhuan në këtë faqe (vetëm te faqja, jo në krejt sajtin).",
+ "ColumnAvgTimeOnSite": "Kohë Mesatare te Sajti",
"ColumnAvgTimeOnSiteDocumentation": "Zgjatje mesatare e një vizite.",
"ColumnBounceRate": "Mesatare Kthimesh",
- "ColumnBounceRateDocumentation": "Përqindja e vizitave gjatë të cilave pati vetëm një parje faqeje. Kjo do të thotë, që vizitori e braktisi site-in web drejt e pas faqes hyrëse.",
+ "ColumnBounceRateDocumentation": "Përqindja e vizitave gjatë të cilave pati vetëm një parje faqeje. Kjo do të thotë, që vizitori e braktisi sajtin drejt e pas faqes hyrëse.",
"ColumnBounceRateForPageDocumentation": "Përqindje vizitash që zunë fill dhe përfunduan me këtë faqe.",
"ColumnBounces": "Kthime",
- "ColumnBouncesDocumentation": "Numër vizitash që filluan dhe mbaruan me këtë faqe. Kjo do të thotë që vizitori e braktisi site-in web pasi pa vetëm këtë faqe.",
+ "ColumnBouncesDocumentation": "Numër vizitash që filluan dhe mbaruan me këtë faqe. Kjo do të thotë që vizitori e braktisi sajtin pasi pa vetëm këtë faqe.",
"ColumnConversionRate": "Koeficient Shndërrimi",
"ColumnConversionRateDocumentation": "Përqindja e vizitave që shkaktoi një shndërrim objektivi.",
+ "ColumnDestinationPage": "Faqe e Synuar",
"ColumnEntrances": "Hyrje",
"ColumnEntrancesDocumentation": "Numër vizitash që zunë fill në këtë faqe.",
"ColumnExitRate": "Mesatare Largimesh",
- "ColumnExitRateDocumentation": "Përqindje vizitash që e braktisën site-in web pas parjes së kësaj faqeje.",
+ "ColumnExitRateDocumentation": "Përqindje vizitash që e braktisën sajtin pas parjes së kësaj faqeje.",
"ColumnExits": "Dalje",
"ColumnExitsDocumentation": "Numër vizitash që përfunduan me këtë faqe.",
+ "ColumnGenerationTime": "Kohë prodhimi",
"ColumnKeyword": "Fjalëkyç",
"ColumnLabel": "Etiketë",
"ColumnMaxActions": "Veprime maksimum në një vizitë",
"ColumnNbActions": "Veprime",
"ColumnNbActionsDocumentation": "Numri i veprimeve të kryera nga vizitorët tuaj. Veprimet mund të jenë parje faqesh, shkarkime ose klikime lidhjesh për diku gjetkë.",
"ColumnNbUniqVisitors": "Vizitorë unikë",
- "ColumnNbUniqVisitorsDocumentation": "Numri jo i shumëfishuar i vizitorëve që vijnë në site-in tuaj web. Çdo përdorues numërohet vetëm një herë, edhe pse e viziton site-in disa herë në ditë.",
+ "ColumnNbUniqVisitorsDocumentation": "Numri, pa përsëdytje, i vizitorëve që vijnë në sajtin tuaj. Çdo përdorues numërohet vetëm një herë, edhe pse e viziton sajtin disa herë në ditë.",
+ "ColumnNbUsers": "Përdorues",
+ "ColumnNbUsersDocumentation": "Numri i vizitorëve që kanë bërë hyrjen e autorizuar në sajtin tuaj. Ky është numri i përdoruesve unikë aktivë që kanë të caktuar një ID Përdoruesi (përmes funksionit për kod Gjurmimi 'setUserId').",
"ColumnNbVisits": "Vizita",
- "ColumnNbVisitsDocumentation": "Nëse një vizitor vjen për herë të parë në site-in tuaj web ose nëse e viziton një faqe më shumë se 30 minuta më vonë pasi ka parë faqen e fundit, kjo do të regjistrohet si vizitë e re.",
- "ColumnPageBounceRateDocumentation": "Përqindje vizitash që zunë fill në këtë faqe dhe e braktisën site-in menjëherë.",
+ "ColumnNbVisitsDocumentation": "Nëse një vizitor vjen për herë të parë në sajtin tuaj, ose nëse e viziton një faqe pas më shumë se 30 minutash pasi ka parë faqen e fundit, kjo do të regjistrohet si vizitë e re.",
+ "ColumnPageBounceRateDocumentation": "Përqindje vizitash që zunë fill në këtë faqe dhe e braktisën sajtin menjëherë.",
"ColumnPageviews": "Shikime faqesh",
"ColumnPageviewsDocumentation": "Sa herë është vizituar kjo faqe.",
"ColumnPercentageVisits": "% Vizita",
"ColumnRevenue": "Të ardhura",
"ColumnSumVisitLength": "Kohë gjithsej e harxhuar nga vizitorët (në sekonda)",
+ "ColumnTotalPageviews": "Parje faqesh Gjithsej",
"ColumnUniqueEntrances": "Hyrje unike",
"ColumnUniqueExits": "Dalje unike",
"ColumnUniquePageviews": "Shikime Unike Faqesh",
"ColumnUniquePageviewsDocumentation": "Numër vizitash që përfshinë edhe këtë faqe. Nëse një faqe qe parë disa herë gjatë një vizite, numërohet vetëm një herë.",
"ColumnValuePerVisit": "Vlerë për Vizitë",
+ "ColumnViewedAfterSearch": "Përfundime kërkimi të klikuara",
+ "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 lutem, ndryshoni lejet mbi kartelën e formësimit për ta bërë të shkruajtshme.",
+ "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.",
+ "Continue": "Vazhdo",
"ContinueToPiwik": "Vazhdoni te Piwik-u",
"CurrentMonth": "Muaji i Tanishëm",
"CurrentWeek": "Java e Tanishme",
"CurrentYear": "Viti i Tanishëm",
"Daily": "Përditë",
+ "DailyReport": "përditë",
+ "DailyReports": "Raporte të përditshme",
"DailySum": "shumë ditore",
- "DashboardForASpecificWebsite": "Pult për një site web të caktuar",
+ "DashboardForASpecificWebsite": "Pult për një sajt të caktuar",
+ "DataForThisGraphHasBeenPurged": "Të dhënat e këtij grafiku janë më të vjetra se %s muaj dhe u fshinë.",
+ "DataForThisTagCloudHasBeenPurged": "Të dhënat për këtë re etiketash janë më të vjetra se %s muaj dhe u fshinë.",
"Date": "Datë",
"DateRange": "Interval datash:",
"DateRangeFrom": "Prej",
@@ -92,24 +113,33 @@
"DayTu": "Ma",
"DayWe": "Më",
"Default": "Parazgjedhje",
+ "DefaultAppended": "(default)",
"Delete": "Fshije",
"Description": "Përshkrim",
+ "Desktop": "Desktop",
"Details": "Hollësi",
"Discount": "Ulje Çmimi",
"DisplaySimpleTable": "Shfaq një tabelë të thjeshtë",
"DisplayTableWithGoalMetrics": "Shfaq një tabelë me matje Objektivash",
"DisplayTableWithMoreMetrics": "Shfaq një tabelë me më tepër matje",
+ "Documentation": "Dokumentim",
+ "Donate": "Dhurime",
"Done": "U bë",
"Download": "Shkarkojeni",
+ "DownloadFail_FileExists": "Kartela %s ekziston!",
+ "DownloadFail_FileExistsContinue": "Po përpiqet të vazhdojë shkarkimin e %s, por ka tashmë një kartelë të shkarkuar plotësisht!",
+ "DownloadFail_HttpRequestFail": "Kartela s’u shkarkua dot! Diçka mund të jetë gabim te sajti prej të cilit po shkarkoni. Mund të riprovoni më vonë ose ta merrni vetë kartelën.",
"DownloadFullVersion": "%1$sShkarkoni%2$s versionin e plotë! Shihni %3$s",
+ "DownloadPleaseRemoveExisting": "Nëse doni të zëvendësohet, ju lutemi, hiqni kartelën ekzistuese.",
"Downloads": "Shkarkime",
"EcommerceOrders": "Porosi E-tregtie",
"EcommerceVisitStatusDesc": "Shihni gjendjen e E-trgtisë në fund të vizitës",
"EcommerceVisitStatusEg": "Për shembull, për të përzgjedhur krejt vizitat që janë bërë një porosi E-tregti, kërkesa API do të duhej të përmbante %s",
"Edit": "Përpunojeni",
- "EncryptedSmtpTransport": "Jepni kodimin e shtresës së transportimit siç e kërkon shërbyesi juaj SMTP.",
+ "EncryptedSmtpTransport": "Jepni kodimin e shtresës së mbartjes siç e kërkon shërbyesi juaj SMTP.",
"EnglishLanguageName": "Albanian",
"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ë.",
"EvolutionOverPeriod": "Zhvillime përgjatë periudhës",
"ExceptionConfigurationFileNotFound": "Nuk u gjet kartela {%s} e formësimit.",
"ExceptionDatabaseVersion": "Versioni juaj për %1$s është %2$s por Piwik-u lyp të paktën %3$s.",
@@ -141,8 +171,11 @@
"Faq": "FAQ",
"FileIntegrityWarningExplanation": "Kontrolli i pacënueshmërisë së kartelës dështoi dhe njoftoi për disa gabime. Kjo ka shumë të ngjarë të vijë për shkak të një ngarkimi të pjesshëm ose të pasuksesshëm të disa kartelave Piwik. Do të duhej të ringarkonit krejt kartelat e Piwik-ut në trajtë DYORE dhe të rifreskoni faqen derisa të mos tregojë më gabim.",
"First": "I pari",
+ "Flatten": "Flatten",
"ForExampleShort": "p.sh.",
+ "Forums": "Forums",
"FromReferrer": "prej",
+ "General": "General",
"GiveUsYourFeedback": "Na jepni Përshtypjet!",
"Goal": "Objektiv",
"GoTo": "Shko te %s",
@@ -154,10 +187,14 @@
"IfArchivingIsFastYouCanSetupCronRunMoreOften": "Duke pranuar që arkivimi në site-in tuaj është i shpejtë, mund ta rregulloni crontab-in të xhirojë më shpesh.",
"InvalidDateRange": "Interval i Pavlefshëm Datash, Ju lutem, Riprovoni",
"InvalidResponse": "Të dhënat e marra janë të pavlefshme.",
+ "IP": "IP",
"JsTrackingTag": "Kod JavaScript Gjurmimi",
"Language": "Gjuhë",
"LastDays": "%s ditët e fundit (përfshirë të sotmen)",
+ "LastDaysShort": "Last %s days",
"LayoutDirection": "ltr",
+ "LearnMore": "%1$slearn more%2$s",
+ "Live": "Live",
"Loading": "Po ngarkohet...",
"LoadingData": "Po ngarkohen të dhënat...",
"Locale": "sq_AL.UTF-8",
@@ -182,12 +219,17 @@
"LongMonth_8": "Gusht",
"LongMonth_9": "Shtator",
"MainMetrics": "Llogaritjet kryesore",
- "MediumToHighTrafficItIsRecommendedTo": "Për site-e web 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).",
+ "Matches": "Matches",
+ "MediumToHighTrafficItIsRecommendedTo": "Për site-e web 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).",
"Metadata": "Tejtëdhëna",
- "MetricsToPlot": "Matje për t'u hedhur në grafik",
- "MetricToPlot": "Matje për t'u hedhur në grafik",
+ "Metric": "Metric",
+ "Metrics": "Metrics",
+ "MetricsToPlot": "Matje për t’u hedhur në grafik",
+ "MetricToPlot": "Matje për t’u hedhur në grafik",
"MinutesSeconds": "%1$s minuta %2$ss",
+ "Mobile": "Mobile",
"Monthly": "Përmuaj",
+ "MoreLowerCase": "more",
"MultiSitesSummary": "Krejt Site-et Web",
"Name": "Emër",
"NbActions": "Numër Veprimesh",
@@ -198,16 +240,21 @@
"NewVisitor": "Vizitor i Ri",
"NewVisits": "Vizita të reja",
"Next": "Pasuesja",
+ "NMinutes": "%s minutes",
"No": "Jo",
"NoDataForGraph": "Pa të dhëna për këtë grafik",
"NoDataForTagCloud": "Pa të dhëna për këtë re etiketash.",
"NotDefined": "%s pa u përkufizuar",
+ "Note": "Note",
"NotValid": "%s nuk është e vlefshme",
"NSeconds": "%s sekonda",
"NumberOfVisits": "Numër vizitash",
+ "NUsers": "%s users",
"NVisits": "%s vizita",
"Ok": "Ok",
+ "OneAction": "1 action",
"OneDay": "1 ditë",
+ "OneMinute": "1 minute",
"OneVisit": "1 vizitë",
"OnlyEnterIfRequired": "Jepni emër përdoruesi vetëm nëse shërbyesi juaj SMTP lyp një të tillë.",
"OnlyEnterIfRequiredPassword": "Jepni fjalëkalim vetëm nëse shërbyesi juaj SMTP lyp një të tillë.",
@@ -219,8 +266,11 @@
"Others": "Tjetër",
"Outlink": "Lidhje për gjetiu",
"Outlinks": "Lidhje për Jashtë",
+ "OverlayRowActionTooltipTitle": "Open Page Overlay",
"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.",
"Password": "Fjalëkalim",
"Period": "Periudhë",
@@ -233,27 +283,32 @@
"PoweredBy": "Bazuar në",
"Previous": "E mëparshmja",
"PreviousDays": "%s ditë më parë (pa përfshirë të sotmen)",
+ "PreviousDaysShort": "Previous %s days",
"Price": "Çmim",
"ProductConversionRate": "Kurs Këmbimi Produkti",
"ProductRevenue": "Të ardhura Produkti",
"PurchasedProducts": "Produkte të Blerë",
"Quantity": "Sasi",
"Recommended": "(e këshilluar)",
- "RecordsToPlot": "Regjistrime për t'u hedhur në grafik",
+ "RecordsToPlot": "Regjistrime për t’u hedhur në grafik",
"RefreshPage": "Rifreskoje faqen",
"Report": "Raport",
+ "ReportRatioTooltip": "'%1$s' represents %2$s of %3$s %4$s with %5$s.",
"Reports": "Raporte",
"ReportsContainingTodayWillBeProcessedAtMostEvery": "Raportet për ditën e sotme (ose për çfarëdo Intervali Datash që përfshin ditën e sotme) do të përpunohen e shumta çdo",
"ReportsWillBeProcessedAtMostEveryHour": "Ndaj raportet do të përpunohen e shumta çdo një orë.",
"RequestTimedOut": "Kërkesës për të dhëna te %s i mbaroi koha. Ju lutem, riprovoni.",
"Required": "%s i domosdoshëm",
"ReturningVisitor": "Vizitor i Mëparshëm",
+ "Rows": "Rows",
"RowsToDisplay": "Rreshta për shfaqje",
"Save": "Ruaje",
"SaveImageOnYourComputer": "Për ta ruajtur figurën në kompjuterin tuaj, djathtasklikoni mbi figurën dhe përzgjidhni \"Ruajeni Figurën Si...\"",
"Search": "Kërko",
+ "Clear": "Clear",
"Seconds": "%ss",
"SeeTheOfficialDocumentationForMoreInformation": "Për më tepër të dhëna, shihni %sdokumentimin zyrtar%s.",
+ "SeeThisFaq": "See %1$sthis faq%2$s.",
"SelectYesIfYouWantToSendEmailsViaServer": "Përzgjidhni \"Po\" nëse doni të dërgoni, ose keni për të dërguar, e-mail përmes një shërbyesi të emërtuar, në vend se përmes të një funksioni vendor poste",
"Settings": "Rregullime",
"Shipping": "Dërgesë",
@@ -286,8 +341,11 @@
"Table": "Tabelë",
"TagCloud": "Re Etiketash",
"Tax": "Taksë",
+ "TimeAgo": "%s ago",
+ "TimeOnPage": "Time on page",
"Today": "Sot",
"Total": "Gjithsej",
+ "TotalRatioTooltip": "This is %1$s of all %2$s %3$s.",
"TotalRevenue": "Të ardhura Gjithsej",
"TranslatorEmail": "besnik@programeshqip.org",
"TranslatorName": "Besnik Bleta",
@@ -295,11 +353,13 @@
"Unknown": "I panjohur",
"Upload": "Ngarkoje",
"UsePlusMinusIconsDocumentation": "Për lëvizje përdorni ikonën plus dhe minus majtas.",
+ "UserId": "User ID",
"Username": "Emër përdoruesi",
"UseSMTPServerForEmail": "Për e-mail përdor shërbyes SMTP",
"Value": "Vlerë",
"VBarGraph": "Grafikë me shtylla vertikale",
"View": "Pamje",
+ "ViewDocumentationFor": "View documentation for %1$s",
"Visit": "Vizitë",
"VisitConvertedGoal": "Vizita shndërroi të paktën një Objektiv",
"VisitConvertedGoalId": "Vizita shndërroi një Id specifike Objektivi",
@@ -309,8 +369,8 @@
"VisitorID": "ID vizitori",
"VisitorIP": "IP vizitori",
"Visitors": "Vizitorë",
- "VisitorSettings": "Rregullimet për Vizitor",
"VisitsWith": "Vizita me %s",
+ "VisitorSettings": "Rregullimet për Vizitor",
"VisitType": "Lloj vizitori",
"VisitTypeExample": "Për shembull, për përzgjedhjen e krejt vizitorëve që janë rikthyer te site-i web, përfshi ata që kanë blerë diçka gjatë vizitash të mëparshme, kërkesa API do të duhej të përmbante %s",
"Warning": "Sinjalizim",
@@ -320,7 +380,9 @@
"Website": "\"Site\" Web",
"Weekly": "Përjavë",
"Widgets": "Widget-e",
+ "Widget": "Widget",
"YearsDays": "%1$s vite %2$s ditë",
+ "YearShort": "yr",
"Yes": "Po",
"Yesterday": "Dje",
"YouAreCurrentlyUsing": "Jeni duke përdorur Piwik %s.",
diff --git a/lang/sr.json b/lang/sr.json
index bec72cb881..a1bb688f06 100644
--- a/lang/sr.json
+++ b/lang/sr.json
@@ -62,6 +62,7 @@
"ColumnNbActionsDocumentation": "Broj akcija odrađenih od strane Vaših posetilaca. Akcije mogu biti pregledi strana, skidanje materijala sa sajta ili linkovi van sajta.",
"ColumnNbUniqVisitors": "Jedinstveni posetioci",
"ColumnNbUniqVisitorsDocumentation": "Broj jedinstvenih posetioca koji dolaze na Vaš sajt. Svaki korisnik se računa jednom, čak i ako poseti sajt više puta dnevno.",
+ "ColumnNbUsers": "Korisnici",
"ColumnNbVisits": "Posete",
"ColumnNbVisitsDocumentation": "Ako posetilac dođe na Vaš sajt po prvi put ili ako poseti stranu više od 30min nakon zadnjeg pregleda, onda se njegova poseta računa kao nova poseta.",
"ColumnPageBounceRateDocumentation": "Procenat poseta koje su počele na ovoj stranici i odmah napustile sajt.",
@@ -162,12 +163,12 @@
"ExceptionPrivilege": "Ne možete pristupiti resursu pošto to zahteva %s.",
"ExceptionPrivilegeAccessWebsite": "Ne možete pristupiti resursu pošto to zahteva %s za sajt id = %d.",
"ExceptionPrivilegeAtLeastOneWebsite": "Ne možete pristupiti resursu pošto to zahteva %s za barem jedan sajt.",
- "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.",
- "ExceptionReportNotFound": "Zahtevani izveštaj ne postoji.",
"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.",
+ "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.",
"ExpandDataTableFooter": "Promeni izgled ili podesi izveštaj",
"Export": "Izvoz",
"ExportAsImage": "Snimi kao sliku",
@@ -297,6 +298,7 @@
"OverlayRowActionTooltipTitle": "Otvorite prikaz",
"Overview": "Pregled",
"Pages": "Stranice",
+ "Pagination": "%s - %s od %s",
"ParameterMustIntegerBetween": "Parametar %s mora biti celobrojna vrednost između %s i %s",
"Password": "Lozinka",
"Period": "Period",
@@ -415,8 +417,8 @@
"VisitorID": "ID posetioca",
"VisitorIP": "IP adresa posetioca",
"Visitors": "Posetioci",
- "VisitorSettings": "Parametri posetilaca",
"VisitsWith": "Posete sa %s",
+ "VisitorSettings": "Parametri posetilaca",
"VisitType": "Tip posetioca",
"VisitTypeExample": "Na primer, kako biste obeležili sve posetioce koji su se vratili na sajt, uključujući i one koji su već nešto kupili, API zahtev bi sadržao %s",
"Warning": "Upozorenje",
@@ -469,7 +471,6 @@
"HowtoLoginAnonymous": "Ukoliko želite da se prijavite anonimno, ostavite polja \"korisničko ime\" i \"lozinka\" prazno",
"HttpIsNotSecureWarning": "Vaš Piwik autorizacioni token (token_auth) će biti poslat kao običan tekst ako koristite 'HTTP'. Zbog toga vam savetujemo da koristite HTTPS za siguran prenos podataka preko Interneta. Da li želite da nastavite?",
"HttpTimeout": "HTTP tajmaut",
- "IgnoreSslError": "Ignoriši SSL grešku",
"IncompatiblePiwikVersion": "Verzija Piwik-a koju trenutno koristite nije kompatibilna sa Mobilnim Piwik-om 2. Ažurirajte vaš Piwik ili instalirajte Mobilni Piwik 1.",
"LastUpdated": "Poslednji put ažurirano: %s",
"LoadingReport": "Učitavanje %s",
@@ -490,9 +491,10 @@
"NoVisitorsShort": "Nema posetilaca",
"NoWebsiteFound": "Nije nađen nijedan sajt",
"NoWebsitesShort": "Nema sajtova",
+ "PullDownToRefresh": "Povucite na dole za nove podatke...",
"PossibleSslError": "Moguća greška sa SSL sertifikatom",
"PossibleSslErrorExplanation": "Došlo je do greške koju je mogao da prouzrokuje nevažeći i samopotpisani sertifikat: \"%s\". Prijava na sistem uz ignorisanje sertifikata će možda i raditi ali nije toliko bezbedna. Možete promeniti podešavanja oko validacije SSL-a u bilo kom trenutku.",
- "PullDownToRefresh": "Povucite na dole za nove podatke...",
+ "IgnoreSslError": "Ignoriši SSL grešku",
"RatingDontRemindMe": "Nemoj da me podsećaš",
"RatingNotNow": "Ne sad",
"RatingNow": "U redu, oceniću ga sad",
@@ -510,8 +512,8 @@
"TopVisitedWebsites": "najposećenijih sajtova",
"TryIt": "Probajte!",
"UseSearchBarHint": "Prikazano je samo prvih %s sajtova. Molimo vas da upotrebite polje za pretragu kako biste pristupili ostalim sajtovima.",
- "ValidateSslCertificate": "Validacija SSL sertifikata",
"VerifyAccount": "Provera naloga",
+ "ValidateSslCertificate": "Validacija SSL sertifikata",
"VerifyLoginData": "Proverite da li je tačna kombinacija korisničko ime i lozinka.",
"YouAreOffline": "Niste povezani na Internet"
},
diff --git a/lang/sv.json b/lang/sv.json
index c52f25f62a..54c0b11b6f 100644
--- a/lang/sv.json
+++ b/lang/sv.json
@@ -29,7 +29,6 @@
"ChooseLanguage": "Välj språk",
"ChoosePeriod": "Välj period",
"ChooseWebsite": "Välj webbplats",
- "Clear": "Rensa",
"ClickHere": "Klicka här för mer information.",
"ClickToChangePeriod": "Klicka igen för att byta period.",
"Close": "Stäng",
@@ -166,10 +165,10 @@
"ExceptionPrivilege": "Du kan inte komma åt denna resurs eftersom det kräver %s tillträde.",
"ExceptionPrivilegeAccessWebsite": "Du kan inte komma åt denna resurs eftersom det åtminstone kräver %s tillträde till webbplatsen med id: %d.",
"ExceptionPrivilegeAtLeastOneWebsite": "Du kan inte komma åt denna resurs eftersom det åtminstone kräver %s tillträde till en webbplats.",
- "ExceptionReportNotFound": "Den begärda rapporten finns inte.",
"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.",
+ "ExceptionReportNotFound": "Den begärda rapporten finns inte.",
"ExpandDataTableFooter": "Ändra visualiseringen eller konfigurera rapporten",
"Export": "Exportera",
"ExportAsImage": "Exportera som bild",
@@ -181,8 +180,8 @@
"ForExampleShort": "t.ex.",
"Forums": "Forum",
"FromReferrer": "från",
- "General": "Allmänt",
"GeneralInformation": "Allmän information",
+ "General": "Allmänt",
"GetStarted": "Kom igång",
"GiveUsYourFeedback": "Lämna din feedback!",
"Goal": "Mål",
@@ -301,6 +300,7 @@
"OverlayRowActionTooltipTitle": "Öppna Sidöverlägg",
"Overview": "Översikt",
"Pages": "Sidor",
+ "Pagination": "%s - %s av %s",
"ParameterMustIntegerBetween": "Parametern %s måste vara ett heltal mellan %s och %s.",
"Password": "Lösenord",
"Period": "Period",
@@ -347,6 +347,7 @@
"Save": "Spara",
"SaveImageOnYourComputer": "För att spara bilden på din dator, högerklicka på bilden och välj \"Spara bild som...\"",
"Search": "Sök",
+ "Clear": "Rensa",
"SearchNoResults": "Inget resultat",
"Seconds": "%ss",
"SeeAll": "Se hela",
@@ -420,16 +421,16 @@
"VisitorID": "Besöks-id",
"VisitorIP": "Besökarens IP",
"Visitors": "Besökare",
- "VisitorSettings": "Besökarinställningar",
"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",
+ "WarningPiwikWillStopSupportingPHPVersion": "Piwik kommer inte längre stödja den här versionen av PHP om %s. Uppgradera din PHP-version 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.",
- "WarningPiwikWillStopSupportingPHPVersion": "Piwik kommer inte längre stödja den här versionen av PHP om %s. Uppgradera din PHP-version innan det är för sent.",
"Website": "Webbplats",
"Weekly": "Veckovis",
"WeeklyReport": "veckovis",
@@ -512,8 +513,8 @@
"TopVisitedWebsites": "Mest besökta webbplatser",
"TryIt": "Prova!",
"UseSearchBarHint": "Endast de första %s webbplatserna visas här. Använd sökfältet för att komma åt dina andra webbplatser.",
- "ValidateSslCertificate": "Validera SSL-certifikat",
"VerifyAccount": "Verifierar konto",
+ "ValidateSslCertificate": "Validera SSL-certifikat",
"VerifyLoginData": "Kontrollera så att ditt användarnamn och lösenord är korrekt.",
"YouAreOffline": "Tyvärr, du är offline just nu"
},
diff --git a/lang/ta.json b/lang/ta.json
index 8350de504f..3c7d92bc65 100644
--- a/lang/ta.json
+++ b/lang/ta.json
@@ -15,17 +15,20 @@
"AverageOrderValue": "சராசரி ஒழுங்கு மதிப்பு",
"AveragePrice": "சராசரி விலை",
"AverageQuantity": "சராசரி அளவு",
+ "BackToPiwik": "பிவிக்கு திரும்ப",
"Broken": "உடைவு",
"Cancel": "ரத்து",
"ChangePassword": "கடவுச்சொல்லை மாற்ற",
"ChooseDate": "திகதியை தெரிவுசெய்ய",
"ChoosePeriod": "காலப்பகுதியை தெரிவு செய்ய",
+ "ChooseWebsite": "இணையதளத்தை தெரிவு செய்ய",
"ClickHere": "மேலதிக தகவல்களுக்கு இங்கே சொடுக்குக",
"Close": "மூட",
"ColumnActionsPerVisit": "வருகைக்கேட்ற்ற நடவடிக்கைகள்",
"ColumnAverageGenerationTime": "சராசரி உற்பத்தி நேரம்",
"ColumnAverageTimeOnPage": "பக்கத்தில் நின்ற சராசரி நேரம்",
"ColumnAvgTimeOnSite": "இணையதளத்தில் நின்ற சராசரி நேரம்",
+ "ColumnBounceRate": "குதிப்பு வீதம்",
"ColumnBounces": "மேலதிக கொடுப்பனவுகள்",
"ColumnConversionRate": "உருமாற்ற விகிதம்",
"ColumnDestinationPage": "சேரும் பக்கம்",
@@ -34,9 +37,11 @@
"ColumnExits": "வெளியேற",
"ColumnGenerationTime": "உற்பத்தி நேரம்",
"ColumnKeyword": "திறவுச்சொல்",
+ "ColumnLabel": "வகை",
"ColumnMaxActions": "ஒரு வருகையின் போது அதிக செயல்கள்",
"ColumnNbActions": "செயல்கள்",
"ColumnNbUniqVisitors": "தனித்துவமான பார்வையாளர்கள்",
+ "ColumnNbUsers": "பாவனையாளர்கள்",
"ColumnNbVisits": "பார்வைகள்",
"ColumnPageviews": "பக்கப்பார்வைகள்",
"ColumnPercentageVisits": "% வருகைகள்",
@@ -47,12 +52,18 @@
"ColumnVisitDuration": "வருகை காலப்பகுதி (செக்கன்களில்)",
"Continue": "தொடர",
"ContinueToPiwik": "பிவிக்-க்கு தொடர்க",
+ "CurrentMonth": "இந்த மாதம்",
"CurrentWeek": "இவ்வாரம்",
+ "CurrentYear": "இந்த வருடம்",
"Daily": "நாளாந்தம்",
+ "DailyReport": "நாளாந்தம்",
"DailyReports": "நாளாந்த அறிக்கைகள்",
"Date": "திகதி",
+ "DateRange": "திகதி வீச்சு",
"DateRangeFrom": "இருந்து",
+ "DateRangeFromTo": "%s இருந்து %s வரை",
"DateRangeInPeriodList": "திகதி வீச்சு",
+ "DateRangeTo": "க்கு",
"DayFr": "வெ",
"DayMo": "தி",
"DaySa": "ச",
@@ -62,14 +73,19 @@
"DayTu": "செ",
"DayWe": "பு",
"Default": "பொதுஅமைப்பு",
+ "DefaultAppended": "(பொது)",
"Delete": "அழிக்க",
+ "Description": "குறிப்பீடு",
"Desktop": "டெஸ்க்டாப்",
"Details": "விவரங்கள்",
+ "Discount": "சலுகை",
"DisplaySimpleTable": "இலகு அட்டவணையை காண்பிக்க",
"Documentation": "ஆவணங்கள்",
"Done": "முடிந்தது",
+ "Download": "பதிவிறக்கங்கள்",
"DownloadFail_FileExists": "%s கூப்பு ஏற்கனவே உள்ளது",
"Downloads": "பதிவிறக்கங்கள்",
+ "EcommerceOrders": "மின் வணிக கட்டளைகள்",
"Edit": "மாற்ற",
"EnglishLanguageName": "Tamil",
"Error": "பிழை",
@@ -78,16 +94,21 @@
"First": "முதல்",
"ForExampleShort": "எ.கா",
"FromReferrer": "இருந்து",
+ "GeneralInformation": "பொதுத்தகவல்",
+ "General": "பொது",
"GiveUsYourFeedback": "எங்களுக்கு பின்னூட்டம் வழங்குங்கள்",
"GoTo": "%s க்கு போக",
"Help": "உதவி",
+ "Hide": "மறை",
"Id": "இல",
"Installed": "நிறுவப்பட்டது",
"IP": "இணைய வரைமுறை",
+ "JsTrackingTag": "ஜாவஸ்க்ரிப்ட் கண்காணிப்பு குறியீடு",
"Language": "மொழி",
"LayoutDirection": "ltr",
"Live": "நிகழ்நேரம்",
- "LoadingData": "தரவிறக்கபடுகிறது....",
+ "Loading": "தரவிறக்கபடுகிறது....",
+ "LoadingData": "தகவல் தரவிறக்கபடுகிறது....",
"Locale": "ta_IN.UTF-8",
"Logout": "வெளியேற",
"LongDay_1": "ஞாயிறு",
@@ -112,37 +133,50 @@
"MainMetrics": "முக்கிய அளவீடுகள்",
"Matches": "பொருத்தங்கள்",
"Mobile": "கைபேசி",
+ "Monthly": "மாதாந்த",
"MonthlyReport": "மாதாந்த",
+ "MonthlyReports": "மாதாந்த அறிக்கைகள்",
"More": "மேலும்",
+ "MoreLowerCase": "மேலும்",
"MultiSitesSummary": "எல்லா இணைய பக்கங்களும்",
"Never": "எப்போதுமில்லை",
"NewUpdatePiwikX": "புதிய புதுப்பிப்பு: %s Piwik",
+ "NewVisitor": "புதிய வருகையாளர்",
"NewVisits": "புதிய வருகைகள்",
"No": "இல்லை",
"NotDefined": "%s வரையறுக்கப்படவில்லை",
+ "Note": "எதுவும் இல்லை",
"NotInstalled": "நிறுவப்படவில்லை",
"NSeconds": "%s வினாடிகள்",
"Ok": "சரி",
+ "OneAction": "1 செயல்",
"OneDay": "1 நாள்",
+ "OneMinute": "1 நிமிடம்",
"OneVisit": "1 வருகை",
"OpenSourceWebAnalytics": "திறந்த மூலக்கூற்று இணைய பகுப்பாய்வு",
"OperationContains": "உள்ளடக்கம்",
"OperationGreaterThan": "இதை விட பெரிய",
"OperationIsNot": "இல்லையா",
+ "OperationLessThan": "இதை விட குறைவாக",
"OperationNotEquals": "சமனில்லை",
"Options": "தெரிவுகள்",
"OriginalLanguageName": "தமிழ்",
"Others": "மற்றவை",
"Outlinks": "வெளி இணைப்புகள்",
"Overview": "மேற்பார்வை",
+ "Pages": "பக்கங்கள்",
"Password": "கடவுச்சொல்",
"Period": "காலப்பகுதி",
+ "Piechart": "பை வரைபு",
+ "PleaseUpdatePiwik": "தயவுசெய்து உங்கள் பிவிக்கினை புதுப்பிக்கவும்",
"Plugin": "சொருகி",
"Plugins": "சொருகிகள்",
"PoweredBy": "வலுவூட்டப்பட்டது",
+ "Previous": "முன்னது",
"Price": "பெறுமதி",
"Recommended": "(பரிந்துரை)",
"Refresh": "புதுப்பிக்க",
+ "RelatedReport": "சார்பான அறிக்கைகள்",
"RelatedReports": "சார்ந்த அறிக்கைகள்",
"Remove": "நீக்கு",
"Report": "அறிக்கை",
@@ -151,8 +185,10 @@
"Required": "%s அவசியம் தேவை",
"ReturningVisitor": "திரும்பிய வருகையாளர்",
"ReturningVisitorAllVisits": "அனைத்து வரவுகளையும் பார்க்க",
+ "Rows": "நிரைகள்",
"Save": "சேமி",
"Search": "தேடு",
+ "Clear": "சுத்தப்படுத்து",
"SearchNoResults": "எந்த முடிவுகளும் இல்லை",
"Seconds": "%s நொடிகள்",
"SeeAll": "எல்லாவற்றையும் காண",
@@ -190,16 +226,18 @@
"Table": "அட்டவணை",
"TagCloud": "சொற்க் குழு",
"Tax": "வரி",
+ "TimeAgo": "%s முன்பு",
"TimeOnPage": "பக்க நேரம்",
"Today": "இன்று",
"Total": "மொத்தம்",
"TotalRevenue": "மொத்த வருமானம்",
"TransitionsRowActionTooltipTitle": "வெளிப்படையான மாற்றங்கள்",
"TranslatorEmail": "hello@piwik.org",
- "TranslatorName": "Gowtham Sadasivam",
+ "TranslatorName": "-",
"UniquePurchases": "தனிப்பட்ட கொள்முதல்கள்",
"Unknown": "தெரியாத",
"Upload": "பதிவேற்றம்",
+ "UserId": "பாவனையாளர் பெயர்",
"Username": "பயனாளர் பெயர்",
"UseSMTPServerForEmail": "ஈமெயில் அனுப்ப எஸ்எம்டீபி சர்வர்-ஐ பயன்படுத்தவும்",
"Value": "மதிப்பு",
@@ -213,28 +251,58 @@
"VisitType": "வருகையாளர் வகை",
"Warning": "எச்சரிக்கை",
"Website": "இணையப்பக்கம்",
+ "Weekly": "வாராந்தம்",
"WeeklyReport": "வாராந்த",
+ "WeeklyReports": "வாராந்த அறிக்கை",
"WellDone": "நன்றாக செய்தீர்கள்!",
"YearlyReport": "வருடாந்தம்",
+ "YearlyReports": "வருடாந்த அறிக்கை",
"YearShort": "வரு",
+ "Yes": "ஓம்",
"Yesterday": "நேற்று"
},
"Mobile": {
+ "AboutPiwikMobile": "பிவிக் கையடக்கத்தொலைபேசி பற்றி",
+ "Account": "கணக்கு",
+ "Accounts": "கணக்குகள்",
+ "AddAccount": "புதிய கணக்கை சேர்க்க",
+ "AddPiwikDemo": "பிவிக் சோதனையை சேர்க்க",
+ "Advanced": "மேம்பட்டவை",
+ "DefaultReportDate": "அறிக்கைத்திகதி",
+ "EmailUs": "எங்களுக்கு மின்னஞ்சல் அனுப்ப",
+ "LoadingReport": "தரவிறங்குகிறது %s",
+ "LoginUseHttps": "https பாவிக்க",
+ "NavigationBack": "பின்திரும்ப",
+ "NetworkError": "வலையமைப்பு பிழை",
+ "NetworkErrorWithStatusCodeShort": "வலையமைப்பு பிழை %s",
"NetworkNotReachable": "பிணையத்தை அணுக இயலவில்லை",
+ "NoDataShort": "தரவு இல்லை",
"NoPiwikAccount": "பிவிக் கணக்கு இல்லையா?",
+ "NoReportsShort": "அறிக்கை எதுவும் இல்லை",
"NoVisitorFound": "வருகையாளர் யாரும் இல்லை",
+ "NoVisitorsShort": "வருகையாளர்கள் இல்லை",
"NoWebsiteFound": "இணையதளம் ஏதும் இல்லை",
+ "NoWebsitesShort": "இணையதளம் ஏதும் இல்லை",
"PullDownToRefresh": "மறுமுறை ஏற்ற கீழே இழுக்கவும்...",
+ "IgnoreSslError": "SSL பிழையை புறக்கணிக்க",
"RatingDontRemindMe": "என்னை ஞாபகப்படுத்த வேண்டாம்",
"RatingNotNow": "இப்போது வேண்டாம்",
"RatingNow": "சரி, நான் இப்போதே மதிப்பீடுகிறேன்",
"ReleaseToRefresh": "இளைப்பாற்ற விடு...",
"Reloading": "மீளேற்றப்படுகிறது...",
+ "RequestTimedOutShort": "வலையமைப்பு நேரம் முடிதல் பிழை",
"SaveSuccessError": "பிவிக் உரலி(URL) அல்லது பயனாளர்பெயர் மற்றும் கடவுச்சொல் சேர்க்கை தவறானது.",
"SearchWebsite": "இணையதளங்களைத் தேடு",
"ShowAll": "முழுவதையும் காட்டு",
"ShowLess": "குறைவாகக் காட்டு",
"StaticGraph": "வரைபடக் கண்ணோட்டம்",
- "VerifyAccount": "கணக்கு சரிபார்க்கப்படுகிறது"
+ "TopVisitedWebsites": "அதிகம் பார்வையிடப்பட்ட பக்கங்கள்",
+ "TryIt": "முயற்சிக்க",
+ "VerifyAccount": "கணக்கு சரிபார்க்கப்படுகிறது",
+ "YouAreOffline": "மன்னிக்க, நீங்கள் இப்போது தொடர்பிலில்லை"
+ },
+ "RowEvolution": {
+ "CompareRows": "பதிவுகளுடன் ஒப்பிட",
+ "ComparingRecords": "%s வரிகளுடன் ஒப்பிடுகிறது"
}
} \ No newline at end of file
diff --git a/lang/te.json b/lang/te.json
index 6d439c8bc9..07afa4f79e 100644
--- a/lang/te.json
+++ b/lang/te.json
@@ -23,6 +23,7 @@
"ColumnKeyword": "కీపదం",
"ColumnLabel": "నామాంకం",
"ColumnNbActions": "చర్యలు",
+ "ColumnNbUsers": "వాడుకరులు",
"ColumnNbVisits": "సందర్శనలు",
"ColumnPageviews": "పేజీవీక్షణలు",
"ColumnPercentageVisits": "% సందర్శనలు",
diff --git a/lang/th.json b/lang/th.json
index 2379a79d3d..65b6d855f6 100644
--- a/lang/th.json
+++ b/lang/th.json
@@ -54,6 +54,7 @@
"ColumnNbActionsDocumentation": "จำนวนของการกระทำที่ดำเนินการโดยผู้เข้าชมของคุณ การกระทำสามารถดูหน้าเว็บหรือดาวน์โหลด Outlinks",
"ColumnNbUniqVisitors": "ผู้เข้าชมซ้ำ",
"ColumnNbUniqVisitorsDocumentation": "จำนวนผู้เข้าชมเนื้อหาที่ไม่ซ้ำ มาเว็บไซต์ของคุณ ผู้ใช้ทุกคนถูกนับว่าเพียงครั้งเดียว แม้ว่าเขาเข้าชมเว็บไซต์ในเวลาหลายวัน",
+ "ColumnNbUsers": "ผู้ใช้",
"ColumnNbVisits": "เข้าชม",
"ColumnNbVisitsDocumentation": "หากผู้เข้าชมมาถึงเว็บไซต์ของคุณเป็นครั้งแรก หรือถ้าเขาเข้าชมหน้ากว่า 30 นาที หลังจากที่ดูหน้าสุดท้ายของเขานี้ จะถูกบันทึกเป็นเยี่ยมชมใหม่",
"ColumnPageBounceRateDocumentation": "เปอร์เซ็นต์การเข้าชมที่เริ่มต้นในหน้านี้และด้านซ้ายเว็บไซต์ได้ทันที",
@@ -335,8 +336,8 @@
"VisitorID": "ID ของผู้เข้าชม",
"VisitorIP": "IP ของเข้าชม",
"Visitors": "ผู้เข้าชม",
- "VisitorSettings": "การตั้งค่าของผู้เข้าชม",
"VisitsWith": "%s เข้าชม",
+ "VisitorSettings": "การตั้งค่าของผู้เข้าชม",
"VisitType": "รูปแบบผู้เข้าชม",
"VisitTypeExample": "ตัวอย่างเช่น การเลือกผู้เข้าชมทั้งหมดที่มีส่งกลับไปยังเว็บไซต์ รวมทั้งผู้ที่ได้ซื้อบางสิ่งบางอย่างในการเข้าชมก่อนหน้านี้ของพวกเขาที่ขอ API จะมี %s",
"Warning": "คำเตือน",
diff --git a/lang/tl.json b/lang/tl.json
index f40a00e6f5..9655744dbe 100644
--- a/lang/tl.json
+++ b/lang/tl.json
@@ -29,7 +29,6 @@
"ChooseLanguage": "pumili ng wika",
"ChoosePeriod": "Pumili ng panahon",
"ChooseWebsite": "Pumili ng website",
- "Clear": "Klaro",
"ClickHere": "Mag-click dito para sa karagdagang impormasyon.",
"ClickToChangePeriod": "I-click muli upang baguhin ang tagal ng period.",
"Close": "I-sara",
@@ -155,12 +154,12 @@
"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.",
- "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.",
- "ExceptionReportNotFound": "Wala pang ganitong ulat na iyong ni-rerequest.",
"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.",
+ "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.",
"ExpandDataTableFooter": "Baguhin ang itsura o i-configure ang ulat",
"Export": "Export",
"ExportAsImage": "I-export bilang larawan",
@@ -284,6 +283,7 @@
"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.",
"Password": "Password",
"Period": "Panahon",
@@ -328,6 +328,7 @@
"Save": "I-save",
"SaveImageOnYourComputer": "Upang i-save ang larawan sa iyong computer i-right click sa imahe at piliin ang \"I-save ang Imahe Bilang ...\"",
"Search": "Hanapin",
+ "Clear": "Klaro",
"SearchNoResults": "Walang mga resulta",
"Seconds": "%ss",
"SeeAll": "tingnan lahat",
@@ -335,6 +336,7 @@
"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.",
+ "ShortDay_2": "mar",
"ShortMonth_1": "jan",
"ShortMonth_10": "out",
"ShortMonth_11": "nov",
@@ -384,7 +386,6 @@
"HowtoLoginAnonymous": "Iwanan ang username at password na walang laman para sa hindi kilalang pag-login",
"HttpIsNotSecureWarning": "Ang iyong Piwik authorization token(token_auth) ay ipinadala na may malinaw na teksto kung iyong ginamit ang 'HTTP'. Dahil dito mas nirerekomenda namin na gumamit ng HTTPS para sa mas secure na paglipat ng data sa internet. Gusto mo bang ituloy?",
"HttpTimeout": "HTTP Timeout",
- "IgnoreSslError": "Huwag pansinin ang SSL Error",
"IncompatiblePiwikVersion": "Ang Piwik bersyon na iyong ginagamit ay hindi tugma sa Piwik Mobile 2. I-update ang iyong pag-install Piwik at subukang muli o i-install Piwik Mobile 1.",
"LastUpdated": "Huling nai-update: %s",
"LoadingReport": "Nilo-load ang %s",
@@ -405,9 +406,10 @@
"NoVisitorsShort": "Walang mga Bisita",
"NoWebsiteFound": "Walang nahanap na website",
"NoWebsitesShort": "Walang mga website",
+ "PullDownToRefresh": "Hilahin pababa upang i-refresh ...",
"PossibleSslError": "Mga posibleng error sa SSL certificate.",
"PossibleSslErrorExplanation": "May error na nakita na dahilan ng hindi wasto o self-sign sertipiko: \"%s\". Maari mong mapagana ang login kung hindi papansin ang SSL verification ngunit ito ay lalong ligtas. Maari mong baguhin ang SSL validation sa anumang oras sa settings.",
- "PullDownToRefresh": "Hilahin pababa upang i-refresh ...",
+ "IgnoreSslError": "Huwag pansinin ang SSL Error",
"RatingDontRemindMe": "Huwag ipaalala sa akin",
"RatingNotNow": "Hindi ngayon",
"RatingNow": "OK I-rarate ko na ito ngayon",
@@ -425,8 +427,8 @@
"TopVisitedWebsites": "Nangungunang mga website",
"TryIt": "Subukan ito!",
"UseSearchBarHint": "Ang unang %s websites ay ipinapakita dito. Mangyaring gamitin ang search bar upang ma-access ang iyong websites.",
- "ValidateSslCertificate": "I-validate ang Certificate SSL",
"VerifyAccount": "Ang pag-verify ang Account",
+ "ValidateSslCertificate": "I-validate ang Certificate SSL",
"VerifyLoginData": "Siguraduhing ang iyong pinagsamang username at password ay tama.",
"YouAreOffline": "Sorry ikaw ay kasalukuyang offline"
},
diff --git a/lang/tr.json b/lang/tr.json
index b1ae4e6068..0425c6a387 100644
--- a/lang/tr.json
+++ b/lang/tr.json
@@ -24,7 +24,6 @@
"ChooseLanguage": "Dil seçin",
"ChoosePeriod": "Zaman aralığı seçin",
"ChooseWebsite": "Web sayfası seçin",
- "Clear": "Temizle",
"ClickHere": "Daha fazla bilgi için buraya tıklayın.",
"ClickToChangePeriod": "Aralığı değiştirmek için tekrar tıklayın.",
"Close": "Kapat",
@@ -275,6 +274,7 @@
"Save": "Kaydet",
"SaveImageOnYourComputer": "Resmi bilgisayarınıza kaydetmek için, resme sağ tıklayıp \"Farklı kaydet...\" deyin",
"Search": "Arama",
+ "Clear": "Temizle",
"SearchNoResults": "Sonuç yok",
"Seconds": "%ssn",
"SeeAll": "hepsini gör",
@@ -336,8 +336,8 @@
"VisitorID": "Ziyaretçi ID",
"VisitorIP": "Ziyaretçi IP",
"Visitors": "Ziyaretçiler",
- "VisitorSettings": "Ziyaretçi Ayarlari",
"VisitsWith": "%s ile Ziyaretler",
+ "VisitorSettings": "Ziyaretçi Ayarlari",
"VisitType": "Ziyaretçi Türü",
"Warning": "Uyarı",
"WarningFileIntegrityNoManifest": "manifest.inc.php dosyası bulunamadığı için dosya bütünlük kontrolü gerçekleştirilemedi.",
@@ -348,6 +348,7 @@
"WeeklyReports": "Haftalık raporlar",
"WellDone": "Tebrikler!",
"Widgets": "Birleşenler",
+ "XFromY": "%2$s den %1$s e",
"YearlyReport": "yıllık",
"YearlyReports": "Yıllık raporlar",
"YearsDays": "%1$s yıl %2$s gün",
diff --git a/lang/uk.json b/lang/uk.json
index ba79594bca..eb0ade7427 100644
--- a/lang/uk.json
+++ b/lang/uk.json
@@ -30,6 +30,7 @@
"ColumnMaxActions": "Максимум дій на одне відвідування",
"ColumnNbActions": "Дії",
"ColumnNbUniqVisitors": "Унікальні відвідувачі",
+ "ColumnNbUsers": "Користувачі",
"ColumnNbVisits": "Відвідування",
"ColumnPageviews": "Переглядів сторінок",
"ColumnPercentageVisits": "% відвідувань",
@@ -212,6 +213,7 @@
"UseSMTPServerForEmail": "Використовуйте SMTP сервер для надсилання електронної пошти",
"Value": "Значення",
"VBarGraph": "Гістограма",
+ "View": "Перегляд",
"VisitDuration": "Середня тривалість відвідування (в секундах)",
"Visitors": "Відвідувачі",
"VisitorSettings": "Налаштування відвідувача",
diff --git a/lang/vi.json b/lang/vi.json
index cf26fe99b8..dab54f2dd1 100644
--- a/lang/vi.json
+++ b/lang/vi.json
@@ -62,6 +62,7 @@
"ColumnNbActionsDocumentation": "Số lượng của các hành động được thực hiện bởi khách truy cập của bạn. Hành động có thể là xem trang, tìm kiếm trang web nội bộ, tải về hay outlinks.",
"ColumnNbUniqVisitors": "Các khách truy cập duy nhất",
"ColumnNbUniqVisitorsDocumentation": "Số lượng khách không được nhân bản khi vào trang web của bạn. Mỗi người sử dụng chỉ được tính một lần, ngay cả khi người đó thăm trang web nhiều lần một ngày.",
+ "ColumnNbUsers": "Các người dùng",
"ColumnNbVisits": "Các lượt truy cập",
"ColumnNbVisitsDocumentation": "Nếu một người truy cập vào trang web của bạn lần đầu tiên, hoặc nếu người đó truy cập vào trang web sau quá 30 phút kể từ lần truy cập cuối cùng, thì nó sẽ được ghi nhận là một lượt truy cập mới.",
"ColumnPageBounceRateDocumentation": "Tỷ lệ truy cập mà đã bắt đầu trên trang này và rời khỏi trang web ngay lập tức.",
@@ -401,8 +402,8 @@
"VisitorID": "ID khách truy cập",
"VisitorIP": "IP khách truy cập",
"Visitors": "Các khách truy cập",
- "VisitorSettings": "Thiết lập khách truy cập",
"VisitsWith": "Các khách truy cập với %s",
+ "VisitorSettings": "Thiết lập khách truy cập",
"VisitType": "kiểu khách truy cập",
"VisitTypeExample": "Lấy ví dụ, để chọn tất cả những người truy cập đã quay lại website, bao gồm cả những người đã mua thứ gì đó trong những lượt truy cập trước, yêu cầu API có thể chứa %s",
"Warning": "Cảnh báo",
diff --git a/lang/zh-cn.json b/lang/zh-cn.json
index f2a3c20f79..a34e4a06a5 100644
--- a/lang/zh-cn.json
+++ b/lang/zh-cn.json
@@ -62,6 +62,7 @@
"ColumnNbActionsDocumentation": "访客执行的活动次数。活动包括查看页面、站内搜索、下载或者离站链接。",
"ColumnNbUniqVisitors": "访客数",
"ColumnNbUniqVisitorsDocumentation": "访问网站的不重复的访客数量,每个访客只统计一次,即使他一天访问多次。",
+ "ColumnNbUsers": "用户管理",
"ColumnNbVisits": "访问次数",
"ColumnNbVisitsDocumentation": "如果访客第一次访问您的网站,或者离他上次访问时间超过30分钟,将统计为一次新的访问。",
"ColumnPageBounceRateDocumentation": "以该页为起始页后马上离开的百分比。",
@@ -402,8 +403,8 @@
"VisitorID": "访客 ID",
"VisitorIP": "访客 IP",
"Visitors": "访客分析",
- "VisitorSettings": "访客设置",
"VisitsWith": "有%s的访客",
+ "VisitorSettings": "访客设置",
"VisitType": "访客类型",
"VisitTypeExample": "例如,要选择所有回头访客,包括那些以前购买过产品的,API 请求需要包含 %s",
"Warning": "警告",
diff --git a/lang/zh-tw.json b/lang/zh-tw.json
index 7d324bce6d..fb0cb94afd 100644
--- a/lang/zh-tw.json
+++ b/lang/zh-tw.json
@@ -4,6 +4,8 @@
"Action": "動作",
"Actions": "進站活動",
"Add": "新增",
+ "AfterEntry": "在這裡之後輸入",
+ "All": "全部",
"AllowPiwikArchivingToTriggerBrowser": "當報告在瀏覽器裡檢視時,允許 Piwik 觸發彙整",
"AllWebsitesDashboard": "所有網站展示板",
"API": "API",
@@ -35,6 +37,7 @@
"ColumnNbActions": "活動量",
"ColumnNbUniqVisitors": "獨立非重返訪客數",
"ColumnNbUniqVisitorsDocumentation": "前來訪問網站的不重複訪客數。即使單一訪客一天訪問數次,也僅計一回。",
+ "ColumnNbUsers": "使用者",
"ColumnNbVisits": "訪客",
"ColumnPageviews": "瀏覽量",
"ColumnPageviewsDocumentation": "頁面被瀏覽次數",
@@ -251,12 +254,21 @@
"YourChangesHaveBeenSaved": "您的變更已儲存!"
},
"Mobile": {
+ "AboutPiwikMobile": "關於 Piwik 行動版",
"AccessUrlLabel": "Piwik 存取網址",
+ "Account": "帳號",
+ "Accounts": "帳號",
+ "AddAccount": "新增帳號",
+ "AddPiwikDemo": "增加 Piwik 示範",
"AnonymousAccess": "匿名存取",
"EnableGraphsLabel": "顯示圖表",
"MultiChartLabel": "顯示 sparklines",
"NetworkNotReachable": "網路無法訪問",
"SaveSuccessError": "請確認設定",
"YouAreOffline": "抱歉,您目前為離線狀態"
+ },
+ "RowEvolution": {
+ "AvailableMetrics": "可用指標",
+ "CompareRows": "比較紀錄"
}
} \ No newline at end of file
diff --git a/misc/log-analytics b/misc/log-analytics
-Subproject ef6fbd1bd55d1f924e57e26c82be4240573eaa7
+Subproject 1a8463fc6e2737185234e4697d8565899fd72c5
diff --git a/piwik.js b/piwik.js
index b09f5e3c7d..d293c18378 100644
--- a/piwik.js
+++ b/piwik.js
@@ -35,20 +35,20 @@ var cc=parseInt(cg,10);var ce=(cc*1000)+aw-cd;return ce}function am(cc){if(!bS){
if(ao){W()}if(bW){return""}var cq=bB();if(!w(cf)){cf=""}var cn=u.characterSet||u.charset;if(!cn||cn.toLowerCase()==="utf-8"){cn=null}cj=cu[0];cc=cu[1];ci=cu[2];cv=cu[3];if(!cp){var cz=az/1000;if(!cq.lastVisitTs||(cl-cq.lastVisitTs)>cz){cq.visitCount++;cq.lastVisitTs=cq.currentVisitTs}if(!a5||!cj.length){for(cw in aY){if(Object.prototype.hasOwnProperty.call(aY,cw)){cj=I(cA,aY[cw]);if(cj.length){break}}}for(cw in aP){if(Object.prototype.hasOwnProperty.call(aP,cw)){cc=I(cA,aP[cw]);if(cc.length){break}}}}cC=b(bu);cm=cv.length?b(cv):"";if(cC.length&&!br(cC)&&(!a5||!cm.length||br(cm))){cv=bu}if(cv.length||cj.length){ci=cl;cu=[cj,cc,ci,bY(cv.slice(0,cg))];bH(cr,JSON2.stringify(cu),ba,b4,aq)}}ce+="&idsite="+bS+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cd.getHours()+"&m="+cd.getMinutes()+"&s="+cd.getSeconds()+"&url="+l(bY(cA))+(bu.length?"&urlref="+l(bY(bu)):"")+((aJ&&aJ.length)?"&uid="+l(aJ):"")+"&_id="+cq.uuid+"&_idts="+cq.createTs+"&_idvc="+cq.visitCount+"&_idn="+cq.newVisitor+(cj.length?"&_rcn="+l(cj):"")+(cc.length?"&_rck="+l(cc):"")+"&_refts="+ci+"&_viewts="+cq.lastVisitTs+(String(cq.lastEcommerceOrderTs).length?"&_ects="+cq.lastEcommerceOrderTs:"")+(String(cv).length?"&_ref="+l(bY(cv.slice(0,cg))):"")+(cn?"&cs="+l(cn):"")+"&send_image=0";
for(cw in bT){if(Object.prototype.hasOwnProperty.call(bT,cw)){ce+="&"+cw+"="+bT[cw]}}if(cx){ce+="&data="+l(JSON2.stringify(cx))}else{if(an){ce+="&data="+l(JSON2.stringify(an))}}function ck(cD,cE){var cF=JSON2.stringify(cD);if(cF.length>2){return"&"+cE+"="+l(cF)}return""}var cB=bQ(bg);var cs=bQ(ab);ce+=ck(cB,"cvar");ce+=ck(cs,"e_cvar");if(ag){ce+=ck(ag,"_cvar");for(cw in ct){if(Object.prototype.hasOwnProperty.call(ct,cw)){if(ag[cw][0]===""||ag[cw][1]===""){delete ag[cw]}}}if(a6){bH(co,JSON2.stringify(ag),az,b4,aq)}}if(a1){if(aI){ce+="&gt_ms="+aI}else{if(f&&f.timing&&f.timing.requestStart&&f.timing.responseEnd){ce+="&gt_ms="+(f.timing.responseEnd-f.timing.requestStart)}}}cq.lastEcommerceOrderTs=w(cf)&&String(cf).length?cf:cq.lastEcommerceOrderTs;am(cq);a4();ce+=O(cy);if(bo.length){ce+="&"+bo}if(q(au)){ce=au(ce)}return ce}function bK(cf,ce,cj,cg,cc,cm){var ch="idgoal=0",ci,cd=new Date(),ck=[],cl;if(String(cf).length){ch+="&ec_id="+l(cf);ci=Math.round(cd.getTime()/1000)}ch+="&revenue="+ce;if(String(cj).length){ch+="&ec_st="+cj
}if(String(cg).length){ch+="&ec_tx="+cg}if(String(cc).length){ch+="&ec_sh="+cc}if(String(cm).length){ch+="&ec_dt="+cm}if(bF){for(cl in bF){if(Object.prototype.hasOwnProperty.call(bF,cl)){if(!w(bF[cl][1])){bF[cl][1]=""}if(!w(bF[cl][2])){bF[cl][2]=""}if(!w(bF[cl][3])||String(bF[cl][3]).length===0){bF[cl][3]=0}if(!w(bF[cl][4])||String(bF[cl][4]).length===0){bF[cl][4]=1}ck.push(bF[cl])}}ch+="&ec_items="+l(JSON2.stringify(ck))}ch=aT(ch,an,"ecommerce",ci);aZ(ch,bn)}function bJ(cc,cg,cf,ce,cd,ch){if(String(cc).length&&w(cg)){bK(cc,cg,cf,ce,cd,ch)}}function b2(cc){if(w(cc)){bK("",cc,"","","","")}}function be(cf,cg){var cc=new Date(),ce=aT("action_name="+l(V(cf||aS)),cg,"log");aZ(ce,bn);if(aj&&aG&&!bw){bw=true;U(u,"click",bR);U(u,"mouseup",bR);U(u,"mousedown",bR);U(u,"mousemove",bR);U(u,"mousewheel",bR);U(G,"DOMMouseScroll",bR);U(G,"scroll",bR);U(u,"keypress",bR);U(u,"keydown",bR);U(u,"keyup",bR);U(G,"resize",bR);U(G,"focus",bR);U(G,"blur",bR);bt=cc.getTime();setTimeout(function cd(){var ch;cc=new Date();
-if((bt+aG)>cc.getTime()){if(aj<cc.getTime()){ch=aT("ping=1",cg,"ping");aZ(ch,bn)}setTimeout(cd,aG)}},aG)}}function aH(ce,cd){var cf,cc="(^| )(piwik[_-]"+cd;if(ce){for(cf=0;cf<ce.length;cf++){cc+="|"+ce[cf]}}cc+=")( |$)";return new RegExp(cc)}function bD(cc){return(aa&&cc&&0===String(cc).indexOf(aa))}function bP(cf,cc,cg){if(bD(cc)){return 0}var ce=aH(bf,"download"),cd=aH(aC,"link"),ch=new RegExp("\\.("+aU.join("|")+")([?&#]|$)","i");if(cd.test(cf)){return"link"}if(ce.test(cf)||ch.test(cc)){return"download"}if(cg){return 0}return"link"}function a8(cd){var cc;cc=cd.parentNode;while(cc!==null&&w(cc)){if(Q.isLinkElement(cd)){break}cd=cc;cc=cd.parentNode}return cd}function bi(cg){cg=a8(cg);if(!Q.hasNodeAttribute(cg,"href")){return}if(!w(cg.href)){return}var cf=Q.getAttributeValueFromNode(cg,"href");if(bD(cf)){return}var ch=cg.hostname||b(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 cc=bP(cg.className,cd,br(ci));
-if(cc){return{type:cc,href:cd}}}}function b7(cc,cd,ce,cf){var cg=m.buildInteractionRequestParams(cc,cd,ce,cf);if(!cg){return}return aT(cg,null,"contentInteraction")}function b6(ce,cf,cj,cc,cd){if(!w(ce)){return}if(bD(ce)){return ce}var ch=m.toAbsoluteUrl(ce);var cg="redirecturl="+l(ch)+"&";cg+=b7(cf,cj,cc,(cd||ce));var ci="&";if(aa.indexOf("?")<0){ci="?"}return aa+ci+cg}function a3(cc,cd){if(!cc||!cd){return false}var ce=m.findTargetNode(cc);if(m.shouldIgnoreInteraction(ce)){return false}ce=m.findTargetNodeNoDefault(cc);if(ce&&!H(ce,cd)){return false}return true}function aR(ce,cd,cg){if(!ce){return}var cc=m.findParentContentNode(ce);if(!cc){return}if(!a3(cc,ce)){return}var cf=m.buildContentBlock(cc);if(!cf){return}if(!cf.target&&cg){cf.target=cg}return m.buildInteractionRequestParams(cd,cf.name,cf.piece,cf.target)}function aO(cd){if(!ah||!ah.length){return false}var cc,ce;for(cc=0;cc<ah.length;cc++){ce=ah[cc];if(ce&&ce.name===cd.name&&ce.piece===cd.piece&&ce.target===cd.target){return true
-}}return false}function ac(cf){if(!cf){return false}var ci=m.findTargetNode(cf);if(!ci||m.shouldIgnoreInteraction(ci)){return false}var cj=bi(ci);if(bU&&cj&&cj.type){return false}if(Q.isLinkElement(ci)&&Q.hasNodeAttributeWithValue(ci,"href")){var cc=String(Q.getAttributeValueFromNode(ci,"href"));if(0===cc.indexOf("#")){return false}if(bD(cc)){return true}if(!m.isUrlToCurrentDomain(cc)){return false}var cg=m.buildContentBlock(cf);if(!cg){return}var ce=cg.name;var ck=cg.piece;var ch=cg.target;if(!Q.hasNodeAttributeWithValue(ci,m.CONTENT_TARGET_ATTR)||ci.wasContentTargetAttrReplaced){ci.wasContentTargetAttrReplaced=true;ch=m.toAbsoluteUrl(cc);Q.setAnyAttribute(ci,m.CONTENT_TARGET_ATTR,ch)}var cd=b6(cc,"click",ce,ck,ch);m.setHrefAttribute(ci,cd);return true}return false}function af(cd){if(!cd||!cd.length){return}var cc;for(cc=0;cc<cd.length;cc++){ac(cd[cc])}}function bh(cc){return function(cd){if(!cc){return}var cg=m.findParentContentNode(cc);var ch;if(cd){ch=cd.target||cd.srcElement}if(!ch){ch=cc
-}if(!a3(cg,ch)){return}bZ(bn);if(Q.isLinkElement(cc)&&Q.hasNodeAttributeWithValue(cc,"href")&&Q.hasNodeAttributeWithValue(cc,m.CONTENT_TARGET_ATTR)){var ce=Q.getAttributeValueFromNode(cc,"href");if(!bD(ce)&&cc.wasContentTargetAttrReplaced){Q.setAnyAttribute(cc,m.CONTENT_TARGET_ATTR,"")}}var cl=bi(cc);if(bz&&cl&&cl.type){return cl.type}if(ac(cg)){return"href"}var ci=m.buildContentBlock(cg);if(!ci){return}var cf=ci.name;var cm=ci.piece;var ck=ci.target;var cj=b7("click",cf,cm,ck);aZ(cj,bn);return cj}}function aF(ce){if(!ce||!ce.length){return}var cc,cd;for(cc=0;cc<ce.length;cc++){cd=m.findTargetNode(ce[cc]);if(cd&&!cd.contentInteractionTrackingSetupDone){cd.contentInteractionTrackingSetupDone=true;U(cd,"click",bh(cd))}}}function aB(ce,cf){if(!ce||!ce.length){return[]}var cc,cd;for(cc=0;cc<ce.length;cc++){if(aO(ce[cc])){ce.splice(cc,1);cc--}else{ah.push(ce[cc])}}if(!ce||!ce.length){return[]}af(cf);aF(cf);var cg=[];for(cc=0;cc<ce.length;cc++){cd=aT(m.buildImpressionRequestParams(ce[cc].name,ce[cc].piece,ce[cc].target),undefined,"contentImpressions");
-cg.push(cd)}return cg}function aW(cd){var cc=m.collectContent(cd);return aB(cc,cd)}function bC(cd){if(!cd||!cd.length){return[]}var cc;for(cc=0;cc<cd.length;cc++){if(!m.isNodeVisible(cd[cc])){cd.splice(cc,1);cc--}}if(!cd||!cd.length){return[]}return aW(cd)}function bN(ce,cc,cd){var cf=m.buildImpressionRequestParams(ce,cc,cd);return aT(cf,null,"contentImpression")}function aV(cf,cd){if(!cf){return}var cc=m.findParentContentNode(cf);var ce=m.buildContentBlock(cc);if(!ce){return}if(!cd){cd="Unknown"}return b7(cd,ce.name,ce.piece,ce.target)}function bx(cd,cf,cc,ce){return"e_c="+l(cd)+"&e_a="+l(cf)+(w(cc)?"&e_n="+l(cc):"")+(w(ce)?"&e_v="+l(ce):"")}function al(ce,cg,cc,cf,ch){if(String(ce).length===0||String(cg).length===0){return false}var cd=aT(bx(ce,cg,cc,cf),ch,"event");aZ(cd,bn)}function aN(cc,cf,cd,cg){var ce=aT("search="+l(cc)+(cf?"&search_cat="+l(cf):"")+(w(cd)?"&search_count="+cd:""),cg,"sitesearch");aZ(ce,bn)}function bl(cc,cf,ce){var cd=aT("idgoal="+cc+(cf?"&revenue="+cf:""),ce,"goal");
-aZ(cd,bn)}function bO(cf,cc,cj,ci,ce){var ch=cc+"="+l(bY(cf));var cd=aR(ce,"click",cf);if(cd){ch+="&"+cd}var cg=aT(ch,cj,"link");aZ(cg,(ci?0:bn),ci)}function bV(cd,cc){if(cd!==""){return cd+cc.charAt(0).toUpperCase()+cc.slice(1)}return cc}function aM(ch){var cg,cc,cf=["","webkit","ms","moz"],ce;if(!a0){for(cc=0;cc<cf.length;cc++){ce=cf[cc];if(Object.prototype.hasOwnProperty.call(u,bV(ce,"hidden"))){if(u[bV(ce,"visibilityState")]==="prerender"){cg=true}break}}}if(cg){U(u,ce+"visibilitychange",function cd(){u.removeEventListener(ce+"visibilitychange",cd,false);ch()});return}ch()}function aQ(cc){if(u.readyState==="complete"){cc()}else{if(G.addEventListener){G.addEventListener("load",cc)}else{if(G.attachEvent){G.attachEvent("onLoad",cc)}}}}function aA(cd){var cc=false;if(u.attachEvent){cc=u.readyState==="complete"}else{cc=u.readyState!=="loading"}if(cc){cd()}else{if(u.addEventListener){u.addEventListener("DOMContentLoaded",cd)}else{if(u.attachEvent){u.attachEvent("onreadystatechange",cd)}}}}function bE(cc){var cd=bi(cc);
-if(cd&&cd.type){cd.href=h(cd.href);bO(cd.href,cd.type,undefined,null,cc)}}function ca(cc){var cd,ce;cc=cc||G.event;cd=cc.which||cc.button;ce=cc.target||cc.srcElement;if(cc.type==="click"){if(ce){bE(ce)}}else{if(cc.type==="mousedown"){if((cd===1||cd===2)&&ce){bj=cd;at=ce}else{bj=at=null}}else{if(cc.type==="mouseup"){if(cd===bj&&ce===at){bE(ce)}bj=at=null}}}}function bA(cd,cc){if(cc){U(cd,"mouseup",ca,false);U(cd,"mousedown",ca,false)}else{U(cd,"click",ca,false)}}function bd(cd){if(!bz){bz=true;var ce,cc=aH(ai,"ignore"),cf=u.links;if(cf){for(ce=0;ce<cf.length;ce++){if(!cc.test(cf[ce].className)){bA(cf[ce],cd)}}}}}function bv(ce,cg,ch){if(ay){return true}ay=true;var ci=false;var cf,cd;function cc(){ci=true}aQ(function(){function cj(cl){setTimeout(function(){if(!ay){return}ci=false;ch.trackVisibleContentImpressions();cj(cl)},cl)}function ck(cl){setTimeout(function(){if(!ay){return}if(ci){ci=false;ch.trackVisibleContentImpressions()}ck(cl)},cl)}if(ce){cf=["scroll","resize"];for(cd=0;cd<cf.length;
-cd++){if(u.addEventListener){u.addEventListener(cf[cd],cc)}else{G.attachEvent("on"+cf[cd],cc)}}ck(100)}if(cg&&cg>0){cg=parseInt(cg,10);cj(cg)}})}function b0(){var cd,ce,cf={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=(new RegExp("Mac OS X.*Safari/")).test(e.userAgent)?G.devicePixelRatio||1:1;if(!((new RegExp("MSIE")).test(e.userAgent))){if(e.mimeTypes&&e.mimeTypes.length){for(cd in cf){if(Object.prototype.hasOwnProperty.call(cf,cd)){ce=e.mimeTypes[cf[cd]];bT[cd]=(ce&&ce.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&w(e.javaEnabled)&&e.javaEnabled()){bT.java="1"}if(q(G.GearsFactory)){bT.gears="1"}bT.cookie=ae()}bT.res=K.width*cc+"x"+K.height*cc}b0();bk();am();return{getVisitorId:function(){return bB().uuid},getVisitorInfo:function(){return Y()
-},getAttributionInfo:function(){return X()},getAttributionCampaignName:function(){return X()[0]},getAttributionCampaignKeyword:function(){return X()[1]},getAttributionReferrerTimestamp:function(){return X()[2]},getAttributionReferrerUrl:function(){return X()[3]},setTrackerUrl:function(cc){aa=cc},getTrackerUrl:function(){return aa},getSiteId:function(){return bS},setSiteId:function(cc){b8(cc)},setUserId:function(cc){if(!w(cc)||!cc.length){return}aJ=cc;a2=aX(aJ).substr(0,16)},getUserId:function(){return aJ},setCustomData:function(cc,cd){if(J(cc)){an=cc}else{if(!an){an={}}an[cc]=cd}},getCustomData:function(){return an},setCustomRequestProcessing:function(cc){au=cc},appendToTrackingUrl:function(cc){bo=cc},getRequest:function(cc){return aT(cc)},addPlugin:function(cc,cd){a[cc]=cd},setCustomVariable:function(cd,cc,cg,ce){var cf;if(!w(ce)){ce="visit"}if(!w(cc)){return}if(!w(cg)){cg=""}if(cd>0){cc=!n(cc)?String(cc):cc;cg=!n(cg)?String(cg):cg;cf=[cc.slice(0,bX),cg.slice(0,bX)];if(ce==="visit"||ce===2){Z();
-ag[cd]=cf}else{if(ce==="page"||ce===3){bg[cd]=cf}else{if(ce==="event"){ab[cd]=cf}}}}},getCustomVariable:function(cd,ce){var cc;if(!w(ce)){ce="visit"}if(ce==="page"||ce===3){cc=bg[cd]}else{if(ce==="event"){cc=ab[cd]}else{if(ce==="visit"||ce===2){Z();cc=ag[cd]}}}if(!w(cc)||(cc&&cc[0]==="")){return false}return cc},deleteCustomVariable:function(cc,cd){if(this.getCustomVariable(cc,cd)){this.setCustomVariable(cc,"","",cd)}},storeCustomVariablesInCookie:function(){a6=true},setLinkTrackingTimer:function(cc){bn=cc},setDownloadExtensions:function(cc){if(n(cc)){cc=cc.split("|")}aU=cc},addDownloadExtensions:function(cd){var cc;if(n(cd)){cd=cd.split("|")}for(cc=0;cc<cd.length;cc++){aU.push(cd[cc])}},removeDownloadExtensions:function(ce){var cd,cc=[];if(n(ce)){ce=ce.split("|")}for(cd=0;cd<aU.length;cd++){if(z(ce,aU[cd])===-1){cc.push(aU[cd])}}aU=cc},setDomains:function(cc){bp=n(cc)?[cc]:cc;bp.push(bM)},setIgnoreClasses:function(cc){ai=n(cc)?[cc]:cc},setRequestMethod:function(cc){bs=cc||bq},setRequestContentType:function(cc){aK=cc||bc
-},setReferrerUrl:function(cc){bu=cc},setCustomUrl:function(cc){a7=bL(b5,cc)},setDocumentTitle:function(cc){aS=cc},setAPIUrl:function(cc){ax=cc},setDownloadClasses:function(cc){bf=n(cc)?[cc]:cc},setLinkClasses:function(cc){aC=n(cc)?[cc]:cc},setCampaignNameKey:function(cc){aY=n(cc)?[cc]:cc},setCampaignKeywordKey:function(cc){aP=n(cc)?[cc]:cc},discardHashTag:function(cc){ak=cc},setCookieNamePrefix:function(cc){b3=cc;ag=ar()},setCookieDomain:function(cc){aq=y(cc);bk()},setCookiePath:function(cc){b4=cc;bk()},setVisitorCookieTimeout:function(cc){aw=cc*1000},setSessionCookieTimeout:function(cc){az=cc*1000},setReferralCookieTimeout:function(cc){ba=cc*1000},setConversionAttributionFirstReferrer:function(cc){a5=cc},disableCookies:function(){ao=true;bT.cookie="0"},deleteCookies:function(){W()},setDoNotTrack:function(cd){var cc=e.doNotTrack||e.msDoNotTrack;bW=cd&&(cc==="yes"||cc==="1");if(bW){this.disableCookies()}},addListener:function(cd,cc){bA(cd,cc)},enableLinkTracking:function(cc){bU=true;if(p){bd(cc)
-}else{E.push(function(){bd(cc)})}},enableJSErrorTracking:function(){if(b9){return}b9=true;var cc=G.onerror;G.onerror=function(ch,cf,ce,cg,cd){aM(function(){var ci="JavaScript Errors";var cj=cf+":"+ce;if(cg){cj+=":"+cg}al(ci,cj,ch)});if(cc){return cc(ch,cf,ce,cg,cd)}return false}},disablePerformanceTracking:function(){a1=false},setGenerationTimeMs:function(cc){aI=parseInt(cc,10)},setHeartBeatTimer:function(ce,cd){var cc=new Date();aj=cc.getTime()+ce*1000;aG=cd*1000},killFrame:function(){if(G.location!==G.top.location){G.top.location=G.location}},redirectFile:function(cc){if(G.location.protocol==="file:"){G.location=cc}},setCountPreRendered:function(cc){a0=cc},trackGoal:function(cc,ce,cd){aM(function(){bl(cc,ce,cd)})},trackLink:function(cd,cc,cf,ce){aM(function(){bO(cd,cc,cf,ce)})},trackPageView:function(cc,cd){ah=[];if(A(bS)){aM(function(){M(aa,ax,bS)})}else{aM(function(){be(cc,cd)})}},trackAllContentImpressions:function(){if(A(bS)){return}aM(function(){aA(function(){var cc=m.findContentNodes();
-var cd=aW(cc);ap(cd,bn)})})},trackVisibleContentImpressions:function(cc,cd){if(A(bS)){return}if(!w(cc)){cc=true}if(!w(cd)){cd=750}bv(cc,cd,this);aM(function(){aQ(function(){var ce=m.findContentNodes();var cf=bC(ce);ap(cf,bn)})})},trackContentImpression:function(ce,cc,cd){if(A(bS)){return}if(!ce){return}cc=cc||"Unknown";aM(function(){var cf=bN(ce,cc,cd);aZ(cf,bn)})},trackContentImpressionsWithinNode:function(cc){if(A(bS)||!cc){return}aM(function(){if(ay){aQ(function(){var cd=m.findContentNodesWithinNode(cc);var ce=bC(cd);ap(ce,bn)})}else{aA(function(){var cd=m.findContentNodesWithinNode(cc);var ce=aW(cd);ap(ce,bn)})}})},trackContentInteraction:function(ce,cf,cc,cd){if(A(bS)){return}if(!ce||!cf){return}cc=cc||"Unknown";aM(function(){var cg=b7(ce,cf,cc,cd);aZ(cg,bn)})},trackContentInteractionNode:function(cd,cc){if(A(bS)||!cd){return}aM(function(){var ce=aV(cd,cc);aZ(ce,bn)})},trackEvent:function(cd,cf,cc,ce){aM(function(){al(cd,cf,cc,ce)})},trackSiteSearch:function(cc,ce,cd){aM(function(){aN(cc,ce,cd)
-})},setEcommerceView:function(cf,cc,ce,cd){if(!w(ce)||!ce.length){ce=""}else{if(ce instanceof Array){ce=JSON2.stringify(ce)}}bg[5]=["_pkc",ce];if(w(cd)&&String(cd).length){bg[2]=["_pkp",cd]}if((!w(cf)||!cf.length)&&(!w(cc)||!cc.length)){return}if(w(cf)&&cf.length){bg[3]=["_pks",cf]}if(!w(cc)||!cc.length){cc=""}bg[4]=["_pkn",cc]},addEcommerceItem:function(cg,cc,ce,cd,cf){if(cg.length){bF[cg]=[cg,cc,ce,cd,cf]}},trackEcommerceOrder:function(cc,cg,cf,ce,cd,ch){bJ(cc,cg,cf,ce,cd,ch)},trackEcommerceCartUpdate:function(cc){b2(cc)}}}function v(){return{push:R}}U(G,"beforeunload",S,false);o();Date.prototype.getTimeAlias=Date.prototype.getTime;L=new D();var r={setTrackerUrl:1,setAPIUrl:1,setUserId:1,setSiteId:1,disableCookies:1,enableLinkTracking:1};var d;for(t=0;t<_paq.length;t++){d=_paq[t][0];if(r[d]){R(_paq[t]);delete _paq[t];if(r[d]>1){if(console!==undefined&&console&&console.error){console.error("The method "+d+' 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')
+if((bt+aG)>cc.getTime()){if(aj<cc.getTime()){ch=aT("ping=1",cg,"ping");aZ(ch,bn)}setTimeout(cd,aG)}},aG)}}function aH(ce,cd){var cf,cc="(^| )(piwik[_-]"+cd;if(ce){for(cf=0;cf<ce.length;cf++){cc+="|"+ce[cf]}}cc+=")( |$)";return new RegExp(cc)}function bD(cc){return(aa&&cc&&0===String(cc).indexOf(aa))}function bP(cg,cc,ch,cd){if(bD(cc)){return 0}var cf=aH(bf,"download"),ce=aH(aC,"link"),ci=new RegExp("\\.("+aU.join("|")+")([?&#]|$)","i");if(ce.test(cg)){return"link"}if(cd||cf.test(cg)||ci.test(cc)){return"download"}if(ch){return 0}return"link"}function a8(cd){var cc;cc=cd.parentNode;while(cc!==null&&w(cc)){if(Q.isLinkElement(cd)){break}cd=cc;cc=cd.parentNode}return cd}function bi(cg){cg=a8(cg);if(!Q.hasNodeAttribute(cg,"href")){return}if(!w(cg.href)){return}var cf=Q.getAttributeValueFromNode(cg,"href");if(bD(cf)){return}var ch=cg.hostname||b(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 cc=bP(cg.className,cd,br(ci),Q.hasNodeAttribute(cg,"download"));if(cc){return{type:cc,href:cd}}}}function b7(cc,cd,ce,cf){var cg=m.buildInteractionRequestParams(cc,cd,ce,cf);if(!cg){return}return aT(cg,null,"contentInteraction")}function b6(ce,cf,cj,cc,cd){if(!w(ce)){return}if(bD(ce)){return ce}var ch=m.toAbsoluteUrl(ce);var cg="redirecturl="+l(ch)+"&";cg+=b7(cf,cj,cc,(cd||ce));var ci="&";if(aa.indexOf("?")<0){ci="?"}return aa+ci+cg}function a3(cc,cd){if(!cc||!cd){return false}var ce=m.findTargetNode(cc);if(m.shouldIgnoreInteraction(ce)){return false}ce=m.findTargetNodeNoDefault(cc);if(ce&&!H(ce,cd)){return false}return true}function aR(ce,cd,cg){if(!ce){return}var cc=m.findParentContentNode(ce);if(!cc){return}if(!a3(cc,ce)){return}var cf=m.buildContentBlock(cc);if(!cf){return}if(!cf.target&&cg){cf.target=cg}return m.buildInteractionRequestParams(cd,cf.name,cf.piece,cf.target)}function aO(cd){if(!ah||!ah.length){return false}var cc,ce;for(cc=0;cc<ah.length;cc++){ce=ah[cc];
+if(ce&&ce.name===cd.name&&ce.piece===cd.piece&&ce.target===cd.target){return true}}return false}function ac(cf){if(!cf){return false}var ci=m.findTargetNode(cf);if(!ci||m.shouldIgnoreInteraction(ci)){return false}var cj=bi(ci);if(bU&&cj&&cj.type){return false}if(Q.isLinkElement(ci)&&Q.hasNodeAttributeWithValue(ci,"href")){var cc=String(Q.getAttributeValueFromNode(ci,"href"));if(0===cc.indexOf("#")){return false}if(bD(cc)){return true}if(!m.isUrlToCurrentDomain(cc)){return false}var cg=m.buildContentBlock(cf);if(!cg){return}var ce=cg.name;var ck=cg.piece;var ch=cg.target;if(!Q.hasNodeAttributeWithValue(ci,m.CONTENT_TARGET_ATTR)||ci.wasContentTargetAttrReplaced){ci.wasContentTargetAttrReplaced=true;ch=m.toAbsoluteUrl(cc);Q.setAnyAttribute(ci,m.CONTENT_TARGET_ATTR,ch)}var cd=b6(cc,"click",ce,ck,ch);m.setHrefAttribute(ci,cd);return true}return false}function af(cd){if(!cd||!cd.length){return}var cc;for(cc=0;cc<cd.length;cc++){ac(cd[cc])}}function bh(cc){return function(cd){if(!cc){return}var cg=m.findParentContentNode(cc);
+var ch;if(cd){ch=cd.target||cd.srcElement}if(!ch){ch=cc}if(!a3(cg,ch)){return}bZ(bn);if(Q.isLinkElement(cc)&&Q.hasNodeAttributeWithValue(cc,"href")&&Q.hasNodeAttributeWithValue(cc,m.CONTENT_TARGET_ATTR)){var ce=Q.getAttributeValueFromNode(cc,"href");if(!bD(ce)&&cc.wasContentTargetAttrReplaced){Q.setAnyAttribute(cc,m.CONTENT_TARGET_ATTR,"")}}var cl=bi(cc);if(bz&&cl&&cl.type){return cl.type}if(ac(cg)){return"href"}var ci=m.buildContentBlock(cg);if(!ci){return}var cf=ci.name;var cm=ci.piece;var ck=ci.target;var cj=b7("click",cf,cm,ck);aZ(cj,bn);return cj}}function aF(ce){if(!ce||!ce.length){return}var cc,cd;for(cc=0;cc<ce.length;cc++){cd=m.findTargetNode(ce[cc]);if(cd&&!cd.contentInteractionTrackingSetupDone){cd.contentInteractionTrackingSetupDone=true;U(cd,"click",bh(cd))}}}function aB(ce,cf){if(!ce||!ce.length){return[]}var cc,cd;for(cc=0;cc<ce.length;cc++){if(aO(ce[cc])){ce.splice(cc,1);cc--}else{ah.push(ce[cc])}}if(!ce||!ce.length){return[]}af(cf);aF(cf);var cg=[];for(cc=0;cc<ce.length;
+cc++){cd=aT(m.buildImpressionRequestParams(ce[cc].name,ce[cc].piece,ce[cc].target),undefined,"contentImpressions");cg.push(cd)}return cg}function aW(cd){var cc=m.collectContent(cd);return aB(cc,cd)}function bC(cd){if(!cd||!cd.length){return[]}var cc;for(cc=0;cc<cd.length;cc++){if(!m.isNodeVisible(cd[cc])){cd.splice(cc,1);cc--}}if(!cd||!cd.length){return[]}return aW(cd)}function bN(ce,cc,cd){var cf=m.buildImpressionRequestParams(ce,cc,cd);return aT(cf,null,"contentImpression")}function aV(cf,cd){if(!cf){return}var cc=m.findParentContentNode(cf);var ce=m.buildContentBlock(cc);if(!ce){return}if(!cd){cd="Unknown"}return b7(cd,ce.name,ce.piece,ce.target)}function bx(cd,cf,cc,ce){return"e_c="+l(cd)+"&e_a="+l(cf)+(w(cc)?"&e_n="+l(cc):"")+(w(ce)?"&e_v="+l(ce):"")}function al(ce,cg,cc,cf,ch){if(String(ce).length===0||String(cg).length===0){return false}var cd=aT(bx(ce,cg,cc,cf),ch,"event");aZ(cd,bn)}function aN(cc,cf,cd,cg){var ce=aT("search="+l(cc)+(cf?"&search_cat="+l(cf):"")+(w(cd)?"&search_count="+cd:""),cg,"sitesearch");
+aZ(ce,bn)}function bl(cc,cf,ce){var cd=aT("idgoal="+cc+(cf?"&revenue="+cf:""),ce,"goal");aZ(cd,bn)}function bO(cf,cc,cj,ci,ce){var ch=cc+"="+l(bY(cf));var cd=aR(ce,"click",cf);if(cd){ch+="&"+cd}var cg=aT(ch,cj,"link");aZ(cg,(ci?0:bn),ci)}function bV(cd,cc){if(cd!==""){return cd+cc.charAt(0).toUpperCase()+cc.slice(1)}return cc}function aM(ch){var cg,cc,cf=["","webkit","ms","moz"],ce;if(!a0){for(cc=0;cc<cf.length;cc++){ce=cf[cc];if(Object.prototype.hasOwnProperty.call(u,bV(ce,"hidden"))){if(u[bV(ce,"visibilityState")]==="prerender"){cg=true}break}}}if(cg){U(u,ce+"visibilitychange",function cd(){u.removeEventListener(ce+"visibilitychange",cd,false);ch()});return}ch()}function aQ(cc){if(u.readyState==="complete"){cc()}else{if(G.addEventListener){G.addEventListener("load",cc)}else{if(G.attachEvent){G.attachEvent("onLoad",cc)}}}}function aA(cd){var cc=false;if(u.attachEvent){cc=u.readyState==="complete"}else{cc=u.readyState!=="loading"}if(cc){cd()}else{if(u.addEventListener){u.addEventListener("DOMContentLoaded",cd)
+}else{if(u.attachEvent){u.attachEvent("onreadystatechange",cd)}}}}function bE(cc){var cd=bi(cc);if(cd&&cd.type){cd.href=h(cd.href);bO(cd.href,cd.type,undefined,null,cc)}}function ca(cc){var cd,ce;cc=cc||G.event;cd=cc.which||cc.button;ce=cc.target||cc.srcElement;if(cc.type==="click"){if(ce){bE(ce)}}else{if(cc.type==="mousedown"){if((cd===1||cd===2)&&ce){bj=cd;at=ce}else{bj=at=null}}else{if(cc.type==="mouseup"){if(cd===bj&&ce===at){bE(ce)}bj=at=null}}}}function bA(cd,cc){if(cc){U(cd,"mouseup",ca,false);U(cd,"mousedown",ca,false)}else{U(cd,"click",ca,false)}}function bd(cd){if(!bz){bz=true;var ce,cc=aH(ai,"ignore"),cf=u.links;if(cf){for(ce=0;ce<cf.length;ce++){if(!cc.test(cf[ce].className)){bA(cf[ce],cd)}}}}}function bv(ce,cg,ch){if(ay){return true}ay=true;var ci=false;var cf,cd;function cc(){ci=true}aQ(function(){function cj(cl){setTimeout(function(){if(!ay){return}ci=false;ch.trackVisibleContentImpressions();cj(cl)},cl)}function ck(cl){setTimeout(function(){if(!ay){return}if(ci){ci=false;
+ch.trackVisibleContentImpressions()}ck(cl)},cl)}if(ce){cf=["scroll","resize"];for(cd=0;cd<cf.length;cd++){if(u.addEventListener){u.addEventListener(cf[cd],cc)}else{G.attachEvent("on"+cf[cd],cc)}}ck(100)}if(cg&&cg>0){cg=parseInt(cg,10);cj(cg)}})}function b0(){var cd,ce,cf={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=(new RegExp("Mac OS X.*Safari/")).test(e.userAgent)?G.devicePixelRatio||1:1;if(!((new RegExp("MSIE")).test(e.userAgent))){if(e.mimeTypes&&e.mimeTypes.length){for(cd in cf){if(Object.prototype.hasOwnProperty.call(cf,cd)){ce=e.mimeTypes[cf[cd]];bT[cd]=(ce&&ce.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&w(e.javaEnabled)&&e.javaEnabled()){bT.java="1"}if(q(G.GearsFactory)){bT.gears="1"}bT.cookie=ae()}bT.res=K.width*cc+"x"+K.height*cc
+}b0();bk();am();return{getVisitorId:function(){return bB().uuid},getVisitorInfo:function(){return Y()},getAttributionInfo:function(){return X()},getAttributionCampaignName:function(){return X()[0]},getAttributionCampaignKeyword:function(){return X()[1]},getAttributionReferrerTimestamp:function(){return X()[2]},getAttributionReferrerUrl:function(){return X()[3]},setTrackerUrl:function(cc){aa=cc},getTrackerUrl:function(){return aa},getSiteId:function(){return bS},setSiteId:function(cc){b8(cc)},setUserId:function(cc){if(!w(cc)||!cc.length){return}aJ=cc;a2=aX(aJ).substr(0,16)},getUserId:function(){return aJ},setCustomData:function(cc,cd){if(J(cc)){an=cc}else{if(!an){an={}}an[cc]=cd}},getCustomData:function(){return an},setCustomRequestProcessing:function(cc){au=cc},appendToTrackingUrl:function(cc){bo=cc},getRequest:function(cc){return aT(cc)},addPlugin:function(cc,cd){a[cc]=cd},setCustomVariable:function(cd,cc,cg,ce){var cf;if(!w(ce)){ce="visit"}if(!w(cc)){return}if(!w(cg)){cg=""}if(cd>0){cc=!n(cc)?String(cc):cc;
+cg=!n(cg)?String(cg):cg;cf=[cc.slice(0,bX),cg.slice(0,bX)];if(ce==="visit"||ce===2){Z();ag[cd]=cf}else{if(ce==="page"||ce===3){bg[cd]=cf}else{if(ce==="event"){ab[cd]=cf}}}}},getCustomVariable:function(cd,ce){var cc;if(!w(ce)){ce="visit"}if(ce==="page"||ce===3){cc=bg[cd]}else{if(ce==="event"){cc=ab[cd]}else{if(ce==="visit"||ce===2){Z();cc=ag[cd]}}}if(!w(cc)||(cc&&cc[0]==="")){return false}return cc},deleteCustomVariable:function(cc,cd){if(this.getCustomVariable(cc,cd)){this.setCustomVariable(cc,"","",cd)}},storeCustomVariablesInCookie:function(){a6=true},setLinkTrackingTimer:function(cc){bn=cc},setDownloadExtensions:function(cc){if(n(cc)){cc=cc.split("|")}aU=cc},addDownloadExtensions:function(cd){var cc;if(n(cd)){cd=cd.split("|")}for(cc=0;cc<cd.length;cc++){aU.push(cd[cc])}},removeDownloadExtensions:function(ce){var cd,cc=[];if(n(ce)){ce=ce.split("|")}for(cd=0;cd<aU.length;cd++){if(z(ce,aU[cd])===-1){cc.push(aU[cd])}}aU=cc},setDomains:function(cc){bp=n(cc)?[cc]:cc;bp.push(bM)},setIgnoreClasses:function(cc){ai=n(cc)?[cc]:cc
+},setRequestMethod:function(cc){bs=cc||bq},setRequestContentType:function(cc){aK=cc||bc},setReferrerUrl:function(cc){bu=cc},setCustomUrl:function(cc){a7=bL(b5,cc)},setDocumentTitle:function(cc){aS=cc},setAPIUrl:function(cc){ax=cc},setDownloadClasses:function(cc){bf=n(cc)?[cc]:cc},setLinkClasses:function(cc){aC=n(cc)?[cc]:cc},setCampaignNameKey:function(cc){aY=n(cc)?[cc]:cc},setCampaignKeywordKey:function(cc){aP=n(cc)?[cc]:cc},discardHashTag:function(cc){ak=cc},setCookieNamePrefix:function(cc){b3=cc;ag=ar()},setCookieDomain:function(cc){aq=y(cc);bk()},setCookiePath:function(cc){b4=cc;bk()},setVisitorCookieTimeout:function(cc){aw=cc*1000},setSessionCookieTimeout:function(cc){az=cc*1000},setReferralCookieTimeout:function(cc){ba=cc*1000},setConversionAttributionFirstReferrer:function(cc){a5=cc},disableCookies:function(){ao=true;bT.cookie="0"},deleteCookies:function(){W()},setDoNotTrack:function(cd){var cc=e.doNotTrack||e.msDoNotTrack;bW=cd&&(cc==="yes"||cc==="1");if(bW){this.disableCookies()
+}},addListener:function(cd,cc){bA(cd,cc)},enableLinkTracking:function(cc){bU=true;if(p){bd(cc)}else{E.push(function(){bd(cc)})}},enableJSErrorTracking:function(){if(b9){return}b9=true;var cc=G.onerror;G.onerror=function(ch,cf,ce,cg,cd){aM(function(){var ci="JavaScript Errors";var cj=cf+":"+ce;if(cg){cj+=":"+cg}al(ci,cj,ch)});if(cc){return cc(ch,cf,ce,cg,cd)}return false}},disablePerformanceTracking:function(){a1=false},setGenerationTimeMs:function(cc){aI=parseInt(cc,10)},setHeartBeatTimer:function(ce,cd){var cc=new Date();aj=cc.getTime()+ce*1000;aG=cd*1000},killFrame:function(){if(G.location!==G.top.location){G.top.location=G.location}},redirectFile:function(cc){if(G.location.protocol==="file:"){G.location=cc}},setCountPreRendered:function(cc){a0=cc},trackGoal:function(cc,ce,cd){aM(function(){bl(cc,ce,cd)})},trackLink:function(cd,cc,cf,ce){aM(function(){bO(cd,cc,cf,ce)})},trackPageView:function(cc,cd){ah=[];if(A(bS)){aM(function(){M(aa,ax,bS)})}else{aM(function(){be(cc,cd)})}},trackAllContentImpressions:function(){if(A(bS)){return
+}aM(function(){aA(function(){var cc=m.findContentNodes();var cd=aW(cc);ap(cd,bn)})})},trackVisibleContentImpressions:function(cc,cd){if(A(bS)){return}if(!w(cc)){cc=true}if(!w(cd)){cd=750}bv(cc,cd,this);aM(function(){aQ(function(){var ce=m.findContentNodes();var cf=bC(ce);ap(cf,bn)})})},trackContentImpression:function(ce,cc,cd){if(A(bS)){return}if(!ce){return}cc=cc||"Unknown";aM(function(){var cf=bN(ce,cc,cd);aZ(cf,bn)})},trackContentImpressionsWithinNode:function(cc){if(A(bS)||!cc){return}aM(function(){if(ay){aQ(function(){var cd=m.findContentNodesWithinNode(cc);var ce=bC(cd);ap(ce,bn)})}else{aA(function(){var cd=m.findContentNodesWithinNode(cc);var ce=aW(cd);ap(ce,bn)})}})},trackContentInteraction:function(ce,cf,cc,cd){if(A(bS)){return}if(!ce||!cf){return}cc=cc||"Unknown";aM(function(){var cg=b7(ce,cf,cc,cd);aZ(cg,bn)})},trackContentInteractionNode:function(cd,cc){if(A(bS)||!cd){return}aM(function(){var ce=aV(cd,cc);aZ(ce,bn)})},trackEvent:function(cd,cf,cc,ce){aM(function(){al(cd,cf,cc,ce)
+})},trackSiteSearch:function(cc,ce,cd){aM(function(){aN(cc,ce,cd)})},setEcommerceView:function(cf,cc,ce,cd){if(!w(ce)||!ce.length){ce=""}else{if(ce instanceof Array){ce=JSON2.stringify(ce)}}bg[5]=["_pkc",ce];if(w(cd)&&String(cd).length){bg[2]=["_pkp",cd]}if((!w(cf)||!cf.length)&&(!w(cc)||!cc.length)){return}if(w(cf)&&cf.length){bg[3]=["_pks",cf]}if(!w(cc)||!cc.length){cc=""}bg[4]=["_pkn",cc]},addEcommerceItem:function(cg,cc,ce,cd,cf){if(cg.length){bF[cg]=[cg,cc,ce,cd,cf]}},trackEcommerceOrder:function(cc,cg,cf,ce,cd,ch){bJ(cc,cg,cf,ce,cd,ch)},trackEcommerceCartUpdate:function(cc){b2(cc)}}}function v(){return{push:R}}U(G,"beforeunload",S,false);o();Date.prototype.getTimeAlias=Date.prototype.getTime;L=new D();var r={setTrackerUrl:1,setAPIUrl:1,setUserId:1,setSiteId:1,disableCookies:1,enableLinkTracking:1};var d;for(t=0;t<_paq.length;t++){d=_paq[t][0];if(r[d]){R(_paq[t]);delete _paq[t];if(r[d]>1){if(console!==undefined&&console&&console.error){console.error("The method "+d+' 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')
}}r[d]++}}for(t=0;t<_paq.length;t++){if(_paq[t]){R(_paq[t])}}_paq=new v();c={addPlugin:function(W,X){a[W]=X},getTracker:function(W,X){if(!w(X)){X=this.getAsyncTracker().getSiteId()}if(!w(W)){W=this.getAsyncTracker().getTrackerUrl()}return new D(W,X)},getAsyncTracker:function(){return L}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return c})}return c}())}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{return eval("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 */
diff --git a/piwik.php b/piwik.php
index b0915e38a1..f3e0ba934a 100644
--- a/piwik.php
+++ b/piwik.php
@@ -52,7 +52,7 @@ require_once PIWIK_INCLUDE_PATH . '/core/Cookie.php';
// TODO should move to Tracker application class later. currently needed for environment validation.
SettingsServer::setIsTrackerApiRequest();
-$environment = new \Piwik\Application\Environment(null);
+$environment = new \Piwik\Application\Environment('tracker');
$environment->init();
Tracker::loadTrackerEnvironment();
diff --git a/plugins/API/API.php b/plugins/API/API.php
index 06f04447e2..635840afda 100644
--- a/plugins/API/API.php
+++ b/plugins/API/API.php
@@ -23,9 +23,9 @@ use Piwik\Period;
use Piwik\Period\Range;
use Piwik\Piwik;
use Piwik\Plugin\Dimension\VisitDimension;
+use Piwik\Plugins\API\DataTable\MergeDataTables;
use Piwik\Plugins\CoreAdminHome\CustomLogo;
use Piwik\Segment\SegmentExpression;
-use Piwik\Translate;
use Piwik\Translation\Translator;
use Piwik\Version;
@@ -417,7 +417,8 @@ class API extends \Piwik\Plugin\API
if ($mergedDataTable === false) {
$mergedDataTable = $dataTable;
} else {
- $this->mergeDataTables($mergedDataTable, $dataTable);
+ $merger = new MergeDataTables();
+ $merger->mergeDataTables($mergedDataTable, $dataTable);
}
}
@@ -431,41 +432,6 @@ class API extends \Piwik\Plugin\API
}
/**
- * Merge the columns of two data tables.
- * Manipulates the first table.
- */
- private function mergeDataTables($table1, $table2)
- {
- // handle table arrays
- if ($table1 instanceof DataTable\Map && $table2 instanceof DataTable\Map) {
- $subTables2 = $table2->getDataTables();
- foreach ($table1->getDataTables() as $index => $subTable1) {
- if (!array_key_exists($index, $subTables2)) {
- // occurs when archiving starts on dayN and continues into dayN+1, see https://github.com/piwik/piwik/issues/5168#issuecomment-50959925
- continue;
- }
- $subTable2 = $subTables2[$index];
- $this->mergeDataTables($subTable1, $subTable2);
- }
- return;
- }
-
- $firstRow2 = $table2->getFirstRow();
- if (!($firstRow2 instanceof Row)) {
- return;
- }
-
- $firstRow1 = $table1->getFirstRow();
- if (empty($firstRow1)) {
- $firstRow1 = $table1->addRow(new Row());
- }
-
- foreach ($firstRow2->getColumns() as $metric => $value) {
- $firstRow1->setColumn($metric, $value);
- }
- }
-
- /**
* Given an API report to query (eg. "Referrers.getKeywords", and a Label (eg. "free%20software"),
* this function will query the API for the previous days/weeks/etc. and will return
* a ready to use data structure containing the metrics for the requested Label, along with enriched information (min/max values, etc.)
diff --git a/plugins/API/DataTable/MergeDataTables.php b/plugins/API/DataTable/MergeDataTables.php
new file mode 100644
index 0000000000..7aebca3460
--- /dev/null
+++ b/plugins/API/DataTable/MergeDataTables.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\API\DataTable;
+
+use Piwik\DataTable\Row;
+use Piwik\DataTable;
+
+class MergeDataTables
+{
+
+ /**
+ * Merge the columns of two data tables.
+ * Manipulates the first table.
+ *
+ * @param DataTable|DataTable\Map $table1 The table to eventually filter.
+ * @param DataTable|DataTable\Map $table2 Whether to delete rows with no visits or not.
+ */
+ public function mergeDataTables($table1, $table2)
+ {
+ // handle table arrays
+ if ($table1 instanceof DataTable\Map && $table2 instanceof DataTable\Map) {
+ $subTables2 = $table2->getDataTables();
+ foreach ($table1->getDataTables() as $index => $subTable1) {
+ if (!array_key_exists($index, $subTables2)) {
+ // occurs when archiving starts on dayN and continues into dayN+1, see https://github.com/piwik/piwik/issues/5168#issuecomment-50959925
+ continue;
+ }
+ $subTable2 = $subTables2[$index];
+ $this->mergeDataTables($subTable1, $subTable2);
+ }
+ return;
+ }
+
+ $firstRow2 = $table2->getFirstRow();
+ if (!($firstRow2 instanceof Row)) {
+ return;
+ }
+
+ $firstRow1 = $table1->getFirstRow();
+ if (empty($firstRow1)) {
+ $firstRow1 = $table1->addRow(new Row());
+ }
+
+ foreach ($firstRow2->getColumns() as $metric => $value) {
+ $firstRow1->setColumn($metric, $value);
+ }
+ }
+
+} \ No newline at end of file
diff --git a/plugins/API/lang/da.json b/plugins/API/lang/da.json
index d7d85003f8..b0d81918d4 100644
--- a/plugins/API/lang/da.json
+++ b/plugins/API/lang/da.json
@@ -4,6 +4,7 @@
"KeepTokenSecret": "Token_auth er ligeså hemmeligt som brugernavn og adgangskode, %sdel det ikke ud%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.",
+ "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.",
"QuickDocumentationTitle": "API - hurtig i gang dokumentation",
"TopLinkTooltip": "Få adgang til dine webanalyse data programmeringsmæssigt gennem en simpel API i JSON, XML, etc.",
"UserAuthentication": "Brugergodkendelse",
diff --git a/plugins/API/lang/fr.json b/plugins/API/lang/fr.json
index 85050a2a4e..d91033b9f9 100644
--- a/plugins/API/lang/fr.json
+++ b/plugins/API/lang/fr.json
@@ -4,6 +4,7 @@
"KeepTokenSecret": "Cette clef partagée (tocken_auth) est aussi secrète que votre login et mot de passe, %s ne la partagez pas%s !",
"LoadedAPIs": "%s API chargées avec succès",
"MoreInformation": "Pour plus d'informations à propos de l'API de Piwik, merci de visiter %s l'introduction à Piwik %s et %s la référence de l'API Piwik %s.",
+ "PluginDescription": "Toutes les données de Piwik sont disponibles 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",
"QuickDocumentationTitle": "Documentation rapide de l'API.",
"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",
diff --git a/plugins/API/lang/nl.json b/plugins/API/lang/nl.json
index b03bee32ae..78bb1655c9 100644
--- a/plugins/API/lang/nl.json
+++ b/plugins/API/lang/nl.json
@@ -1,8 +1,8 @@
{
"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. %s Deel het met niemand! %s!",
- "LoadedAPIs": "Succesvol %s APIs geladen",
+ "KeepTokenSecret": "Deze token_auth is even geheim als uw gebruikersnaam en wachtwoord, %sdeel het met niemand%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.",
"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.",
"QuickDocumentationTitle": "Korte API handleiding",
diff --git a/plugins/API/lang/ru.json b/plugins/API/lang/ru.json
index 67aabccb8e..ab0f4e1cd4 100644
--- a/plugins/API/lang/ru.json
+++ b/plugins/API/lang/ru.json
@@ -4,6 +4,7 @@
"KeepTokenSecret": "Этот token_auth является таким же секретным, как ваш логин и пароль. %s НЕ СООБЩАЙТЕ ЕГО НИКОМУ%s!",
"LoadedAPIs": "%s API успешно загружен",
"MoreInformation": "Чтобы узнать больше информации о Piwik API, пожалуйста, посмотрите раздел %s Introduction to Piwik API %s в %s Piwik API Reference %s.",
+ "PluginDescription": "Все данные из Piwik доступны через простые API. Этот плагин является входной точкой для веб сервиса, который можно вызвать чтобы получить данные веб аналитики в xml, json, php, csv и др.",
"QuickDocumentationTitle": "Краткая API документация",
"TopLinkTooltip": "Получайте доступ к вашей веб-аналитике с помощью простого API и использования json, xml и др.",
"UserAuthentication": "Аутентификация пользователя",
diff --git a/plugins/Actions/lang/da.json b/plugins/Actions/lang/da.json
index 2f7eece65f..2b6217806e 100644
--- a/plugins/Actions/lang/da.json
+++ b/plugins/Actions/lang/da.json
@@ -39,6 +39,7 @@
"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.",
"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.",
"SiteSearchCategories2": "For eksempel har E-handel hjemmesider typisk en \"Kategori\" vælger, så besøgende kan begrænse deres søgninger til alle produkter i en bestemt kategori.",
"SiteSearchFollowingPagesDoc": "Når besøgende søger på hjemmesiden, er de på udkig efter en bestemt side, indhold, produkt eller service. Rapporten viser de sider, der blev klikket mest på efter en intern søgning. Med andre ord, listen over sider mest søgt af besøgende allerede på hjemmesiden.",
diff --git a/plugins/Actions/lang/fr.json b/plugins/Actions/lang/fr.json
index 687d6c5ef8..261b0e9016 100644
--- a/plugins/Actions/lang/fr.json
+++ b/plugins/Actions/lang/fr.json
@@ -39,6 +39,7 @@
"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.",
"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.",
"SiteSearchCategories2": "Par exemple, les sites d'e-commerce ont généralement une sélection de la catégorie afin que les visiteurs puissent affiner leurs recherches aux produits d'une catégories définie.",
"SiteSearchFollowingPagesDoc": "Quand les visiteurs recherchent sur votre site web, ils sont à la recherche d'une page, d'un produit, d'un contenu ou service en particulier. Ce rapport liste les pages qui ont été le plus cliquées après une recherche interne. En d'autres termes, la liste des pages les plus recherchées par des visiteurs déjà sur votre site.",
diff --git a/plugins/Actions/lang/nl.json b/plugins/Actions/lang/nl.json
index fec5a99829..816550dd9f 100644
--- a/plugins/Actions/lang/nl.json
+++ b/plugins/Actions/lang/nl.json
@@ -39,6 +39,7 @@
"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.",
"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.",
"SiteSearchCategories2": "Bijvoorbeeld, Ecommerce websites hebben vaak een categoriekeuze waarbij de zoekresultaten worden beperkt tot een specifieke categorie.",
"SiteSearchFollowingPagesDoc": "Als bezoekers op uw website surfen, dan zoekt men vaak een bepaalde pagina, inhoud, produkt of dienst. Dit rapport laat de pagina's zien die het vaakst zijn aangeklikt na een interne zoekopdracht. Met andere woorden: de meeste gezochte pagina's door bezoekers die reeds op uw website zijn.",
diff --git a/plugins/Actions/lang/pl.json b/plugins/Actions/lang/pl.json
index 2e114808d7..47201b927e 100644
--- a/plugins/Actions/lang/pl.json
+++ b/plugins/Actions/lang/pl.json
@@ -39,6 +39,7 @@
"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.",
"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.",
"SiteSearchCategories2": "Na przykład, strony E-Commerce zazwyczaj mają selektor \"Kategoria\" dzięki czemu odwiedzający mogą ograniczyć wyszukiwanie wszystkich produktów dla danej kategorii.",
"SiteSearchFollowingPagesDoc": "Kiedy odwiedzający wyszukują na twojej stronie, wtedy szukają danej strony, zawartości, produktu lub usługi. Ten raport zawiera listę stron, które najczęściej były klikane po wewnętrznym wyszukiwaniu. Innymi słowy, lista stron które najczęściej użytkownicy szukają jak już znajdą się na twoje stronie.",
diff --git a/plugins/Actions/lang/ru.json b/plugins/Actions/lang/ru.json
index 806dc1f404..f9966b2896 100644
--- a/plugins/Actions/lang/ru.json
+++ b/plugins/Actions/lang/ru.json
@@ -38,6 +38,7 @@
"PagesReportDocumentation": "Этот отчет содержит информацию об адресах страниц, на которых побывали посетители вашего сайта. %s Таблица организовано иерархично – URL-ы отображаются папочной структурой.",
"PageTitlesReportDocumentation": "Этот отчет содержит информацию о заголовках посещенных страниц. %s Заголовок страницы это HTML-тег %s, который браузеры отображают в заголовке окна (вкладки).",
"PageUrls": "URL-ы страниц",
+ "PluginDescription": "Отчёты о просмотрах и заголовках страниц. Позволяют оценить поисковый дижок внутреннего сайта. Автоматически отслеживает клики по внешним ссылкам и скачиванию файлов.",
"SiteSearchCategories1": "Этот отчет показывает список категорий, которые выбрали посетители при поиске на вашем сайте.",
"SiteSearchCategories2": "Например, сайты электронной коммерции обычно имеют выбор «Категорий», чтобы посетителям было удобно их сортировать и искать.",
"SiteSearchFollowingPagesDoc": "Когда посетители ищут что-то на вашем сайте, они хотят найти определенную страницу, контент, продукт или услугу. Этот отчет отображает страницы, по которым посетители кликают наиболее часто при поиске. Иными словами, это список страниц, которые ищутся наиболее часто на вашем сайте.",
diff --git a/plugins/Annotations/lang/sq.json b/plugins/Annotations/lang/sq.json
index 66a4c296c9..06c0a14a0f 100644
--- a/plugins/Annotations/lang/sq.json
+++ b/plugins/Annotations/lang/sq.json
@@ -6,15 +6,16 @@
"ClickToDelete": "Klikoni që të fshihet ky shënim.",
"ClickToEdit": "Klikoni që të përpunohet ky shënim.",
"ClickToEditOrAdd": "Klikoni që të përpunohet ose që të shtohet një shënim i ri.",
- "ClickToStarOrUnstar": "Klikoni që këtij shënimi t'i vihet ose hiqet ylli.",
+ "ClickToStarOrUnstar": "Klikoni që këtij shënimi t’i vihet ose hiqet ylli.",
"CreateNewAnnotation": "Krijoni një shënim të ri...",
- "EnterAnnotationText": "Jepni shënim tuaj...",
+ "EnterAnnotationText": "Jepni shënimin tuaj...",
"HideAnnotationsFor": "Fshihi shënimet për %s...",
- "IconDesc": "Shihni shënimet për këtë interval kohor.",
+ "IconDesc": "Shihni shënimet për këtë interval datash.",
"IconDescHideNotes": "Fshihi shënimet për këtë interval datash.",
- "InlineQuickHelp": "Mund të krijoni shënime për të vënë një shenjë te ngjarje speciale (fjala vjen, një postim i ri blogu, ose ri hartim site-i web), për të ruajtur analiza të të dhënave tuaja ose për të ruajtur arëdo gjëje tjetër që mendoni se është e rëndësishme.",
+ "InlineQuickHelp": "Mund të krijoni shënime për të vënë një shenjë te ngjarje speciale (fjala vjen, një postim i ri blogu, ose rihartim sajti), për të ruajtur analiza të të dhënave tuaja ose për të ruajtur çfarëdo gjëje tjetër që mendoni se është e rëndësishme.",
"LoginToAnnotate": "Që të krijoni një shënim, bëni hyrjen.",
- "NoAnnotations": "Nuk ka shënime për këtë interval datash.",
+ "NoAnnotations": "S’ka shënime për këtë interval datash.",
+ "PluginDescription": "Ju lejon të bashkëngjitni shënime në ditë të ndryshme, për t’u vënë shenjë ndryshimeve të bëra te sajti juaj, të ruani analiza që bëni dhe që lidhen me të dhënat tuaja, si dhe për të ndarë me kolegët mendimet tuaja. Duke bërë shënime në të dhënat tuaja, siguroni që të mbani mend pse të dhënat tuaja duken ashtu si duken.",
"ViewAndAddAnnotations": "Shihni dhe shtoni shënime për %s...",
"YouCannotModifyThisNote": "Nuk e ndryshoni dot këtë shënim, ngaqë nuk e krijuat ju, dhe as keni të drejta përgjegjësi për këtë site."
}
diff --git a/plugins/Contents/lang/da.json b/plugins/Contents/lang/da.json
index 725e9a55f2..aaef05b252 100644
--- a/plugins/Contents/lang/da.json
+++ b/plugins/Contents/lang/da.json
@@ -1,12 +1,12 @@
{
"Contents": {
- "ContentName": "Indholdsnavn",
- "ContentPiece": "Indholdsstykke",
- "Contents": "Indhold",
- "ContentTarget": "Indholdsmål",
"Impressions": "Indtryk",
+ "Interactions": "Interaktioner",
"Interaction": "Interaktion",
"InteractionRate": "Interaktionsfrekvens",
- "Interactions": "Interaktioner"
+ "ContentName": "Indholdsnavn",
+ "ContentPiece": "Indholdsstykke",
+ "ContentTarget": "Indholdsmål",
+ "Contents": "Indhold"
}
} \ No newline at end of file
diff --git a/plugins/Contents/lang/el.json b/plugins/Contents/lang/el.json
index 00eeeb0578..e4cc3da813 100644
--- a/plugins/Contents/lang/el.json
+++ b/plugins/Contents/lang/el.json
@@ -1,12 +1,12 @@
{
"Contents": {
- "ContentName": "Όνομα Περιεχομένου",
- "ContentPiece": "Κομμάτι Περιεχομένου",
- "Contents": "Περιεχόμενα",
- "ContentTarget": "Στόχος Περιεχομένου",
"Impressions": "Αποτυπώσεις",
+ "Interactions": "Αλληλεπιδράσεις",
"Interaction": "Αλληλεπίδραση",
"InteractionRate": "Ρυθμός αλληλεπίδρασης",
- "Interactions": "Αλληλεπιδράσεις"
+ "ContentName": "Όνομα Περιεχομένου",
+ "ContentPiece": "Κομμάτι Περιεχομένου",
+ "ContentTarget": "Στόχος Περιεχομένου",
+ "Contents": "Περιεχόμενα"
}
} \ No newline at end of file
diff --git a/plugins/Contents/lang/es.json b/plugins/Contents/lang/es.json
index af41fb774c..40b446ce6e 100644
--- a/plugins/Contents/lang/es.json
+++ b/plugins/Contents/lang/es.json
@@ -1,11 +1,11 @@
{
"Contents": {
+ "Impressions": "Impresiones",
+ "Interactions": "Interacciones",
+ "InteractionRate": "Nivel de interaccion",
"ContentName": "Nombre del contenido",
"ContentPiece": "Pieza de Contenido",
- "Contents": "Contenidos",
"ContentTarget": "Contenido de objetivo",
- "Impressions": "Impresiones",
- "InteractionRate": "Nivel de interaccion",
- "Interactions": "Interacciones"
+ "Contents": "Contenidos"
}
} \ No newline at end of file
diff --git a/plugins/Contents/lang/ru.json b/plugins/Contents/lang/ru.json
index 87340c750d..6113bc4741 100644
--- a/plugins/Contents/lang/ru.json
+++ b/plugins/Contents/lang/ru.json
@@ -2,7 +2,7 @@
"Contents": {
"ContentName": "Название публикации",
"ContentPiece": "Часть публикации",
- "Contents": "Публикации",
- "ContentTarget": "Цель публикации"
+ "ContentTarget": "Цель публикации",
+ "Contents": "Публикации"
}
} \ No newline at end of file
diff --git a/plugins/Contents/lang/sq.json b/plugins/Contents/lang/sq.json
new file mode 100644
index 0000000000..27c244be90
--- /dev/null
+++ b/plugins/Contents/lang/sq.json
@@ -0,0 +1,12 @@
+{
+ "Contents": {
+ "Impressions": "Përshtypje",
+ "Interactions": "Ndërveprimet",
+ "Interaction": "Ndërveprim",
+ "InteractionRate": "Shkalla e ndërveprimit",
+ "ContentName": "Emri i përmbajtjes",
+ "ContentPiece": "Copëz përmbajtjeje",
+ "ContentTarget": "Përmbatja e shenjë",
+ "Contents": "Përmbajtjet"
+ }
+} \ No newline at end of file
diff --git a/plugins/CoreAdminHome/Commands/RunScheduledTasks.php b/plugins/CoreAdminHome/Commands/RunScheduledTasks.php
index 1950810e12..2d6a0e2439 100644
--- a/plugins/CoreAdminHome/Commands/RunScheduledTasks.php
+++ b/plugins/CoreAdminHome/Commands/RunScheduledTasks.php
@@ -34,15 +34,7 @@ class RunScheduledTasks extends ConsoleCommand
$this->forceRunAllTasksIfRequested($input);
FrontController::getInstance()->init();
- $scheduledTasksResults = API::getInstance()->runScheduledTasks();
-
- foreach ($scheduledTasksResults as $scheduledTasksResult) {
- $output->writeln(sprintf(
- '<comment>%s</comment> - %s',
- $scheduledTasksResult['task'],
- $scheduledTasksResult['output']
- ));
- }
+ API::getInstance()->runScheduledTasks();
$this->writeSuccessMessage($output, array('Scheduled Tasks executed'));
}
diff --git a/plugins/CoreAdminHome/lang/ar.json b/plugins/CoreAdminHome/lang/ar.json
index 7bfcd30494..9572654182 100644
--- a/plugins/CoreAdminHome/lang/ar.json
+++ b/plugins/CoreAdminHome/lang/ar.json
@@ -38,7 +38,6 @@
"OptOutExplanationBis": "سيقوم هذا الكود بعرض iFrame يحتوي رابطاً لزوارك لإلغاء اشتراكهم في Piwik من خلال ضبط كوكيز في متصفحهم. %s انقر هنا %s لمشاهدة المحتويات التي سيتم عرضها في النافذة الفرعية iFrame.",
"OptOutForYourVisitors": "إلغاء الاشتراك في Piwik لزوارك",
"PiwikIsInstalledAt": "بايويك مثبت في المسار",
- "PluginSettings": "إعدادات الإضافة",
"TrackAGoal": "تتبع هدف",
"TrackingCode": "كود التتبع",
"TrustedHostConfirm": "هل ترغب حقاً في تغيير اسم المُضيف الموثوق لدى بايويك؟",
diff --git a/plugins/CoreAdminHome/lang/bg.json b/plugins/CoreAdminHome/lang/bg.json
index 4234716214..9d7a7a1d82 100644
--- a/plugins/CoreAdminHome/lang/bg.json
+++ b/plugins/CoreAdminHome/lang/bg.json
@@ -9,7 +9,6 @@
"CustomLogoFeedbackInfo": "Ако модифицирате Piwik логото, може също да пожелаете да скриете %s връзката в главното меню. За да направите това, можете да изключите добавката за обратна връзка в страницата %sУправление на добавки%s.",
"CustomLogoHelpText": "Можете да модифицирате логото на Piwik, което да се показва в интерфейса на потребителя и имейлите с отчети.",
"EmailServerSettings": "Настройки сървър на е-поща",
- "FaviconUpload": "Изберете Favicon за качване",
"ForBetaTestersOnly": "Само за бета тестери",
"ImageTracking": "Проследяване на изображенията",
"ImageTrackingIntro1": "Когато посетителят е изключил JavaScript или когато JavaScript не може да бъде използван, може да се използва проследяващата връзка към изображение, за да бъдат проследени посетителите.",
@@ -44,6 +43,7 @@
"LatestBetaRelease": "Най-новата бета версия",
"LatestStableRelease": "Най-новата стабилна версия",
"LogoUpload": "Изберете логото за качване",
+ "FaviconUpload": "Изберете Favicon за качване",
"LogoUploadHelp": "Моля, качете файла в %s формати с минимална височина %s пиксела.",
"MenuDiagnostic": "Диагностика",
"MenuGeneralSettings": "Основни настройки",
@@ -55,7 +55,6 @@
"OptOutForYourVisitors": "Piwik отказ за вашите посетители",
"PiwikIsInstalledAt": "Piwik е инсталиран на",
"PluginSettingChangeNotAllowed": "Не е позволено да се променя стойността за настройка \"%s\" в добавка \"%s\"",
- "PluginSettings": "Настройки на добавките",
"PluginSettingsIntro": "Тук могат да се променят настройките за следните добавки от трети страни:",
"PluginSettingsValueNotAllowed": "Стойността за поле \"%s\" за добавка \"%s\" не е позволена",
"SendPluginUpdateCommunicationHelp": "Ще бъде изпратено съобщение на привилигирован потребител когато е налична нова версия за добавка.",
diff --git a/plugins/CoreAdminHome/lang/cs.json b/plugins/CoreAdminHome/lang/cs.json
index cd18500261..715e0904bf 100644
--- a/plugins/CoreAdminHome/lang/cs.json
+++ b/plugins/CoreAdminHome/lang/cs.json
@@ -10,8 +10,6 @@
"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áš %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í e-mailového serveru",
- "FaviconUpload": "Vyberte favicon, kterou chcete nahrát",
- "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.",
"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.",
@@ -51,26 +49,27 @@
"LatestBetaRelease": "Poslední testovací verze",
"LatestStableRelease": "Poslední stabilní verze",
"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.",
"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ů.",
- "MenuDevelopment": "Vývoj",
"MenuDiagnostic": "Diagnostika",
"MenuGeneralSettings": "Hlavní nastavení",
"MenuManage": "Správa",
+ "MenuDevelopment": "Vývoj",
"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 moct 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.",
"OptOutForYourVisitors": "Piwik vyloučení pro Vaše návštěvníky",
- "PersonalPluginSettings": "Osobní nastavení zásuvných modulů",
"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\"",
- "PluginSettings": "Nastavení zásuvného modulu",
"PluginSettingsIntro": "Zde můžete změnit nastavení pro následující zásuvné moduly třetích stran:",
- "PluginSettingsSaveFailed": "Nepodařilo se uložit nastavení zásuvného modulu",
"PluginSettingsValueNotAllowed": "Hodnota pro pole \"%s\" zásuvného modulu \"%s\" není povolena",
+ "PluginSettingsSaveFailed": "Nepodařilo se uložit nastavení zásuvného modulu",
"SendPluginUpdateCommunication": "Odeslat e-mail s upozorněním, když je vydána aktualizace zásuvného modulu",
"SendPluginUpdateCommunicationHelp": "Super uživatelům bude odeslán e-mail, když 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.",
diff --git a/plugins/CoreAdminHome/lang/da.json b/plugins/CoreAdminHome/lang/da.json
index a73cb7f909..d1b5848d6f 100644
--- a/plugins/CoreAdminHome/lang/da.json
+++ b/plugins/CoreAdminHome/lang/da.json
@@ -10,8 +10,6 @@
"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.",
"EmailServerSettings": "E-mail-server indstillinger",
- "FaviconUpload": "Vælg Favicon til overførelse",
- "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.",
"ForBetaTestersOnly": "Kun for beta testere",
"ImageTracking": "Sporing vha. et billede",
"ImageTrackingIntro1": "Når en besøgende har deaktiveret JavaScript, eller når JavaScript kan ikke bruges, kan sporing vha. et billede bruges til at spore besøgende.",
@@ -51,27 +49,32 @@
"LatestBetaRelease": "Den nyeste beta release",
"LatestStableRelease": "Den seneste stabile udgave",
"LogoNotWriteableInstruction": "Hvis du vil bruge din brugerdefinerede logo i stedet for standard Piwik logoet, giver skriverettigheder til denne mappe: %1$s Piwik brug skriveadgang til dine logoer gemt i filer %2$s.",
+ "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.",
- "MenuDevelopment": "Udvikling",
"MenuDiagnostic": "Diagnosticering",
"MenuGeneralSettings": "Generelle indstillinger",
"MenuManage": "Administrere",
+ "MenuDevelopment": "Udvikling",
"OptOutComplete": "Opt-out udført; dine besøg på hjemmesiden bliver ikke registreret af analyseværktøjet.",
"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.",
"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\"",
"PluginSettings": "Programudvidelses indstilinger",
"PluginSettingsIntro": "Her kan du ændre indstillingerne for følgende 3. parts udvidelsesmoduler:",
- "PluginSettingsSaveFailed": "Kunne ikke gemme udvidelsesmodul indstillinger",
"PluginSettingsValueNotAllowed": "Værdien for feltet \"%s\" i udvidelsen \"%s\" er ikke tilladt",
+ "PluginSettingsSaveFailed": "Kunne ikke gemme udvidelsesmodul indstillinger",
"SendPluginUpdateCommunication": "Send mig en e-mail når der er en ny opdatering af denne programudvidelse.",
"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.",
+ "SystemPluginSettings": "Indstillinger for system udvidelsesmoduler",
"TrackAGoal": "Spor et mål",
"TrackingCode": "Sporingskode",
"TrustedHostConfirm": "Er du sikker på, at du vil ændre det betroede Piwik værtsnavn?",
diff --git a/plugins/CoreAdminHome/lang/de.json b/plugins/CoreAdminHome/lang/de.json
index e9391a691e..032ec566a3 100644
--- a/plugins/CoreAdminHome/lang/de.json
+++ b/plugins/CoreAdminHome/lang/de.json
@@ -10,8 +10,6 @@
"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.",
"EmailServerSettings": "E-Mail-Server-Einstellungen",
- "FaviconUpload": "Wählen Sie ein Favicon für den Upload aus",
- "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.",
"ForBetaTestersOnly": "Nur für Beta-Tester",
"ImageTracking": "Tracking mit Hilfe eines Bildes",
"ImageTrackingIntro1": "Für den Fall, dass ein Besucher JavaScript deaktiviert hat, oder JavaScript nicht verwendet werden kann, können Sie das Tracking mit Hilfe eines Bildes nutzen um Besucher zu tracken.",
@@ -51,26 +49,28 @@
"LatestBetaRelease": "Das aktuelle Beta Release",
"LatestStableRelease": "Das aktuelle stabile Release",
"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.",
"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.",
- "MenuDevelopment": "Entwicklung",
"MenuDiagnostic": "Diagnose",
"MenuGeneralSettings": "Allgemeine Einstellungen",
"MenuManage": "Verwalten",
+ "MenuDevelopment": "Entwicklung",
"OptOutComplete": "Deaktivierung durchgeführt! Ihre Besuche auf dieser Webseite werden von der Webanalyse nicht mehr erfasst.",
"OptOutCompleteBis": "Bitte beachten Sie, dass auch der Piwik-Deaktivierungs-Cookie dieser Webseite 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 Seiten (z.B der Datenschutz-Seite) ein, um den Besuchern Ihrer Webseite 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.",
"OptOutForYourVisitors": "Piwik-Deaktivierung für Ihre Besucher",
- "PersonalPluginSettings": "Persönliche Plugin Einstellungen",
"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.",
- "PluginSettings": "Plugin-Einstellungen",
+ "PluginSettings": "Plugin Einstellungen",
"PluginSettingsIntro": "Hier können Sie die Einstellungen für folgende Drittanbieter Plugins ändern:",
- "PluginSettingsSaveFailed": "Speichern der Plugin Einstellungen fehlgeschlagen.",
"PluginSettingsValueNotAllowed": "Der Wert für die Einstellung \"%s\" im Plugin \"%s\" ist nicht erlaubt.",
+ "PluginSettingsSaveFailed": "Speichern der Plugin Einstellungen fehlgeschlagen.",
"SendPluginUpdateCommunication": "Sende mir eine E-Mail-Benachrichtigung 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.",
diff --git a/plugins/CoreAdminHome/lang/el.json b/plugins/CoreAdminHome/lang/el.json
index c641ff860c..6c71ccea47 100644
--- a/plugins/CoreAdminHome/lang/el.json
+++ b/plugins/CoreAdminHome/lang/el.json
@@ -10,8 +10,6 @@
"CustomLogoHelpText": "Μπορείτε να προσαρμόσετε το λογότυπο του Piwik που θα εμφανίζεται στο περιβάλλον εργασίας του χρήστη και στις αναφορές αλληλογραφίας.",
"DevelopmentProcess": "Παρόλο που η %sδιαδικασία μας ανάπτυξης%s περιλαμβάνει χιλιάδες αυτοματοποιημένων ελέγχων, οι χρήστες δοκιμαστές παίζουν ένα κύριο ρόλο στο να πετύχουμε την \"Χωρίς σφάλματα πολιτική\" του Piwik.",
"EmailServerSettings": "Ρυθμίσεις διακομιστή ηλεκτρονικής αλληλογραφίας",
- "FaviconUpload": "Επιλέξτε ένα favicon για ανέβασμα",
- "FileUploadDisabled": "Το ανέβασμα των αρχείων δεν είναι ενεργοποιημένο στην παραμετροποίηση της PHP. Για να ανεβάσετε το δικό σας λογότυπο ορίστε το %s στο αρχείο php.ini και κάντε επανεκκίνηση τον διακομιστή ιστού σας.",
"ForBetaTestersOnly": "Για χρήστες δοκιμαστές μόνο",
"ImageTracking": "Παρακολούθηση Εικόνων",
"ImageTrackingIntro1": "Όταν ένας επισκέπτης έχει απενεργοποιήσει την JavaScript ή όταν η JavaScript δεν μπορεί να χρησιμοποιηθεί, μπορείτε να χρησιμοποιήσετε ένα σύνδεσμο εντοπισμού εικόνων για να παρακολουθείτε τους επισκέπτες.",
@@ -51,26 +49,28 @@
"LatestBetaRelease": "Η τελευταία δοκιμαστική έκδοση",
"LatestStableRelease": "Η τελευταία σταθερή έκδοση",
"LogoNotWriteableInstruction": "Για να χρησιμοποιήσετε το δικό σας λογότυπο αντί του προκαθορισμένου του Piwik, δώστε δικαίωμα εγγραφής σε αυτό τον κατάλογο: %1$s Το Piwik πρέπει να έχει δικαίωμα εγγραφής στα λογότυπά σας που είναι αποθηκευμένα στα αρχεία %2$s.",
+ "FileUploadDisabled": "Το ανέβασμα των αρχείων δεν είναι ενεργοποιημένο στην παραμετροποίηση της PHP. Για να ανεβάσετε το δικό σας λογότυπο ορίστε το %s στο αρχείο php.ini και κάντε επανεκκίνηση τον διακομιστή ιστού σας.",
"LogoUpload": "Επιλέξτε ένα Λογότυπο για αποστολή",
+ "FaviconUpload": "Επιλέξτε ένα favicon για ανέβασμα",
"LogoUploadHelp": "Παρακαλούμε ανεβάστε ένα αρχείο σε μορφή %s με ελάχιστο ύψος %s pixel.",
- "MenuDevelopment": "Ανάπτυξη",
"MenuDiagnostic": "Διαγνωστικά",
"MenuGeneralSettings": "Γενικές ρυθμίσεις",
"MenuManage": "Διαχείριση",
+ "MenuDevelopment": "Ανάπτυξη",
"OptOutComplete": "Η απενεργοποίηση ολοκληρώθηκε. Οι επισκέψεις σας σε αυτή την ιστοσελίδα δεν θα καταγράφονται από το εργαλείο Στατιστικών Ιστού.",
"OptOutCompleteBis": "Σημειώστε ότι αν εκκαθαρίσετε τα cookies σας ή διαγράψετε το cookie απενεργοποιήσης ή αλλάξετε υπολογιστές ή φυλλομετρητές Ιστού, θα χρειαστεί να επαναλάβετε ξανά την διαδικασία απενεργοποιήσης.",
"OptOutDntFound": "Δεν παρακολουθήστε αυτή τη στιγμή επειδή το πρόγραμμα πλοήγησής σας δίνει οδηγία να μην είστε υπό παρακολούθηση. Αυτό αποτελεί ρύθμιση στο πρόγραμμα πλοήγησης έτσι ώστε να μην συμπεριλαμβάνεστε στην παρακολούθηση εκτός αν απενεργοποιήσετε το χαρακτηριστικό 'Όχι παρακολούθηση'.",
"OptOutExplanation": "Το Piwik είναι αφοσιωμένο στην προστασία του ιδιωτικού απορρήτου στο Διαδίκτυο. Για να παρέχετε την δυνατότητα απενεργοποίησης των στατιστικών ιστού του Piwik στους επισκέπτες σας, μπορείτε να προσθέσετε τον ακόλουθο κώδικα σε μια από τις ιστοσελίδες σας, για παράδειγμα στη σελίδα Ιδιωτικού Απορρήτου.",
"OptOutExplanationBis": "Αυτός ο κώδικας θα εμφανίσει ένα πλαίσιο (iframe) που θα περιέχει έναν σύνδεσμο για τους επισκέπτες σας για να απενεργοποιήσουν το Piwik ορίζοντας ένα cookie απενεργοποίησης στους φυλλομετρητές τους. %sΠατήστε εδώ%s για να δείτε τα περιεχόμενα που θα εμφανίζονται στο πλαίσιο.",
"OptOutForYourVisitors": "Απενεργοποίηση του Piwik για τους επισκέπτες σας",
- "PersonalPluginSettings": "Προσωπικές Ρυθμίσεις Πρόσθετου",
"PiwikIsInstalledAt": "Το Piwik εγκαταστάθηκε στο",
+ "PersonalPluginSettings": "Προσωπικές Ρυθμίσεις Πρόσθετου",
"PluginSettingChangeNotAllowed": "Δεν επιτρέπεται να αλλάξετε την τιμή της ρύθμισης \"%s\" στο πρόσθετο \"%s\"",
"PluginSettingReadNotAllowed": "Απαγορεύεται να δείτε την τιμή της ρύθμισης \"%s\" στο πρόσθετο \"%s\"",
"PluginSettings": "Ρυθμίσεις πρόσθετου",
"PluginSettingsIntro": "Εδώ μπορείτε να αλλάξετε τις ρυθμίσεις των παρακάτω πρόσθετων από τρίτους:",
- "PluginSettingsSaveFailed": "Υπήρξε αποτυχία κατά την αποθήκευση των ρυθμίσεων των πρόσθετων",
"PluginSettingsValueNotAllowed": "Η τιμή για το πεδίο \"%s\" στο πρόσθετο \"%s\" δεν είναι επιτρεπτή",
+ "PluginSettingsSaveFailed": "Υπήρξε αποτυχία κατά την αποθήκευση των ρυθμίσεων των πρόσθετων",
"SendPluginUpdateCommunication": "Να ειδοποιούμαι με e-mail όταν υπάρχει μια νέα ενημέρωση για πρόσθετο",
"SendPluginUpdateCommunicationHelp": "Ένα e-mail θα στέλνεται στους Υπερ-Χρήστες όταν θα υπάρχει διαθέσιμη νέα έκδοση για ένα πρόσθετο.",
"StableReleases": "Αν το Piwik αποτελεί ένα κρίσιμο μέρος της επιχείρησής σας, προτείνουμε να χρησιμοποιείτε την τελευταία σταθερή έκδοση. Αν χρησιμοποιείτε την τελευταία δοκιμαστική έκδοση και βρείτε κάποιο σφάλμα ή έχετε κάποια πρόταση, παρακαλούμε %sδείτε εδώ%s.",
diff --git a/plugins/CoreAdminHome/lang/es.json b/plugins/CoreAdminHome/lang/es.json
index 584a0edcb4..c64db618c5 100644
--- a/plugins/CoreAdminHome/lang/es.json
+++ b/plugins/CoreAdminHome/lang/es.json
@@ -10,8 +10,6 @@
"CustomLogoHelpText": "Puede personalizar el logo de Piwik que será mostrado en la interfaz de usuario y los reportes por email.",
"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.",
"EmailServerSettings": "Configuración del servidor de email",
- "FaviconUpload": "Selecciona un Favicon para subir",
- "FileUploadDisabled": "La subida de archivos no está habilitada en tu configuración de PHP. Para subir tu logo personalizado por favor pon %s en php.ini y reinicia tu servidor web.",
"ForBetaTestersOnly": "Para betatesters sólo",
"ImageTracking": "Seguimiento mediante Imagen",
"ImageTrackingIntro1": "Cuando un visitante se ha inhabilitado JavaScript o JavaScript que no se puede utilizar, puede utilizar un vínculo de seguimiento en la imagen para rastrear a los visitantes.",
@@ -51,12 +49,14 @@
"LatestBetaRelease": "La última versión beta",
"LatestStableRelease": "La última versión estable",
"LogoNotWriteableInstruction": "Para utilizar tu logo personalizado en lugar del logo estándar de Piwik puedes conceder permisos de escritura a este directorio: %1$s Piwik necesita el permiso de escritura para sus logos salvados en los archivos %2$s.",
+ "FileUploadDisabled": "La subida de archivos no está habilitada en tu configuración de PHP. Para subir tu logo personalizado por favor pon %s en php.ini y reinicia tu servidor web.",
"LogoUpload": "Seleccione un logo para subir",
+ "FaviconUpload": "Selecciona un Favicon para subir",
"LogoUploadHelp": "Sube un archivo en formato %s con un alto mínimo de %s píxeles.",
- "MenuDevelopment": "Desarrollo",
"MenuDiagnostic": "diagnóstico",
"MenuGeneralSettings": "Configuración General",
"MenuManage": "gestionar",
+ "MenuDevelopment": "Desarrollo",
"OptOutComplete": "Opt-out completado; sus visitas a este sitio web no serán grabadas por la herramienta de Análisis Web.",
"OptOutCompleteBis": "Tenga en cuenta que si borra sus cookies, elimina la cookie opt-out, o si cambia de ordenador o navegador, deberá llevar a cabo el procedimiento opt-out otra vez.",
"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.",
@@ -65,10 +65,9 @@
"PiwikIsInstalledAt": "Piwik está instalado en",
"PluginSettingChangeNotAllowed": "No está permitido cambiar el valor de configuración \"%s\" en el plugin \"%s\"",
"PluginSettingReadNotAllowed": "No está permitido que leas el valor de la opción \"%s\" en el plugin \"%s\"",
- "PluginSettings": "Configuración del plugin",
"PluginSettingsIntro": "Aquí puedes cambiar la configuración de los siguientes plugins de terceros:",
- "PluginSettingsSaveFailed": "Error al guardar la configuración del plugin",
"PluginSettingsValueNotAllowed": "El valor del campo \"%s\" del plugin \"%s\" no es permitido.",
+ "PluginSettingsSaveFailed": "Error al guardar la configuración del plugin",
"SendPluginUpdateCommunication": "Enviarme una notificación por correo electrónico cuando hay una actualización para los plugins",
"SendPluginUpdateCommunicationHelp": "Se enviará un correo electrónico a los Super Users cuando hay disponible una nueva versión de un plugin.",
"StableReleases": "Si Piwik es una parte crítica de su negocio, le recomendamos que utilice la última versión estable. Si utiliza la última versión beta y te encuentras un error o tiene alguna sugerencia, por favor %sver aquí%s.",
diff --git a/plugins/CoreAdminHome/lang/et.json b/plugins/CoreAdminHome/lang/et.json
index b520a3ebb0..fad58a0abf 100644
--- a/plugins/CoreAdminHome/lang/et.json
+++ b/plugins/CoreAdminHome/lang/et.json
@@ -23,7 +23,6 @@
"MenuManage": "Halda",
"OptOutForYourVisitors": "Piwiku külastajate väljaarvamine",
"PiwikIsInstalledAt": "Piwik on paigaldatud",
- "PluginSettings": "Lisatarkvara seaded",
"TrackAGoal": "Kogu infot eesmärgi kohta",
"TrackingCode": "Jälgimiskood",
"TrustedHostSettings": "Usaldatud Piwiku server",
diff --git a/plugins/CoreAdminHome/lang/fa.json b/plugins/CoreAdminHome/lang/fa.json
index af259c870f..b17e8115ec 100644
--- a/plugins/CoreAdminHome/lang/fa.json
+++ b/plugins/CoreAdminHome/lang/fa.json
@@ -9,7 +9,6 @@
"CustomLogoFeedbackInfo": "اگر شما آرم پیویک را سفارشی کنید , شاید برایتان جالب باشد که لینک %s را در منوی بالایی پنهان کنید.برای این کار شما می توانید افزونه ی بازخورد را در صفحه %sمدیریت افزونه ها%s غیرفعال کنید.",
"CustomLogoHelpText": "شما می توانید آرم Piwik سفارشی است که در رابط کاربری و گزارش پست الکترونیک نمایش داده خواهد شد.",
"EmailServerSettings": "تنضیمات میل سرور",
- "FaviconUpload": "یک Favicon انتخاب کنید تا آپلود شود.",
"ForBetaTestersOnly": "فقط برای استفاده کنندهای موقطی",
"ImageTracking": "ردیابی تصویر",
"ImageTrackingIntro1": "زمانی که مشاهده کنندگان جاوا اسکریپت رو غیر فعال کنند , یا از جاوا اسکریپت استفاده نکنند , شما میتونید از عکس اسفاده کنید و لینک را به یازدید کننده بدهید.",
@@ -35,6 +34,7 @@
"LatestBetaRelease": "آخرین نسخه بتا",
"LatestStableRelease": "آخرین نسخه نهایی",
"LogoUpload": "انتخاب آرم برای آپلود",
+ "FaviconUpload": "یک Favicon انتخاب کنید تا آپلود شود.",
"MenuDiagnostic": "برشناختی",
"MenuGeneralSettings": "تنضیمات اصلی",
"MenuManage": "مدیریت",
@@ -44,7 +44,6 @@
"OptOutForYourVisitors": "Piwik انتخاب کردن را برای بازدید کنندگان خود را",
"PiwikIsInstalledAt": "پیویک در این مسیر نصب شد",
"PluginSettingChangeNotAllowed": "شما مجاز به تغییر مقدار \"%s\" در پلاگین \"%s\" نیستید.",
- "PluginSettings": "تنظیمات افزونه ها",
"PluginSettingsIntro": "در اینجا شما می توانید تغییراتی در تنظیمات پلاگین های زیر انجام دهید :",
"PluginSettingsValueNotAllowed": "مقدار این رشته \"%s\" در پلاگین \"%s\" مورد قبول نیست",
"SendPluginUpdateCommunication": "زمانی که یک بروزرسانی از پلاگین وجود داشت برای من یک ایمیل بفرست",
diff --git a/plugins/CoreAdminHome/lang/fi.json b/plugins/CoreAdminHome/lang/fi.json
index b108cffbec..a2bce21a5a 100644
--- a/plugins/CoreAdminHome/lang/fi.json
+++ b/plugins/CoreAdminHome/lang/fi.json
@@ -10,8 +10,6 @@
"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.",
"EmailServerSettings": "Sähköpostipalvelimen asetukset",
- "FaviconUpload": "Valitse lähetettävä ikoni",
- "FileUploadDisabled": "Tiedostojen lähettämistä ei ole sallittu PHP-asetuksissasi. Vaihda %s php.ini:ssä ja käynnistä web-serverisi uudelleen ensin.",
"ForBetaTestersOnly": "Vain beta-testaajille",
"ImageTracking": "Kuvaseuranta",
"ImageTrackingIntro1": "Kun kävijä on inaktivoinut JavaScriptin, tai kun JavaScriptiä ei voida käyttää, voit seurata kävijöitä kuvaseurannan avulla.",
@@ -51,12 +49,14 @@
"LatestBetaRelease": "Uusin beta-julkaisu",
"LatestStableRelease": "Uusin vakaa julkaisu",
"LogoNotWriteableInstruction": "Käyttääksesi omaa logoa Piwikin oletuslogon sijasta, anna tälle hakemistolle kirjoitusoikeus: %1$s Piwik tarvitsee kirjoitusoikeuden logoillesi tiedostoissa %2$s.",
+ "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.",
- "MenuDevelopment": "Kehitys",
"MenuDiagnostic": "Vianmääritys",
"MenuGeneralSettings": "Yleiset asetukset",
"MenuManage": "Hallinnoi",
+ "MenuDevelopment": "Kehitys",
"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.",
@@ -65,7 +65,6 @@
"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\"",
- "PluginSettings": "Lisäosan asetukset",
"PluginSettingsIntro": "Täällä voit muuttaa kolmannen osapuolen liitännäisten asetuksia:",
"PluginSettingsValueNotAllowed": "Arvo kentälle \"%s\" liitännäisessä \"%s\" ei ole sallittu",
"SendPluginUpdateCommunication": "Lähetä minulle sähköposti-ilmoitus uusista lisäosien päivityksistä",
diff --git a/plugins/CoreAdminHome/lang/fr.json b/plugins/CoreAdminHome/lang/fr.json
index 6a29381612..57e73edb54 100644
--- a/plugins/CoreAdminHome/lang/fr.json
+++ b/plugins/CoreAdminHome/lang/fr.json
@@ -10,8 +10,6 @@
"CustomLogoHelpText": "Vous pouvez personnaliser le logo Piwik qui sera affiché dans l'interface utilisateur et les rapports par courriel.",
"DevelopmentProcess": "Bien que notre %sprocessus de développement%s inclue des milliers de tests automatisés, les béta testeurs jouent un rôle clef dans la réalisation de la \"politique zéro bugs\" de Piwik.",
"EmailServerSettings": "Paramètres du serveur mail",
- "FaviconUpload": "Sélectionnez un favicon à télécharger",
- "FileUploadDisabled": "Le téléversement de fichiers n'est pas activé dans votre configuration PHP. Pour téléverser un logo personnalisé veuillez définir %s dans php.ini et redémarrer votre serveur web.",
"ForBetaTestersOnly": "Pour les bêta testeurs uniquement",
"ImageTracking": "Suivi par image",
"ImageTrackingIntro1": "Quand un visiteur désactive JavaScript, ou quand JavaScript ne peut être utilisé, vous pouvez utiliser le lien de suivi par image pour suivre les visiteurs.",
@@ -29,6 +27,7 @@
"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 tracking",
+ "JSTracking_DisableCookiesDesc": "Désactive tous les cookies applicatifs. Les cookies existants de Piwik pour ce site web seront supprimés lors de la visite de la prochaine page.",
"JSTracking_EnableDoNotTrack": "Activer la détection côté client de \"ne pas suivre\"",
"JSTracking_EnableDoNotTrack_AlreadyEnabled": "Note : Le support de la détection côté serveur de \"ne pas suivre\" est activé, cette option n'aura donc aucun effet.",
"JSTracking_EnableDoNotTrackDesc": "Donc les requêtes de suivi ne seront pas envoyées si les visiteurs ne souhaitent pas être suivis.",
@@ -50,25 +49,28 @@
"LatestBetaRelease": "Dernière version beta",
"LatestStableRelease": "Dernière version stable",
"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.",
"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.",
- "MenuDevelopment": "Développement",
"MenuDiagnostic": "Diagnostique",
"MenuGeneralSettings": "Paramètres généraux",
"MenuManage": "Gérer",
+ "MenuDevelopment": "Développement",
"OptOutComplete": "Cookie d'exclusion installé. Vos visites sur ce site web ne seront PAS enregistrées par notre outil d'analyse web.",
"OptOutCompleteBis": "Note: si vous nettoyez vos cookies et supprimez le cookie d'exclusion, ou bien si vous changez d'ordinateur et\/ou de navigateur, il vous faudra de nouveau 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.",
"OptOutForYourVisitors": "Exclusion de Piwik pour vos visiteurs",
- "PersonalPluginSettings": "Paramètres personnel de plugins",
"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\"",
"PluginSettings": "Paramètres du composant",
"PluginSettingsIntro": "Vous pouvez ici modifier les paramètres des composants tierce partie suivants :",
- "PluginSettingsSaveFailed": "Erreur lors de l'enregistrement des paramètres",
"PluginSettingsValueNotAllowed": "La valeur pour le champ \"%s\" du composant \"%s\" n'est pas autorisée.",
+ "PluginSettingsSaveFailed": "Erreur lors de l'enregistrement des paramètres",
"SendPluginUpdateCommunication": "Envoyez moi un courriel de notification quand il y a une nouvelle mise à jour de plugin",
"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.",
diff --git a/plugins/CoreAdminHome/lang/he.json b/plugins/CoreAdminHome/lang/he.json
index b7e1060097..d95f89c935 100644
--- a/plugins/CoreAdminHome/lang/he.json
+++ b/plugins/CoreAdminHome/lang/he.json
@@ -19,7 +19,6 @@
"MenuManage": "ניהול",
"OptOutForYourVisitors": "התחמקות מ-Piwik עבור גולשיך",
"PiwikIsInstalledAt": "Piwik מותקן ב",
- "PluginSettings": "הגדרות תוסף",
"TrackAGoal": "עקיבה אחר יעד",
"TrackingCode": "קוד מעקב",
"TrustedHostSettings": "מארח מהימן ע״י Piwik",
diff --git a/plugins/CoreAdminHome/lang/hu.json b/plugins/CoreAdminHome/lang/hu.json
index d7af7e02e8..073bf65367 100644
--- a/plugins/CoreAdminHome/lang/hu.json
+++ b/plugins/CoreAdminHome/lang/hu.json
@@ -10,8 +10,6 @@
"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.",
"EmailServerSettings": "E-mail szerver beállítások",
- "FaviconUpload": "Válasszon egy Favicon-t a feltöltéshez",
- "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.",
"ForBetaTestersOnly": "Csak béta tesztelőknek",
"ImageTracking": "Kép Követés",
"ImageTrackingIntro1": "Ha egy látogatónál le van tiltva a JavaScript, vagy JavaScript egyéb okokból nem használható, lehetőség van egy kép követési link segítségével követni a látogatókat.",
@@ -50,12 +48,14 @@
"LatestBetaRelease": "Legfirssebb béta kiadás",
"LatestStableRelease": "Legfrissebb stabil kiadás",
"LogoNotWriteableInstruction": "Egyedi logó használatához írási jogosultságra van szükség a következő könyvtárhoz: %1$s A logók tárolásához a következőfájlokhoz írási jogosultság szükséges: %2$s.",
+ "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.",
- "MenuDevelopment": "Fejlesztés",
"MenuDiagnostic": "Diagnosztika",
"MenuGeneralSettings": "Alapbeállítások",
"MenuManage": "Kezelés",
+ "MenuDevelopment": "Fejlesztés",
"OptOutComplete": "Követés kikapcsolva; a látogatások semmilyen statisztikában nem fognak szerepelni.",
"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.",
"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.",
@@ -64,10 +64,9 @@
"PiwikIsInstalledAt": "Piwik telepítve itt:",
"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",
- "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:",
- "PluginSettingsSaveFailed": "A bővítmény beállítások mentése sikertelen",
"PluginSettingsValueNotAllowed": "A(z) \"%s\" mező értéke a(z) \"%s\" bővítményben érvénytelen",
+ "PluginSettingsSaveFailed": "A bővítmény beállítások mentése sikertelen",
"SendPluginUpdateCommunication": "Értesítés küldése emailben ha egy bővítményhez frissítés érhető el",
"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.",
diff --git a/plugins/CoreAdminHome/lang/id.json b/plugins/CoreAdminHome/lang/id.json
index 34fd0d2f3b..fe7b9671ab 100644
--- a/plugins/CoreAdminHome/lang/id.json
+++ b/plugins/CoreAdminHome/lang/id.json
@@ -56,7 +56,6 @@
"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.",
"OptOutForYourVisitors": "Piwik Jangan-Lacakan untuk Pengunjung",
"PiwikIsInstalledAt": "Piwik terpasang di",
- "PluginSettings": "Pengaturan pengaya",
"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.",
"TrackAGoal": "Lacak sebuah Tujuan",
"TrackingCode": "Kode Palacakan",
diff --git a/plugins/CoreAdminHome/lang/it.json b/plugins/CoreAdminHome/lang/it.json
index c62af88a79..eda00d7f98 100644
--- a/plugins/CoreAdminHome/lang/it.json
+++ b/plugins/CoreAdminHome/lang/it.json
@@ -10,8 +10,6 @@
"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\".",
"EmailServerSettings": "Impostazioni server e-mail",
- "FaviconUpload": "Seleziona una Favicon da caricare",
- "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.",
"ForBetaTestersOnly": "Solo per beta tester",
"ImageTracking": "Rilevamento immagine",
"ImageTrackingIntro1": "Quando un visitatore ha disattivato JavaScript o quando JavaScript non può essere utilizzato, è possibile utilizzare un collegamento di tracciamento immagine per tracciare i visitatori.",
@@ -51,26 +49,27 @@
"LatestBetaRelease": "Ultima release beta",
"LatestStableRelease": "Ultima release stabile",
"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.",
"LogoUpload": "Seleziona un logo da caricare",
+ "FaviconUpload": "Seleziona una Favicon da caricare",
"LogoUploadHelp": "Caricate un file nei formati %s con un'altezza minima di %s pixels",
- "MenuDevelopment": "Sviluppo",
"MenuDiagnostic": "Diagnostica",
"MenuGeneralSettings": "Impostazioni generali",
"MenuManage": "Gestione",
+ "MenuDevelopment": "Sviluppo",
"OptOutComplete": "Opt-out completato; le tue visite a questo sito non verranno registrate dallo strumento di Web Analytics.",
"OptOutCompleteBis": "Nota che se cancelli i tuoi cookie, cancelli il cookie di opt-out, o se cambi computer o browser web, devi fare la procedura 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 vostri ospiti la possibilità di opt-out in Piwik Web Analytics, è 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 per i tuoi visitatori per opt-out per le impostazioni di Piwik, tramite un opt-out cookie nei loro browser. %s Clicca qui%s per vedere il contenuto che sarà mostrato nell'iFrame.",
"OptOutForYourVisitors": "Piwik opt-out per i tuoi visitatori",
- "PersonalPluginSettings": "Impostazioni Personali Plugin",
"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\"",
- "PluginSettings": "Impostazioni plugin",
"PluginSettingsIntro": "Qui puoi cambiare le impostazioni dei seguenti plugin di terze parti:",
- "PluginSettingsSaveFailed": "Salvataggio delle impostazioni del plugin fallito",
"PluginSettingsValueNotAllowed": "Il valore del campo \"%s\" nel plugin \"%s\" non è consentito",
+ "PluginSettingsSaveFailed": "Salvataggio delle impostazioni del plugin fallito",
"SendPluginUpdateCommunication": "Inviami una notifica email quando è disponibile un aggiornamento dei 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 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 %sguardate qui%s.",
diff --git a/plugins/CoreAdminHome/lang/ja.json b/plugins/CoreAdminHome/lang/ja.json
index edab59ae39..647e07379b 100644
--- a/plugins/CoreAdminHome/lang/ja.json
+++ b/plugins/CoreAdminHome/lang/ja.json
@@ -10,8 +10,6 @@
"CustomLogoHelpText": "Piwikのロゴをカスタマイズして、ユーザーインターフェース画面とEメールリポートに表示できます。",
"DevelopmentProcess": "私たちの%s開発プロセス%sは自動化された数千のテストを含んでいますが、ベータテスターはPiwikの\"No bug policy\"達成のための重要な役割を果たしています。",
"EmailServerSettings": "メールサーバの設定",
- "FaviconUpload": "アップロードするファビコンを選択",
- "FileUploadDisabled": "PHP の設定で、ファイルのアップロードが有効になっていません。カスタムロゴをアップロードするには、 php.ini で %s を設定し、 Web サーバを再起動してください。",
"ForBetaTestersOnly": "ベータテスターのみ",
"ImageTracking": "画像によるトラッキング",
"ImageTrackingIntro1": "訪問者がJavaScriptを無効にしている、またはJavaScriptを利用できない場合、訪問者を追跡する為に画像でトラッキングするリンクを使うことができます。",
@@ -51,12 +49,14 @@
"LatestBetaRelease": "最新のベータ版リリース",
"LatestStableRelease": "最新の安定版リリース",
"LogoNotWriteableInstruction": "Piwik デフォルトロゴの代わりにカスタムロゴを使用するには、このディレクトリへの書込権限を与えて下さい。 :%1$s ロゴを %2$s ファイルに保存するには、書込アクセスが必要です。",
+ "FileUploadDisabled": "PHP の設定で、ファイルのアップロードが有効になっていません。カスタムロゴをアップロードするには、 php.ini で %s を設定し、 Web サーバを再起動してください。",
"LogoUpload": "アップロードするロゴを選択",
+ "FaviconUpload": "アップロードするファビコンを選択",
"LogoUploadHelp": "%s ピクセル以上の高さで %s 形式のファイルをアップロードしてください",
- "MenuDevelopment": "開発",
"MenuDiagnostic": "診断",
"MenuGeneralSettings": "全般の設定",
"MenuManage": "管理",
+ "MenuDevelopment": "開発",
"OptOutComplete": "オプトアウトが完了しました。 このウェブサイトへのあなたの訪問は、ウェブ解析ツールで記録されません。",
"OptOutCompleteBis": "Cookie をクリアしてオプトアウト Cookie を削除したり、コンピュータやブラウザを変更した場合は、オプトアウト手続きを再度実行する必要があることに注意してください。",
"OptOutExplanation": "Piwik はインターネット上のプライバシーの提供に専念しています。 ビジターに Piwik ウェブ解析のオプトアウトの選択を提供するために、ウェブサイトの1ページ(プライバシーポリシーのページ等)に次の HTML コードを追加することができます。",
@@ -65,7 +65,6 @@
"PiwikIsInstalledAt": "Piwikがインストールされているのは",
"PluginSettingChangeNotAllowed": "\"%s\" プラグインで \"%s\" 設定されている値変更は許可されていません。",
"PluginSettingReadNotAllowed": "\"%s\" プラグインで \"%s\" 設定されている値の読み取りは許可されていません。",
- "PluginSettings": "プラグインの設定",
"PluginSettingsIntro": "ここでは、次のサードパーティのプラグインの設定変更ができます",
"PluginSettingsValueNotAllowed": "\"%s\" プラグインの \"%s\" フィールドの値は許可されていません。",
"SendPluginUpdateCommunication": "プラグインのアップデートがあった場合のメール通知",
diff --git a/plugins/CoreAdminHome/lang/nb.json b/plugins/CoreAdminHome/lang/nb.json
index 95b1d6bc23..7a48397a8c 100644
--- a/plugins/CoreAdminHome/lang/nb.json
+++ b/plugins/CoreAdminHome/lang/nb.json
@@ -12,13 +12,13 @@
"LatestBetaRelease": "Den nyeste betaversjonen",
"LatestStableRelease": "Den siste stabile utgaven",
"LogoUpload": "Velg en logo for å laste opp",
- "MenuDevelopment": "Utvikling",
"MenuDiagnostic": "Diagnostikk",
"MenuGeneralSettings": "Generelle innstillinger",
"MenuManage": "Administrer",
+ "MenuDevelopment": "Utvikling",
"OptOutForYourVisitors": "Piwik «opt-out» for dine besøkende",
- "PersonalPluginSettings": "Personlige innstillinger for tillegg",
"PiwikIsInstalledAt": "Piwik er installert på",
+ "PersonalPluginSettings": "Personlige innstillinger for tillegg",
"TrackAGoal": "Spor et mål",
"TrackingCode": "Sporingskode",
"TrustedHostSettings": "Betrodd Piwik-vertsnavn",
diff --git a/plugins/CoreAdminHome/lang/nl.json b/plugins/CoreAdminHome/lang/nl.json
index 530f9d1974..6a89bbe758 100644
--- a/plugins/CoreAdminHome/lang/nl.json
+++ b/plugins/CoreAdminHome/lang/nl.json
@@ -10,8 +10,6 @@
"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.",
"EmailServerSettings": "E-mail server instellingen",
- "FaviconUpload": "Selecteer een favicon om up te loaden",
- "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.",
"ForBetaTestersOnly": "Alleen voor beta testers",
"ImageTracking": "Afbeelding tracking",
"ImageTrackingIntro1": "Wanneer een bezoeker javaScript heeft uitgeschakeld, of wanneer JavaScript niet kan worden gebruikt, kun je een tracking afbeelding gebruiken om bezoekers te volgen.",
@@ -51,25 +49,28 @@
"LatestBetaRelease": "De laatste beta versie",
"LatestStableRelease": "De laatste stabiele versie",
"LogoNotWriteableInstruction": "Om je eigen logo te gebruiken in plaats van het standaard Piwik logo, zijn er schrijf rechten nodig tot de volgende bestandmap: %1$s Piwik heeft schrijfrechten nodig voor de jouw logo's opgeslagen in de bestanden %2$s",
+ "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.",
- "MenuDevelopment": "Ontwikkeling",
"MenuDiagnostic": "Diagnose",
"MenuGeneralSettings": "Algemene instellingen",
"MenuManage": "Beheer",
+ "MenuDevelopment": "Ontwikkeling",
"OptOutComplete": "Opt-out ingesteld; Uw bezoeken aan deze website zullen niet worden geregistreerd in de Web Analytics tool.",
"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.",
"OptOutForYourVisitors": "Piwik opt-out voor uw bezoekers",
- "PersonalPluginSettings": "Persoonlijke Plugin Instellingen",
"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\"",
- "PluginSettings": "Plugin instellingen",
+ "PluginSettings": "Plugin Instellingen",
"PluginSettingsIntro": "Hier kunt u instellingen aanpassen voor de volgende plugins van derden:",
- "PluginSettingsSaveFailed": "Opslaan van plugin instellingen niet gelukt",
"PluginSettingsValueNotAllowed": "De waarde voor veld \"%s\" in plugin \"%s\" is niet toegestaan",
+ "PluginSettingsSaveFailed": "Opslaan van plugin instellingen niet gelukt",
"SendPluginUpdateCommunication": "Stuur mij een email melding als er een nieuwe plugin update 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.",
diff --git a/plugins/CoreAdminHome/lang/pl.json b/plugins/CoreAdminHome/lang/pl.json
index dc5c126ec5..ac0568c6d3 100644
--- a/plugins/CoreAdminHome/lang/pl.json
+++ b/plugins/CoreAdminHome/lang/pl.json
@@ -10,8 +10,6 @@
"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.",
"EmailServerSettings": "Konfiguracja serwera poczty",
- "FaviconUpload": "Wybierz Favikonę do wysłania",
- "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.",
"ForBetaTestersOnly": "Tylko dla beta testerów",
"ImageTracking": "Obrazek Śledziący",
"ImageTrackingIntro1": "Kiedy odwiedzający mają wyłączony język JavaScript lub kiedy JavaScript nie może być używany możesz użyć obrazka śledzącego aby śledzić odwiedzających.",
@@ -51,12 +49,14 @@
"LatestBetaRelease": "Ostatnie wydanie beta",
"LatestStableRelease": "Ostatnie stabilne wydanie",
"LogoNotWriteableInstruction": "Aby użyć swojego własnego logo zamiast domyślnego loga Piwik, nadaj uprawnienia do zapisu do katalogu: %1$s Piwik potrzebuje tych uprawnień aby zapisać Twoje loga do pliku %2$s.",
+ "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.",
- "MenuDevelopment": "Rozwój",
"MenuDiagnostic": "Diagnostyka",
"MenuGeneralSettings": "Konfiguracja ogólna",
"MenuManage": "Zarządzaj",
+ "MenuDevelopment": "Rozwój",
"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.",
@@ -65,7 +65,6 @@
"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\"",
- "PluginSettings": "Ustawienia pluginów",
"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",
"SendPluginUpdateCommunication": "Wyślij mi powiadomienie email gdy pojawi się aktualizacja pluginu",
diff --git a/plugins/CoreAdminHome/lang/pt-br.json b/plugins/CoreAdminHome/lang/pt-br.json
index 66a06a675b..425516c6b0 100644
--- a/plugins/CoreAdminHome/lang/pt-br.json
+++ b/plugins/CoreAdminHome/lang/pt-br.json
@@ -58,7 +58,6 @@
"OptOutForYourVisitors": "Piwik opt-out para os seus visitantes",
"PiwikIsInstalledAt": "Piwik esta instalado no",
"PluginSettingChangeNotAllowed": "Você não tem permissão para alterar o valor da configuração \"%s\" no plug-in \"%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",
"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.",
diff --git a/plugins/CoreAdminHome/lang/pt.json b/plugins/CoreAdminHome/lang/pt.json
index 4c20cd633d..ad5760701b 100644
--- a/plugins/CoreAdminHome/lang/pt.json
+++ b/plugins/CoreAdminHome/lang/pt.json
@@ -8,8 +8,6 @@
"ClickHereToOptOut": "Clique aqui para fazer opt-out.",
"CustomLogoHelpText": "Você pode personalizar o logotipo Piwik que será exibido na interface do utilizador e relatórios de e-mail.",
"EmailServerSettings": "Definições do servidor de email",
- "FaviconUpload": "Selecione um Favicon para carregar",
- "FileUploadDisabled": "Carregar ficheiros não se encontra ativo nas sua configuração PHP. Para carregar o seu logótipo personalizado por favor defina %s em php.ini e reinicie o seu servidor.",
"ForBetaTestersOnly": "Para testadores de versões beta apenas",
"ImportingServerLogs": "A Importar Relatórios de Servidor",
"InvalidPluginsWarning": "Os seguintes plugins não são compatíveis com %1$s e não puderam ser carregados: %2$s.",
@@ -25,11 +23,13 @@
"JSTracking_VisitorCustomVarsDesc": "Por exemplo, com nome de variável \"Tipo\" e valor \"Cliente\".",
"LatestBetaRelease": "A mais recente publicação beta",
"LatestStableRelease": "A mais recente versão estável",
+ "FileUploadDisabled": "Carregar ficheiros não se encontra ativo nas sua configuração PHP. Para carregar o seu logótipo personalizado por favor defina %s em php.ini e reinicie o seu servidor.",
"LogoUpload": "Selecione um logo para fazer upload",
- "MenuDevelopment": "Desenvolvimento",
+ "FaviconUpload": "Selecione um Favicon para carregar",
"MenuDiagnostic": "Diagnóstico",
"MenuGeneralSettings": "Definições gerais",
"MenuManage": "Gerir",
+ "MenuDevelopment": "Desenvolvimento",
"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.",
@@ -38,7 +38,6 @@
"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\"",
- "PluginSettings": "Definições de Plugin",
"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",
"SendPluginUpdateCommunication": "Envie-me uma notificação para o correio eletrónico quando existir uma nova atualização para um plugin",
diff --git a/plugins/CoreAdminHome/lang/ro.json b/plugins/CoreAdminHome/lang/ro.json
index 47e6b3fb9f..d59afd9147 100644
--- a/plugins/CoreAdminHome/lang/ro.json
+++ b/plugins/CoreAdminHome/lang/ro.json
@@ -10,7 +10,6 @@
"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.",
"EmailServerSettings": "Setările serverului email",
- "FaviconUpload": "Alege un favicon pentru a fi încărcat",
"ForBetaTestersOnly": "Numai pentru beta-testeri",
"ImageTracking": "Urmărire prin imagine",
"ImageTrackingIntro1": "Cand un visitator are dezactivat JavaScript sau cand JavaScript nu poate fi folosit, poti folosi un link de tracking de tip imagine pentru a inregistra statisticile despre vizitatori.",
@@ -49,6 +48,7 @@
"LatestStableRelease": "Ultima versiune stabilă",
"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.",
"MenuDiagnostic": "Diagnosticare",
"MenuGeneralSettings": "Setări generale",
@@ -61,7 +61,6 @@
"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\"",
- "PluginSettings": "Setarile pluginului",
"PluginSettingsIntro": "Aici poti schimba setarile pentru urmatoarele pluginuri terte (3rd party):",
"PluginSettingsValueNotAllowed": "Valoarea pentru campul \"%s\" in plugin \"%s\" nu este permisa",
"SendPluginUpdateCommunication": "Trimite-mi o notificare pe email cand exista un update pentru un plugin",
diff --git a/plugins/CoreAdminHome/lang/ru.json b/plugins/CoreAdminHome/lang/ru.json
index 06058c194b..89fde00e2e 100644
--- a/plugins/CoreAdminHome/lang/ru.json
+++ b/plugins/CoreAdminHome/lang/ru.json
@@ -10,8 +10,6 @@
"CustomLogoHelpText": "Вы можете добавить свой логотип, который будет отображаться отчетах.",
"DevelopmentProcess": "В то время как наш %sпроцесс разработки%s включает в себя тысячи автоматизированных тестов, бета-тестеры играют ключевую роль в достижении \"No bug policy\" в Piwik.",
"EmailServerSettings": "Настройки сервера электронной почты",
- "FaviconUpload": "Выбрать Favicon для загрузки",
- "FileUploadDisabled": "Загрузка файлов не включена в вашей конфигурации PHP. Для загрузки другого логотипа выставите %s в php.ini и перезапустите веб-сервер.",
"ForBetaTestersOnly": "Только для бета-тестеров",
"ImageTracking": "Отслеживание через изображение",
"ImageTrackingIntro1": "Когда посетитель отключил JavaScript, или когда JavaScript не может быть использовано, вы можете использовать ссылку на изображение для отслеживания посетителей.",
@@ -48,23 +46,27 @@
"JSTrackingIntro5": "Если вы хотите больше, чем простое отслеживание страниц, пожалуйста, ознакомьтесь с %1$sPiwik Javascript Tracking documentation%2$s для просмотра всех функций. С помощью этих функций вы можете отслеживать цели, пользовательские переменные, заказы электронной коммерции, неоформленные заказы и многое другое.",
"LatestBetaRelease": "Последнюю тестовую версию",
"LatestStableRelease": "Последнюю стабильную версию",
+ "LogoNotWriteableInstruction": "Чтобы использовать собственное лого вместо стандартного Piwik, откройте для записи эту папку: %1$s Piwik нужен доступ на запись к вашим лого, храняшимся в файлах %2$s.",
+ "FileUploadDisabled": "Загрузка файлов не включена в вашей конфигурации PHP. Для загрузки другого логотипа выставите %s в php.ini и перезапустите веб-сервер.",
"LogoUpload": "Выберите лого для загрузки",
+ "FaviconUpload": "Выбрать Favicon для загрузки",
"LogoUploadHelp": "Пожалуйста, закачивайте файлы в %s форматах, минимальное ограничение по высоте – %s пикселей.",
- "MenuDevelopment": "Разработка",
"MenuDiagnostic": "Диагностика",
"MenuGeneralSettings": "Основные настройки",
"MenuManage": "Управление",
+ "MenuDevelopment": "Разработка",
"OptOutComplete": "Исключение из политики конфиденциальности завершено; ваши посещения на данный сайт не будут учитываться системой веб аналитики. Мы уважаем ваш выбор.",
"OptOutCompleteBis": "Заметьте, что если вы очистите cookies браузера, то, скорее всего, удалится и исключительный cookie, или если вы поменяете компьютер или браузер, то необходимо будет пройти процедуру исключения снова.",
"OptOutExplanation": "Piwik – за сохранение личных данных в сети. Поэтому данная система может предложить вашим пользователям выбор исключения из политики конфиденциальности (отказ от дальнейшего сбора статистики о пользователе). Вы можете вставить следующий HTML-код на одну из ваших страниц сайта, например на страницу о гарантиях конфиденциальности.",
"OptOutExplanationBis": "Этот код будет отображаться в iFrame, содержащем ссылку для посетителя для отказа о сборе данных о нем. Данные отказа хранятся на стороне посетителя, в его cookies браузера. %s Нажмите здесь%s для просмотра содержимого iFrame.",
"OptOutForYourVisitors": "Исключение из политики конфиденциальности Piwik для посетителей",
- "PersonalPluginSettings": "Персональные настройки плагинов",
"PiwikIsInstalledAt": "Piwik установлен в",
+ "PersonalPluginSettings": "Персональные настройки плагинов",
"PluginSettingChangeNotAllowed": "Вам не разрешено менять значение \"%s\" для плагина \"%s\"",
"PluginSettingReadNotAllowed": "Вам не разрешено читать значение \"%s\" плагина \"%s\"",
"PluginSettings": "Настройки плагинов",
"PluginSettingsIntro": "Здесь вы можете изменить настройки для следующих плагинов:",
+ "PluginSettingsValueNotAllowed": "Значение для поля \"%s\" в плагине \"%s\" не разрешено",
"PluginSettingsSaveFailed": "Ошибка при сохранении настроек плагина",
"SendPluginUpdateCommunication": "Отправить мне уведомление по электронной почте, когда есть новое обновление плагина",
"SendPluginUpdateCommunicationHelp": "Письмо будет отправлено суперпользователю когда будет доступна новая версия плагина.",
diff --git a/plugins/CoreAdminHome/lang/sl.json b/plugins/CoreAdminHome/lang/sl.json
index 3b99f1173e..05f76f28fb 100644
--- a/plugins/CoreAdminHome/lang/sl.json
+++ b/plugins/CoreAdminHome/lang/sl.json
@@ -11,10 +11,10 @@
"LatestBetaRelease": "Zadnja beta različica",
"LatestStableRelease": "Zadnja stabilna različica",
"LogoUpload": "Izberite Logo za nalaganje",
- "MenuDevelopment": "Razvoj",
"MenuDiagnostic": "Diagnostika",
"MenuGeneralSettings": "Splošne nastavitve",
"MenuManage": "Upravljaj",
+ "MenuDevelopment": "Razvoj",
"OptOutExplanation": "Piwik želi zagotoviti zasebnost na internetu. Če želite svojim obiskovalcem omogočiti 'opt-out' iz Piwik spletne analitike, potem lahko dodate naslednjo HTML kodo na vašo spletno stran, npr. na stran 'Varovanje zasebnosti'.",
"OptOutForYourVisitors": "'Opt-out' za vaše obiskovalce",
"UseCustomLogo": "Uporabi poseben logo",
diff --git a/plugins/CoreAdminHome/lang/sr.json b/plugins/CoreAdminHome/lang/sr.json
index a8fc2fd500..a6fc5998d9 100644
--- a/plugins/CoreAdminHome/lang/sr.json
+++ b/plugins/CoreAdminHome/lang/sr.json
@@ -10,8 +10,6 @@
"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\"",
"EmailServerSettings": "Podešavanje servera za elektronsku poštu",
- "FaviconUpload": "Izaberite ikonicu koju želite da postavite",
- "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.",
"ForBetaTestersOnly": "Samo za beta testere",
"ImageTracking": "Praćenje pomoću slike",
"ImageTrackingIntro1": "Kada korisnik isključi JavaScript ili kada JavaScript nije moguće koristiti, možete da koristite sliku za praćenje posetilaca.",
@@ -49,12 +47,14 @@
"LatestBetaRelease": "Poslednje beta izdanje",
"LatestStableRelease": "Poslednja stabilna verzija",
"LogoNotWriteableInstruction": "Ukoliko želite da koristite sopstveni logotip umesto Piwik logotipa, dodelite pravila upisivanja sledećem direktorijumu: %1$s Piwik-u je potrebna dozvola upisivanja za vaše logotipe koji se nalaze u datotekama %2$s.",
+ "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.",
- "MenuDevelopment": "Razvoj",
"MenuDiagnostic": "Dijagnostika",
"MenuGeneralSettings": "Osnovna podešavanja",
"MenuManage": "Upravljanje",
+ "MenuDevelopment": "Razvoj",
"OptOutComplete": "Opt-out je kompletiran; vaše posete ovom sajtu neće biti zabeležene od strane alata za web analitiku.",
"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.",
"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",
@@ -63,7 +63,6 @@
"PiwikIsInstalledAt": "Piwik je instaliran",
"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\"",
- "PluginSettings": "Podešavanja dodatka",
"PluginSettingsIntro": "Ovde možete promeniti podešavanja sledećih dodataka:",
"PluginSettingsValueNotAllowed": "Vrednost za polje \"%s\" u dodatku \"%s\" nije dozvoljena",
"SendPluginUpdateCommunication": "Pošalji mi mejl sa obaveštenjem o novoj verziji dodatka",
diff --git a/plugins/CoreAdminHome/lang/sv.json b/plugins/CoreAdminHome/lang/sv.json
index 3e7e66c1a4..f078bbfdcd 100644
--- a/plugins/CoreAdminHome/lang/sv.json
+++ b/plugins/CoreAdminHome/lang/sv.json
@@ -10,8 +10,6 @@
"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.",
"EmailServerSettings": "E-postinställningar (server)",
- "FaviconUpload": "Välj en Favicon att ladda upp",
- "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.",
"ForBetaTestersOnly": "Endast för betatestare",
"ImageTracking": "Bildspårning",
"ImageTrackingIntro1": "När en besökare har inaktiverat JavaScript, eller när JavaScript inte kan användas, så kan du använda bildspårning för att spåra besökare.",
@@ -51,25 +49,26 @@
"LatestBetaRelease": "Senaste betaversionen",
"LatestStableRelease": "Senaste stabila versionen",
"LogoNotWriteableInstruction": "Om du vill använda din egen logotyp istället för Piwiks logotyp, se till så att det finns skrivrättigheter till denna katalog: %1$s. Piwik behöver skrivrättighet för dina logotyper som lagras i filerna %2$s.",
+ "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.",
- "MenuDevelopment": "Utveckling",
"MenuDiagnostic": "Diagnostik",
"MenuGeneralSettings": "Allmänna inställningar",
"MenuManage": "Hantera",
+ "MenuDevelopment": "Utveckling",
"OptOutComplete": "Exkludering utförd; dina besök på denna webbplatsen kommer inte att spåras av webbanalys-verktyget.",
"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.",
"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.",
"OptOutForYourVisitors": "Exkludera spårning för dina besökare",
- "PersonalPluginSettings": "Personliga plugininställningar",
"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\"",
- "PluginSettings": "Plugin inställningar",
"PluginSettingsIntro": "Här kan du ändra inställningarna för tredje parts plugin:",
- "PluginSettingsSaveFailed": "Misslyckades att spara plugin-inställningar",
"PluginSettingsValueNotAllowed": "Värdet för det här området \"%s\" i Plugin \"%s\" är inte tillåtet",
+ "PluginSettingsSaveFailed": "Misslyckades att spara plugin-inställningar",
"SendPluginUpdateCommunication": "Skicka mig ett e-postmeddelande när det finns en ny uppdatering för tillägget",
"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.",
diff --git a/plugins/CoreAdminHome/lang/tl.json b/plugins/CoreAdminHome/lang/tl.json
index 5f7eb5be28..ac30b17d71 100644
--- a/plugins/CoreAdminHome/lang/tl.json
+++ b/plugins/CoreAdminHome/lang/tl.json
@@ -10,7 +10,6 @@
"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.",
"EmailServerSettings": "Mga setting sa email server",
- "FaviconUpload": "Pumili ng Favicon upang i-upload",
"ForBetaTestersOnly": "Pagsusubaybay ng Imahe",
"ImageTracking": "Pagsubaybay ng Imahe",
"ImageTrackingIntro1": "Kapag ang bisita ay dinisable ang JavaScript, o kapag hindi magamit ang JavaScript, maaari mong gamitin ang link sa pagsubaybay ng imahe, para masundan ang mga bisita",
@@ -50,11 +49,12 @@
"LatestStableRelease": "Ang pinakabagong matatag na release",
"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.",
- "MenuDevelopment": "Pag-unlad",
"MenuDiagnostic": "Dyagnostiko",
"MenuGeneralSettings": "Pangkalahatang mga setting",
"MenuManage": "Pamahalaan",
+ "MenuDevelopment": "Pag-unlad",
"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.",
@@ -63,7 +63,6 @@
"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\"",
- "PluginSettings": "Mga setting ng plugin",
"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.",
"SendPluginUpdateCommunication": "Magpadala sa akin ng isang notification sa email kapag may bagong update sa plugin",
diff --git a/plugins/CoreAdminHome/lang/tr.json b/plugins/CoreAdminHome/lang/tr.json
index f3789430ac..6cc6b63c18 100644
--- a/plugins/CoreAdminHome/lang/tr.json
+++ b/plugins/CoreAdminHome/lang/tr.json
@@ -10,7 +10,6 @@
"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",
"EmailServerSettings": "E-Posta sunucusu ayarları",
- "FaviconUpload": "Yüklemek için Favicon seçin",
"ForBetaTestersOnly": "Yalnızca beta test edenler için",
"ImageTracking": "Resimle İzleme",
"ImageTrackingIntro1": "Ziyaretçi JavaScript'i devre dışı bıraktığında veya JavaScript kullanılamadığında, ziyaretçileri takip etmek için resim kullanabilirsiniz.",
@@ -43,17 +42,17 @@
"LatestBetaRelease": "En son beta sürümü",
"LatestStableRelease": "En son kararlı sürüm",
"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.",
- "MenuDevelopment": "Geliştirme",
"MenuDiagnostic": "tehşis",
"MenuGeneralSettings": "Genel Ayarlar",
"MenuManage": "yönetmek",
+ "MenuDevelopment": "Geliştirme",
"OptOutComplete": "İzleme durumunuz pasif edildi, artık sizin ziyaretleriniz kayıt altına alınmayacak.",
"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.",
- "PluginSettings": "Eklenti ayarları",
"PluginSettingsIntro": "Buradan aşağıdaki 3. parti eklentiler için ayarları değiştirebilirsiniz:",
"SendPluginUpdateCommunication": "Yeni bir eklenti güncellemesi olduğunda beni e-posta ile bilgilendir",
"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.",
diff --git a/plugins/CoreAdminHome/lang/vi.json b/plugins/CoreAdminHome/lang/vi.json
index 2654ccbda7..e55ab03c53 100644
--- a/plugins/CoreAdminHome/lang/vi.json
+++ b/plugins/CoreAdminHome/lang/vi.json
@@ -58,7 +58,6 @@
"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\"",
- "PluginSettings": "Cài đặt tiện ích",
"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",
"SendPluginUpdateCommunication": "Gửi thông báo qua email cho tôi khi có plugin được nâng cấp",
diff --git a/plugins/CoreAdminHome/lang/zh-cn.json b/plugins/CoreAdminHome/lang/zh-cn.json
index c15466d75a..f6795bac66 100644
--- a/plugins/CoreAdminHome/lang/zh-cn.json
+++ b/plugins/CoreAdminHome/lang/zh-cn.json
@@ -10,7 +10,6 @@
"CustomLogoHelpText": "您可以定制 Piwik 图标,显示在用户界面和报表邮件上。",
"DevelopmentProcess": "虽然在%s开发过程%s中已进行过成千上万次的自动测试,Beta 版本测试仍然是实现 Piwik \"无错理念\"的很重要的一部分。",
"EmailServerSettings": "邮件服务器设置",
- "FaviconUpload": "选择上传图标",
"ForBetaTestersOnly": "仅供测试",
"ImageTracking": "图片跟踪",
"ImageTrackingIntro1": "当访客禁用 JavaScript 或者无法使用 JavaScript 时,您也可以使用图片跟踪链接来统计访客。",
@@ -48,6 +47,7 @@
"LatestBetaRelease": "最新测试板",
"LatestStableRelease": "最新稳定版",
"LogoUpload": "选择一个图标上传",
+ "FaviconUpload": "选择上传图标",
"LogoUploadHelp": "请上传 %s 格式的文件,最小高度 %s 点。",
"MenuDiagnostic": "检测",
"MenuGeneralSettings": "一般设置",
@@ -59,10 +59,9 @@
"OptOutForYourVisitors": "访客主动退出 Piwik",
"PiwikIsInstalledAt": "Piwik 安装在",
"PluginSettingChangeNotAllowed": "不允许更改插件"%s"中配置"%s"的值",
- "PluginSettings": "插件设置",
"PluginSettingsIntro": "这里,你可以更改下列第三方插件的配置:",
- "PluginSettingsSaveFailed": "保存插件设置失败",
"PluginSettingsValueNotAllowed": "插件\"%s\"中的域\"%s\"的值是不被允许的",
+ "PluginSettingsSaveFailed": "保存插件设置失败",
"SendPluginUpdateCommunication": "有新的插件更新时给我发送邮件",
"SendPluginUpdateCommunicationHelp": "插件有新版本时将会给超级管理员发送邮件",
"StableReleases": "如果Piwik对您的业务很重要,我们建议您使用最新的稳定版。如果使用最新测试版,发现了问题或有建议,请%s看这里%s。",
diff --git a/plugins/CoreConsole/Commands/CoreArchiver.php b/plugins/CoreConsole/Commands/CoreArchiver.php
index b44245988a..07cf2d5542 100644
--- a/plugins/CoreConsole/Commands/CoreArchiver.php
+++ b/plugins/CoreConsole/Commands/CoreArchiver.php
@@ -98,6 +98,5 @@ class CoreArchiver extends ConsoleCommand
$command->addOption('concurrent-requests-per-website', null, InputOption::VALUE_OPTIONAL, "When processing a website and its segments, number of requests to process in parallel", CronArchive::MAX_CONCURRENT_API_REQUESTS);
$command->addOption('disable-scheduled-tasks', null, InputOption::VALUE_NONE, "Skips executing Scheduled tasks (sending scheduled reports, db optimization, etc.).");
$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('xhprof', null, InputOption::VALUE_NONE, "Enables XHProf profiler for this archive.php run. Requires XHPRof (see tests/README.xhprof.md).");
}
-} \ No newline at end of file
+}
diff --git a/plugins/CoreConsole/Commands/DevelopmentSyncUITestScreenshots.php b/plugins/CoreConsole/Commands/DevelopmentSyncUITestScreenshots.php
index a8fa9a7a6c..7536884045 100644
--- a/plugins/CoreConsole/Commands/DevelopmentSyncUITestScreenshots.php
+++ b/plugins/CoreConsole/Commands/DevelopmentSyncUITestScreenshots.php
@@ -100,6 +100,8 @@ class DevelopmentSyncUITestScreenshots extends ConsoleCommand
cd $downloadToPath
git pull
git add .
+git status
+sleep 5
git commit -m '' # Write a good commit message, eg. 'Fixed UI test failure caused by change introduced in <core or plugin commit> which caused failure by <explanation of failure>'
git push";
@@ -108,6 +110,8 @@ git push";
cd ..
git pull
git add expected-ui-screenshots/
+git status
+sleep 5
git commit -m '' # Copy paste the good commit message
git push
cd ../../\n\n";
diff --git a/plugins/CoreHome/lang/da.json b/plugins/CoreHome/lang/da.json
index 87649baba1..97a58ca49e 100644
--- a/plugins/CoreHome/lang/da.json
+++ b/plugins/CoreHome/lang/da.json
@@ -3,7 +3,6 @@
"CategoryNoData": "Ingen data i kategorien. Prøv at 'Inkluder hele populationen'.",
"CheckForUpdates": "Søg efter opdateringer",
"CheckPiwikOut": "Tjek Piwik!",
- "ClickRowToExpandOrContract": "Klik på rækken for at udvide eller sammentrække undertabelen.",
"ClickToEditX": "Klik for at redigere %s",
"CloseWidgetDirections": "Luk modulet ved at klikke på 'X' ikonet øverst.",
"DataForThisReportHasBeenPurged": "Data til rapporten er er mere end %s måneder gamle og er blevet ryddet op.",
@@ -43,7 +42,6 @@
"PeriodWeeks": "uger",
"PeriodYear": "År",
"PeriodYears": "år",
- "PivotBySubtable": "Rapporten er ikke pivoteret %s Pivoter med %s.",
"ReportGeneratedOn": "Rapport genereret på %s",
"ReportGeneratedXAgo": "Rapport genereret %s siden",
"SharePiwikLong": "Hej! Jeg har lige fundet et fantastisk open source program: Piwik!\n\nPiwik kan gratis spore besøgende på din hjemmeside. Du bør helt klart undersøge det!",
@@ -54,14 +52,17 @@
"ShortMonthFormat": "%shortMonth% %longYear%",
"ShortWeekFormat": "%dayFrom% %shortMonthFrom% - %dayTo% %shortMonthTo% %shortYearTo%",
"ShowJSCode": "Vis JavaScript-koden til at indsætte.",
+ "SkipToContent": "Gå til indhold",
"SubscribeAndBecomePiwikSupporter": "Fortsæt til sikker kreditkort betalingsside (Paypal) for at blive en Piwik supporter!",
"SupportPiwik": "Støt Piwik!",
"TableNoData": "Ingen data til denne tabel.",
"ThereIsNoDataForThisReport": "Der er ingen data for denne rapport.",
- "UndoPivotBySubtable": "Rapporten er blevet pivoteret %s Fortryd pivot.",
"UnFlattenDataTable": "Rapporten er ikke hierarkisk %s lav den hierakisk",
"ViewAllPiwikVideoTutorials": "Vis alle Piwik videoselvstudier",
"WebAnalyticsReports": "Webanalyse-rapporter",
- "YouAreUsingTheLatestVersion": "Du bruger den seneste version af Piwik!"
+ "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."
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/el.json b/plugins/CoreHome/lang/el.json
index 6fa64aa5df..34f988871f 100644
--- a/plugins/CoreHome/lang/el.json
+++ b/plugins/CoreHome/lang/el.json
@@ -3,7 +3,6 @@
"CategoryNoData": "Ανεπαρκή δεδομένα στη κατηγορία. Δοκιμάστε να συμπεριλάβετε όλο το πλήθος.",
"CheckForUpdates": "Έλεγχος για ενημερώσεις",
"CheckPiwikOut": "Δοκιμάστε το Piwik!",
- "ClickRowToExpandOrContract": "Πατήστε στη γραμμή για να επεκταθεί ή να κρυφτεί ο υποπίνακας.",
"ClickToEditX": "Κάντε κλικ για να επεξεργαστείτε το %s",
"CloseWidgetDirections": "Μπορείτε να κλείσετε αυτή τη λειτουργία κάνοντας κλικ στο εικονίδιο 'X' στην κορυφή του widget.",
"DataForThisReportHasBeenPurged": "Τα δεδομένα για αυτή την αναφορά είναι περισσότερα από %s μήνες και κόπηκαν.",
@@ -43,7 +42,6 @@
"PeriodWeeks": "εβδομάδων",
"PeriodYear": "Έτος",
"PeriodYears": "ετών",
- "PivotBySubtable": "Η αναφορά αυτή δεν είναι θεμελιωμένη %s Να θεμελιωθεί από %s",
"ReportGeneratedOn": "Η αναφορά δημιουργήθηκε στις %s",
"ReportGeneratedXAgo": "Η αναφορά δημιουργήθηκε πριν από %s",
"SharePiwikLong": "Γεια σας! Βρήκα μόνο ένα καταπληκτικό λογισμικό ανοικτού κώδικα: το Piwik!\n\nΤο Piwik θα σας επιτρέψει να παρακολουθείτε τους επισκέπτες στην ιστοσελίδα σας δωρεάν. Καλό θα είναι να το δείτε!",
@@ -59,10 +57,12 @@
"SupportPiwik": "Στηρίξτε το Piwik!",
"TableNoData": "Δεν υπάρχουν δεδομένα για τον πίνακα.",
"ThereIsNoDataForThisReport": "Δεν υπάρχουν δεδομένα για αυτή την αναφορά.",
- "UndoPivotBySubtable": "Η αναφορά θεμελιώθηκε %s Αναίρεση της θεμελίωσης",
"UnFlattenDataTable": "Η αναφορά είναι επίπεδη %s Κάντε την ιεραρχημένη",
"ViewAllPiwikVideoTutorials": "Δείτε όλα τα βίντεο εκμάθησης του Piwik",
"WebAnalyticsReports": "Αναφορές Στατιστικών Ιστού",
- "YouAreUsingTheLatestVersion": "Χρησιμοποιείτε την τελευταία έκδοση του Piwik!"
+ "YouAreUsingTheLatestVersion": "Χρησιμοποιείτε την τελευταία έκδοση του Piwik!",
+ "ClickRowToExpandOrContract": "Πατήστε στη γραμμή για να επεκταθεί ή να κρυφτεί ο υποπίνακας.",
+ "UndoPivotBySubtable": "Η αναφορά θεμελιώθηκε %s Αναίρεση της θεμελίωσης",
+ "PivotBySubtable": "Η αναφορά αυτή δεν είναι θεμελιωμένη %s Να θεμελιωθεί από %s"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/fr.json b/plugins/CoreHome/lang/fr.json
index 148ee220bc..04c3295807 100644
--- a/plugins/CoreHome/lang/fr.json
+++ b/plugins/CoreHome/lang/fr.json
@@ -3,7 +3,6 @@
"CategoryNoData": "Aucune donnée pour cette catégorie. Essayez \"d'inclure toute la population\".",
"CheckForUpdates": "Vérifier les mises à jour",
"CheckPiwikOut": "Vérifiez sur Piwik!",
- "ClickRowToExpandOrContract": "Cliquez sur cette rangée pour afficher ou masquer le sous-tableau",
"ClickToEditX": "Cliquer pour éditer %s",
"CloseWidgetDirections": "Vous pouvez fermer ce gadget en cliquant sur l'icône en forme de \"X\" en haut du gadget.",
"DataForThisReportHasBeenPurged": "Les données pour ce rapport ont plus de %s mois et ont été purgées.",
@@ -61,6 +60,9 @@
"UnFlattenDataTable": "Le rapport est plat %s Le rendre hiérarchique",
"ViewAllPiwikVideoTutorials": "Visualiser tous les tutoriaux vidéo de Piwik",
"WebAnalyticsReports": "Rapports des statistiques web.",
- "YouAreUsingTheLatestVersion": "Vous utilisez la dernière version de Piwik!"
+ "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"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/nb.json b/plugins/CoreHome/lang/nb.json
index 688c46e295..9c6e2c82ba 100644
--- a/plugins/CoreHome/lang/nb.json
+++ b/plugins/CoreHome/lang/nb.json
@@ -4,27 +4,47 @@
"CheckForUpdates": "Se etter oppdateringer",
"CheckPiwikOut": "Sjekk ut Piwik!",
"ClickToEditX": "Klikk for å redigere %s",
+ "CloseWidgetDirections": "Du kan lukke dette elementet ved å klikke på X-ikonet på toppen av elementet.",
+ "DataForThisReportHasBeenPurged": "Dataene for denne rapporten er mer enn %s måneder gamle og har blitt fjernet.",
+ "DataTableExcludeAggregateRows": "Aggregerte rader er vist som %s Skjul dem",
+ "DataTableIncludeAggregateRows": "Aggregerte rader er skjult %s Vi dem",
"DateFormat": "%longDay% %day% %longMonth% %longYear%",
"Default": "standard",
+ "DonateCall1": "Det vil aldri koste noe å bruke Piwik, men det betyr ikke at det ikke koster oss noe å lage.",
+ "DonateCall2": "Piwik trenger din fortsatte støtte for å vokse og blomstre.",
+ "DonateCall3": "Hvis du føler at Piwik har signifikant verdi for din bedrifter, %1$svurder å donere!%2$s",
+ "DonateFormInstructions": "Klikk på glidebryteren for å velge beløp, deretter klikk abonnere for å donere.",
+ "ExcludeRowsWithLowPopulation": "All rader vises %s Ekskluder lav populasjon",
"ExternalHelp": "Hjelp (åpnes i ny fane)",
+ "FlattenDataTable": "Rapporten er hierarkisk %s Gjør den flat",
"HowMuchIsPiwikWorth": "Hvor mye er Piwik verdt for deg?",
+ "IncludeRowsWithLowPopulation": "Rader med lav populasjon er skjult %s Vis alle rader",
+ "InjectedHostEmailBody": "Hei, jeg prøvde å få tilgang til Piwik i dag og ble møtt av «ukjent vertsnavn»-advarselen.",
"InjectedHostEmailSubject": "Piwik ble åpnet med et ukjent vertsnavn: %s",
+ "InjectedHostNonSuperUserWarning": "%1$sKlikk her for å få sikker tilgang til Piwik%2$s og for å fjerne denne advarselen. Du ømsker kanskje også å kontakte din Piwik-administrator for å varsle dem om dette problemet (%3$sklikk her for å sende epost%4$s).",
+ "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 \/>",
"LongMonthFormat": "%longYear%, %longMonth%",
"LongWeekFormat": "%dayFrom% %longMonthFrom% - %dayTo% %longMonthTo% %longYearTo%",
"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.",
+ "OnlyForSuperUserAccess": "Dette elementet er vises kun til brukere som har superbruker-tilgang.",
"PageOf": "%1$s av %2$s",
"PeriodDay": "Dag",
"PeriodDays": "dager",
"PeriodMonth": "Måned",
"PeriodMonths": "måneder",
+ "PeriodRange": "Område",
"PeriodWeek": "Uke",
"PeriodWeeks": "uker",
"PeriodYear": "År",
"PeriodYears": "år",
"ReportGeneratedOn": "Rapport generert %s",
"ReportGeneratedXAgo": "Rapport generert %s siden",
+ "SharePiwikLong": "Hei! Jeg har nettopp funnet et bra stykke fri programvare: Piwik!\n\nPiwik lar deg spore besøkende på ditt nettsted gratis. Du bør definitivt prøve det ut.",
"SharePiwikShort": "Piwik! Gratis og åpen kildekode web analyse. Du eier dataene.",
"ShareThis": "Del dette",
"ShortDateFormat": "%shortDay% %day% %shortMonth%",
@@ -33,10 +53,16 @@
"ShortWeekFormat": "%dayFrom% %shortMonthFrom% - %dayTo% %shortMonthTo% %shortYearTo%",
"ShowJSCode": "Vis JavaScript-koden til å sette inn på din nettside.",
"SkipToContent": "Hopp til innhold",
+ "SubscribeAndBecomePiwikSupporter": "Fortsett til en sikker betalingsside for kredittkort (Paypal) for å bli en Piwik-støttespiller.",
"SupportPiwik": "Støtt Piwik!",
"TableNoData": "Ingen data for denne tabellen.",
"ThereIsNoDataForThisReport": "Det finnes ingen data for denne rapporten.",
+ "UnFlattenDataTable": "Rapporten er flat %s Gjør den hierarkisk",
+ "ViewAllPiwikVideoTutorials": "Se alle opplæringsvideoene for Piwik",
"WebAnalyticsReports": "Nettstatistikkrapporter",
- "YouAreUsingTheLatestVersion": "Du bruker den nyeste versjonen av Piwik!"
+ "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"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/nl.json b/plugins/CoreHome/lang/nl.json
index 10fc899a0f..83eab65e0b 100644
--- a/plugins/CoreHome/lang/nl.json
+++ b/plugins/CoreHome/lang/nl.json
@@ -3,7 +3,6 @@
"CategoryNoData": "Geen data in deze categorie. Probeer \"Toon alle data\".",
"CheckForUpdates": "Controleer op updates",
"CheckPiwikOut": "Kijk eens naar Piwik!",
- "ClickRowToExpandOrContract": "Klik deze regel om de tabel te openen of te sluiten.",
"ClickToEditX": "Klik om %s te bewerken",
"CloseWidgetDirections": "Je kunt deze widget sluiten door op het 'X' icoon bovenaan de widget te klikken.",
"DataForThisReportHasBeenPurged": "De data voor dit rapport was meer dan %s maanden oud en is reeds opgeschoond.",
@@ -11,7 +10,7 @@
"DataTableIncludeAggregateRows": "Geagregeerde rijen zijn verborgen %s Toon ze",
"DateFormat": "%longDay% %day% %longMonth% %longYear%",
"Default": "standaard",
- "DonateCall1": "Piwik zal altijd niks kosten voor gebruik, maar dat wil niet zeggen dat het niks kost om te maken.",
+ "DonateCall1": "Piwik zal altijd gratis zijn om te gebruiken, maar dat wil niet zeggen dat het niks kost om te maken.",
"DonateCall2": "Piwik heeft uw voortdurende steun nodig om te groeien.",
"DonateCall3": "Als u vindt dat Piwik een grote hulp is voor uw zaak, %1$s overweeg dan een donatie!%2$s",
"DonateFormInstructions": "Klik op de schuifbalk om een bedrag te selecteren, en klik dan subscribe om te doneren.",
@@ -45,8 +44,8 @@
"PeriodYears": "jaren",
"ReportGeneratedOn": "Rapport aangemaakt op %s",
"ReportGeneratedXAgo": "Rapport %s geleden gemaakt",
- "SharePiwikLong": "Hey, Ik heb net een prachtig stukje open source software ontdekt: Piwik!\n\nPiwik laat je toe gratis bezoekers op je website te volgen. Je zou het zeker eens moeten uitproberen!",
- "SharePiwikShort": "Piwik! Gratus en open source web analyse. Beheer je data.",
+ "SharePiwikLong": "Hey, Ik heb net een prachtig stukje open source software ontdekt: Piwik!\n\nPiwik geeft je de mogelijkheid om gratis bezoekers op je website te volgen. Je zou het zeker eens moeten uitproberen!",
+ "SharePiwikShort": "Piwik! Gratis en open source web analyse. Beheer je data.",
"ShareThis": "Deel dit",
"ShortDateFormat": "%shortDay% %day% %shortMonth%",
"ShortDateFormatWithYear": "%day% %shortMonth% %shortYear%",
@@ -61,6 +60,9 @@
"UnFlattenDataTable": "De rapportweergave is vlak %s Maak het hierarchisch",
"ViewAllPiwikVideoTutorials": "Bekijk alle Piwik Video Tutorials",
"WebAnalyticsReports": "Web Analyse rapporten",
- "YouAreUsingTheLatestVersion": "Je gebruikt de laatste versie van Piwik!"
+ "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"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/pl.json b/plugins/CoreHome/lang/pl.json
index bac69362f4..316c82dae4 100644
--- a/plugins/CoreHome/lang/pl.json
+++ b/plugins/CoreHome/lang/pl.json
@@ -3,7 +3,6 @@
"CategoryNoData": "Brak danych w tej kategorii. Spróbuj opcji \"Uwzględnij całą populację\".",
"CheckForUpdates": "Sprawdź aktualizacje",
"CheckPiwikOut": "Sprawdź Piwik!",
- "ClickRowToExpandOrContract": "Kliknij ten wiersz aby rozwinić lub zwinąć tabelę podrzędną",
"CloseWidgetDirections": "Możesz zamknąć ten widżet klikając na ikonie 'X' na górze widżetu.",
"DataForThisReportHasBeenPurged": "Dane do tego raportu są starsze niż %s miesięcy i zostały wyczyszczone.",
"DataTableExcludeAggregateRows": "Sumaryczne wiersze są widoczne %s Ukryj je",
@@ -27,6 +26,7 @@
"LongMonthFormat": "%longYear%, %longMonth%",
"LongWeekFormat": "%dayFrom% %longMonthFrom% - %dayTo% %longMonthTo% %longYearTo%",
"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.",
"OnlyForSuperUserAccess": "Ten widżet widzą tylko użytkownych z prawami dostępu Super User.",
"PageOf": "%1$s z %2$s",
@@ -49,6 +49,7 @@
"ShortMonthFormat": "%shortMonth% %longYear%",
"ShortWeekFormat": "%dayFrom% %shortMonthFrom% - %dayTo% %shortMonthTo% %shortYearTo%",
"ShowJSCode": "Pokaż kod JavaScript do umieszczenia",
+ "SkipToContent": "Przejdź do zawartości",
"SubscribeAndBecomePiwikSupporter": "Przejdź do bezpiecznej karty płatności kartami kredytowymi (Paypal) aby zostać Wspierającym Piwik'a!",
"SupportPiwik": "Wesprzyj Piwik!",
"TableNoData": "Brak danych dla tej tabeli.",
@@ -56,6 +57,7 @@
"UnFlattenDataTable": "Raport jest jednolity %s Przełącz na hierarchiczny",
"ViewAllPiwikVideoTutorials": "Obejrzyj wszystkie tutoriale wideo Piwik",
"WebAnalyticsReports": "Raport analityki statystyk stron",
- "YouAreUsingTheLatestVersion": "Używasz najnowszej wersji Piwik'a!"
+ "YouAreUsingTheLatestVersion": "Używasz najnowszej wersji Piwik'a!",
+ "ClickRowToExpandOrContract": "Kliknij ten wiersz aby rozwinić lub zwinąć tabelę podrzędną"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/ru.json b/plugins/CoreHome/lang/ru.json
index f642a3f20b..46a056f845 100644
--- a/plugins/CoreHome/lang/ru.json
+++ b/plugins/CoreHome/lang/ru.json
@@ -3,7 +3,6 @@
"CategoryNoData": "Нет данных в этой категории. Попробуйте \"Включить все показатели\".",
"CheckForUpdates": "Проверить на обновления",
"CheckPiwikOut": "Проверить Piwik на обновления!",
- "ClickRowToExpandOrContract": "Нажмите на эту строку, чтобы растянуть или сжать подтаблицу.",
"ClickToEditX": "Редактировать %s",
"CloseWidgetDirections": "Вы можете закрыть этот виджет, нажав на значок 'X' в верхней части виджета.",
"DataForThisReportHasBeenPurged": "Данные для этого отчета хранятся более %s месяцев и были почищены.",
@@ -61,6 +60,7 @@
"UnFlattenDataTable": "Отчет более конкретный %s Построить его по иерархии",
"ViewAllPiwikVideoTutorials": "Просмотреть все обучающие ролики про Piwik",
"WebAnalyticsReports": "Отчеты веб аналитики",
- "YouAreUsingTheLatestVersion": "У вас последняя версия Piwik!"
+ "YouAreUsingTheLatestVersion": "У вас последняя версия Piwik!",
+ "ClickRowToExpandOrContract": "Нажмите на эту строку, чтобы растянуть или сжать подтаблицу."
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/stylesheets/coreHome.less b/plugins/CoreHome/stylesheets/coreHome.less
index 3f45859af5..bf7b710892 100644
--- a/plugins/CoreHome/stylesheets/coreHome.less
+++ b/plugins/CoreHome/stylesheets/coreHome.less
@@ -260,3 +260,9 @@ a.Piwik_Popover_Error_Back {
/* Used to link within content text, without adding visual clutter */
.linkContent { color:#333; text-decoration:none}
.linkContent:hover { text-decoration:underline;}
+
+.ui-confirm h2 {
+ border-bottom: 0 none;
+ margin:0;
+ font-size:18px;
+} \ No newline at end of file
diff --git a/plugins/CoreHome/templates/_headerMessage.twig b/plugins/CoreHome/templates/_headerMessage.twig
index 4479e7fced..f6a2ae4e8c 100644
--- a/plugins/CoreHome/templates/_headerMessage.twig
+++ b/plugins/CoreHome/templates/_headerMessage.twig
@@ -31,7 +31,7 @@
<br/>
{% endif %}
{% if latest_version_available and isSuperUser %}
- {{ 'General_PiwikXIsAvailablePleaseUpdateNow'|translate(latest_version_available,"<br /><a href='index.php?module=CoreUpdater&amp;action=newVersionAvailable'>","</a>","<a href='?module=Proxy&amp;action=redirect&amp;url=http://piwik.org/changelog/' rel='noreferrer' target='_blank'>","</a>")|raw }}
+ {{ 'General_PiwikXIsAvailablePleaseUpdateNow'|translate(latest_version_available,"<br /><a href='index.php?module=CoreUpdater&amp;action=newVersionAvailable'>","</a>","<a href='?module=Proxy&amp;action=redirect&amp;url=http://piwik.org/changelog/' target='_blank'>","</a>")|raw }}
{% elseif latest_version_available and not isPiwikDemo and hasSomeViewAccess and not isUserIsAnonymous %}
{% set updateSubject = 'General_NewUpdatePiwikX'|translate(latest_version_available)|e('url') %}
{{ 'General_PiwikXIsAvailablePleaseNotifyPiwikAdmin'|translate("<a href='?module=Proxy&action=redirect&url=http://piwik.org/' target='_blank'>Piwik</a> <a href='?module=Proxy&action=redirect&url=http://piwik.org/changelog/' target='_blank'>" ~ latest_version_available ~ "</a>", "<a href='mailto:" ~ superUserEmails ~ "?subject=" ~ updateSubject ~ "'>", "</a>")|raw }}
diff --git a/plugins/CorePluginsAdmin/lang/da.json b/plugins/CorePluginsAdmin/lang/da.json
index 5144a6ac07..1d0fab34f7 100644
--- a/plugins/CorePluginsAdmin/lang/da.json
+++ b/plugins/CorePluginsAdmin/lang/da.json
@@ -16,7 +16,6 @@
"BeCarefulUsingThemes": "Temaer, der ikke er forfattet af Piwik holdet skal anvendes med forsigtighed: vi har ikke kontrolleret dem.",
"ByXDevelopers": "af %s udviklere",
"Changelog": "Ændringslog",
- "ChangeLookByManageThemes": "Skift udseendet på Piwik med %sAdministration af temaer%s.",
"ChangeSettingsPossible": "Du kan ændre %sindstillinger%s for denne programudvidelse",
"CorePluginTooltip": "Kerne programudvidelser har ingen version, da de distribuereter med Piwik.",
"Deactivate": "Deaktiver",
@@ -25,19 +24,21 @@
"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).",
"History": "Historik",
"Inactive": "Inaktiv",
"InfoPluginUpdateIsRecommended": "Opdater dine programudvidelser nu og drag fordel af de seneste forbedringer.",
"InfoThemeIsUsedByOtherUsersAsWell": "Bemærk: Den anden %1$s bruger der er registreret i denne Piwik bruger også temaet %2$s.",
"InfoThemeUpdateIsRecommended": "Opdater dine temaer for at nyde den nyeste version.",
- "InstallingNewPluginViaMarketplaceOrUpload": "De kan automatisk installere udvidelser fra markedspladsen eller %soverføre en udvidelse%s i .zip format.",
"InstallingPlugin": "Installerer %s",
"InstallNewPlugins": "Installer nye udvidelser",
"InstallNewThemes": "Installer nye temaer",
"LastCommitTime": "(last bidrag %s)",
"LastUpdated": "Sidst opdateret",
"LicenseHomepage": "Licens hjemmeside",
+ "PluginsExtendPiwik": "Programudvidelser udbygger og udvider funktionaliteten af Piwik.",
+ "OncePluginIsInstalledYouMayActivateHere": "Når en udvidelse er installeret, kan den aktiveres eller deaktiveres her.",
"Marketplace": "Markedsplads",
"MarketplaceSellPluginSubject": "Markedspladsen - Sælg programudvidelser",
"MenuPlatform": "Platform",
@@ -50,7 +51,6 @@
"NoZipFileSelected": "Vælg venligst en ZIP-fil.",
"NumDownloadsLatestVersion": "Nyeste version: %s Overførsler",
"NumUpdatesAvailable": "%s opdateringer tilgængelige",
- "OncePluginIsInstalledYouMayActivateHere": "Når en udvidelse er installeret, kan den aktiveres eller deaktiveres her.",
"Origin": "Kilde",
"OriginCore": "Kernen",
"OriginThirdParty": "Tredjeparts",
@@ -59,7 +59,6 @@
"PluginNotCompatibleWith": "%1$s udvidelsesmodul er ikke kompatibelt med %2$s.",
"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",
- "PluginsExtendPiwik": "Programudvidelser udbygger og udvider funktionaliteten af Piwik.",
"PluginsManagement": "Udvidelsesmodul administration",
"PluginUpdateAvailable": "Du bruger version %s en ny version %s er tilgængelig.",
"PluginVersionInfo": "%1$s fra %2$s",
@@ -85,6 +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.",
"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/el.json b/plugins/CorePluginsAdmin/lang/el.json
index 46ae0d34be..3f0f471af6 100644
--- a/plugins/CorePluginsAdmin/lang/el.json
+++ b/plugins/CorePluginsAdmin/lang/el.json
@@ -16,7 +16,6 @@
"BeCarefulUsingThemes": "Θέματα που δεν έχουν αναπτυχθεί από την ομάδα του Piwik πρέπει να χρησιμοποιούνται με προσοχή: δεν τα ελέγξαμε.",
"ByXDevelopers": "από %s προγραμματιστές",
"Changelog": "Αρχείο αλλαγών",
- "ChangeLookByManageThemes": "Μπορείτε να αλλάξετε την εμφάνιση του Piwik από τη %sΔιαχείριση Θεμάτων%s.",
"ChangeSettingsPossible": "Μπορείτε να αλλάξετε τις %sρυθμίσεις%s για αυτό το πρόσθετο.",
"CorePluginTooltip": "Τα πρόσθετα του πυρήνα δεν έχουν έκδοση από τη στιγμή που διανέμονται μαζί με το Piwik.",
"Deactivate": "Απενεργοποίηση",
@@ -25,19 +24,21 @@
"DoMoreContactPiwikAdmins": "Για να εγκαταστήσετε ένα νέο πρόσθετο ή θέμα, ελάτε σε επαφή με τους διαχειριστές του Piwik.",
"EmailToEnquireUpdatedVersion": "Παρακαλούμε στείλτε email στο %1$s και ζητήστε ενημέρωση της έκδοσης για το %2$s.",
"FeaturedPlugin": "Προβαλλόμενο πρόσθετο",
+ "ChangeLookByManageThemes": "Μπορείτε να αλλάξετε την εμφάνιση του Piwik από τη %sΔιαχείριση Θεμάτων%s.",
"GetEarlyAccessForPaidPlugins": "Σημείωση: όλα τα πρόσθετα διατίθενται δωρεάν αυτή τη στιγμή, στο μέλλον θα ενεργοποιήσουμε τα Επί Πληρωμή Πρόσθετα στην Αγορά (%sΕλάτε σε επικοινωνία μαζί μας%s για νωρίτερη πρόσβαση).",
"History": "Ιστορικό",
"Inactive": "Ανενεργό",
"InfoPluginUpdateIsRecommended": "Ενημερώστε τα πρόσθετά σας για να κερδίσετε από τις τελευταίες βελτιώσεις.",
"InfoThemeIsUsedByOtherUsersAsWell": "Σημείωση: οι άλλοι %1$s χρήστες που έχουν εγγραφεί σε αυτό το Piwik επίσης χρησιμοποιούν το θέμα %2$s.",
"InfoThemeUpdateIsRecommended": "Ενημερώστε τα θέματά σας για να απολαμβάνετε τις τελευταίες εκδόσεις.",
- "InstallingNewPluginViaMarketplaceOrUpload": "Μπορείτε να εγκαταστήσετε αυτόματα πρόσθετα από την Αγορά ή %sνα ανεβάσετε ένα πρόσθετο%s σε μορφή αρχείου .zip.",
"InstallingPlugin": "Γίνεται εγκατάσταση του %s",
"InstallNewPlugins": "Εγκατάσταση νέων πρόσθετων",
"InstallNewThemes": "Εγκατάσταση νέων θεμάτων",
"LastCommitTime": "(τελευταία οριστικοποίηση %s)",
"LastUpdated": "Τελευταία Ενημέρωση",
"LicenseHomepage": "Ιστοσελίδα Άδειας",
+ "PluginsExtendPiwik": "Τα πρόσθετα (Plugins) επεκτείνουν και διευρύνουν την λειτουργικότητα του Piwik.",
+ "OncePluginIsInstalledYouMayActivateHere": "Αφού εγκατασταθεί ένα πρόσθετο, μπορείτε να το ενεργοποιήσετε ή να το απενεργοποιήσετε εδώ.",
"Marketplace": "Αγορά",
"MarketplaceSellPluginSubject": "Αγορά - Πουλήστε ένα πρόσθετο",
"MenuPlatform": "Πλατφόρμα",
@@ -50,7 +51,6 @@
"NoZipFileSelected": "Επιλέξτε ένα αρχείο ZIP.",
"NumDownloadsLatestVersion": "Τελευταία έκδοση: %s λήψεις",
"NumUpdatesAvailable": "%s διαθέσιμες ενημερώσεις",
- "OncePluginIsInstalledYouMayActivateHere": "Αφού εγκατασταθεί ένα πρόσθετο, μπορείτε να το ενεργοποιήσετε ή να το απενεργοποιήσετε εδώ.",
"Origin": "Προέλευση",
"OriginCore": "Πυρήνας",
"OriginThirdParty": "Από τρίτες πηγές",
@@ -59,7 +59,6 @@
"PluginNotCompatibleWith": "Το πρόσθετο %1$s δεν είναι συμβατό με το %2$s.",
"PluginNotWorkingAlternative": "Αν χρησιμοποιείτε αυτό το πρόσθετο, ενδέχεται να βρείτε νεότερη έκδοση στην Αγορά. Αν όχι, μπορείτε να το απεγκαταστήσετε.",
"PluginRequirement": "Το %1$s απαιτεί το %2$s.",
- "PluginsExtendPiwik": "Τα πρόσθετα (Plugins) επεκτείνουν και διευρύνουν την λειτουργικότητα του Piwik.",
"PluginsManagement": "Διαχείριση προσθέτων",
"PluginUpdateAvailable": "Χρησιμοποιείτε την έκδοση %s και υπάρχει διαθέσιμη η έκδοση %s.",
"PluginVersionInfo": "%1$s από %2$s",
@@ -85,6 +84,7 @@
"TeaserExtendPiwikByPlugin": "Επεκτείνετε το Piwik εγκαθιστώντας ένα νέο πρόσθετο",
"TeaserExtendPiwikByTheme": "Απολαύστε μια άλλη όψη & αίσθηση εγκαθιστώντας ένα νέο θέμα",
"TeaserExtendPiwikByUpload": "Επεκτείνετε το Piwik ανεβάζοντας ένα αρχείο ZIP",
+ "InstallingNewPluginViaMarketplaceOrUpload": "Μπορείτε να εγκαταστήσετε αυτόματα πρόσθετα από την Αγορά ή %sνα ανεβάσετε ένα πρόσθετο%s σε μορφή αρχείου .zip.",
"Theme": "Θεματική παραλλαγή",
"Themes": "Θεματικές παραλλαγές",
"ThemesDescription": "Οι θεματικές παραλλαγές αλλάζουν την εμφάνιση διεπαφής χρήστη του Piwik και παρέχουν μια τελείως νέα οπτική εμπειρία προκειμένου να απολαμβάνετε τις αναφορές σας.",
diff --git a/plugins/CorePluginsAdmin/lang/es.json b/plugins/CorePluginsAdmin/lang/es.json
index 65c452515d..036dd47a04 100644
--- a/plugins/CorePluginsAdmin/lang/es.json
+++ b/plugins/CorePluginsAdmin/lang/es.json
@@ -35,6 +35,8 @@
"LastCommitTime": "(último cambio %s)",
"LastUpdated": "Última actualización",
"LicenseHomepage": "Licencia de la Wrb",
+ "PluginsExtendPiwik": "Los plugins extienden y amplían las funcionalidades de Piwik.",
+ "OncePluginIsInstalledYouMayActivateHere": "Una vez que el plugin esté instalado, usted puede activarlo o desactivarlo desde aquí.",
"Marketplace": "Marketplace",
"MarketplaceSellPluginSubject": "Marketplace - Vender Plugin",
"MenuPlatform": "Plataforma",
@@ -46,7 +48,6 @@
"NoZipFileSelected": "Por favor selecciona un archivo ZIP.",
"NumDownloadsLatestVersion": "Última versión: %s Descargas",
"NumUpdatesAvailable": "%s Actualizaciones(s) disponibles",
- "OncePluginIsInstalledYouMayActivateHere": "Una vez que el plugin esté instalado, usted puede activarlo o desactivarlo desde aquí.",
"Origin": "Origen",
"OriginCore": "Core",
"OriginThirdParty": "Tercero",
@@ -55,7 +56,6 @@
"PluginNotCompatibleWith": "%1$s complemento no es compatible con %2$s.",
"PluginNotWorkingAlternative": "Si has estado utilizando este plugin podrás encontrar una versión más reciente en el Marketplace. Si no, quizá es mejor desinstalarlo.",
"PluginRequirement": "%1$s requiere %2$s.",
- "PluginsExtendPiwik": "Los plugins extienden y amplían las funcionalidades de Piwik.",
"PluginsManagement": "Administración de Plugins",
"PluginUpdateAvailable": "Estás utilizando la versión %s y hay una nueva versión %s disponible.",
"PluginVersionInfo": "%1$s de %2$s",
diff --git a/plugins/CorePluginsAdmin/lang/fr.json b/plugins/CorePluginsAdmin/lang/fr.json
index 83e6b935ab..fd9e0de462 100644
--- a/plugins/CorePluginsAdmin/lang/fr.json
+++ b/plugins/CorePluginsAdmin/lang/fr.json
@@ -16,31 +16,34 @@
"BeCarefulUsingThemes": "Les thèmes qui ne sont pas conçus par l'équipe de Piwik doivent être utilisés avec précaution : nous les avons pas vérifiés.",
"ByXDevelopers": "par %s développeurs",
"Changelog": "Historique des changements",
- "ChangeLookByManageThemes": "Vous pouvez changer l'apparence de Piwik en %sgérant les thèmes%s.",
"ChangeSettingsPossible": "Vous pouvez modifier les %sparamètres%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.",
"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)",
"History": "Historique",
"Inactive": "Inactif",
"InfoPluginUpdateIsRecommended": "Mettez à jour vos composants pour bénéficier des dernières améliorations.",
"InfoThemeIsUsedByOtherUsersAsWell": "Note : %1$s autres utilisateurs utilisant ce Piwik utilisent aussi le thème %2$s.",
"InfoThemeUpdateIsRecommended": "Mettez à jour vos thèmes pour profiter de la dernière version.",
- "InstallingNewPluginViaMarketplaceOrUpload": "Vous pouvez installer automatiquement un plugin à partir du Marketplace ou %supload a plugin%s au format .zip.",
"InstallingPlugin": "Installation de %s",
"InstallNewPlugins": "Installer les nouveaux composants",
"InstallNewThemes": "Installer les nouveaux thèmes",
"LastCommitTime": "(dernier archivage %s)",
"LastUpdated": "A jour",
"LicenseHomepage": "Page de la licence",
+ "PluginsExtendPiwik": "Les plugins étendent et ajoutent des fonctionnalités à Piwik.",
+ "OncePluginIsInstalledYouMayActivateHere": "Une fois un plugin installé, vous pouvez l'activer ou le désactiver ici.",
"Marketplace": "Marché",
"MarketplaceSellPluginSubject": "Marché - Vendre un composant",
"MenuPlatform": "Plate-forme",
"MissingRequirementsNotice": "Veuillez mettre à jour %1$s %2$s vers une nouvelle version, %1$s %3$s est requis.",
+ "MissingRequirementsPleaseInstallNotice": "Veuillez installer %1$s %2$s qui est requis par %3$s.",
"NoPluginsFound": "Aucun composant trouvé",
"NotAllowedToBrowseMarketplacePlugins": "Vous pouvez parcourir la liste des composants qui peuvent être installés pour personnaliser ou étendre votre plateforme Piwik. Veuillez contacter votre administrateur si vous avez besoin d'en installer.",
"NotAllowedToBrowseMarketplaceThemes": "Vous pouvez parcourir la liste des thèmes qui peuvent être installés pour personnaliser l'apparence de votre plateforme Piwik. Veuillez contacter votre administrateur pour qu'il les installe pour vous.",
@@ -48,7 +51,6 @@
"NoZipFileSelected": "Veuillez sélectionner un fichier ZIP.",
"NumDownloadsLatestVersion": "Dernière version : %s téléchargements.",
"NumUpdatesAvailable": "%s Mise(s) à jour disponible(s)",
- "OncePluginIsInstalledYouMayActivateHere": "Une fois un plugin installé, vous pouvez l'activer ou le désactiver ici.",
"Origin": "Origine",
"OriginCore": "Principal",
"OriginThirdParty": "Tierce-Partie",
@@ -57,7 +59,6 @@
"PluginNotCompatibleWith": "Le composant %1$s n'est pas compatible avec %2$s.",
"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.",
- "PluginsExtendPiwik": "Les plugins étendent et ajoutent des fonctionnalités à Piwik.",
"PluginsManagement": "Gestionnaire de plugins",
"PluginUpdateAvailable": "Vous utilisez la version %s et une nouvelle version %s est disponible.",
"PluginVersionInfo": "%1$s de %2$s",
@@ -83,6 +84,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.",
"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/nl.json b/plugins/CorePluginsAdmin/lang/nl.json
index c893d8b48a..aacfef8432 100644
--- a/plugins/CorePluginsAdmin/lang/nl.json
+++ b/plugins/CorePluginsAdmin/lang/nl.json
@@ -12,9 +12,10 @@
"AuthorHomepage": "Auteur Startpagina",
"Authors": "Auteurs",
"BackToExtendPiwik": "Terug naar de Marktplaats",
+ "BeCarefulUsingPlugins": "Plugins die niet door het Piwik team zijn geschreven, wees daar voorzichtig mee: we hebben geen review gedaan.",
+ "BeCarefulUsingThemes": "Thema's die niet door het Piwik team zijn geschreven, wees daar voorzichtig mee: we hebben geen review gedaan.",
"ByXDevelopers": "door %s ontwikkelaars",
"Changelog": "Wijzigingen",
- "ChangeLookByManageThemes": "Je kan het uitelijk van Piwik wijzigen %sThema's%s",
"ChangeSettingsPossible": "U kunt %sinstellingen%s aanpassen voor deze plugin.",
"CorePluginTooltip": "Kern plugins hebben geen versie omdat deze met Piwik gedistribueerd worden.",
"Deactivate": "Uitschakelen",
@@ -23,6 +24,7 @@
"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).",
"History": "Historie",
"Inactive": "Uitgeschakeld",
@@ -32,26 +34,31 @@
"InstallingPlugin": "Installeren %s",
"InstallNewPlugins": "Nieuwe plugins installeren",
"InstallNewThemes": "Nieuwe thema's installeren",
+ "LastCommitTime": "(laatste wijziging %s)",
"LastUpdated": "Laatst Bijgewerkt",
"LicenseHomepage": "Licentie Startpagina",
+ "PluginsExtendPiwik": "Met plugins breidt u de functionaliteit van piwik uit.",
+ "OncePluginIsInstalledYouMayActivateHere": "Wanneer een plugin geïnstalleerd is, kan deze hier aan- en uitgeschakeld worden.",
"Marketplace": "Marktplaats",
"MarketplaceSellPluginSubject": "Marktplaats - Verkoop Plugin",
"MenuPlatform": "Platform",
"MissingRequirementsNotice": "Update alstublieft %1$s %2$s naar een nieuwere versie, %1$s %3$s is vereist.",
+ "MissingRequirementsPleaseInstallNotice": "Installeer %1$s %2$s omdat %3$s dat nodig heeft.",
"NoPluginsFound": "Geen plugins gevonden",
+ "NotAllowedToBrowseMarketplacePlugins": "Je kunt de lijst met beschikbare plugins bekijken om je Piwik platform te wijzigen of uit te breiden. Neem contact op met je Piwik beheerder wanneer je een van deze plugins wil installeren.",
+ "NotAllowedToBrowseMarketplaceThemes": "Je kunt de lijst met beschikbare thema's bekijken om je weergave van het Piwik platform aan te passen. Neem contact op met je Piwik beheerder wanneer je een van deze thema's wilt installeren.",
"NoThemesFound": "Geen thema's gevonden",
"NoZipFileSelected": "Selecteer een ZIP-bestand.",
"NumDownloadsLatestVersion": "Laatste versie: %s Downloads",
"NumUpdatesAvailable": "%s Update(s) beschikbaar",
- "OncePluginIsInstalledYouMayActivateHere": "Wanneer een plugin geïnstalleerd is, kan deze hier aan- en uitgeschakeld worden.",
"Origin": "Herkomst",
"OriginCore": "Kern",
"OriginThirdParty": "Derden",
"PluginHomepage": "Plugins",
"PluginKeywords": "Sleutelwoorden",
"PluginNotCompatibleWith": "%1$s plugin is niet compatibel met %2$s.",
+ "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.",
- "PluginsExtendPiwik": "Met plugins breidt u de functionaliteit van piwik uit.",
"PluginsManagement": "Plugin manager",
"PluginUpdateAvailable": "U gebruikt versie %s en een nieuwe versie %s is beschikbaar.",
"PluginVersionInfo": "%1$s van %2$s",
@@ -75,11 +82,14 @@
"Support": "Ondersteuning",
"TeaserExtendPiwik": "Breid Piwik uit met plugins en thema's",
"TeaserExtendPiwikByPlugin": "Breid Piwik uit door een nieuwe plugin te installeren",
+ "TeaserExtendPiwikByTheme": "Geniet van een andere weergave door het installeren van een nieuw thema.",
"TeaserExtendPiwikByUpload": "Breid 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.",
"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",
"ThemesManagement": "Beheer thema's",
+ "UninstallConfirm": "Je staat op het punt een plugin %s installatie ongedaan te maken. De plugin zal volledig worden verwijderd van het platform, dit kan niet ongedaan worden. Weet je zeker dat je dat wil?",
"Updated": "Bijgewerkt",
"UpdatingPlugin": "Bijwerken %s",
"UploadZipFile": "ZIP bestand uploaden",
diff --git a/plugins/CorePluginsAdmin/lang/ru.json b/plugins/CorePluginsAdmin/lang/ru.json
index 9384326bd3..d9ba736893 100644
--- a/plugins/CorePluginsAdmin/lang/ru.json
+++ b/plugins/CorePluginsAdmin/lang/ru.json
@@ -15,35 +15,37 @@
"BeCarefulUsingPlugins": "Плагины, которые разработаны не командой Piwik должны использоваться с осторожностью: мы не просматриваем их.",
"BeCarefulUsingThemes": "Темы, которые разработаны не командой Piwik должны использоваться с осторожностью: мы не просматриваем их.",
"Changelog": "История изменений",
- "ChangeLookByManageThemes": "Вы можете изменить внешний вид Piwik: %sВыбор Темы%s.",
"ChangeSettingsPossible": "Вы можете %sизменить настройки%s для этого плагина.",
"CorePluginTooltip": "Основные плагины не имеют версию, так как они распространяются с Piwik.",
"Deactivate": "Деактивировать",
"Developer": "Разработчик",
"DoMoreContactPiwikAdmins": "Для установки нового плагина или новой темы, пожалуйста свяжитесь с вашим Piwik-администратором",
"FeaturedPlugin": "Набирающий популярность плагин",
+ "ChangeLookByManageThemes": "Вы можете изменить внешний вид Piwik: %sВыбор Темы%s.",
"GetEarlyAccessForPaidPlugins": "Примечание: в настоящее время все плагины доступны бесплатно, в будущем мы включим платные плагины на Marketplace (%sсвяжитесь с нами%s для раннего доступа).",
"History": "История",
"Inactive": "Неактивный",
"InfoPluginUpdateIsRecommended": "Обновите плагины что бы воспользоваться последними улучшениями.",
"InfoThemeIsUsedByOtherUsersAsWell": "Примечание: другие зарегистрированные пользователи (%1$s) используют эту же тему: %2$s.",
"InfoThemeUpdateIsRecommended": "Обновите темы что бы насладиться последними улучшениями.",
- "InstallingNewPluginViaMarketplaceOrUpload": "Вы автоматически можете установить плагины из Marketplace или %sзагрузить плагин%s в формате zip.",
"InstallingPlugin": "Установка %s",
"InstallNewPlugins": "Установить новые плагины",
"InstallNewThemes": "Установить новые темы",
"LastUpdated": "Последнее обновление",
"LicenseHomepage": "Дом. страница лицензии",
+ "PluginsExtendPiwik": "Плагины расширяют функциональность Piwik.",
+ "OncePluginIsInstalledYouMayActivateHere": "После установки плагина Вы можете активировать или деактивировать его здесь.",
"Marketplace": "Marketplace",
"MarketplaceSellPluginSubject": "Marketplace – Продать плагин",
"MenuPlatform": "Платформа",
"MissingRequirementsNotice": "Пожалуйста, обновите %1$s %2$s до более новой версии, необходима версия %1$s %3$s.",
+ "MissingRequirementsPleaseInstallNotice": "Пожалуйста, установите %1$s %2$s т. к. оно требуется для %3$s.",
"NoPluginsFound": "Плагины не найдены",
+ "NotAllowedToBrowseMarketplacePlugins": "Можете посмотреть список плагинов, которые могут быть установлены для подстройки или расширения вашей платформы Piwik. Свяжитесь с администратором если вам потребуется установить один из них.",
"NoThemesFound": "Темы не найдены",
"NoZipFileSelected": "Выберете ZIP файл",
"NumDownloadsLatestVersion": "Последняя версия скачена: %s раз",
"NumUpdatesAvailable": "%s Обновлений доступно",
- "OncePluginIsInstalledYouMayActivateHere": "После установки плагина Вы можете активировать или деактивировать его здесь.",
"Origin": "Происхождение",
"OriginCore": "Основные",
"OriginThirdParty": "Сторонние",
@@ -52,7 +54,6 @@
"PluginNotCompatibleWith": "Плагин %1$s не совместим с %2$s.",
"PluginNotWorkingAlternative": "Если вы используете этот плагин, может быть, вы сможете найти более новые версии в Marketplace. Если нет — можете удалить его.",
"PluginRequirement": "%1$s требуется %2$s.",
- "PluginsExtendPiwik": "Плагины расширяют функциональность Piwik.",
"PluginsManagement": "Управление плагинами",
"PluginUpdateAvailable": "Вы используете версию %s последняя доступная %s",
"PluginVersionInfo": "%1$s – %2$s",
@@ -78,6 +79,7 @@
"TeaserExtendPiwikByPlugin": "Улучшение Piwik установкой нового плагина",
"TeaserExtendPiwikByTheme": "Насладитесь другим внешним видом установив новую тему",
"TeaserExtendPiwikByUpload": "Улучшение Piwik закачкой ZIP файла",
+ "InstallingNewPluginViaMarketplaceOrUpload": "Вы автоматически можете установить плагины из Marketplace или %sзагрузить плагин%s в формате zip.",
"Theme": "Тема",
"Themes": "Темы",
"ThemesDescription": "Темы могут изменить внешний вид Piwik пользовательского интерфейса, а также обеспечить совершенно новое визуальное восприятие, чтобы наслаждаться отчетами аналитики.",
diff --git a/plugins/CorePluginsAdmin/lang/sq.json b/plugins/CorePluginsAdmin/lang/sq.json
index d32af267b3..d968e3d6c8 100644
--- a/plugins/CorePluginsAdmin/lang/sq.json
+++ b/plugins/CorePluginsAdmin/lang/sq.json
@@ -7,11 +7,14 @@
"Deactivate": "Çaktivizoje",
"Inactive": "Jovepruese",
"LicenseHomepage": "Faqja Hyrëse e Lejes",
+ "PluginsExtendPiwik": "Shtojcat zgjerojnë dhe thellojnë funksionet e Piwik-ut.",
"OncePluginIsInstalledYouMayActivateHere": "Pasi një shtojcë të jetë instaluar, mund ta aktivizoni ose çaktivizoni prej këtu.",
"PluginHomepage": "Faqe Hyrëse e Shtojcës",
- "PluginsExtendPiwik": "Shtojcat zgjerojnë dhe thellojnë funksionet e Piwik-ut.",
+ "PluginKeywords": "Fjalëkyça",
"PluginsManagement": "Administrim Shtojcash",
+ "PluginVersionInfo": "%1$s from %2$s",
"Status": "Gjendje",
- "Version": "Version"
+ "Version": "Version",
+ "Websites": "\"Site\"-e web"
}
} \ No newline at end of file
diff --git a/plugins/CorePluginsAdmin/stylesheets/marketplace.less b/plugins/CorePluginsAdmin/stylesheets/marketplace.less
index dba8ce1523..0dd91da7e0 100644
--- a/plugins/CorePluginsAdmin/stylesheets/marketplace.less
+++ b/plugins/CorePluginsAdmin/stylesheets/marketplace.less
@@ -113,14 +113,14 @@
font-size: 90%;
&.even {
- padding-right: 0px;
- width: 130px;
+ padding-right: 0;
+ width: 48%;
overflow: hidden;
white-space: nowrap;
}
&.odd {
- padding-right: 0px;
- width: 130px;
+ padding-right: 0;
+ width: 48%;
overflow: hidden;
white-space: nowrap;
}
diff --git a/plugins/CorePluginsAdmin/templates/browsePluginsActions.twig b/plugins/CorePluginsAdmin/templates/browsePluginsActions.twig
index 1ccbafb057..0940df2b96 100644
--- a/plugins/CorePluginsAdmin/templates/browsePluginsActions.twig
+++ b/plugins/CorePluginsAdmin/templates/browsePluginsActions.twig
@@ -21,7 +21,7 @@
<a href="{{ linkTo({'sort': 'alpha', 'query': ''}) }}" {% if 'alpha' == sort %}class="active"{% endif %}>{{ 'CorePluginsAdmin_SortByAlpha'|translate }}</a>
|
<form action="{{ linkTo({'sort': ''}) }}" method="POST">
- <input value="{{ query }}" placeholder="{{ 'General_Search'|translate }}" type="text" name="query"/>
+ <input value="{{ query }}" placeholder="{{ 'General_Search'|translate }} {{ plugins|length }} {{ 'General_Plugins'|translate|lcfirst }}..." type="text" name="query"/>
<button type="submit">{{ 'General_Search'|translate }}</button>
</form>
</div>
diff --git a/plugins/CorePluginsAdmin/templates/browseThemes.twig b/plugins/CorePluginsAdmin/templates/browseThemes.twig
index 1c8066b3f7..106f507b00 100644
--- a/plugins/CorePluginsAdmin/templates/browseThemes.twig
+++ b/plugins/CorePluginsAdmin/templates/browseThemes.twig
@@ -15,7 +15,6 @@
{{ 'CorePluginsAdmin_BeCarefulUsingThemes'|translate }}
</div>
- {% include "@CorePluginsAdmin/browsePluginsActions.twig" %}
</div>
{% if not isSuperUser %}
diff --git a/plugins/CoreUpdater/lang/am.json b/plugins/CoreUpdater/lang/am.json
index a28166b813..2336e050aa 100644
--- a/plugins/CoreUpdater/lang/am.json
+++ b/plugins/CoreUpdater/lang/am.json
@@ -17,6 +17,7 @@
"UpdateAutomatically": "ራስሰር አልቅ",
"UpdateHasBeenCancelledExplanation": "ፒዊክ አንድ ጠቅ አርግ ማላቅ ተሰርዟል። ከላይ ያለውን የስህተት መልዕክት መጠገን ካልቻልክ ፒዊክን በእጅ እንድታልቅትመከራለህ። %1$s ለመጀመር የ %2$sማላቂያ ስነዳ %3$sተመልከት!",
"UpdateTitle": "ፒዊክ › አልቅ",
+ "UpdateSuccessTitle": "ፒዊክን ማላቅ በተሳካ ሁኔታ ተጠናቋል!",
"UpgradeComplete": "ማላቅ ተጠናቋል!",
"UpgradePiwik": "ፒዊክን አልቅ",
"VerifyingUnpackedFiles": "የተበተኑትን ፋይሎች በመበተን ላይ",
diff --git a/plugins/CoreUpdater/lang/ar.json b/plugins/CoreUpdater/lang/ar.json
index 9e360180aa..fceb3ec0b6 100644
--- a/plugins/CoreUpdater/lang/ar.json
+++ b/plugins/CoreUpdater/lang/ar.json
@@ -36,6 +36,7 @@
"UpdateAutomatically": "تحديث آلي",
"UpdateHasBeenCancelledExplanation": "تم إلغاء تحديث Piwik الآلي. إذا لم يكن في استطاعتك حل رسالة الخطأ الواردة أعلاه، فنوصي بالتحديث اليدوي لنظام Piwik. %1$s يرجى مراجعة %2$s مساعدة التحديث %3$s لتبدأ!",
"UpdateTitle": "تحديث",
+ "UpdateSuccessTitle": "تم تحديث Piwik بنجاح!",
"UpgradeComplete": "اكتملت عملية الترقية!",
"UpgradePiwik": "ترقية Piwik",
"VerifyingUnpackedFiles": "جاري تعريف الملفات",
diff --git a/plugins/CoreUpdater/lang/be.json b/plugins/CoreUpdater/lang/be.json
index 13e2678da0..ac1e6c8fa7 100644
--- a/plugins/CoreUpdater/lang/be.json
+++ b/plugins/CoreUpdater/lang/be.json
@@ -35,6 +35,7 @@
"UpdateAutomatically": "Абнавіць аўтаматычна",
"UpdateHasBeenCancelledExplanation": "Piwik One Click Update адменены. Калі Вы не можаце выправіць вышэйапісаныя памылкі, рэкамендуецца абнавіць Piwik уручную. %1$s Калі ласка, праверце %2$sдокументацію абнаўленні%3$s для тона, каб пачаць!",
"UpdateTitle": "Абнаўленне",
+ "UpdateSuccessTitle": "Piwik паспяхова абноўлены!",
"UpgradeComplete": "Абнаўленне завершана!",
"UpgradePiwik": "Абнавіць Piwik",
"VerifyingUnpackedFiles": "Правяраю распакаваныя файлы",
diff --git a/plugins/CoreUpdater/lang/bg.json b/plugins/CoreUpdater/lang/bg.json
index a3699b58a1..e2d48f6017 100644
--- a/plugins/CoreUpdater/lang/bg.json
+++ b/plugins/CoreUpdater/lang/bg.json
@@ -43,6 +43,7 @@
"UpdateAutomatically": "Обновете автоматично",
"UpdateHasBeenCancelledExplanation": "Автоматичното обновяване на Piwik е отказано. Опитайте отново! Ако не успеете автоматично да обновите Piwik, опитайте ръчно. %1$s Моля прочетете %2$s документацията %3$s и продължете!",
"UpdateTitle": "Обновления",
+ "UpdateSuccessTitle": "Piwik успешно е обновен!",
"UpgradeComplete": "Обновяването приключи!",
"UpgradePiwik": "Обновете Piwik",
"VerifyingUnpackedFiles": "Разархивираните файлове",
diff --git a/plugins/CoreUpdater/lang/ca.json b/plugins/CoreUpdater/lang/ca.json
index 53867f0e5a..ba860bbcda 100644
--- a/plugins/CoreUpdater/lang/ca.json
+++ b/plugins/CoreUpdater/lang/ca.json
@@ -37,6 +37,7 @@
"UpdateAutomatically": "Actualitza automàticament",
"UpdateHasBeenCancelledExplanation": "L'actualització en un clic del Piwik ha estat cancel·lada. Si no podeu arreglar l'error de més amunt, us recomanem que actualitzeu el Piwik manualment. %1$s Si us plau, mireu-vos la %2$sDocumentació d'actualització (en anglès)%3$s per a començar!",
"UpdateTitle": "Actualització del Piwik",
+ "UpdateSuccessTitle": "El Piwik s'ha actualitzat amb èxit!",
"UpgradeComplete": "S'ha actualitzat amb èxit!",
"UpgradePiwik": "Actualitza el Piwik",
"VerifyingUnpackedFiles": "S'estan verificant els fitxers",
diff --git a/plugins/CoreUpdater/lang/cs.json b/plugins/CoreUpdater/lang/cs.json
index aff2914e2d..2866ee5998 100644
--- a/plugins/CoreUpdater/lang/cs.json
+++ b/plugins/CoreUpdater/lang/cs.json
@@ -37,8 +37,8 @@
"PiwikUpdatedSuccessfully": "Piwik úspěšně aktualizován!",
"PiwikWillBeUpgradedFromVersionXToVersionY": "Databáze Piwiku bude aktualizována z verze %1$s na novou verzi %2$s.",
"ReadyToGo": "Připraven pokračovat?",
- "TheFollowingDimensionsWillBeUpgradedX": "Následující dimenze budou aktualizovány: %s.e",
"TheFollowingPluginsWillBeUpgradedX": "Následující zásuvné moduly budou aktualizovány: %s.",
+ "TheFollowingDimensionsWillBeUpgradedX": "Následující dimenze budou aktualizovány: %s.e",
"ThereIsNewPluginVersionAvailableForUpdate": "Některé moduly, které používáte, byly v obchodě aktualizovány:",
"ThereIsNewVersionAvailableForUpdate": "Je k dispozici nová verze Piwiku",
"TheUpgradeProcessMayFailExecuteCommand": "Pokud máte velkou databázi Piwiku, aktualizace v prohlížeči může trvat dlouhou dobu. V této situaci můžete spustit aktualizaci z příkazového řádku: %s",
@@ -47,15 +47,16 @@
"UpdateAutomatically": "Aktualizovat automaticky",
"UpdateHasBeenCancelledExplanation": "One Click aktualizace Piwiku byla zrušena. Pokud nemůžete opravit chybu je doporučeno Piwik aktualizovat manuálně. %1$s Prosím zkontrolujte nejdříve %2$sdokumentaci k aktualizaci%3$s!",
"UpdateTitle": "Aktualizovat",
+ "UpdateSuccessTitle": "Piwik byl úspěšně aktualizován!",
"UpgradeComplete": "Aktualizace je kompletní!",
"UpgradePiwik": "Aktualizovat Piwik",
"VerifyingUnpackedFiles": "Ověřuji rozbalené soubory",
- "ViewVersionChangelog": "Zobrazit protokol změn této verze:",
"WarningMessages": "Hlášky upozornění:",
"WeAutomaticallyDeactivatedTheFollowingPlugins": "Automaticky jsme zakázali následující zásuvné moduly: %s",
"YouCanUpgradeAutomaticallyOrDownloadPackage": "Můžete aktualizovat na verzi %s automaticky, nebo si stáhněte balíček a nainstalujte jej manuálně:",
"YouCouldManuallyExecuteSqlQueries": "Pokud nemůžete použít aktualizaci z příkazového řádku a Piwik nelze aktualizovat (díky vypršení časového limitu v databázi, prohlížeči, nebo z jakéhokoliv jiného důvodu), můžete spustit SQL dotazy ručně",
"YouMustDownloadPackageOrFixPermissions": "Piwik nemůže přepsat Vaši stávající instalaci. Můžete buď opravit oprávnění k adresářům\/souborům, nebo stáhnout balíček a nainstalovat verzi %s ručně",
- "YourDatabaseIsOutOfDate": "Vaše databáze Piwiku je zastaralá a musí být aktualizována, než budete pokračovat."
+ "YourDatabaseIsOutOfDate": "Vaše databáze Piwiku je zastaralá a musí být aktualizována, než budete pokračovat.",
+ "ViewVersionChangelog": "Zobrazit protokol změn této verze:"
}
} \ No newline at end of file
diff --git a/plugins/CoreUpdater/lang/da.json b/plugins/CoreUpdater/lang/da.json
index 1c5a93f7f2..5f81e928bd 100644
--- a/plugins/CoreUpdater/lang/da.json
+++ b/plugins/CoreUpdater/lang/da.json
@@ -37,8 +37,8 @@
"PiwikUpdatedSuccessfully": "Piwik er opdateret!",
"PiwikWillBeUpgradedFromVersionXToVersionY": "Piwik vil blive opgraderet fra version %1$s til den nye version %2$s.",
"ReadyToGo": "Klar, parat, start?",
- "TheFollowingDimensionsWillBeUpgradedX": "Følgende mål vil blive opdateret: %s.",
"TheFollowingPluginsWillBeUpgradedX": "Følgende udvidelsesmoduler vil blive opgraderet: %s.",
+ "TheFollowingDimensionsWillBeUpgradedX": "Følgende mål vil blive opdateret: %s.",
"ThereIsNewPluginVersionAvailableForUpdate": "Nogle programudvidelser du bruger er blevet opdateret på markedspladsen:",
"ThereIsNewVersionAvailableForUpdate": "Ny version af Piwik er tilgængelig",
"TheUpgradeProcessMayFailExecuteCommand": "Hvis du har en stor Piwik database, kan opdateringer tage for lang tid at køre i browseren. I denne situation, kan du udføre opdateringen fra kommandolinjen: %s",
@@ -47,6 +47,7 @@
"UpdateAutomatically": "Opdater automatisk",
"UpdateHasBeenCancelledExplanation": "Piwik ét klik-opdatering er blevet annulleret. Kan ovenstående fejlmeddelelse ikke løses, anbefales det at opdatere Piwik manuelt. %1$s Læs %2$sOpdaterings dokumentationen%3$s for at komme i gang!",
"UpdateTitle": "Opdatering",
+ "UpdateSuccessTitle": "Piwik blev opdateret!",
"UpgradeComplete": "Opgradering fuldført!",
"UpgradePiwik": "Opgrader Piwik",
"VerifyingUnpackedFiles": "Kontrollerer filer",
@@ -55,6 +56,7 @@
"YouCanUpgradeAutomaticallyOrDownloadPackage": "Opdater til version %s automatisk eller hent programpakken og installer manuelt:",
"YouCouldManuallyExecuteSqlQueries": "Hvis du ikke er i stand til at bruge kommandolinje opdatering og hvis Piwik opgradering fejler (på grund af timeout i databasen, netlæser timeout, eller andet), kan du manuelt udføre SQL-forespørgsler til at opdatere Piwik.",
"YouMustDownloadPackageOrFixPermissions": "Piwik er i stand til at overskrive din nuværende installation. Du kan enten rette mappe\/fil tilladelserne eller hente pakken og installere version %s manuelt:",
- "YourDatabaseIsOutOfDate": "Piwik databasen er ikke opdateret, og skal opgraderes før du kan fortsættes."
+ "YourDatabaseIsOutOfDate": "Piwik databasen er ikke opdateret, og skal opgraderes før du kan fortsættes.",
+ "ViewVersionChangelog": "Se ændringsloggen for denne version:"
}
} \ No newline at end of file
diff --git a/plugins/CoreUpdater/lang/de.json b/plugins/CoreUpdater/lang/de.json
index 1fd500876e..78e012d840 100644
--- a/plugins/CoreUpdater/lang/de.json
+++ b/plugins/CoreUpdater/lang/de.json
@@ -37,8 +37,8 @@
"PiwikUpdatedSuccessfully": "Piwik wurde erfolgreich aktualisiert!",
"PiwikWillBeUpgradedFromVersionXToVersionY": "Die Piwik-Datenbank wird von Version %1$s auf die neue Version %2$s aktualisiert.",
"ReadyToGo": "Sind Sie bereit?",
- "TheFollowingDimensionsWillBeUpgradedX": "Die folgenden Dimensionen werden aktualisiert: %s.",
"TheFollowingPluginsWillBeUpgradedX": "Die folgenden Plugins werden aktualisiert: %s",
+ "TheFollowingDimensionsWillBeUpgradedX": "Die folgenden Dimensionen werden aktualisiert: %s.",
"ThereIsNewPluginVersionAvailableForUpdate": "Für einige der von Ihnen benutzten Plugins sind Aktualisierungen im Marketplace verfügbar:",
"ThereIsNewVersionAvailableForUpdate": "Eine neue Version von Piwik ist verfügbar",
"TheUpgradeProcessMayFailExecuteCommand": "Wenn Sie eine große Piwik-Datenbank haben, können Aktualisierungen zu lange dauern, um erfolgreich im Browser durchgeführt zu werden. In diesem Fall können Sie die Aktualisierung auch von der Kommandozeile aus starten: %s",
@@ -47,15 +47,28 @@
"UpdateAutomatically": "Aktualisierung automatisch ausführen",
"UpdateHasBeenCancelledExplanation": "Die Piwik Ein-Klick-Aktualisierung wurde abgebrochen. Wenn die oben stehende Fehlermeldung nicht behoben werden kann, sollten Sie Piwik manuell aktualisieren. %1$s Bitte lesen Sie die %2$sDokumentation zur Aktualisierung%3$s, um die Einzelheiten zu erfahren!",
"UpdateTitle": "Aktualisierung",
+ "UpdateSuccessTitle": "Piwik wurde erfolgreich aktualisiert!",
+ "UpdateErrorTitle": "Aktualisierungsfehler",
+ "ThankYouUpdatePiwik": "Vielen Dank, dass Sie Piwik nutzen und es aktuell halten!",
+ "PostUpdateMessage": "Piwik wird immer frei herunterzuladen und zu nutzen sein, aber es braucht Ihre dauerhafte Unterstützung um zu wachsen und zu gedeihen.",
+ "PostUpdateSupport": "Wenn Sie beim Einsatz von Piwik Hilfe benötigen, holen Sie sich Support von dessen Schöpfer:",
+ "EnterpriseSolutions": "Enterprise-Lösungen",
+ "CloudHosting": "Cloud-Hosting",
+ "Updating": "Aktualisiere",
+ "UpdateUsingHttpsFailed": "Das Herunterladen der neuesten Piwik Version über eine sichere HTTPS-Verbindung war aufgrund des folgenden Fehlers nicht erfolgreich:",
+ "UpdateUsingHttpsFailedHelp": "Warum hat das nicht funktioniert? Der Download der aktuellen Piwik Version (über eine sichere HTTPS Verbindung) kann aus verschiedenen Gründen misslingen, zum Beispiel wegen einem Netzwerkfehler, langsamer Internetverbindung oder falscher Systemkonfiguration. Beachten Sie, dass Ihr Server auch Ziel einer Man-in-the-Middle Attacke sein könnte und jemand versucht, das Update mit einer schadhaften Version von Piwik zu ersetzen.",
+ "UpdateUsingHttpsFailedHelpWhatToDo": "Es ist empfohlen den Download erneut mit einer sicheren HTTPS-Verbindung zu versuchen, da dies MITM-Attacken verhindert.",
+ "UsingHttps": "die sichere HTTPS Verbindung nützen (empfohlen)",
+ "UsingHttp": "die nicht sichere HTTP Verbindung nützen",
"UpgradeComplete": "Aktualisierung abgeschlossen!",
"UpgradePiwik": "Piwik aktualisieren",
"VerifyingUnpackedFiles": "Die entpackten Dateien werden überprüft",
- "ViewVersionChangelog": "Änderungen in dieser Version ansehen:",
"WarningMessages": "Warnhinweise:",
"WeAutomaticallyDeactivatedTheFollowingPlugins": "Die folgenden Plugins wurden automatisch deaktiviert: %s",
"YouCanUpgradeAutomaticallyOrDownloadPackage": "Die Aktualisierung auf Version %s kann automatisch ausgeführt werden. Oder Sie laden das Paket herunter und installieren es manuell:",
"YouCouldManuallyExecuteSqlQueries": "Wenn Sie die Aktualisierung nicht von der Kommandozeile aus ausführen können und auch Piwik die Aktualisierung nicht durchführen kann (wegen Zeitüberschreitungen der Datenbank, des Browser oder sonstigen Fällen), können Sie auch die SQL-Befehle manuell ausführen, um Piwik zu aktualisieren.",
"YouMustDownloadPackageOrFixPermissions": "Piwik kann Ihre aktuelle Installation nicht überschreiben. Sie müssen entweder die Ordner-\/Dateiberechtigungen anpassen oder das Paket herunterladen und die Version %s manuell installieren.",
- "YourDatabaseIsOutOfDate": "Ihre Piwik-Datenbank ist nicht mehr aktuell und muss aktualisiert werden, bevor Sie weiter arbeiten können."
+ "YourDatabaseIsOutOfDate": "Ihre Piwik-Datenbank ist nicht mehr aktuell und muss aktualisiert werden, bevor Sie weiter arbeiten können.",
+ "ViewVersionChangelog": "Änderungen in dieser Version ansehen:"
}
} \ No newline at end of file
diff --git a/plugins/CoreUpdater/lang/el.json b/plugins/CoreUpdater/lang/el.json
index b16b8821c6..15eea1ab8f 100644
--- a/plugins/CoreUpdater/lang/el.json
+++ b/plugins/CoreUpdater/lang/el.json
@@ -37,8 +37,8 @@
"PiwikUpdatedSuccessfully": "Το Piwik αναβαθμίστηκε επιτυχώς!",
"PiwikWillBeUpgradedFromVersionXToVersionY": "Η βάση δεδομένων Piwik θα αναβαθμιστεί από την έκδοση %1$s στην έκδοση %2$s.",
"ReadyToGo": "Έτοιμοι για να συνεχίσετε;",
- "TheFollowingDimensionsWillBeUpgradedX": "Οι ακόλουθες διαστάσεις θα ενημερωθούν: %s.",
"TheFollowingPluginsWillBeUpgradedX": "Τα ακόλουθα πρόσθετα θα αναβαθμιστούν: %s.",
+ "TheFollowingDimensionsWillBeUpgradedX": "Οι ακόλουθες διαστάσεις θα ενημερωθούν: %s.",
"ThereIsNewPluginVersionAvailableForUpdate": "Ορισμένα πρόσθετα που χρησιμοποιείτε έχουν ενημερωθεί στην Αγορά:",
"ThereIsNewVersionAvailableForUpdate": "Υπάρχει νέα έκδοση του Piwik διαθέσιμη για λήψη",
"TheUpgradeProcessMayFailExecuteCommand": "Αν έχετε μια μεγάλη βάση δεδομένων Piwik, οι ενημερώσεις ίσως κρατήσουν αρκετό χρόνο στο φυλλομετρητή. Σε αυτή τη περίπτωση, μπορείτε να εκτελέσετε της ενημερώσεις από τη γραμμή εντολών: %s",
@@ -47,15 +47,28 @@
"UpdateAutomatically": "Αυτόματη ενημέρωση",
"UpdateHasBeenCancelledExplanation": "Η Αναβάθμιση με Ένα Κλικ ακυρώθηκε. Αν δεν μπορείτε να διορθώσετε το παραπάνω σφάλμα, σας προτείνουμε να αναβαθμίσετε το Piwik χειροκίνητα. %1$s Διαβάστε την %2$sΤεκμηρίωση Αναβάθμισης%3$s για να ξεκινήσετε!",
"UpdateTitle": "Ενημέρωση",
+ "UpdateSuccessTitle": "Το Piwik αναβαθμίστηκε επιτυχώς!",
+ "UpdateErrorTitle": "Σφάλμα ενημέρωσης",
+ "ThankYouUpdatePiwik": "Ευχαριστούμε που χρησιμοποιείτε το Piwik και το κρατάτε ενημερωμένο!",
+ "PostUpdateMessage": "Το Piwik θα είναι πάντα ελεύθερο για κατέβασμα και χρήση, αλλά χρειάζεται τη διαρκή υποστήριξή σας για να αναπτύσσεται και να βελτιώνεται.",
+ "PostUpdateSupport": "Αν χρειάζεστε βοήθεια στη χρήση του Piwik, μπορείτε να λάβετε υποστήριξη από τους δημιουργούς του:",
+ "EnterpriseSolutions": "Λύσεις για επιχειρήσεις",
+ "CloudHosting": "Φιλοξενία στο σύννεφο",
+ "Updating": "Γίνεται ενημέρωση",
+ "UpdateUsingHttpsFailed": "Το κατέβασμα της τελευταίας έκδοσης Piwik πάνω από σύνδεση HTTPS δεν έγινε με επιτυχία, λόγω του ακόλουθου σφάλματος:",
+ "UpdateUsingHttpsFailedHelp": "Γιατί απέτυχε; Το κατέβασμα της τελευταίας έκδοσης του Piwik (πάνω από ασφαλή σύνδεση HTTPS) μπορεί να αποτύχει για διάφορους λόγους, για παράδειγμα λόγω σφάλματος δικτύου, αργής ταχύτητας δικτύου ή λάθος παραμετροποίησης συστήματος. Πρέπει να σημειωθεί ότι μπορεί ο διακομιστής σας να είναι στόχος επίθεσης MITM και κάποιος να προσπαθεί να αντικαταστήσει την ενημέρωση με μια κακόβουλη έκδοση του Piwik.",
+ "UpdateUsingHttpsFailedHelpWhatToDo": "Προτείνεται να επαναλάβετε το κατέβασμα με χρήση ασφαλούς σύνδεσης που αποτρέχει επιθέσεις τύπου MITM.",
+ "UsingHttps": "με χρήση της ασφαλούς επικοινωνίας HTTP (προτείνεται)",
+ "UsingHttp": "με χρήση της μη ασφαλούς επικοινωνίας HTTP",
"UpgradeComplete": "Η αναβάθμιση ολοκληρώθηκε!",
"UpgradePiwik": "Αναβάθμιση Piwik",
"VerifyingUnpackedFiles": "Επιβεβαίωση των ασυμπίεστων αρχείων",
- "ViewVersionChangelog": "Δείτε τις αλλαγές για αυτή την έκδοση:",
"WarningMessages": "Προειδοποιητικά μηνύματα:",
"WeAutomaticallyDeactivatedTheFollowingPlugins": "Απενεργοποιήθηκαν τα παρακάτω πρόσθετα: %s",
"YouCanUpgradeAutomaticallyOrDownloadPackage": "Μπορείτε να αναβαθμίσετε στην έκδοση %s αυτόματα ή λάβετε το πακέτο και εγκαταστήστε τη χειροκίνητα:",
"YouCouldManuallyExecuteSqlQueries": "Αν δεν μπορείτε να χρησιμοποιήσετε τη γραμμή εντολών για την ενημέρωση και αν το Piwik αποτύχει να αναβαθμιστεί (λόγω λήξης χρόνου της βάσης δεδομένων, του φυλλομετρητή ή όποια άλλη αιτία), μπορείτε να εκτελέσετε της ερωτήματα SQL χειροκίνητα για να ενημερώσετε το Piwik.",
"YouMustDownloadPackageOrFixPermissions": "Το Piwik δεν μπορεί να αντικαταστήσει την υπάρχουσα εγκατάσταση. Μπορείτε να διορθώσετε τα δικαιώματα πρόσβασης των φακέλων\/αρχείων ή κατεβάστε το πακέτο και εγκαταστήστε την έκδοση %s χειροκίνητα.",
- "YourDatabaseIsOutOfDate": "Η βάση δεδομένων του Piwik είναι παλιά και πρέπει να αναβαθμιστεί προτού συνεχίσετε."
+ "YourDatabaseIsOutOfDate": "Η βάση δεδομένων του Piwik είναι παλιά και πρέπει να αναβαθμιστεί προτού συνεχίσετε.",
+ "ViewVersionChangelog": "Δείτε τις αλλαγές για αυτή την έκδοση:"
}
} \ No newline at end of file
diff --git a/plugins/CoreUpdater/lang/es.json b/plugins/CoreUpdater/lang/es.json
index a3470502eb..c955db4501 100644
--- a/plugins/CoreUpdater/lang/es.json
+++ b/plugins/CoreUpdater/lang/es.json
@@ -46,6 +46,7 @@
"UpdateAutomatically": "Actualización automática",
"UpdateHasBeenCancelledExplanation": "La actualización con Un Clic de Piwik se ha cancelado. Si no puede solucionar el mensaje de error anterior, se recomienda que actualice Piwik manualmente. %1$s ¡Por favor, consulte la %2$sdocumentación de actualización%3$s para empezar!",
"UpdateTitle": "Actualizar",
+ "UpdateSuccessTitle": "¡Piwik se ha actualizado correctamente!",
"UpgradeComplete": "¡Actualización completa!",
"UpgradePiwik": "Actualizar Piwik",
"VerifyingUnpackedFiles": "Verificando los archivos desempaquetados",
diff --git a/plugins/CoreUpdater/lang/et.json b/plugins/CoreUpdater/lang/et.json
index e67dd67800..15b9c5dfc1 100644
--- a/plugins/CoreUpdater/lang/et.json
+++ b/plugins/CoreUpdater/lang/et.json
@@ -27,6 +27,7 @@
"UnpackingTheUpdate": "Pakin uuendust lahti",
"UpdateAutomatically": "Uuenda automaatselt",
"UpdateTitle": "Piwik › Uuendus",
+ "UpdateSuccessTitle": "Piwik edukalt uuendatud!",
"UpgradeComplete": "Uuendamine lõpuni viidud!",
"UpgradePiwik": "Uuenda Piwik",
"VerifyingUnpackedFiles": "Kontrollin lahtipakitud failide terviklikkust",
diff --git a/plugins/CoreUpdater/lang/eu.json b/plugins/CoreUpdater/lang/eu.json
index 7f616edec9..62f737331d 100644
--- a/plugins/CoreUpdater/lang/eu.json
+++ b/plugins/CoreUpdater/lang/eu.json
@@ -31,6 +31,7 @@
"UpdateAutomatically": "Eguneratu automatikoki",
"UpdateHasBeenCancelledExplanation": "Piwik-en klik bakarreko eguneraketa utzi egin da. Goiko errore-mezua ezin baduzu konpondu, Piwik eskuz eguneratzea gomendatzen da. %1$s Emaiozu begirada bat %2$seguneraketen dokumentazioari%3$s konponbidea bilatzeko!",
"UpdateTitle": "Eguneratu",
+ "UpdateSuccessTitle": "Piwik ondo eguneratu da!",
"UpgradeComplete": "Bertsio-berritzea burututa!",
"UpgradePiwik": "Bertsio-berritu Piwik",
"VerifyingUnpackedFiles": "Despaketatutako fitxategiak egiaztatzen",
diff --git a/plugins/CoreUpdater/lang/fa.json b/plugins/CoreUpdater/lang/fa.json
index 53e4b0f2c6..68cbff14a4 100644
--- a/plugins/CoreUpdater/lang/fa.json
+++ b/plugins/CoreUpdater/lang/fa.json
@@ -38,6 +38,7 @@
"UnpackingTheUpdate": "باز کردن به روز رسانی",
"UpdateAutomatically": "بروزرسانی خودکار",
"UpdateTitle": "بروزرسانی",
+ "UpdateSuccessTitle": "پیویک با موفقیت به روزرسانی شد!",
"UpgradeComplete": "بروزرسانی کامل شد!",
"UpgradePiwik": "ارتقا پیویک",
"VerifyingUnpackedFiles": "بررسی فایل های آن پک شده",
diff --git a/plugins/CoreUpdater/lang/fi.json b/plugins/CoreUpdater/lang/fi.json
index bf7f32efa8..7d84b1554c 100644
--- a/plugins/CoreUpdater/lang/fi.json
+++ b/plugins/CoreUpdater/lang/fi.json
@@ -37,8 +37,8 @@
"PiwikUpdatedSuccessfully": "Piwik päivitettiin onnistuneesti!",
"PiwikWillBeUpgradedFromVersionXToVersionY": "Piwikin tietokanta päivitetään versiosta %1$s versioon %2$s.",
"ReadyToGo": "Valmis jatkamaan?",
- "TheFollowingDimensionsWillBeUpgradedX": "Seuraavat asiat päivitetään: %s.",
"TheFollowingPluginsWillBeUpgradedX": "Seuraavat lisäosat päivitetään: %s.",
+ "TheFollowingDimensionsWillBeUpgradedX": "Seuraavat asiat päivitetään: %s.",
"ThereIsNewPluginVersionAvailableForUpdate": "Osa lisäosista on päivitetty marketissa:",
"ThereIsNewVersionAvailableForUpdate": "Piwikistä on uusi versio",
"TheUpgradeProcessMayFailExecuteCommand": "Jos Piwikin tietokanta on suuri, päivittäminen saattaa kestää liian kauan. Voit ajaa komentoriviltä komennon %s",
@@ -47,6 +47,7 @@
"UpdateAutomatically": "Päivitä automaattisesti",
"UpdateHasBeenCancelledExplanation": "Piwikin yhden klikkauksen päivitys on peruutettu. Jos et voi korjata alla olevaa virhettä, on suositeltavaa päivittää Piwik manuaalisesti. %1$s Ole hyvä ja tarkista %2$sPäivitysdokumentaatio%3$s",
"UpdateTitle": "Piwik › Päivitys",
+ "UpdateSuccessTitle": "Piwik on päivitetty onnistuneesti!",
"UpgradeComplete": "Päivitys valmis!",
"UpgradePiwik": "Päivitä Piwik",
"VerifyingUnpackedFiles": "Tarkistetaan purettuja tiedostoja",
diff --git a/plugins/CoreUpdater/lang/fr.json b/plugins/CoreUpdater/lang/fr.json
index 7ca4f831cd..e401980770 100644
--- a/plugins/CoreUpdater/lang/fr.json
+++ b/plugins/CoreUpdater/lang/fr.json
@@ -37,8 +37,8 @@
"PiwikUpdatedSuccessfully": "Piwik a été mis à jour avec succès !",
"PiwikWillBeUpgradedFromVersionXToVersionY": "La base de données de Piwik sera mise à jour depuis la version %1$s vers la version %2$s.",
"ReadyToGo": "Prêt à démarrer?",
- "TheFollowingDimensionsWillBeUpgradedX": "Les dimensions suivantes vont être mises à jour: %s.",
"TheFollowingPluginsWillBeUpgradedX": "Les plugins suivants seront mis à jour : %s.",
+ "TheFollowingDimensionsWillBeUpgradedX": "Les dimensions suivantes vont être mises à jour: %s.",
"ThereIsNewPluginVersionAvailableForUpdate": "Certains de vos plugins ont été mis à jour sur le Marketplace :",
"ThereIsNewVersionAvailableForUpdate": "Il y a une nouvelle mise à jour de Piwik disponible",
"TheUpgradeProcessMayFailExecuteCommand": "Si votre base de données Piwik est trop volumineuse, la mise à jour pourra être trop longue pour l'effectuer depuis le navigateur. dans ce cas exécutez depuis la ligne de commande : %s",
@@ -47,15 +47,28 @@
"UpdateAutomatically": "Mettre à jour automatiquement",
"UpdateHasBeenCancelledExplanation": "La mise à jour de Piwik en un clic a été désactivée. Si vous ne pouvez pas corriger la cause du message d'erreur ci-dessous, il est recommandé que vous fassiez manuellement la mise à jour de Piwik. %1$sConsultez la documentation%2$s de la mise à jour%3$s pour commencer!",
"UpdateTitle": "Mise à jour",
+ "UpdateSuccessTitle": "Piwik a été mis à jour avec succès !",
+ "UpdateErrorTitle": "Erreur de mise à jour",
+ "ThankYouUpdatePiwik": "Merci d'utiliser Piwik et de le garder à jour!",
+ "PostUpdateMessage": "Piwik sera toujours gratuit à télécharger et utiliser, mais il a besoin de votre support continu pour grandir et s'améliorer.",
+ "PostUpdateSupport": "Si vous avez besoin d'aide pour utiliser Piwik, vous pouvez obtenir du support de la part de ses créateurs :",
+ "EnterpriseSolutions": "Solutions d'entreprise",
+ "CloudHosting": "Hébergement nuagique",
+ "Updating": "Mise à jour en cours",
+ "UpdateUsingHttpsFailed": "Le téléchargement de la dernière version de Piwik via une connexion HTTPS sécurisée a échoué pour la raison suivante :",
+ "UpdateUsingHttpsFailedHelp": "Pourquoi est-ce que ça a échoué? Le téléchargement de la dernière version de Piwik (via une connexion sécurisée HTTPS) peut échouer pour des raisons variées, par exemple à cause d'une erreur réseau, d'un réseau lent ou une mauvaise configuration système. Notez que cela pourrait aussi signifier que votre serveur est la cible d'une attaque de type \"homme du milieu\" et que quelqu'un essaie de remplacer la mise à jour avec une version malveillante de Piwik.",
+ "UpdateUsingHttpsFailedHelpWhatToDo": "Il est recommandé de réessayer le téléchargement en utilisant une connexion HTTPS sécurisée car cela empèche les attaques du type \"homme du milieu\" (MITM).",
+ "UsingHttps": "en utilisant une connexion sécurisée HTTPS (recommandé)",
+ "UsingHttp": "en utilisant une connexion HTTP non sécurisée",
"UpgradeComplete": "Mise à jour complète !",
"UpgradePiwik": "Mettez Piwik à jour",
"VerifyingUnpackedFiles": "Vérification des fichiers décompressés",
- "ViewVersionChangelog": "Voir les logs de changement pour cette version :",
"WarningMessages": "Messages d'avertissement :",
"WeAutomaticallyDeactivatedTheFollowingPlugins": "Nous avons automatiquement désactivé les plugins suivants : %s",
"YouCanUpgradeAutomaticallyOrDownloadPackage": "Vous pouvez mettre à jour vers la version %s automatiquement ou télécharger l'archive et l'installer manuellement:",
"YouCouldManuallyExecuteSqlQueries": "Si vous n'aviez pas la possibilité d'utiliser la console (CLI) et si Piwik échouait à se mettre à jour (à cause du délais d'expiration de la base de données, du navigateur ou n'importe quel autre problème), vous pourriez exécuter manuellement les requêtes SQL pour mettre à jour Piwik.",
"YouMustDownloadPackageOrFixPermissions": "Piwik ne peut pas écraser votre installation courante. Vous pouvez soit corriger les permissions du répertoire\/fichier, soit télécharger le package et installer la version %s manuellement:",
- "YourDatabaseIsOutOfDate": "Votre base de données est expirée et doit être mise à jour avant de pouvoir continuer."
+ "YourDatabaseIsOutOfDate": "Votre base de données est expirée et doit être mise à jour avant de pouvoir continuer.",
+ "ViewVersionChangelog": "Voir les logs de changement pour cette version :"
}
} \ No newline at end of file
diff --git a/plugins/CoreUpdater/lang/he.json b/plugins/CoreUpdater/lang/he.json
index 7fb4db692f..5d8ec226d4 100644
--- a/plugins/CoreUpdater/lang/he.json
+++ b/plugins/CoreUpdater/lang/he.json
@@ -35,6 +35,7 @@
"UpdateAutomatically": "שדרוג אוטומטי",
"UpdateHasBeenCancelledExplanation": "ההתקנה-בקליק-אחד של Piwik בוטלה. במידה ואין ביכלותך לתקן את הודעת השגיאה להעיל, מומלץ לשדרג את Piwik באופן ידני. %1$s יש לעיין ב%2$sהוראות השדרוג%3$s בכדי להתחיל!",
"UpdateTitle": "שדרוג",
+ "UpdateSuccessTitle": "Piwik שודרגה בהצלחה!",
"UpgradeComplete": "השדרוג הושלם!",
"UpgradePiwik": "שדרוג Piwik",
"VerifyingUnpackedFiles": "מאמת את הקבצים המחולצים",
diff --git a/plugins/CoreUpdater/lang/hi.json b/plugins/CoreUpdater/lang/hi.json
index 291197fa95..c2baae7657 100644
--- a/plugins/CoreUpdater/lang/hi.json
+++ b/plugins/CoreUpdater/lang/hi.json
@@ -37,6 +37,7 @@
"UpdateAutomatically": "स्वचालित रूप से अद्यतन",
"UpdateHasBeenCancelledExplanation": "Piwik एक क्लिक अद्यतन रद्द कर दिया गया. आप ऊपर त्रुटि संदेश को ठीक नहीं कर सकते हैं, यह आप मैन्युअल Piwik अद्यतन की सिफारिश है. %1$sआरंभ करने के लिए अद्यतन%2$s दस्तावेज़ीकरण %3$sकी जाँच करें!",
"UpdateTitle": "अद्यतन",
+ "UpdateSuccessTitle": "Piwik सफलतापूर्वक अद्यतन किया गया है!",
"UpgradeComplete": "पूरा अपग्रेड करें!",
"UpgradePiwik": "Piwik अपग्रेड",
"VerifyingUnpackedFiles": "अनपैक फ़ाइलों को सत्यापित करना",
diff --git a/plugins/CoreUpdater/lang/hu.json b/plugins/CoreUpdater/lang/hu.json
index 5d0a852c80..4e278bddec 100644
--- a/plugins/CoreUpdater/lang/hu.json
+++ b/plugins/CoreUpdater/lang/hu.json
@@ -35,6 +35,7 @@
"UpdateAutomatically": "Automatikus frissítés",
"UpdateHasBeenCancelledExplanation": "Az Egyklikkes Piwik Frissítés modult törölték. Ha nem tudod kijavítani a fenti hibaüzenetben kapott hibát, akkor a Piwik kézzel történő frissítését ajánljuk. %1$s Kérjük, kezdd a %2$s frissítésről szóló dokumentáció %3$s elolvasásával!",
"UpdateTitle": "Frissítés",
+ "UpdateSuccessTitle": "A Piwik sikeresen frissült!",
"UpgradeComplete": "Frissítés megtörtént!",
"UpgradePiwik": "Piwik frissítése",
"VerifyingUnpackedFiles": "Kicsomagolt fájlok ellenőrzése",
diff --git a/plugins/CoreUpdater/lang/id.json b/plugins/CoreUpdater/lang/id.json
index b9d6bea14a..db6ed64b6b 100644
--- a/plugins/CoreUpdater/lang/id.json
+++ b/plugins/CoreUpdater/lang/id.json
@@ -37,6 +37,7 @@
"UpdateAutomatically": "Pembaruan Otomatis",
"UpdateHasBeenCancelledExplanation": "Pembaruan Sekali Klik Piwik telah dibatalkan. Jika Anda tak dapat memperbaiki kesalahan di atas, disarankan untuk memperbarui Piwik secara manual. %1$s Silakan periksa %2$s Dokumetasi pembaruan%3$s saat memulai!",
"UpdateTitle": "Pembaruan",
+ "UpdateSuccessTitle": "Piwik berhasil diperbarui!",
"UpgradeComplete": "Pembaruan selesai!",
"UpgradePiwik": "Pembaruan Piwik",
"VerifyingUnpackedFiles": "Memverifikasi berkas",
diff --git a/plugins/CoreUpdater/lang/it.json b/plugins/CoreUpdater/lang/it.json
index 1e29720a21..5b8842cef2 100644
--- a/plugins/CoreUpdater/lang/it.json
+++ b/plugins/CoreUpdater/lang/it.json
@@ -37,8 +37,8 @@
"PiwikUpdatedSuccessfully": "Piwik è stato aggiornato con successo!",
"PiwikWillBeUpgradedFromVersionXToVersionY": "Il Database Piwik deve essere aggiornato dalla versione %1$s alla nuova versione %2$s.",
"ReadyToGo": "Pronto a partire?",
- "TheFollowingDimensionsWillBeUpgradedX": "Le dimensioni seguenti saranno aggiornate: %s.",
"TheFollowingPluginsWillBeUpgradedX": "I seguenti plugin saranno aggiornati: %s.",
+ "TheFollowingDimensionsWillBeUpgradedX": "Le dimensioni seguenti saranno aggiornate: %s.",
"ThereIsNewPluginVersionAvailableForUpdate": "Alcuni plugin che utilizzi sono stati aggiornati sul Marketplace:",
"ThereIsNewVersionAvailableForUpdate": "C'è una nuova versione di Piwik disponibile per l'aggiornamento.",
"TheUpgradeProcessMayFailExecuteCommand": "Se hai un database Piwik molto grande, gli aggiornamenti potrebbero essere troppo lunghi per essere eseguiti dal browser. In questo caso, puoi eseguire l'aggiornamento da riga di comando: %s",
@@ -47,15 +47,16 @@
"UpdateAutomatically": "Aggiorna automaticamente",
"UpdateHasBeenCancelledExplanation": "Il \"Piwik One Click Update\" è stato annullato. Se non riesci a sistemare il problema che ha causato il messaggio di errore indicato, è consigliabile aggiornare Piwik manualmente. %1$s Controlla il %2$sManuale di aggiornamento%3$s per iniziare!",
"UpdateTitle": "Piwik › Aggiornamenti",
+ "UpdateSuccessTitle": "Piwik è stato aggiornato con successo!",
"UpgradeComplete": "Aggiornamento completato!",
"UpgradePiwik": "Aggiornamento Piwik",
"VerifyingUnpackedFiles": "Sto verificando i file scompattati",
- "ViewVersionChangelog": "Guarda il changelog per questa versione:",
"WarningMessages": "Messaggi di Allerta:",
"WeAutomaticallyDeactivatedTheFollowingPlugins": "Saranno disattivati in automatico i seguenti plugin: %s",
"YouCanUpgradeAutomaticallyOrDownloadPackage": "Puoi aggiornare alla versione %s in automatico o scaricare il pacchetto e installarlo manualmente:",
"YouCouldManuallyExecuteSqlQueries": "Se non puoi usare l'aggiornamento da riga di comando e Piwik non riesce ad aggiornarsi (per un timeout del database, timout del browser o qualsiasi altro problema), puoi eseguire manualmente le query SQL per aggiornare Piwik.",
"YouMustDownloadPackageOrFixPermissions": "Piwik non è in grado di sovrascrivere l'installazione corrente. Tu puoi o correggere i permessi alle cartelle\/file, o scaricare il pacchetto e installare la versione %s manualmente:",
- "YourDatabaseIsOutOfDate": "Il tuo Database Piwik è obsoleto e deve essere aggiornato prima di continuare."
+ "YourDatabaseIsOutOfDate": "Il tuo Database Piwik è obsoleto e deve essere aggiornato prima di continuare.",
+ "ViewVersionChangelog": "Guarda il changelog per questa versione:"
}
} \ No newline at end of file
diff --git a/plugins/CoreUpdater/lang/ja.json b/plugins/CoreUpdater/lang/ja.json
index 4d6c358ed3..bb37388302 100644
--- a/plugins/CoreUpdater/lang/ja.json
+++ b/plugins/CoreUpdater/lang/ja.json
@@ -37,8 +37,8 @@
"PiwikUpdatedSuccessfully": "Piwik は正常にアップデートされました!",
"PiwikWillBeUpgradedFromVersionXToVersionY": "Piwik データベースが %1$s から新バージョン %2$s にアップグレードされます。",
"ReadyToGo": "実行してもよろしいですか?",
- "TheFollowingDimensionsWillBeUpgradedX": "以下の範囲をアップデートします: %s",
"TheFollowingPluginsWillBeUpgradedX": "次のプラグインはアップグレードされます: %s",
+ "TheFollowingDimensionsWillBeUpgradedX": "以下の範囲をアップデートします: %s",
"ThereIsNewPluginVersionAvailableForUpdate": "お使いのいくつかのプラグインは、マーケットプレイス上でアップデートされています:",
"ThereIsNewVersionAvailableForUpdate": "アップデート可能な Piwik の新バージョンがあります。",
"TheUpgradeProcessMayFailExecuteCommand": "Piwik のデータベースが大きい場合、ブラウザでのアップデートの実行には長い時間がかかる場合があります。 このような場合、コマンドラインからアップデートを実行することができます: %s",
@@ -47,6 +47,7 @@
"UpdateAutomatically": "自動アップデート",
"UpdateHasBeenCancelledExplanation": "Piwik ワンクリックアップデートがキャンセルされました。 あなたが上記のエラーメッセージを修正できない場合は、Piwik を手作業でアップデートすることをお勧めします。%1$s アップデートを始めるには、%2$sアップデートのドキュメント%3$sを参照してください!",
"UpdateTitle": "アップデート",
+ "UpdateSuccessTitle": "Piwik は正常にアップグレードされました!",
"UpgradeComplete": "アップグレードが完了しました!",
"UpgradePiwik": "Piwik のアップグレード",
"VerifyingUnpackedFiles": "展開したファイルを検証中",
diff --git a/plugins/CoreUpdater/lang/ka.json b/plugins/CoreUpdater/lang/ka.json
index 246cae26ff..456976f74e 100644
--- a/plugins/CoreUpdater/lang/ka.json
+++ b/plugins/CoreUpdater/lang/ka.json
@@ -35,6 +35,7 @@
"UpdateAutomatically": "ავტომატური განახლება",
"UpdateHasBeenCancelledExplanation": "Piwik–ის ერთი დაწკაპუნებით განახლება შეწყდა. თუ თქვენ არ შეგიძლიათ შეტყობინებაში ხსენებული შეცდომის მოგვარება, გირჩევთ მექანიკურად განაახლოთ Piwik. %1$s გთხოვთ, დაწყებამდე გაეცნოთ %2$sგანახლების დოკუმენტაციას%3$s!",
"UpdateTitle": "განახლება",
+ "UpdateSuccessTitle": "Piwik წარმატებით განახლდა!",
"UpgradeComplete": "განახლება დასრულდა!",
"UpgradePiwik": "Piwik განახლება",
"VerifyingUnpackedFiles": "გახნილი პაკეტის ფაილების შემოწმება",
diff --git a/plugins/CoreUpdater/lang/ko.json b/plugins/CoreUpdater/lang/ko.json
index a6080aeffe..b54a774bb7 100644
--- a/plugins/CoreUpdater/lang/ko.json
+++ b/plugins/CoreUpdater/lang/ko.json
@@ -37,6 +37,7 @@
"UpdateAutomatically": "자동 업데이트",
"UpdateHasBeenCancelledExplanation": "Piwik 원클릭 업데이트가 취소되었습니다. 만약 위의 에러 메세지를 고칠 수 없다면, 수동으로 Piwik을 업데이트하는 것을 권장합니다. %1$s 시작하기 위해 %2$s업데이트 문서%3$s 를 확인하세요!",
"UpdateTitle": "Piwik › 업데이트",
+ "UpdateSuccessTitle": "Piwik 이 성공적으로 업데이트되었습니다!",
"UpgradeComplete": "업그레이드 완료!",
"UpgradePiwik": "Piwik 업그레이드",
"VerifyingUnpackedFiles": "압축이 풀린 파일 확인중",
diff --git a/plugins/CoreUpdater/lang/lt.json b/plugins/CoreUpdater/lang/lt.json
index 31c4ce4db7..21eb9b5eff 100644
--- a/plugins/CoreUpdater/lang/lt.json
+++ b/plugins/CoreUpdater/lang/lt.json
@@ -35,6 +35,7 @@
"UpdateAutomatically": "Naujinti automatiškai",
"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!",
"UpgradeComplete": "Naujinimas baigtas!",
"UpgradePiwik": "Naujinti Piwik",
"VerifyingUnpackedFiles": "Tikrinami išskleisti failai",
diff --git a/plugins/CoreUpdater/lang/lv.json b/plugins/CoreUpdater/lang/lv.json
index 909940d7a1..891bfcb664 100644
--- a/plugins/CoreUpdater/lang/lv.json
+++ b/plugins/CoreUpdater/lang/lv.json
@@ -21,6 +21,7 @@
"UnpackingTheUpdate": "Notiek atjauninājuma atpakošana",
"UpdateAutomatically": "Atjaunināt automātiski",
"UpdateTitle": "Atjaunināt",
+ "UpdateSuccessTitle": "Piwik tika veiksmīgi atjaunināts",
"UpgradeComplete": "Atjaunināšana pabeigta!",
"UpgradePiwik": "Atjaunināt Piwik",
"VerifyingUnpackedFiles": "Notiek atpakoto datņu pārbaude",
diff --git a/plugins/CoreUpdater/lang/nb.json b/plugins/CoreUpdater/lang/nb.json
index e9542d5030..5662c990f0 100644
--- a/plugins/CoreUpdater/lang/nb.json
+++ b/plugins/CoreUpdater/lang/nb.json
@@ -3,6 +3,7 @@
"ClickHereToViewSqlQueries": "Klikk her for å se og kopiere listen med SQL-spørringer som vil bli utført.",
"CriticalErrorDuringTheUpgradeProcess": "Kritisk feil under oppdateringen:",
"DatabaseUpgradeRequired": "Databaseoppgradering er nødvendig",
+ "DisablingIncompatiblePlugins": "Deaktiverer inkompatible tillegg: %s",
"DownloadingUpdateFromX": "Laster ned oppdatering fra %s",
"DownloadX": "Last ned %s",
"EmptyDatabaseError": "Databasen %s er tom. Du må enten redigere eller fjerne din Piwik konfigurasjonsfil.",
@@ -17,13 +18,19 @@
"ExceptionArchiveEmpty": "Tomt arkiv.",
"ExceptionArchiveIncompatible": "Inkompatibelt arkiv: %s",
"ExceptionArchiveIncomplete": "Arkivet er ikke komplett - noen file mangler (f.eks. %s).",
+ "FeedbackRequest": "Del gjerne dine ideer og forslag med Piwik-laget her:",
"HelpMessageContent": "Sjekk %1$s Piwik FAQ-en %2$s som prøver å forklare de mest vanlige feil 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.",
+ "IncompatbilePluginsWillBeDisabledInfo": "Merk: Noen tillegg er ikke kompatible med Piwik %s. De blir deaktivert når du oppgraderer:",
"InstallingTheLatestVersion": "Installerer siste versjon.",
"MajorUpdateWarning1": "Dette er en stor oppdatering! Det vil ta lengre tid enn vanlig.",
+ "MajorUpdateWarning2": "Følgende råd er spesielt viktig for store installasjoner.",
"NoteForLargePiwikInstances": "Viktig merknad for store Piwik-installasjoner",
"NoteItIsExpectedThatQueriesFail": "Merk: Hvis du utfører disse spørringene manuelt, så er det forventet at noen av dem feiler. Hvis det skjer, så skal du bare ignorere det og fortsette med neste spørringen på lista.",
+ "NotificationClickToUpdatePlugins": "Klikk her for å oppdatere dine tillegg nå:",
+ "NotificationClickToUpdateThemes": "Klikk her for å oppdatere dine tema nå:",
"NotificationSubjectAvailableCoreUpdate": "Ny Piwik %s er tilgjengelig",
"NotificationSubjectAvailablePluginUpdate": "Oppdatering tilgjengelig for dine Piwik tillegg",
"PiwikHasBeenSuccessfullyUpgraded": "Piwik ble korrekt oppdatert!",
@@ -31,6 +38,8 @@
"PiwikWillBeUpgradedFromVersionXToVersionY": "Piwik-databasen blir oppgradert fra versjon %1$s til versjon %2$s .",
"ReadyToGo": "Klar til å starte?",
"TheFollowingPluginsWillBeUpgradedX": "Følgende tillegg vil nå bli oppdatert: %s.",
+ "TheFollowingDimensionsWillBeUpgradedX": "Følgende dimensjoner blir oppdatert: %s",
+ "ThereIsNewPluginVersionAvailableForUpdate": "Noen tillegg du bruker har blitt oppdatert på markedsplassen:",
"ThereIsNewVersionAvailableForUpdate": "Du kan oppdatere til en ny versjon av Piwik.",
"TheUpgradeProcessMayFailExecuteCommand": "Hvis du har en stor Piwik-database, kan oppdateringer ta for lang tid til at de kan kjøres i nettleseren. I slike situasjoner kan du utføre oppdateringene fra kommandolinja: %s",
"TheUpgradeProcessMayTakeAWhilePleaseBePatient": "Databaseoppgraderingen kan ta en stund, vennligst vær litt tålmodig.",
@@ -38,6 +47,13 @@
"UpdateAutomatically": "Oppdater automatisk",
"UpdateHasBeenCancelledExplanation": "Den automatiske oppdateringen av Piwik har blitt avbrutt. Hvis du ikke kan fikse feilen over, anbefales det at du oppdaterer Piwik manuelt. %1$s Les %2$soppdateringsdokumentasjonen%3$s for å komme i gang!",
"UpdateTitle": "Oppdater",
+ "UpdateSuccessTitle": "Piwik ble korrekt oppdatert!",
+ "Updating": "Oppdaterer",
+ "UpdateUsingHttpsFailed": "Klarte ikke laste ned siste versjon av Piwik over en sikker HTTPS-forbindelse på grunn av følgende feil:",
+ "UpdateUsingHttpsFailedHelp": "Hvorfor gikk det ikke? Nedlasting av siste versjon av Piwik (over sikker HTTPS-forbindelse) kan gå galt av flere grunner, for eksempel på grunn nettverksfeil, for lav hastighet eller feil systemkonfigurasjon. Merk at det også kan være at din tjener er målet for et MITM-angrep og noen prøver å erstatte oppdateringen med en skadelig versjon av Piwik.",
+ "UpdateUsingHttpsFailedHelpWhatToDo": "Det er anbefalt å prøve å laste ned på nytt med sikker HTTPS-forbindelse siden det forhindrer MITM-angrep.",
+ "UsingHttps": "med sikker HTTPS-forbindelse (anbefalt)",
+ "UsingHttp": "med usikker HTTP-forbindelse",
"UpgradeComplete": "Oppgradering fullført!",
"UpgradePiwik": "Oppgrader Piwik",
"VerifyingUnpackedFiles": "Verifiserer de utpakkede filene",
@@ -46,6 +62,7 @@
"YouCanUpgradeAutomaticallyOrDownloadPackage": "Du kan oppdatere til versjon %s automatisk eller laste ned pakken og installere manuelt.",
"YouCouldManuallyExecuteSqlQueries": "Hvis du ikke kan oppdatere fra kommandolinja og hvis Piwik ikke klarer å oppdatere (på grunn av tidsavbrudd i databasen eller nettleseren, eller en annen grunn), så kan du utføre SQL-spørringene manuelt.",
"YouMustDownloadPackageOrFixPermissions": "Piwik klarte ikke skrive over din nåværende installasjon. Du kan enten fikse mappe\/filrettighetene eller laste ned pakken og installere versjon %s manuelt:",
- "YourDatabaseIsOutOfDate": "Piwik-databasen din er utdatert og må oppgraderes før du kan fortsette."
+ "YourDatabaseIsOutOfDate": "Piwik-databasen din er utdatert og må oppgraderes før du kan fortsette.",
+ "ViewVersionChangelog": "Se på endringsloggen for denne versjonen:"
}
} \ No newline at end of file
diff --git a/plugins/CoreUpdater/lang/nl.json b/plugins/CoreUpdater/lang/nl.json
index 1b1808a1db..b6dd947769 100644
--- a/plugins/CoreUpdater/lang/nl.json
+++ b/plugins/CoreUpdater/lang/nl.json
@@ -1,8 +1,9 @@
{
"CoreUpdater": {
- "ClickHereToViewSqlQueries": "Klik hier voor een lijst van de SQL query's dat zullen worden uitgevoerd.",
+ "ClickHereToViewSqlQueries": "Klik hier voor een lijst van de SQL query's die zullen worden uitgevoerd.",
"CriticalErrorDuringTheUpgradeProcess": "Kritieke fout tijdens upgrade:",
"DatabaseUpgradeRequired": "Database upgrade vereist",
+ "DisablingIncompatiblePlugins": "Uitschakelen van incompatible plugins: %s",
"DownloadingUpdateFromX": "Bezig met downloaden van de update van %s",
"DownloadX": "Download %s",
"EmptyDatabaseError": "Database %s is leeg. U moet uw Piwik configuratiebestand bewerken of verwijderen.",
@@ -21,6 +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",
"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.",
@@ -35,8 +37,8 @@
"PiwikUpdatedSuccessfully": "Piwik is succesvol geüpdatet!",
"PiwikWillBeUpgradedFromVersionXToVersionY": "Piwik Database zal ge-upgrade worden van versie %1$s naar de nieuwe versie %2$s",
"ReadyToGo": "Klaar om te starten?",
- "TheFollowingDimensionsWillBeUpgradedX": "De volgende onderdelen zullen worden geupdate: %s.",
"TheFollowingPluginsWillBeUpgradedX": "De volgende plugins zullen ge-upgrade worden: %s.",
+ "TheFollowingDimensionsWillBeUpgradedX": "De volgende onderdelen zullen worden geupdate: %s.",
"ThereIsNewPluginVersionAvailableForUpdate": "Somige plugins die u gebruikt zijn bijgewerkt op de Marktplaats:",
"ThereIsNewVersionAvailableForUpdate": "Er is een nieuwe versie van Piwik beschikbaar als update",
"TheUpgradeProcessMayFailExecuteCommand": "Als u een grote Piwik database heeft, dan kunnen de updates te lang duren om in de browser te worden uitgevoerd. In dat geval, kunt u de updates uitvoeren vanaf de opdrachtprompt: %s",
@@ -45,15 +47,28 @@
"UpdateAutomatically": "Update automatisch.",
"UpdateHasBeenCancelledExplanation": "Piwik één klik update is geannuleerd. Als u de bovenstaande foutmelding niet kan oplossen, raden we u aan Piwik handmatig te updaten. %1$s Lees de %2$s Update documentatie %3$s om te beginnen.",
"UpdateTitle": "Piwik › Update",
+ "UpdateSuccessTitle": "Piwik upgrade was succesvol!",
+ "UpdateErrorTitle": "Update fout",
+ "ThankYouUpdatePiwik": "Dank voor het gebruiken van Piwik en het up-to-date houden!",
+ "PostUpdateMessage": "Piwik zal altijd gratis te downloaden zijn, maar het heeft je voortdurende support nodig om te groeien en beter te worden.",
+ "PostUpdateSupport": "Als je hulp nodig hebt, kun je support krijgen bij de makers:",
+ "EnterpriseSolutions": "Enterprise oplossingen",
+ "CloudHosting": "Cloud hosting",
+ "Updating": "Bijwerken",
+ "UpdateUsingHttpsFailed": "Het downloaden van de laatste Piwik versie over een beveiligde HTTPS verbinding was niet succesvol, door de volgende fout:",
+ "UpdateUsingHttpsFailedHelp": "Waarom is het gefaald? Het downloaden van de meest recente Piwik versie (over de beveiligde HTTPS verbinding) kan door diverse oorzaken falen, bijvoorbeeld een netwerk fout, langzame verbinding of verkeerde systeem configuratie. Let op dat het ook kan betekenen dat je server het doel is van een 'man-in-the-middle' aanval en iemand probeert een update te vervangen door een kwaadwillige versie van Piwik.",
+ "UpdateUsingHttpsFailedHelpWhatToDo": "Het is aanbevolen om opnieuw de download te proberen via de beveiligde HTTPS verbinding, omdat daar 'man-in-the-middle' aanvallen mee kunnen worden voorkomen.",
+ "UsingHttps": "Maak gebruik van de beveiligde HTTPS verbinding (aanbevolen)",
+ "UsingHttp": "Maak gebruik van de niet beveiligde HTTP verbinding",
"UpgradeComplete": "Upgrade voltooid!",
"UpgradePiwik": "Upgrade Piwik",
"VerifyingUnpackedFiles": "Bezig met verifiëren van de uitgepakte bestanden",
- "ViewVersionChangelog": "Bekijk het wijzigingslogboek voor versie:",
"WarningMessages": "Waarschuwings bericht:",
"WeAutomaticallyDeactivatedTheFollowingPlugins": "We hebben de volgende plugins gedeactiveerd: %s",
"YouCanUpgradeAutomaticallyOrDownloadPackage": "U kunt automatisch updaten naar versie %s of het pakket downloaden en handmatig installeren.",
"YouCouldManuallyExecuteSqlQueries": "Als u de opdrachtprompt updater niet kunt gebruiken en piwik kan niet upgraden (vanwege een timeout van de database, een browser timeout of een ander probleem), dan kunt u de SQL queries handmatig uitvoeren om Piwik te updaten.",
"YouMustDownloadPackageOrFixPermissions": "Piwik kan de huidige installatie niet overschrijven. U kunt de huidige map\/bestands rechten wijzigen, of de nieuwe versie downloaden en versie %s handmatig installeren:",
- "YourDatabaseIsOutOfDate": "Uw Piwik database is niet up to date en zal ge-upgrade moeten worden om verder te kunnen gaan."
+ "YourDatabaseIsOutOfDate": "Uw Piwik database is niet up to date en zal ge-upgrade moeten worden om verder te kunnen gaan.",
+ "ViewVersionChangelog": "Bekijk het wijzigingslogboek voor versie:"
}
} \ No newline at end of file
diff --git a/plugins/CoreUpdater/lang/nn.json b/plugins/CoreUpdater/lang/nn.json
index 6f6659344e..6ff917c777 100644
--- a/plugins/CoreUpdater/lang/nn.json
+++ b/plugins/CoreUpdater/lang/nn.json
@@ -34,6 +34,7 @@
"UnpackingTheUpdate": "Pakkar ut oppdateringa",
"UpdateAutomatically": "Oppdater automatisk",
"UpdateTitle": "Oppdater",
+ "UpdateSuccessTitle": "Oppdateringa var vellykka!",
"UpgradeComplete": "Oppgradering ferdig!",
"UpgradePiwik": "Oppdater Piwik",
"VerifyingUnpackedFiles": "Sjekkar filene",
diff --git a/plugins/CoreUpdater/lang/pl.json b/plugins/CoreUpdater/lang/pl.json
index 779d81458a..dad0d3a8db 100644
--- a/plugins/CoreUpdater/lang/pl.json
+++ b/plugins/CoreUpdater/lang/pl.json
@@ -37,8 +37,8 @@
"PiwikUpdatedSuccessfully": "Oprogramowanie Piwik zostało zaktualizowane pomyślnie!",
"PiwikWillBeUpgradedFromVersionXToVersionY": "Baza danych statystyk Piwik zostanie zaktualizowana z wersji %1$s do nowej wersji %2$s.",
"ReadyToGo": "Gotowy do dalszego działania?",
- "TheFollowingDimensionsWillBeUpgradedX": "Następujące rozmiary zostaną zaaktualizowane: %s.",
"TheFollowingPluginsWillBeUpgradedX": "Następujące wtyczki zostaną zaktualizowane: %s.",
+ "TheFollowingDimensionsWillBeUpgradedX": "Następujące rozmiary zostaną zaaktualizowane: %s.",
"ThereIsNewPluginVersionAvailableForUpdate": "Niektóre wtyczki zostały zaktualizowane na Marketplace:",
"ThereIsNewVersionAvailableForUpdate": "Pojawiła się nowa wersja Piwik dostępna już dla aktualizacji",
"TheUpgradeProcessMayFailExecuteCommand": "Jeżeli twoja baza danych statystyk Piwik jest spora, aktualizacje mogą trwać zbyt długo by przeprowadzić je przez przeglądarkę. W takim przypadku przeprowadź aktualizację z linii komend: %s",
@@ -47,6 +47,7 @@
"UpdateAutomatically": "Aktualizacja automatyczna",
"UpdateHasBeenCancelledExplanation": "Automatyczna jedno-kliknięciowa aktualizacja Piwik została przerwana. Jeżeli nie możesz usunąć przyczyny pojawienia się powyższych komunikatów o błędach, zalecana jest ręczna aktualizacja oprogramowania Piwik. %1$s Prosimy zapoznać się z %2$sdokumentacją aktualizacji%3$s by ponowić ten proces!",
"UpdateTitle": "Aktualizacja",
+ "UpdateSuccessTitle": "Statystyki Piwik zostały zaktualizowane pomyślnie!",
"UpgradeComplete": "Aktualizacja zakończona powodzeniem!",
"UpgradePiwik": "Aktualizacja Piwik",
"VerifyingUnpackedFiles": "Sprawdzenie rozpakowanych plików",
diff --git a/plugins/CoreUpdater/lang/pt-br.json b/plugins/CoreUpdater/lang/pt-br.json
index dca9d3d528..2e57bbfbe9 100644
--- a/plugins/CoreUpdater/lang/pt-br.json
+++ b/plugins/CoreUpdater/lang/pt-br.json
@@ -38,6 +38,7 @@
"UpdateAutomatically": "Atualiza automaticamente",
"UpdateHasBeenCancelledExplanation": "O Piwik One Click Update foi cancelado. Se você não pode consertar a mensagem de erro acima, é recomendado que você atualize manualmente o Piwik. %1$s Por favor cheque a %2$sDocumentaçao de atualização%3$s para começar!",
"UpdateTitle": "Atualiza",
+ "UpdateSuccessTitle": "Piwik foi atualizado com sucesso!",
"UpgradeComplete": "Atualização completa!",
"UpgradePiwik": "Atualiza o Piwik",
"VerifyingUnpackedFiles": "Verificando os arquivos descompactados",
diff --git a/plugins/CoreUpdater/lang/pt.json b/plugins/CoreUpdater/lang/pt.json
index 229635cbff..0e9a8f9360 100644
--- a/plugins/CoreUpdater/lang/pt.json
+++ b/plugins/CoreUpdater/lang/pt.json
@@ -35,6 +35,7 @@
"UpdateAutomatically": "Actualizar Automaticamente",
"UpdateHasBeenCancelledExplanation": "A Actualização Um Click de Piwik foi cancelada. Se não conseguir corrigir o erro acima, é recomendado que tente actualizar Piwik manualmente. %1$s Por favor leia a %2$sDocumentação de Actualização%3$s para começar!",
"UpdateTitle": "Actualizar",
+ "UpdateSuccessTitle": "Piwik foi actualizado com sucesso!",
"UpgradeComplete": "Actualização completa!",
"UpgradePiwik": "Actualizar Piwik",
"VerifyingUnpackedFiles": "A verificar os ficheiros descompactados",
diff --git a/plugins/CoreUpdater/lang/ro.json b/plugins/CoreUpdater/lang/ro.json
index 79c1c625fe..2827e2c504 100644
--- a/plugins/CoreUpdater/lang/ro.json
+++ b/plugins/CoreUpdater/lang/ro.json
@@ -46,6 +46,7 @@
"UpdateAutomatically": "Actualizare automată",
"UpdateHasBeenCancelledExplanation": "Piwik Actualizare cu Un Click a fost anulat. Daca nu puteti repara mesajul de eroare de mai sus, este recomandat sa actualizati Piwik manual. %1$s Va rugam uitati-va peste %2$sDocumentatia de Actualizare%3$s pentru a incepe!",
"UpdateTitle": "Actualizare",
+ "UpdateSuccessTitle": "Piwik a fost actualizat cu succes!",
"UpgradeComplete": "Actualizare finisată!",
"UpgradePiwik": "Actualizează Piwik",
"VerifyingUnpackedFiles": "Se verifică fişierele dezarchivate",
diff --git a/plugins/CoreUpdater/lang/ru.json b/plugins/CoreUpdater/lang/ru.json
index 8fe962222d..66fa422514 100644
--- a/plugins/CoreUpdater/lang/ru.json
+++ b/plugins/CoreUpdater/lang/ru.json
@@ -36,8 +36,8 @@
"PiwikUpdatedSuccessfully": "Piwik обновлен успешно!",
"PiwikWillBeUpgradedFromVersionXToVersionY": "База веб-аналитики будет обновлена с версии %1$s до версии %2$s.",
"ReadyToGo": "Готовы?",
- "TheFollowingDimensionsWillBeUpgradedX": "Следующие размеры будут обновлены: %s.",
"TheFollowingPluginsWillBeUpgradedX": "Следующие плагины будут обновлены: %s.",
+ "TheFollowingDimensionsWillBeUpgradedX": "Следующие размеры будут обновлены: %s.",
"ThereIsNewPluginVersionAvailableForUpdate": "Некоторые плагины были обновлены на Marketplace:",
"ThereIsNewVersionAvailableForUpdate": "Доступна новая версия Piwik",
"TheUpgradeProcessMayFailExecuteCommand": "Если у вас большая база данных Piwik, обновления, запущенные в браузере, могут занять много времени . В данном случае, вы можете выполнить обновление через интерфейс командной строки: %s",
@@ -46,15 +46,16 @@
"UpdateAutomatically": "Обновить автоматически",
"UpdateHasBeenCancelledExplanation": "Piwik One Click Update отменен. Если Вы не можете исправить вышеописанные ошибки, рекомендуется обновить Piwik вручную. %1$s Пожалуйста, проверьте %2$sдокументацию обновления%3$s для того, чтобы начать!",
"UpdateTitle": "Обновить",
+ "UpdateSuccessTitle": "Piwik успешно обновлен!",
"UpgradeComplete": "Обновление завершено!",
"UpgradePiwik": "Обновить систему Веб-аналитики",
"VerifyingUnpackedFiles": "Проверяю распакованные файлы",
- "ViewVersionChangelog": "Просмотр изменений для этой версии:",
"WarningMessages": "Предупреждения:",
"WeAutomaticallyDeactivatedTheFollowingPlugins": "Следующие плагины автоматически деактивированы: %s",
"YouCanUpgradeAutomaticallyOrDownloadPackage": "Вы можете обновиться до версии %s автоматически или скачать установочный пакет и вручную установить его:",
"YouCouldManuallyExecuteSqlQueries": "Если у вас не имеется возможности использовать обновление через командную строку, и если обновление Piwik завершается неудачно (таймаут соединения с базой данных, таймаут браузера, или любая другая проблема), вам необходимо выполнить SQL-запросы вручную, чтобы обновить Piwik.",
"YouMustDownloadPackageOrFixPermissions": "Piwik не может перезаписать вашу текущую установку. Вы можете попытаться изменить права доступа к файлам и каталогам, или скачать пакет системы и произвести установку версии %s вручную:",
- "YourDatabaseIsOutOfDate": "База данных Веб-аналитики устарела, ее нужно обновить для продолжения."
+ "YourDatabaseIsOutOfDate": "База данных Веб-аналитики устарела, ее нужно обновить для продолжения.",
+ "ViewVersionChangelog": "Просмотр изменений для этой версии:"
}
} \ No newline at end of file
diff --git a/plugins/CoreUpdater/lang/sk.json b/plugins/CoreUpdater/lang/sk.json
index 19d65e39a8..d70a42061b 100644
--- a/plugins/CoreUpdater/lang/sk.json
+++ b/plugins/CoreUpdater/lang/sk.json
@@ -24,6 +24,7 @@
"UpdateAutomatically": "Automaticky zaktualizovať",
"UpdateHasBeenCancelledExplanation": "Piwik aktualizácia „jedným kliknutím“ bola zrušená. Ak neviete vyriešiť uvedené chybové hlásenia, odporúčame Vám urobiť aktualizáciu manuálne. %1$s Pred začiatkom sa pozrite sa do %2$sdokumentácie k aktualizácií%3$s!",
"UpdateTitle": "Piwik › Aktualizácia",
+ "UpdateSuccessTitle": "Piwik bol úspešne zaktualizovaný!",
"UpgradeComplete": "Aktualizácia je ukončená!",
"UpgradePiwik": "Aktualizácia Piwik",
"VerifyingUnpackedFiles": "Verifikácia rozbalených súborov",
diff --git a/plugins/CoreUpdater/lang/sl.json b/plugins/CoreUpdater/lang/sl.json
index 63e5d63d6f..3ed8e49196 100644
--- a/plugins/CoreUpdater/lang/sl.json
+++ b/plugins/CoreUpdater/lang/sl.json
@@ -24,6 +24,7 @@
"UnpackingTheUpdate": "Razpakiram posodobitev",
"UpdateAutomatically": "Samodejno posodobi",
"UpdateTitle": "Posodobitev",
+ "UpdateSuccessTitle": "Piwik je bil uspešno posodobljen!",
"UpgradeComplete": "Nadgradnja uspešno zaključena!",
"UpgradePiwik": "Nadgradi Piwik",
"VerifyingUnpackedFiles": "Preverjam razpakirane datoteke",
diff --git a/plugins/CoreUpdater/lang/sq.json b/plugins/CoreUpdater/lang/sq.json
index a81beb45be..0d1495440f 100644
--- a/plugins/CoreUpdater/lang/sq.json
+++ b/plugins/CoreUpdater/lang/sq.json
@@ -35,6 +35,7 @@
"UpdateAutomatically": "Përmirësoje Vetvetiu",
"UpdateHasBeenCancelledExplanation": "Përditësimi Piwik Me Një Klik u anulua. Nëse nuk ndreqni dot gabimin me mesazhin e mësipërm, këshillohet ta përditësoni Piwik-un dorazi. %1$s Ju lutem, shihni %2$sdokumentimin e Përditësimeve%3$s për t'ia filluar!",
"UpdateTitle": "Piwik › Përditësim",
+ "UpdateSuccessTitle": "Piwik-u u përmirësua me sukses!",
"UpgradeComplete": "Përmirësim i plotësuar!",
"UpgradePiwik": "Përmirësojeni Piwik-un",
"VerifyingUnpackedFiles": "Po verifikohen kartelat e shpaketuara",
diff --git a/plugins/CoreUpdater/lang/sr.json b/plugins/CoreUpdater/lang/sr.json
index da31f1ea9c..35b70986e7 100644
--- a/plugins/CoreUpdater/lang/sr.json
+++ b/plugins/CoreUpdater/lang/sr.json
@@ -37,8 +37,8 @@
"PiwikUpdatedSuccessfully": "Piwik je uspešno nadograđen!",
"PiwikWillBeUpgradedFromVersionXToVersionY": "Piwik baza će biti nadograđena sa verzije %1$s na %2$s.",
"ReadyToGo": "Da li ste spremni?",
- "TheFollowingDimensionsWillBeUpgradedX": "Sledeće dimenzije će biti ažurirane: %s.",
"TheFollowingPluginsWillBeUpgradedX": "Sledeći dodaci će biti nadograđeni: %s.",
+ "TheFollowingDimensionsWillBeUpgradedX": "Sledeće dimenzije će biti ažurirane: %s.",
"ThereIsNewPluginVersionAvailableForUpdate": "Neki od dodataka koje koristite su ažurirani na Marketu:",
"ThereIsNewVersionAvailableForUpdate": "Izašla je nova verzija Piwik-a",
"TheUpgradeProcessMayFailExecuteCommand": "Ukoliko imate veliku Piwik bazu onda nadogradnja može trajati predugo da bi se izvršila iz brauzera. U tom slučaju nadogradnju možete izvršiti iz komandne linije: %s",
@@ -47,6 +47,7 @@
"UpdateAutomatically": "Automatska nadogradnja",
"UpdateHasBeenCancelledExplanation": "Automatska nadogradnja Piwik-a je prekinuta. Ako ne možete popraviti grešku iznad, preporučljivo je da ručno izvršite nadogradnju. %1$s Molimo Vas da proverite %2$sdokumentaciju za nadogradnju%3$s!",
"UpdateTitle": "Nadogradnja",
+ "UpdateSuccessTitle": "Piwik je uspešno nadograđen!",
"UpgradeComplete": "Nadogradnja okončana!",
"UpgradePiwik": "Nadogradnja Piwik-a",
"VerifyingUnpackedFiles": "Provera otpakovanih datoteka",
diff --git a/plugins/CoreUpdater/lang/sv.json b/plugins/CoreUpdater/lang/sv.json
index 8dd673b38f..b88a6d61df 100644
--- a/plugins/CoreUpdater/lang/sv.json
+++ b/plugins/CoreUpdater/lang/sv.json
@@ -46,6 +46,7 @@
"UpdateAutomatically": "Uppdatera automatiskt",
"UpdateHasBeenCancelledExplanation": "Piwik's Ett-klicks-uppdatering har avbrutits. Om du inte kan åtgärda ovanstående felmeddelande, rekommenderas att du manuellt uppdaterar Piwik. %1$s Kolla in %2$sUppdateringsdokumentation%3$s för att komma igång!",
"UpdateTitle": "Uppdatera",
+ "UpdateSuccessTitle": "Piwik har uppdaterats utan problem!",
"UpgradeComplete": "Uppgradering färdig!",
"UpgradePiwik": "Uppgradera Piwik",
"VerifyingUnpackedFiles": "Kontrollerar uppackage filer",
diff --git a/plugins/CoreUpdater/lang/ta.json b/plugins/CoreUpdater/lang/ta.json
index 1552ea4a7f..72ea1ce644 100644
--- a/plugins/CoreUpdater/lang/ta.json
+++ b/plugins/CoreUpdater/lang/ta.json
@@ -29,6 +29,7 @@
"UnpackingTheUpdate": "புதுப்பிக்கும் கோப்பு திறக்கப்படுகிறது",
"UpdateAutomatically": "தானாகவே புதுப்பித்துகொள்",
"UpdateTitle": "புதுப்பிக்க",
+ "UpdateSuccessTitle": "பிவிக் வெற்றிகரமாக புதுப்பிக்கப்பட்டுள்ளது!",
"UpgradeComplete": "தரமுயர்த்தல் முடிவுற்றது!",
"UpgradePiwik": "piwik க்கை உயர்த்த",
"VerifyingUnpackedFiles": "பிரிக்கப்பட்ட கோப்புகளை சரி பார்க்க",
diff --git a/plugins/CoreUpdater/lang/th.json b/plugins/CoreUpdater/lang/th.json
index 2c6d703537..75428d9c35 100644
--- a/plugins/CoreUpdater/lang/th.json
+++ b/plugins/CoreUpdater/lang/th.json
@@ -35,6 +35,7 @@
"UpdateAutomatically": "อัพเดตอัตโนมัติ",
"UpdateHasBeenCancelledExplanation": "การอัพเดต Piwik ในคลิกเดียวถูกยกเลิกแล้ว หากคุณไม่สามารถแก้ไขข้อความข้อผิดพลาด แนะนำให้คุณอัพเดต Piwik แบบ Manual %1$s กรุณาตรวจสอบ %2$s เอกสารการอัพเดต %3$s เพื่อเริ่มดำเนินการ",
"UpdateTitle": "อัพเดต",
+ "UpdateSuccessTitle": "Piwik ได้รับการอัพเดตเรียบร้อยแล้ว",
"UpgradeComplete": "การอัพเดตเสร็จสมบูรณ์",
"UpgradePiwik": "อัพเกรด Piwik",
"VerifyingUnpackedFiles": "กำลังตรวจสอบแพคเกจของไฟล์",
diff --git a/plugins/CoreUpdater/lang/tl.json b/plugins/CoreUpdater/lang/tl.json
index d592e89692..17e7ae9e36 100644
--- a/plugins/CoreUpdater/lang/tl.json
+++ b/plugins/CoreUpdater/lang/tl.json
@@ -37,8 +37,8 @@
"PiwikUpdatedSuccessfully": "Matagumpay na na-update Piwik!",
"PiwikWillBeUpgradedFromVersionXToVersionY": "Ang Piwik database ay maa-upgrade mula sa bersyon %1$s sa bagong bersyon %2$s.",
"ReadyToGo": "Handa nang umalis?",
- "TheFollowingDimensionsWillBeUpgradedX": "Ang sumusunod na dimensyon ay i-uupdate: %s",
"TheFollowingPluginsWillBeUpgradedX": "Ang mga sumusunod na plug-in ay iuupdate: %s",
+ "TheFollowingDimensionsWillBeUpgradedX": "Ang sumusunod na dimensyon ay i-uupdate: %s",
"ThereIsNewPluginVersionAvailableForUpdate": "Ang ilang mga plugin na iyong ginamit ay na-update sa Marketplace.",
"ThereIsNewVersionAvailableForUpdate": "Mayroong bagong bersyon ng Piwik na available para sa pag-update",
"TheUpgradeProcessMayTakeAWhilePleaseBePatient": "Ang proseso ng pag-upgrade ng database ay maaaring matagalan kaya mangyaring maging mapagpasensya.",
@@ -46,6 +46,7 @@
"UpdateAutomatically": "Awtomatikong update",
"UpdateHasBeenCancelledExplanation": "Nakansela ang Piwik One Click Update. Kung hindi mo maayos ang mensaheng may error sa itaas Ito ay nirerekomenda na manu-mano mong i-update ang Piwik. %1$s Mangyaring tignan ang %2$s updated documentaion %3$s upang makapagsimula!",
"UpdateTitle": "I-update",
+ "UpdateSuccessTitle": "Ang Piwik ay matagumpay na na-update!",
"UpgradeComplete": "Kumpleto na ang pag-upgrade!",
"UpgradePiwik": "I-upgrade ang Piwik",
"VerifyingUnpackedFiles": "Bine-verify ang naka-unpack na file",
diff --git a/plugins/CoreUpdater/lang/tr.json b/plugins/CoreUpdater/lang/tr.json
index 1e826a7524..5db9786d12 100644
--- a/plugins/CoreUpdater/lang/tr.json
+++ b/plugins/CoreUpdater/lang/tr.json
@@ -31,6 +31,7 @@
"UpdateAutomatically": "Otomatik Güncelleme",
"UpdateHasBeenCancelledExplanation": "Piwik Tek Tık Güncellemesi iptal edildi. Eğer aşağıdali hatayı düzeltemiyorsanız, Piwik'i elle güncellemeniz gerekmektedir. Başlamak için %1$s lütfen Güncelleme Dökümanını %3$skontrol edin!%2$s",
"UpdateTitle": "Güncelle",
+ "UpdateSuccessTitle": "Piwik başarıyla güncellendi!",
"UpgradeComplete": "Yükseltme tamamlandı!",
"UpgradePiwik": "Piwik'i güncelle",
"VerifyingUnpackedFiles": "Güncelleme dosyaları doğrulanıyor",
diff --git a/plugins/CoreUpdater/lang/uk.json b/plugins/CoreUpdater/lang/uk.json
index ad06d9a0dc..f54a44fb5d 100644
--- a/plugins/CoreUpdater/lang/uk.json
+++ b/plugins/CoreUpdater/lang/uk.json
@@ -35,6 +35,7 @@
"UpdateAutomatically": "Поновити автоматично",
"UpdateHasBeenCancelledExplanation": "Поновлення Piwik Одним Клацанням було скасовано. Якщо неможливо виправити повідомлення про помилку вище, рекомендується поновити Piwik вручну. %1$s Гляньте %2$sДокументацію про поновлення%3$s щоб розпочати!",
"UpdateTitle": "Piwik › Поновлення",
+ "UpdateSuccessTitle": "Piwik успішно поновлено!",
"UpgradeComplete": "Поновлення завершено!",
"UpgradePiwik": "Поновити Piwik",
"VerifyingUnpackedFiles": "Перевірка розпакованих файлів",
diff --git a/plugins/CoreUpdater/lang/vi.json b/plugins/CoreUpdater/lang/vi.json
index 04958f9f9d..22d026397e 100644
--- a/plugins/CoreUpdater/lang/vi.json
+++ b/plugins/CoreUpdater/lang/vi.json
@@ -37,6 +37,7 @@
"UpdateAutomatically": "Cập nhật tự động",
"UpdateHasBeenCancelledExplanation": "Piwik One Click Update đã bị thoát. Nếu bạn không thể sửa được thông điệp lỗi ở trên, bạn có thể update Piwik bằng tay. %1$s Vui lòng xem %2$stài liệu cập nhật %3$s để bắt đầu!",
"UpdateTitle": "Cập nhật",
+ "UpdateSuccessTitle": "Piwik vừa được cập nhật thành công!",
"UpgradeComplete": "Cập nhật xong!",
"UpgradePiwik": "Cập nhật Piwik!",
"VerifyingUnpackedFiles": "Xác minh các tập tin giải nén",
diff --git a/plugins/CoreUpdater/lang/zh-cn.json b/plugins/CoreUpdater/lang/zh-cn.json
index 150ec6bd58..4cb74ef1b8 100644
--- a/plugins/CoreUpdater/lang/zh-cn.json
+++ b/plugins/CoreUpdater/lang/zh-cn.json
@@ -41,6 +41,7 @@
"UpdateAutomatically": "自动升级",
"UpdateHasBeenCancelledExplanation": "Piwik 一键升级已被取消。如果您无法修正以上的错误信息,建议您手动升级 Piwik。%1$s 请查看 %2$s升级文件%3$s 来开始吧!",
"UpdateTitle": "升级",
+ "UpdateSuccessTitle": "Piwik 升级成功!",
"UpgradeComplete": "升级完成!",
"UpgradePiwik": "升级 Piwik",
"VerifyingUnpackedFiles": "正在验证解压后的文件",
diff --git a/plugins/CoreUpdater/lang/zh-tw.json b/plugins/CoreUpdater/lang/zh-tw.json
index e6ca86b744..cccf7132b5 100644
--- a/plugins/CoreUpdater/lang/zh-tw.json
+++ b/plugins/CoreUpdater/lang/zh-tw.json
@@ -35,6 +35,7 @@
"UpdateAutomatically": "自動更新",
"UpdateHasBeenCancelledExplanation": "Piwik 一鍵更新已被取消。如果你無法修正以上的錯誤訊息,建議你手動更新 Piwik。%1$s 請查看 %2$s更新文件%3$s 來開始吧!",
"UpdateTitle": "Piwik › 更新",
+ "UpdateSuccessTitle": "Piwik 已成功更新!",
"UpgradeComplete": "升級完成!",
"UpgradePiwik": "升級 Piwik",
"VerifyingUnpackedFiles": "正在驗證解壓縮後的檔案",
diff --git a/plugins/CustomAlerts b/plugins/CustomAlerts
-Subproject 2b5eed63cff45b8aa3e7ad0dad2afccd8d316ba
+Subproject 2ce9d46cf0ff8a131002e55916378b0bf080988
diff --git a/plugins/CustomVariables/lang/da.json b/plugins/CustomVariables/lang/da.json
index 1766c95117..3f9d0189ba 100644
--- a/plugins/CustomVariables/lang/da.json
+++ b/plugins/CustomVariables/lang/da.json
@@ -4,6 +4,7 @@
"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",
+ "PluginDescription": "Tilpassede variabler er (navn, værdi) par som kan tildeles ved hjælp af Javascript API til besøgende eller nogle af deres handlinger. Piwik vil derefter rapportere hvor mange besøg, sider, konverteringer for hvert af de brugerdefinerede navne og værdier. Se de detaljerede tilpassede variabler for hver bruger og handling i besøgsloggen.",
"ScopePage": "virkefelt side",
"ScopeVisit": "virkefelt besøg"
}
diff --git a/plugins/CustomVariables/lang/fr.json b/plugins/CustomVariables/lang/fr.json
index d50d1ebc77..2c3772e29d 100644
--- a/plugins/CustomVariables/lang/fr.json
+++ b/plugins/CustomVariables/lang/fr.json
@@ -4,6 +4,7 @@
"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",
+ "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 leurs actions. Piwik rapportera ensuite le nombre de visites, pages, conversions pour chacune de ces variables personnalisées. Voir ledétail des variables personnalisées pour chaque utilisateur et action dans le log visiteur.",
"ScopePage": "Étendue page",
"ScopeVisit": "Étendue visite"
}
diff --git a/plugins/CustomVariables/lang/nl.json b/plugins/CustomVariables/lang/nl.json
index bb4f1dbf98..975ca1db96 100644
--- a/plugins/CustomVariables/lang/nl.json
+++ b/plugins/CustomVariables/lang/nl.json
@@ -4,6 +4,7 @@
"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",
+ "PluginDescription": "Aangepaste Variabelen zijn (name, value) pairs, welke je kunt",
"ScopePage": "omvang pagina",
"ScopeVisit": "omvang bezoek"
}
diff --git a/plugins/DBStats/lang/fr.json b/plugins/DBStats/lang/fr.json
index 032c93168f..74e1c2b908 100644
--- a/plugins/DBStats/lang/fr.json
+++ b/plugins/DBStats/lang/fr.json
@@ -10,10 +10,11 @@
"MetricDataByYear": "Tables de métriques par année",
"MetricTables": "Tables de métriques",
"OtherTables": "Autres tables",
+ "PluginDescription": "Fournit des rapports détaillés sur l'utilisation de la base de données MySQL. Disponibles pour les super utilisateurs sous Diagnostiques.",
"ReportDataByYear": "Tables de rapports par année",
"ReportTables": "Tables de rapport",
"RowCount": "Nombre de lignes",
- "Table": "Table",
+ "Table": "Tableau",
"TotalSize": "Taille totale",
"TrackerTables": "Tables de suivi"
}
diff --git a/plugins/Dashboard/lang/ca.json b/plugins/Dashboard/lang/ca.json
index 3e239a8467..c68486ac66 100644
--- a/plugins/Dashboard/lang/ca.json
+++ b/plugins/Dashboard/lang/ca.json
@@ -18,6 +18,7 @@
"Maximise": "Maximitza",
"Minimise": "Minimitza",
"NotUndo": "No podreu desfer aquesta operació",
+ "PluginDescription": "El teu taulell d'analítica web. Personalitza el teu taulell afegint nous ginys, arrossega i solta per a moure'ls i canvia l'estructura de columnes. Cada usuari pot tenir el seu taulell personalitzat.",
"RemoveDashboard": "Elimina el tauler",
"RemoveDashboardConfirm": "Esteu segurs que voleu eliminar el tauler \"%s\"?",
"RenameDashboard": "Reanomena el tauler",
diff --git a/plugins/Dashboard/lang/da.json b/plugins/Dashboard/lang/da.json
index 73794592d6..1cf0a2e303 100644
--- a/plugins/Dashboard/lang/da.json
+++ b/plugins/Dashboard/lang/da.json
@@ -18,6 +18,7 @@
"Maximise": "Maksimer",
"Minimise": "Minimer",
"NotUndo": "Handlingen kan ikke fortrydes.",
+ "PluginDescription": "Webanalyse kontrolpanel. Tilpas dit kontrolpanel ved at tilføje nye moduler, træk og slip dem rundt, og ændre kontrolpanelets kolonnelayout. Hver bruger kan styre deres eget brugerdefinerede kontrolpanel.",
"RemoveDashboard": "Fjern kontrolpanel",
"RemoveDashboardConfirm": "Bekræft fjernelse af kontrolpanel \"%s\"?",
"RenameDashboard": "Omdøb kontrolpanel",
diff --git a/plugins/Dashboard/lang/nl.json b/plugins/Dashboard/lang/nl.json
index 46b16edd81..6f0abd9566 100644
--- a/plugins/Dashboard/lang/nl.json
+++ b/plugins/Dashboard/lang/nl.json
@@ -18,6 +18,7 @@
"Maximise": "Maximaliseer",
"Minimise": "Minimaliseer",
"NotUndo": "U kunt deze verwijdering niet meer ongedaan maken.",
+ "PluginDescription": "Je Web Analytics Dashboard. Pas je dashboard aan door nieuwe widgets toe te voegen, sleep ze in het rond, en wijzig de dashboard kolom weergave. Elke gebruiker kan zijn eigen aangepaste dashboard beheren.",
"RemoveDashboard": "Verwijder dashboard",
"RemoveDashboardConfirm": "Weet u zeker dat u het dashboard \"%s\" wilt verwijderen?",
"RenameDashboard": "Hernoem dashboard",
diff --git a/plugins/DevicePlugins/lang/da.json b/plugins/DevicePlugins/lang/da.json
index 13f09e4e7a..0b095678c6 100644
--- a/plugins/DevicePlugins/lang/da.json
+++ b/plugins/DevicePlugins/lang/da.json
@@ -2,6 +2,7 @@
"DevicePlugins": {
"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/fr.json b/plugins/DevicePlugins/lang/fr.json
index 05c67e3f51..31262f7e9d 100644
--- a/plugins/DevicePlugins/lang/fr.json
+++ b/plugins/DevicePlugins/lang/fr.json
@@ -2,6 +2,7 @@
"DevicePlugins": {
"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/ru.json b/plugins/DevicePlugins/lang/ru.json
index 14dce0cd74..c574382194 100644
--- a/plugins/DevicePlugins/lang/ru.json
+++ b/plugins/DevicePlugins/lang/ru.json
@@ -1,5 +1,6 @@
{
"DevicePlugins": {
+ "PluginDescription": "Сообщает список плагинов, доступных в браузерах посетителей.",
"PluginDetectionDoesNotWorkInIE": "Учтите: Определение плагинов не работает в Internet Explorer. Этот отчет содержит информацию о не-IE браузерах.",
"WidgetPlugins": "Список плагинов",
"WidgetPluginsDocumentation": "Этот отчет показывается какие плагины посетители используют в своих браузерах. Эта информация может быть важна для того, чтобы посетители смогли видеть ваш контент должным образом."
diff --git a/plugins/DevicesDetection/lang/am.json b/plugins/DevicesDetection/lang/am.json
index 05520fd63d..b9051fdaf9 100644
--- a/plugins/DevicesDetection/lang/am.json
+++ b/plugins/DevicesDetection/lang/am.json
@@ -1,5 +1,6 @@
{
"DevicesDetection": {
+ "BrowserEngine": "ማሰሺያ",
"BrowserFamily": "የማሰሻ ቤተሰብ",
"Browsers": "ማሰሻዎች",
"ColumnBrowser": "ማሰሺያ",
diff --git a/plugins/DevicesDetection/lang/ar.json b/plugins/DevicesDetection/lang/ar.json
index 996959555b..4089486f81 100644
--- a/plugins/DevicesDetection/lang/ar.json
+++ b/plugins/DevicesDetection/lang/ar.json
@@ -1,10 +1,12 @@
{
"DevicesDetection": {
+ "BrowserEngine": "المتصفح",
"BrowserFamily": "عائلة المتصفح",
"Browsers": "المتصفحات",
"BrowserVersion": "إصدار المتصفح",
"ColumnBrowser": "المتصفح",
"ColumnOperatingSystem": "نظام التشغيل",
+ "dataTableLabelTypes": "النوع",
"OperatingSystems": "أنظمة التشغيل",
"WidgetBrowsers": "متصفحات الزوار"
}
diff --git a/plugins/DevicesDetection/lang/be.json b/plugins/DevicesDetection/lang/be.json
index b080851826..7c59035864 100644
--- a/plugins/DevicesDetection/lang/be.json
+++ b/plugins/DevicesDetection/lang/be.json
@@ -1,11 +1,13 @@
{
"DevicesDetection": {
+ "BrowserEngine": "Браўзэр",
"BrowserEngineDocumentation": "Гэты графік паказвае браўзэры наведвальнікаў, разбітыя па сем'ях. %s Найбольш важная інфармацыю для вэб-распрацоўнікаў у тым, што я ны могуць даведацца аб тыпах вэб-рэндэрынгу сваіх наведвальнікаў. Пазнакі ўтрымліваюць імёны рухавікоў найбольш распаўсюджаныя адзначаныя ў браўзэрам дужках.",
"BrowserFamily": "Сямейства браўзэраў",
"Browsers": "Па браўзарах",
"BrowserVersion": "Версія браўзэра",
"ColumnBrowser": "Браўзэр",
"ColumnOperatingSystem": "Аперацыйная сістэма",
+ "dataTableLabelTypes": "Тып",
"OperatingSystems": "Па аперацыйных сістэмах",
"WidgetBrowsers": "Браўзары карыстачоў",
"WidgetBrowsersDocumentation": "Гэтая справаздача змяшчае інфармацыю аб тым, які браўзэр выкарыстоўвалі наведвальнікі. Кожная версія браўзэра пералічана асобна."
diff --git a/plugins/DevicesDetection/lang/bg.json b/plugins/DevicesDetection/lang/bg.json
index 830ec8d131..0a2e14a922 100644
--- a/plugins/DevicesDetection/lang/bg.json
+++ b/plugins/DevicesDetection/lang/bg.json
@@ -1,5 +1,6 @@
{
"DevicesDetection": {
+ "BrowserEngine": "Браузър и версия",
"BrowserEngineDocumentation": "Тази таблица показва браузърите на вашите потребители ,разделени по фамилии. %s Най-важната информация за уеб разработчиците е какъв тип технология за обработка са използвали посетителите. Етикета показва имената на технологиите, следвани от браузера, който е бил използван, поставен в скоби.",
"BrowserFamily": "Фамилия браузъри",
"Browsers": "Браузъри",
@@ -18,7 +19,6 @@
"DeviceBrand": "Марка на устройството",
"DeviceDetection": "Определяне на устройство",
"DeviceModel": "Модел на устройството",
- "Devices": "Устройства",
"DevicesDetection": "Устройства, които използва посетителят",
"DeviceType": "Вид устройство",
"OperatingSystemFamilies": "Вид операционна система",
@@ -27,6 +27,7 @@
"OperatingSystemVersions": "Версия на операционната система",
"SmartDisplay": "„Умен“ дисплей",
"Smartphone": "Смартфон",
+ "Devices": "Устройства",
"Tablet": "Таблет",
"TV": "ТВ",
"WidgetBrowsers": "Браузъри на посетителите",
diff --git a/plugins/DevicesDetection/lang/ca.json b/plugins/DevicesDetection/lang/ca.json
index 74eaff4951..1760f68b3f 100644
--- a/plugins/DevicesDetection/lang/ca.json
+++ b/plugins/DevicesDetection/lang/ca.json
@@ -6,6 +6,7 @@
"BrowserVersion": "Versió del navegador",
"ColumnBrowser": "Navegador",
"ColumnOperatingSystem": "Sistema operatiu",
+ "dataTableLabelTypes": "Tipus",
"OperatingSystemFamily": "Família del Sistema Operatiu",
"OperatingSystems": "Sistemes operatius",
"WidgetBrowsers": "Navegadors",
diff --git a/plugins/DevicesDetection/lang/cs.json b/plugins/DevicesDetection/lang/cs.json
index 4795f98044..18750cf1fb 100644
--- a/plugins/DevicesDetection/lang/cs.json
+++ b/plugins/DevicesDetection/lang/cs.json
@@ -9,6 +9,7 @@
"BrowserVersions": "Verze prohlížečů",
"Camera": "Fotoaparát",
"CarBrowser": "Prohlížeč v autě",
+ "Software": "Software",
"ColumnBrowser": "Web prohlížeč",
"ColumnOperatingSystem": "Operační systém",
"ColumnOperatingSystemVersion": "Verze operačního systému",
@@ -21,7 +22,6 @@
"DeviceBrand": "Značka zařízení",
"DeviceDetection": "Detekce zařízení",
"DeviceModel": "Model zařízení",
- "Devices": "Zařízení",
"DevicesDetection": "Zařízení návštěvníků",
"DeviceType": "Typ zařízení",
"FeaturePhone": "Ukázkový telefon",
@@ -30,11 +30,12 @@
"OperatingSystems": "Operační systémy",
"OperatingSystemVersions": "Verze operačního systému",
"PluginDescription": "Poskytuje rozšířené informace o zařízení návštěvníků, jako je značka (výrobce), model (verze zařízení), typ zařízení (tv, konzole, chytré telefony, stolní PC, aj.) a více.",
- "PortableMediaPlayer": "Přenosný přehrávač médií",
"SmartDisplay": "Chytrý displej",
"Smartphone": "Chytrý telefon",
- "Software": "Software",
+ "PortableMediaPlayer": "Přenosný přehrávač médií",
+ "Devices": "Zařízení",
"Tablet": "Tablet",
+ "Phablet": "Phablet",
"TV": "Tv",
"UserAgent": "User-Agent",
"WidgetBrowsers": "Web prohlížeče návštěvníků",
diff --git a/plugins/DevicesDetection/lang/da.json b/plugins/DevicesDetection/lang/da.json
index 2e99428a7c..11ab896275 100644
--- a/plugins/DevicesDetection/lang/da.json
+++ b/plugins/DevicesDetection/lang/da.json
@@ -2,14 +2,17 @@
"DevicesDetection": {
"BrowserEngine": "Browser",
"BrowserEngineDocumentation": "Diagrammet viser de besøgendes browsere opdelt i grupper. %s De vigtigste oplysninger for web-udviklere er, hvilken slags rendering motor de besøgende bruger. Etiketterne indeholder navnene på motorerne, efterfulgt af de mest almindelige browsere, der benytter motoren i parentes.",
+ "BrowserEngines": "Browser motorer",
"BrowserFamily": "Browsertype",
"Browsers": "Browsere",
"BrowserVersion": "Browserversion",
"BrowserVersions": "Browser-versioner",
"Camera": "Kamera",
"CarBrowser": "Bil browser",
+ "Software": "Software",
"ColumnBrowser": "Browser",
"ColumnOperatingSystem": "Operativsystem",
+ "ColumnOperatingSystemVersion": "Operativsystem version",
"Console": "Konsol",
"dataTableLabelBrands": "Mærke",
"dataTableLabelModels": "Model",
@@ -26,8 +29,11 @@
"OperatingSystemFamily": "Operativsystemsfamilie",
"OperatingSystems": "Operativsystemer",
"OperatingSystemVersions": "Operativsystem-versioner",
+ "PluginDescription": "Giver udvidet information om brugerens enheder, såsom mærke (fremstiller), model (enhedsversion), enhedstype (tv, konsoller, smartphones, desktop, osv) m. m.",
"SmartDisplay": "Smart skærm",
"Smartphone": "Smartphone",
+ "PortableMediaPlayer": "Bærbar medieafspiller",
+ "Devices": "Enheder",
"Tablet": "Tablet",
"TV": "TV",
"UserAgent": "Brugeragent",
diff --git a/plugins/DevicesDetection/lang/de.json b/plugins/DevicesDetection/lang/de.json
index 42cdc486af..eddcb73a24 100644
--- a/plugins/DevicesDetection/lang/de.json
+++ b/plugins/DevicesDetection/lang/de.json
@@ -9,6 +9,7 @@
"BrowserVersions": "Browser Versionen",
"Camera": "Digitalcamera",
"CarBrowser": "PKW-Browser",
+ "Software": "Software",
"ColumnBrowser": "Browser",
"ColumnOperatingSystem": "Betriebssystem",
"ColumnOperatingSystemVersion": "Betriebssystem-Version",
@@ -21,7 +22,6 @@
"DeviceBrand": "Gerätemarke",
"DeviceDetection": "Geräteerkennung",
"DeviceModel": "Gerätemodell",
- "Devices": "Geräte",
"DevicesDetection": "Geräte der Besucher",
"DeviceType": "Gerätetyp",
"FeaturePhone": "Feature-Phone",
@@ -30,11 +30,12 @@
"OperatingSystems": "Betriebssysteme",
"OperatingSystemVersions": "Betriebssystem Versionen",
"PluginDescription": "Unterstützt erweiterte Informationen über Benutzergeräte, wie Marke (Hersteller), Modell (Geräteversion), Gerätetyp (Fernseher, Konsolen, Smartphones, Desktops, usw.) und mehr.",
- "PortableMediaPlayer": "Portable Mediengeräte",
"SmartDisplay": "Smart Display",
"Smartphone": "Smartphone",
- "Software": "Software",
+ "PortableMediaPlayer": "Portable Mediengeräte",
+ "Devices": "Geräte",
"Tablet": "Tablet",
+ "Phablet": "Phablet",
"TV": "TV",
"UserAgent": "User-Agent",
"WidgetBrowsers": "Besucher-Browser",
diff --git a/plugins/DevicesDetection/lang/el.json b/plugins/DevicesDetection/lang/el.json
index b882c13b62..59d745c931 100644
--- a/plugins/DevicesDetection/lang/el.json
+++ b/plugins/DevicesDetection/lang/el.json
@@ -9,6 +9,7 @@
"BrowserVersions": "Εκδόσεις προγραμμάτων περιήγησης",
"Camera": "Κάμερα",
"CarBrowser": "Πρόγραμμα περιήγησης αυτοκινήτου",
+ "Software": "Λογισμικό",
"ColumnBrowser": "Φυλλομετρητής",
"ColumnOperatingSystem": "Λειτουργικό σύστημα",
"ColumnOperatingSystemVersion": "Έκδοση του λειτουργικού συστήματος",
@@ -21,7 +22,6 @@
"DeviceBrand": "Μάρκα συσκευής",
"DeviceDetection": "Εντοπισμός συσκευής",
"DeviceModel": "Μοντέλο συσκευής",
- "Devices": "Συσκευές",
"DevicesDetection": "Συσκευές επισκεπτών",
"DeviceType": "Τύπος συσκευής",
"FeaturePhone": "Τηλέφωνο",
@@ -30,11 +30,12 @@
"OperatingSystems": "Λειτουργικά συστήματα",
"OperatingSystemVersions": "Εκδόσεις Λειτουργικών Συστημάτων",
"PluginDescription": "Παρέχει εκτεταμένες πληροφορίες σχετικά με τις συσκευές χρήστη, όπως Μάρκα (κατασκευαστής), Μοντέλο (έκδοση συσκευής), τύπος συσκευής (τηλεόραση, κονσόλες, έξυπνα τηλέφωνα, υπολογιστές, κτλ.) και περισσότερα.",
- "PortableMediaPlayer": "Φορητή συσκευή αναπαραγωγής",
"SmartDisplay": "Έξυπνη οθόνη",
"Smartphone": "Έξυπνο κινητό",
- "Software": "Λογισμικό",
+ "PortableMediaPlayer": "Φορητή συσκευή αναπαραγωγής",
+ "Devices": "Συσκευές",
"Tablet": "Ταμπλέτα",
+ "Phablet": "Phablet",
"TV": "Τηλεόραση",
"UserAgent": "Πρόγραμμα πελάτη χρήστη",
"WidgetBrowsers": "Φυλλομετρητές επισκεπτών",
diff --git a/plugins/DevicesDetection/lang/et.json b/plugins/DevicesDetection/lang/et.json
index 5fc832d037..bfb673700f 100644
--- a/plugins/DevicesDetection/lang/et.json
+++ b/plugins/DevicesDetection/lang/et.json
@@ -26,6 +26,7 @@
"OperatingSystemVersions": "Operatsioonisüsteemide versioonid",
"SmartDisplay": "Nutikas kuvar",
"Smartphone": "Nutitelefon",
+ "Devices": "Seadmed",
"Tablet": "Tahvelarvuti",
"TV": "Televiisor",
"UserAgent": "Veebisirvija tüüp",
diff --git a/plugins/DevicesDetection/lang/fa.json b/plugins/DevicesDetection/lang/fa.json
index 707f698435..775c208512 100644
--- a/plugins/DevicesDetection/lang/fa.json
+++ b/plugins/DevicesDetection/lang/fa.json
@@ -26,6 +26,7 @@
"OperatingSystemVersions": "نسخه سیستم عامل",
"SmartDisplay": "صفحه نمایش هوشمند",
"Smartphone": "تلفن هوشمند",
+ "Devices": "وسایل",
"Tablet": "تبلت",
"TV": "تلویزیون",
"UserAgent": "کاربر-نمایندگی",
diff --git a/plugins/DevicesDetection/lang/fi.json b/plugins/DevicesDetection/lang/fi.json
index f29dfc9b5d..89c4adebc5 100644
--- a/plugins/DevicesDetection/lang/fi.json
+++ b/plugins/DevicesDetection/lang/fi.json
@@ -27,6 +27,7 @@
"OperatingSystemVersions": "Käyttöjärjestelmäversiot",
"SmartDisplay": "Älynäyttö",
"Smartphone": "Älypuhelin",
+ "Devices": "Laitteet",
"Tablet": "Tabletti",
"TV": "TV",
"UserAgent": "Käyttäjä-Agentti",
diff --git a/plugins/DevicesDetection/lang/fr.json b/plugins/DevicesDetection/lang/fr.json
index 5bbbd5ce0b..bfbd980186 100644
--- a/plugins/DevicesDetection/lang/fr.json
+++ b/plugins/DevicesDetection/lang/fr.json
@@ -9,6 +9,7 @@
"BrowserVersions": "Versions du navigateur",
"Camera": "Caméra",
"CarBrowser": "Navigateur de voiture",
+ "Software": "Logiciel",
"ColumnBrowser": "Navigateur",
"ColumnOperatingSystem": "Système d'exploitation",
"ColumnOperatingSystemVersion": "Version du système d'exploitation",
@@ -28,9 +29,13 @@
"OperatingSystemFamily": "Famille de systèmes d'exploitations",
"OperatingSystems": "Système d'exploitation",
"OperatingSystemVersions": "Versions de système d'exploitation",
+ "PluginDescription": "Fournit des informations détaillés à propos des périphériques de l'utilisateur telles que la Marque (fabriquant), le Modèle (version pérhip.), type de périph. (tv, consoles, téléphone intelligent, ordinateur, etc) et plus.",
"SmartDisplay": "Affichage intelligent",
"Smartphone": "Téléphone intelligent (smartphone)",
+ "PortableMediaPlayer": "Lecteur de medias portable",
+ "Devices": "Périphériques",
"Tablet": "Tablette",
+ "Phablet": "Phablette",
"TV": "TV",
"UserAgent": "Agent Utilisateur (User-Agent)",
"WidgetBrowsers": "Navigateurs du visiteur",
diff --git a/plugins/DevicesDetection/lang/hi.json b/plugins/DevicesDetection/lang/hi.json
index e2353d36b3..962d78166e 100644
--- a/plugins/DevicesDetection/lang/hi.json
+++ b/plugins/DevicesDetection/lang/hi.json
@@ -5,6 +5,7 @@
"BrowserVersion": "ब्राउज़र संस्करण",
"ColumnBrowser": "ब्राउज़र",
"ColumnOperatingSystem": "आपरेटिंग सिस्टम",
+ "dataTableLabelTypes": "प्रकार",
"OperatingSystemFamily": "आपरेटिंग सिस्टम परिवार",
"OperatingSystems": "आपरेटिंग सिस्टम",
"WidgetBrowsers": "आगंतुक ब्राउज़र"
diff --git a/plugins/DevicesDetection/lang/hr.json b/plugins/DevicesDetection/lang/hr.json
index ccd33c0733..7591e62f5f 100644
--- a/plugins/DevicesDetection/lang/hr.json
+++ b/plugins/DevicesDetection/lang/hr.json
@@ -3,6 +3,7 @@
"Browsers": "Pretraživači",
"BrowserVersion": "Verzija pretraživača",
"ColumnOperatingSystem": "Operativni sustav",
+ "dataTableLabelTypes": "Vrsta",
"WidgetBrowsers": "Pretraživać posjetitelja"
}
} \ No newline at end of file
diff --git a/plugins/DevicesDetection/lang/hu.json b/plugins/DevicesDetection/lang/hu.json
index 3d2b733b62..0cf904e3b6 100644
--- a/plugins/DevicesDetection/lang/hu.json
+++ b/plugins/DevicesDetection/lang/hu.json
@@ -4,6 +4,7 @@
"Browsers": "Böngészők",
"ColumnBrowser": "Böngésző",
"ColumnOperatingSystem": "Operációs rendszer",
+ "dataTableLabelTypes": "Típus",
"OperatingSystems": "Operációs rendszerek",
"WidgetBrowsers": "Látogatók böngészői"
}
diff --git a/plugins/DevicesDetection/lang/id.json b/plugins/DevicesDetection/lang/id.json
index 37772fea64..2b9b3cdef2 100644
--- a/plugins/DevicesDetection/lang/id.json
+++ b/plugins/DevicesDetection/lang/id.json
@@ -6,6 +6,7 @@
"BrowserVersion": "Versi Perambang",
"ColumnBrowser": "Peramban",
"ColumnOperatingSystem": "Sistem Operasi",
+ "dataTableLabelTypes": "Jenis",
"OperatingSystemFamily": "Keluarga sistem operasi",
"OperatingSystems": "Sistem Operasi",
"WidgetBrowsers": "Peramban Pengunjung",
diff --git a/plugins/DevicesDetection/lang/is.json b/plugins/DevicesDetection/lang/is.json
index 29b2961f71..017b22b952 100644
--- a/plugins/DevicesDetection/lang/is.json
+++ b/plugins/DevicesDetection/lang/is.json
@@ -4,6 +4,7 @@
"Browsers": "Vafrar",
"ColumnBrowser": "Vafri",
"ColumnOperatingSystem": "Stýrikerfi",
+ "dataTableLabelTypes": "Tegund",
"OperatingSystems": "Stýrikerfi",
"WidgetBrowsers": "Vafrar gesta"
}
diff --git a/plugins/DevicesDetection/lang/it.json b/plugins/DevicesDetection/lang/it.json
index 2c4cffe11d..8e28d8d5ae 100644
--- a/plugins/DevicesDetection/lang/it.json
+++ b/plugins/DevicesDetection/lang/it.json
@@ -9,6 +9,7 @@
"BrowserVersions": "Versioni browser",
"Camera": "Fotocamera",
"CarBrowser": "Browser in auto",
+ "Software": "Software",
"ColumnBrowser": "Browser",
"ColumnOperatingSystem": "Sistema operativo",
"ColumnOperatingSystemVersion": "Versione sistema operativo",
@@ -21,7 +22,6 @@
"DeviceBrand": "Marca dispositivo",
"DeviceDetection": "Rilevamento dispositivo",
"DeviceModel": "Modello dispositivo",
- "Devices": "Dispositivi",
"DevicesDetection": "Dispositivi visitatore",
"DeviceType": "Tipo di dispositivo",
"FeaturePhone": "Feature phone",
@@ -30,10 +30,10 @@
"OperatingSystems": "Sistemi Operativi",
"OperatingSystemVersions": "Versioni Sistema Operativo",
"PluginDescription": "Fornisce informazioni dettagliate sui dispositivi degli utenti, come marca, modello, tipo di dispositivo (tv, console, smartphone, desktop, ecc.) e altro ancora.",
- "PortableMediaPlayer": "Media player portabile",
"SmartDisplay": "Smart display",
"Smartphone": "Smartphone",
- "Software": "Software",
+ "PortableMediaPlayer": "Media player portabile",
+ "Devices": "Dispositivi",
"Tablet": "Tablet",
"TV": "Apparecchio TV",
"UserAgent": "User-Agent",
diff --git a/plugins/DevicesDetection/lang/ja.json b/plugins/DevicesDetection/lang/ja.json
index 7ccb08c018..5407bf299c 100644
--- a/plugins/DevicesDetection/lang/ja.json
+++ b/plugins/DevicesDetection/lang/ja.json
@@ -27,6 +27,7 @@
"OperatingSystemVersions": "オペレーティングシステムのバージョン",
"SmartDisplay": "スマートディスプレイ",
"Smartphone": "スマートフォン",
+ "Devices": "デバイス",
"Tablet": "タブレット",
"TV": "TV",
"UserAgent": "ユーザーエージェント",
diff --git a/plugins/DevicesDetection/lang/ka.json b/plugins/DevicesDetection/lang/ka.json
index 0260e2691c..580f99e33a 100644
--- a/plugins/DevicesDetection/lang/ka.json
+++ b/plugins/DevicesDetection/lang/ka.json
@@ -4,6 +4,7 @@
"Browsers": "ბრაუზერები",
"ColumnBrowser": "ბრაუზერი",
"ColumnOperatingSystem": "ოპერაციული სისტემა",
+ "dataTableLabelTypes": "ტიპი",
"OperatingSystems": "ოპერაციული სიტემები",
"WidgetBrowsers": "ვიზიტორის ბრაუზერები"
}
diff --git a/plugins/DevicesDetection/lang/ko.json b/plugins/DevicesDetection/lang/ko.json
index 69b1d36c06..ca851404ec 100644
--- a/plugins/DevicesDetection/lang/ko.json
+++ b/plugins/DevicesDetection/lang/ko.json
@@ -6,6 +6,7 @@
"BrowserVersion": "브라우저 버전",
"ColumnBrowser": "브라우저",
"ColumnOperatingSystem": "운영체제",
+ "dataTableLabelTypes": "유형",
"OperatingSystemFamily": "운영 체제 제품군",
"OperatingSystems": "운영체제",
"WidgetBrowsers": "방문자 브라우저",
diff --git a/plugins/DevicesDetection/lang/lt.json b/plugins/DevicesDetection/lang/lt.json
index b0fbfe0ff0..1be16c37af 100644
--- a/plugins/DevicesDetection/lang/lt.json
+++ b/plugins/DevicesDetection/lang/lt.json
@@ -5,6 +5,7 @@
"BrowserVersion": "Naršyklės versija",
"ColumnBrowser": "Naršyklė",
"ColumnOperatingSystem": "Operacinė sistema",
+ "dataTableLabelTypes": "Tipas",
"OperatingSystems": "Operacinės sistemos",
"WidgetBrowsers": "Lankytojų naršyklės"
}
diff --git a/plugins/DevicesDetection/lang/lv.json b/plugins/DevicesDetection/lang/lv.json
index 76778bad86..6806138d7c 100644
--- a/plugins/DevicesDetection/lang/lv.json
+++ b/plugins/DevicesDetection/lang/lv.json
@@ -6,6 +6,7 @@
"BrowserVersion": "Pārlūka versija",
"ColumnBrowser": "Pārlūks",
"ColumnOperatingSystem": "Operētājsistēma",
+ "dataTableLabelTypes": "Tips",
"OperatingSystems": "Operētājsistēmas",
"WidgetBrowsers": "Apmeklētāju pārlūki",
"WidgetBrowsersDocumentation": "Šajā atskaitē ir informācija par to kādus pārlūkus Jūsu apmeklētāji izmanto. Katra pārlūka versija ir izdalīta atsevišķi."
diff --git a/plugins/DevicesDetection/lang/nb.json b/plugins/DevicesDetection/lang/nb.json
index 17693f248b..f50218e3d4 100644
--- a/plugins/DevicesDetection/lang/nb.json
+++ b/plugins/DevicesDetection/lang/nb.json
@@ -14,6 +14,7 @@
"Device": "Enhet",
"OperatingSystems": "Operativsystem",
"Smartphone": "Smarttelefon",
+ "Devices": "Enheter",
"Tablet": "Nettbrett",
"TV": "TV",
"WidgetBrowsers": "Besøkendes nettlesere"
diff --git a/plugins/DevicesDetection/lang/nl.json b/plugins/DevicesDetection/lang/nl.json
index 8e90ec7db0..c9bfbc0761 100644
--- a/plugins/DevicesDetection/lang/nl.json
+++ b/plugins/DevicesDetection/lang/nl.json
@@ -9,6 +9,7 @@
"BrowserVersions": "Browser versies",
"Camera": "Fototoestel",
"CarBrowser": "Auto browser",
+ "Software": "Software",
"ColumnBrowser": "Browser",
"ColumnOperatingSystem": "Besturingssysteem",
"ColumnOperatingSystemVersion": "Besturingssysteem versie",
@@ -21,7 +22,6 @@
"DeviceBrand": "Apparaat merk",
"DeviceDetection": "Apparaat detectie",
"DeviceModel": "Apparaat model",
- "Devices": "Apparaten",
"DevicesDetection": "Bezoeker Apparaten",
"DeviceType": "Apparaat type",
"FeaturePhone": "Toekomstige telefoon",
@@ -29,10 +29,10 @@
"OperatingSystemFamily": "Besturingssyteem familie",
"OperatingSystems": "Besturingssystemen",
"OperatingSystemVersions": "Besturingssysteem versies",
- "PortableMediaPlayer": "Draagbare mediaspeler",
"SmartDisplay": "Slim scherm",
"Smartphone": "Smartphone",
- "Software": "Software",
+ "PortableMediaPlayer": "Draagbare mediaspeler",
+ "Devices": "Apparaten",
"Tablet": "Tablet",
"TV": "Tv",
"UserAgent": "Gebruikers-agent",
diff --git a/plugins/DevicesDetection/lang/nn.json b/plugins/DevicesDetection/lang/nn.json
index f5d92db46a..43800a8ae2 100644
--- a/plugins/DevicesDetection/lang/nn.json
+++ b/plugins/DevicesDetection/lang/nn.json
@@ -4,6 +4,7 @@
"Browsers": "Nettlesarar",
"ColumnBrowser": "Nettlesar",
"ColumnOperatingSystem": "Operativsystem",
+ "dataTableLabelTypes": "Type",
"OperatingSystems": "Operativsystem",
"WidgetBrowsers": "Nytta nettlesarar"
}
diff --git a/plugins/DevicesDetection/lang/pl.json b/plugins/DevicesDetection/lang/pl.json
index 72b1c110aa..a9bb05270b 100644
--- a/plugins/DevicesDetection/lang/pl.json
+++ b/plugins/DevicesDetection/lang/pl.json
@@ -14,7 +14,7 @@
"dataTableLabelBrands": "Marka",
"dataTableLabelModels": "Model",
"dataTableLabelSystemVersion": "Wersja systemu operacyjnego",
- "dataTableLabelTypes": "Typ",
+ "dataTableLabelTypes": "Rodzaj",
"Device": "Urządzenie",
"DeviceBrand": "Urządzenie marki",
"DeviceDetection": "Wykrywanie urządzeń",
@@ -28,6 +28,7 @@
"OperatingSystemVersions": "Wersja systemu operacyjnego",
"SmartDisplay": "Inteligentny wyświetlacz",
"Smartphone": "Smartfon",
+ "Devices": "Urządzenia",
"Tablet": "Tablet",
"TV": "TV",
"UserAgent": "User-Agent",
diff --git a/plugins/DevicesDetection/lang/pt-br.json b/plugins/DevicesDetection/lang/pt-br.json
index abf65fddd4..fa31287d58 100644
--- a/plugins/DevicesDetection/lang/pt-br.json
+++ b/plugins/DevicesDetection/lang/pt-br.json
@@ -23,6 +23,7 @@
"OperatingSystems": "Sistemas Operacionais",
"OperatingSystemVersions": "Versões dos Sistemas Operacionais",
"Smartphone": "Smartphone",
+ "Devices": "Dispositivos",
"Tablet": "Tablet",
"TV": "Tv",
"UserAgent": "User-Agent",
diff --git a/plugins/DevicesDetection/lang/ro.json b/plugins/DevicesDetection/lang/ro.json
index 83b86196b8..cf464d0b11 100644
--- a/plugins/DevicesDetection/lang/ro.json
+++ b/plugins/DevicesDetection/lang/ro.json
@@ -27,6 +27,7 @@
"OperatingSystemVersions": "Versiunile Sistemului de Operare",
"SmartDisplay": "Display inteligent",
"Smartphone": "Smartphone",
+ "Devices": "Dispozitive",
"Tablet": "Tableta",
"TV": "Tv",
"UserAgent": "User-Agent",
diff --git a/plugins/DevicesDetection/lang/ru.json b/plugins/DevicesDetection/lang/ru.json
index 600bf056c7..3f904f6149 100644
--- a/plugins/DevicesDetection/lang/ru.json
+++ b/plugins/DevicesDetection/lang/ru.json
@@ -9,8 +9,10 @@
"BrowserVersions": "Версии браузеров",
"Camera": "Камера",
"CarBrowser": "Автомобильный браузер",
+ "Software": "Программы",
"ColumnBrowser": "Браузер",
"ColumnOperatingSystem": "Операционная система",
+ "ColumnOperatingSystemVersion": "Версия операционной системы",
"Console": "Консоль",
"dataTableLabelBrands": "Фирма-производитель",
"dataTableLabelModels": "Модель",
@@ -27,9 +29,11 @@
"OperatingSystemFamily": "Тип операционной системы",
"OperatingSystems": "По операционным системам",
"OperatingSystemVersions": "Версии операционных систем",
- "PortableMediaPlayer": "Портативный медиа-плеер",
+ "PluginDescription": "Предоставляет расширенную информацию об устройствах пользователя: бренд (производитель), модель (версия устройства), тип устройства (тв, консоли, смартфоны, рабочая станция и др.) и др.",
"SmartDisplay": "Смарт-дисплей",
"Smartphone": "Смартфон",
+ "PortableMediaPlayer": "Портативный медиа-плеер",
+ "Devices": "Устройства",
"Tablet": "Планшет",
"TV": "ТВ",
"UserAgent": "User-Agent",
diff --git a/plugins/DevicesDetection/lang/sk.json b/plugins/DevicesDetection/lang/sk.json
index ed152053b3..4ef85fdb0e 100644
--- a/plugins/DevicesDetection/lang/sk.json
+++ b/plugins/DevicesDetection/lang/sk.json
@@ -4,6 +4,7 @@
"Browsers": "Prehliadače",
"ColumnBrowser": "Prehliadač",
"ColumnOperatingSystem": "Operačný systém",
+ "dataTableLabelTypes": "Typ",
"OperatingSystems": "Operačný systém",
"WidgetBrowsers": "Prehliadače návštevníkov"
}
diff --git a/plugins/DevicesDetection/lang/sl.json b/plugins/DevicesDetection/lang/sl.json
index 789822b469..80c7412ccb 100644
--- a/plugins/DevicesDetection/lang/sl.json
+++ b/plugins/DevicesDetection/lang/sl.json
@@ -6,12 +6,14 @@
"BrowserVersion": "Različica brskalnika",
"ColumnBrowser": "Brskalnik",
"ColumnOperatingSystem": "Operacijski sistem",
+ "dataTableLabelTypes": "Tip",
"DeviceBrand": "Znamka naprave",
"DeviceModel": "Model naprave",
"DevicesDetection": "Naprave obiskovalcev",
"DeviceType": "Tip naprave",
"OperatingSystemFamilies": "Družine operacijskih sistemov",
"OperatingSystems": "Operacijski sistemi",
+ "Devices": "Naprave",
"WidgetBrowsers": "Brskalnik obiskovalca"
}
} \ No newline at end of file
diff --git a/plugins/DevicesDetection/lang/sq.json b/plugins/DevicesDetection/lang/sq.json
index 4e4d936bf3..ed1cc182a0 100644
--- a/plugins/DevicesDetection/lang/sq.json
+++ b/plugins/DevicesDetection/lang/sq.json
@@ -6,6 +6,7 @@
"BrowserVersion": "Version shfletuesi",
"ColumnBrowser": "Shfletues",
"ColumnOperatingSystem": "Sistem operativ",
+ "dataTableLabelTypes": "Lloj",
"OperatingSystems": "Sisteme operativë",
"WidgetBrowsers": "Shfletuesa vizitorësh",
"WidgetBrowsersDocumentation": "Ky raport përmban të dhëna rreth llojeve të shfletuesit që përdornin vizitorët tuaj. Secili version i një shfletuesi tregohet veçmas."
diff --git a/plugins/DevicesDetection/lang/sr.json b/plugins/DevicesDetection/lang/sr.json
index b6cb8f0a49..c391ad893c 100644
--- a/plugins/DevicesDetection/lang/sr.json
+++ b/plugins/DevicesDetection/lang/sr.json
@@ -27,6 +27,7 @@
"OperatingSystemVersions": "Verzije operativnog sistema",
"SmartDisplay": "Pametan displej",
"Smartphone": "Pametni telefon",
+ "Devices": "Uređaji",
"Tablet": "Tablet",
"TV": "TV",
"UserAgent": "Korisnički agent",
diff --git a/plugins/DevicesDetection/lang/sv.json b/plugins/DevicesDetection/lang/sv.json
index 7d3881e142..e5a0d964c9 100644
--- a/plugins/DevicesDetection/lang/sv.json
+++ b/plugins/DevicesDetection/lang/sv.json
@@ -27,9 +27,10 @@
"OperatingSystemFamily": "Operativsystemsfamilj",
"OperatingSystems": "Operativsystem",
"OperatingSystemVersions": "Nuvarande System version",
- "PortableMediaPlayer": "Portabel mediaspelare",
"SmartDisplay": "Smart skärm",
"Smartphone": "Smartphone",
+ "PortableMediaPlayer": "Portabel mediaspelare",
+ "Devices": "Utrustning",
"Tablet": "Bord",
"TV": "TV",
"UserAgent": "Användar-Agent",
diff --git a/plugins/DevicesDetection/lang/ta.json b/plugins/DevicesDetection/lang/ta.json
new file mode 100644
index 0000000000..e2f8d367e8
--- /dev/null
+++ b/plugins/DevicesDetection/lang/ta.json
@@ -0,0 +1,5 @@
+{
+ "DevicesDetection": {
+ "dataTableLabelTypes": "வகை"
+ }
+} \ No newline at end of file
diff --git a/plugins/DevicesDetection/lang/te.json b/plugins/DevicesDetection/lang/te.json
index 05929af713..1d7f1972e4 100644
--- a/plugins/DevicesDetection/lang/te.json
+++ b/plugins/DevicesDetection/lang/te.json
@@ -5,6 +5,7 @@
"BrowserVersion": "విహారిణి సంచిక",
"ColumnBrowser": "విహారిణి",
"ColumnOperatingSystem": "నిర్వాహక వ్యవస్థ",
+ "dataTableLabelTypes": "రకం",
"OperatingSystemFamily": "నిర్వాహక వ్యవస్థ కుటుంబం",
"OperatingSystems": "నిర్వాహక వ్యవస్థలు",
"WidgetBrowsers": "సందర్శకుల విహారిణులు"
diff --git a/plugins/DevicesDetection/lang/th.json b/plugins/DevicesDetection/lang/th.json
index 6aeaf92eca..0ead9773f6 100644
--- a/plugins/DevicesDetection/lang/th.json
+++ b/plugins/DevicesDetection/lang/th.json
@@ -5,6 +5,7 @@
"BrowserVersion": "รุ่นของโปรแกรมบราวเซอร์",
"ColumnBrowser": "เบราว์เซอร์",
"ColumnOperatingSystem": "ระบบปฏิบัติการ",
+ "dataTableLabelTypes": "รูปแบบ",
"OperatingSystems": "ระบบปฏิบัติการ",
"WidgetBrowsers": "เบราว์เซอร์ของผู้เข้าชม"
}
diff --git a/plugins/DevicesDetection/lang/tl.json b/plugins/DevicesDetection/lang/tl.json
index e1ab9337b9..be8747e8d9 100644
--- a/plugins/DevicesDetection/lang/tl.json
+++ b/plugins/DevicesDetection/lang/tl.json
@@ -26,6 +26,7 @@
"OperatingSystemVersions": "Mga bersyon ng Operating System",
"SmartDisplay": "Smart display",
"Smartphone": "Smartphone",
+ "Devices": "Mga Device",
"Tablet": "Tableta",
"TV": "Tv",
"UserAgent": "User-Agent",
diff --git a/plugins/DevicesDetection/lang/tr.json b/plugins/DevicesDetection/lang/tr.json
index 0a24457a08..cc3341df86 100644
--- a/plugins/DevicesDetection/lang/tr.json
+++ b/plugins/DevicesDetection/lang/tr.json
@@ -12,7 +12,7 @@
"dataTableLabelBrands": "Marka",
"dataTableLabelModels": "Model",
"dataTableLabelSystemVersion": "İşletim Sistemi versiyonu",
- "dataTableLabelTypes": "Tip",
+ "dataTableLabelTypes": "Tür",
"Device": "Cihaz",
"DeviceBrand": "Cihaz markası",
"DeviceDetection": "Cihaz algılama",
@@ -24,6 +24,7 @@
"OperatingSystemVersions": "İşletim Sistemi versiyonları",
"SmartDisplay": "Akıllı görüntüleme",
"Smartphone": "Akıllı Telefon",
+ "Devices": "Cihazlar",
"Tablet": "Tablet",
"TV": "Tv",
"UserAgent": "User-Agent",
diff --git a/plugins/DevicesDetection/lang/uk.json b/plugins/DevicesDetection/lang/uk.json
index 9fe3909250..530746eb2b 100644
--- a/plugins/DevicesDetection/lang/uk.json
+++ b/plugins/DevicesDetection/lang/uk.json
@@ -4,6 +4,7 @@
"Browsers": "Веб-оглядачі",
"ColumnBrowser": "Веб-оглядач",
"ColumnOperatingSystem": "Операційна система",
+ "dataTableLabelTypes": "Тип",
"OperatingSystems": "Операційні системи",
"WidgetBrowsers": "Веб-оглядачі відвідувачів"
}
diff --git a/plugins/DevicesDetection/lang/vi.json b/plugins/DevicesDetection/lang/vi.json
index 69ba23d960..b00e2cdf7a 100644
--- a/plugins/DevicesDetection/lang/vi.json
+++ b/plugins/DevicesDetection/lang/vi.json
@@ -6,6 +6,7 @@
"BrowserVersion": "Phiên bản trình duyệt",
"ColumnBrowser": "Trình duyệt",
"ColumnOperatingSystem": "Hệ điều hành",
+ "dataTableLabelTypes": "Kiểu",
"OperatingSystemFamily": "Hệ điều hành gia đình",
"OperatingSystems": "Các hệ điều hành",
"WidgetBrowsers": "Trình duyệt khách truy cập",
diff --git a/plugins/DevicesDetection/lang/zh-cn.json b/plugins/DevicesDetection/lang/zh-cn.json
index e5f16368a3..aff29cf7c2 100644
--- a/plugins/DevicesDetection/lang/zh-cn.json
+++ b/plugins/DevicesDetection/lang/zh-cn.json
@@ -6,6 +6,7 @@
"BrowserVersion": "浏览器版本",
"ColumnBrowser": "浏览器名称",
"ColumnOperatingSystem": "操作系统",
+ "dataTableLabelTypes": "类型",
"OperatingSystemFamily": "操作系统种类",
"OperatingSystems": "操作系统",
"WidgetBrowsers": "访客浏览器",
diff --git a/plugins/Diagnostics/Commands/Run.php b/plugins/Diagnostics/Commands/Run.php
index 8014ac24cc..1932faae51 100644
--- a/plugins/Diagnostics/Commands/Run.php
+++ b/plugins/Diagnostics/Commands/Run.php
@@ -22,19 +22,6 @@ use Symfony\Component\Console\Output\OutputInterface;
*/
class Run extends ConsoleCommand
{
- /**
- * @var DiagnosticService
- */
- private $diagnosticService;
-
- public function __construct()
- {
- // Replace this with dependency injection once available
- $this->diagnosticService = StaticContainer::get('Piwik\Plugins\Diagnostics\DiagnosticService');
-
- parent::__construct();
- }
-
protected function configure()
{
$this->setName('diagnostics:run')
@@ -44,9 +31,13 @@ class Run extends ConsoleCommand
protected function execute(InputInterface $input, OutputInterface $output)
{
+ // Replace this with dependency injection once available
+ /** @var DiagnosticService $diagnosticService */
+ $diagnosticService = StaticContainer::get('Piwik\Plugins\Diagnostics\DiagnosticService');
+
$showAll = $input->getOption('all');
- $report = $this->diagnosticService->runDiagnostics();
+ $report = $diagnosticService->runDiagnostics();
foreach ($report->getAllResults() as $result) {
$items = $result->getItems();
diff --git a/plugins/Ecommerce/lang/fr.json b/plugins/Ecommerce/lang/fr.json
index f88e15c4da..8712177f50 100644
--- a/plugins/Ecommerce/lang/fr.json
+++ b/plugins/Ecommerce/lang/fr.json
@@ -1,5 +1,6 @@
{
"Ecommerce": {
- "Sales": "Ventes"
+ "Sales": "Ventes",
+ "ViewSalesBy": "Afficher les ventes par %s"
}
} \ No newline at end of file
diff --git a/plugins/ExamplePlugin/tests/System/expected/test___API.get_day.xml b/plugins/ExamplePlugin/tests/System/expected/test___API.get_day.xml
index 9327934fa5..0cbc594646 100644
--- a/plugins/ExamplePlugin/tests/System/expected/test___API.get_day.xml
+++ b/plugins/ExamplePlugin/tests/System/expected/test___API.get_day.xml
@@ -18,6 +18,15 @@
<nb_conversions>1</nb_conversions>
<nb_visits_converted>1</nb_visits_converted>
<revenue>2541</revenue>
+ <conversion_rate>50%</conversion_rate>
+ <nb_conversions_new_visit>1</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit>
+ <revenue_new_visit>2541</revenue_new_visit>
+ <conversion_rate_new_visit>50%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
<nb_pageviews>3</nb_pageviews>
<nb_uniq_pageviews>3</nb_uniq_pageviews>
<nb_downloads>0</nb_downloads>
@@ -26,7 +35,6 @@
<nb_uniq_outlinks>0</nb_uniq_outlinks>
<nb_searches>1</nb_searches>
<nb_keywords>1</nb_keywords>
- <conversion_rate>50%</conversion_rate>
<bounce_rate>0%</bounce_rate>
<nb_actions_per_visit>2</nb_actions_per_visit>
<avg_time_on_site>632</avg_time_on_site>
diff --git a/plugins/Feedback/lang/ar.json b/plugins/Feedback/lang/ar.json
index a0999b305c..01a49d9937 100644
--- a/plugins/Feedback/lang/ar.json
+++ b/plugins/Feedback/lang/ar.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "اتصل بفريق Piwik!",
"DoYouHaveBugReportOrFeatureRequest": "هل لديك خطأ أو ميزة تود إضافتها وتريد إخبارنا عنها؟",
"IWantTo": "أرغب في:",
"LearnWaysToParticipate": "تعرف على كافة الطرق التي يمكنك %s المساهمة %s بها.",
"ManuallySendEmailTo": "الرجاء إرسال رسالتك يدوياً إلى",
"SendFeedback": "أرسل التغذية الراجعة",
- "SpecialRequest": "هل لديك طلب خاص من فريق Piwik؟",
"ThankYou": "شكراً لمساعدتك في جعل Piwik أفضل!",
"VisitTheForums": "قم بزيارة %sالمنتديات%s"
}
diff --git a/plugins/Feedback/lang/be.json b/plugins/Feedback/lang/be.json
index d6c8eb93e6..0db00271d0 100644
--- a/plugins/Feedback/lang/be.json
+++ b/plugins/Feedback/lang/be.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Звяжыцеся з камандай Piwik!",
"DoYouHaveBugReportOrFeatureRequest": "Ці ёсць у вас памылка аб якой неабходна певедаміць?",
"IWantTo": "Я хачу, каб:",
"LearnWaysToParticipate": "Даведайцеся пра ўсе спосабы %s ўдзельнічыства %s",
"ManuallySendEmailTo": "Калі ласка, уручную адпраўце паведамленне да",
"SendFeedback": "Адправіць водгук",
- "SpecialRequest": "У вас ёсць спецыяльны запыт для каманды Piwik?",
"ThankYou": "Дзякуй за дапамогу нам зрабіць Piwik лепш!",
"VisitTheForums": "Наведайце %s форумы %s"
}
diff --git a/plugins/Feedback/lang/bg.json b/plugins/Feedback/lang/bg.json
index f51adad6c8..70b629ffe1 100644
--- a/plugins/Feedback/lang/bg.json
+++ b/plugins/Feedback/lang/bg.json
@@ -1,16 +1,13 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Свържете се с екипа на Piwik!",
"DoYouHaveBugReportOrFeatureRequest": "Желаете да докладвате за грешка или имате предложение?",
"IWantTo": "Желая да:",
"LearnWaysToParticipate": "Научете повече за начините, как бихте могли да %sучаствате%s",
"ManuallySendEmailTo": "Моля изпратете ръчно Вашето съобщение до",
"RateFeatureThankYouTitle": "Благодарим ви, че оценихте '%s'!",
"SendFeedback": "Изпрати съобщението",
- "SpecialRequest": "Имате ли специална молба към екипа на Piwik?",
"ThankYou": "Благодаря, че помогнахте да направим Piwik по-добър!",
"TopLinkTooltip": "Може да ни кажете какво мислите, както и да изискате професионална помощ.",
- "VisitTheForums": "Посетете нашият %sФорум%s",
- "WantToThankConsiderDonating": "Смятате, че Piwik е страхотен и искате да ни благодарите?"
+ "VisitTheForums": "Посетете нашият %sФорум%s"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/ca.json b/plugins/Feedback/lang/ca.json
index 0883c62268..fdf83f335c 100644
--- a/plugins/Feedback/lang/ca.json
+++ b/plugins/Feedback/lang/ca.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Contacta l'equip de Piwik!",
"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",
"ManuallySendEmailTo": "Siusplau envia el vostre missatge manualmetn a",
"SendFeedback": "Enviar Feedback",
- "SpecialRequest": "Teniu una sol·licitud especial per l'equip de Piwik?",
"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"
diff --git a/plugins/Feedback/lang/cs.json b/plugins/Feedback/lang/cs.json
index 6bfe80cff9..dd6adb0873 100644
--- a/plugins/Feedback/lang/cs.json
+++ b/plugins/Feedback/lang/cs.json
@@ -1,8 +1,6 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Kontaktujte tým Piwiku",
"DoYouHaveBugReportOrFeatureRequest": "Máte hlášení chyby, nebo námět na vylepšení?",
- "GetInTouch": "Jsme rádi za vaši zpětnou vazbu a vždy čteme všechny zprávy. Možná chcete nabídnout podnikatelskou příležitost, najmout Piwik konzultanta, podělit se o váš úspěch, nebo prostě pozdravit.",
"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",
@@ -15,12 +13,12 @@
"RateFeatureThankYouTitle": "Děkujeme za ohodnocení %s.",
"RateFeatureTitle": "Líbí se vám vlastnost %s? Ohodnoťte ji a zanechte komentář",
"SendFeedback": "Odeslat odezvu",
- "SpecialRequest": "Máte speciální požadavek na tým Piwiku?",
"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",
"ViewUserGuides": "Naučte se, jak konfigurovat Piwik a efektivně analyzovat data s našimi %1$suživatelskými příručkami%2$s",
- "VisitTheForums": "Navštivte %s forum%s",
- "WantToThankConsiderDonating": "Myslíte si, že je Piwik úžasný a chcete nám poděkovat?"
+ "PiwikProOfferIntro": "Naše nabídka obsahuje",
+ "PiwikProReviewPiwikSetup": "Kontrolu vašeho nastavení Piwik",
+ "VisitTheForums": "Navštivte %s forum%s"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/da.json b/plugins/Feedback/lang/da.json
index b98f0485f1..49e24e53f7 100644
--- a/plugins/Feedback/lang/da.json
+++ b/plugins/Feedback/lang/da.json
@@ -1,8 +1,6 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Kontakt Piwik holdet",
"DoYouHaveBugReportOrFeatureRequest": "Har du en fejlrapport eller en anmodning om en funktion?",
- "GetInTouch": "Vi værdsætter din feedback og læser altid alle meddelelser uanset om du har en forretningsidé, ønsker at finde en Piwik konsulent, fortæl os en succeshistorie eller blot sige hej!",
"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",
@@ -15,12 +13,10 @@
"RateFeatureThankYouTitle": "Tak for din bedømmelse '%s'!",
"RateFeatureTitle": "Kan du lide '%s' funktionen? Bedøm og efterlade en kommentar",
"SendFeedback": "Send tilbagemelding",
- "SpecialRequest": "Har du en speciel anmodning til Piwik holdet?",
"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",
- "WantToThankConsiderDonating": "Synes du at Piwik er fantastisk og ønsker du at takke os?"
+ "VisitTheForums": "Besøg %s Forum%s"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/de.json b/plugins/Feedback/lang/de.json
index 97ca5fdbcb..a0f4ffac7e 100644
--- a/plugins/Feedback/lang/de.json
+++ b/plugins/Feedback/lang/de.json
@@ -1,8 +1,6 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Kontaktieren Sie das Piwik Team!",
"DoYouHaveBugReportOrFeatureRequest": "Möchten Sie einen Fehler melden oder haben Sie eine Idee für eine neue Funktion?",
- "GetInTouch": "Wir wissen Ihr Feedback zu schätzen und lesen alle Nachrichten. Vielleicht wollen Sie ja eine Geschäftsmöglichkeit teilen, einen Piwik-Berater buchen, uns eine Erfolgsgeschichte erzählen oder einfach nur Hallo sagen!",
"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",
@@ -15,12 +13,22 @@
"RateFeatureThankYouTitle": "Danke für das Bewerten von '%s'!",
"RateFeatureTitle": "Gefällt Ihnen das Feature '%s'? Bitte bewerten Sie es und hinterlassen einen Kommentar!",
"SendFeedback": "Feedback absenden",
- "SpecialRequest": "Haben Sie eine spezielle Anfrage an das Team?",
"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",
"ViewUserGuides": "Lernen Sie mithilfe unseres %1$sBenutzerhandbuches%2$s, wie Sie Piwik konfigurieren können und wie Sie effektiv Ihre Daten analysieren.",
- "VisitTheForums": "Besuchen Sie die %s Foren%s",
- "WantToThankConsiderDonating": "Finden Sie Piwik genial und möchten uns danken?"
+ "CommunityHelp": "Hilfe aus der Community",
+ "ProfessionalHelp": "Profesionelle Hilfe",
+ "PiwikProIntro": "Piwik PRO bietet professionellen Support und Beratung an für Kunden, welche Piwik auf deren eigenen Infrastruktur hosten.",
+ "PiwikProOfferIntro": "Unser Angebot umfasst",
+ "PiwikProReviewPiwikSetup": "Eine Überprüfung Ihrer Piwik-Installation",
+ "PiwikProOptimizationMaintenance": "Piwik-Optimierung & -Wartung",
+ "PiwikProPhoneEmailSupport": "Telefon und E-Mail-Support",
+ "PiwikProTraining": "Benutzer-, Techik- und Entwickler-Schulungen",
+ "PiwikProPremiumFeatures": "Premiumfeatures",
+ "PiwikProCustomDevelopment": "Individuelle Programmierung",
+ "PiwikProAnalystConsulting": "Analysenberatung",
+ "ContactUs": "Kontaktieren Sie uns",
+ "VisitTheForums": "Besuchen Sie die %s Foren%s"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/el.json b/plugins/Feedback/lang/el.json
index 7533803dc2..58f53483e0 100644
--- a/plugins/Feedback/lang/el.json
+++ b/plugins/Feedback/lang/el.json
@@ -1,8 +1,6 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Επικοινωνήστε με την ομάδα του Piwik!",
"DoYouHaveBugReportOrFeatureRequest": "Έχετε να αναφέρετε ένα πρόβλημα ή ένα αίτημα για χαρακτηριστικό;",
- "GetInTouch": "Ευχαριστούμε για τα σχόλιά σας και να ξέρετε ότι διαβάζουμε όλα τα μηνύματα. Μπορεί να θέλετε να μοιραστείτε μαζί μας μια επιχειρηματική ευκαιρία εργασίας, να μας πείτε την ιστορία επιτυχίας σας ή απλά να πείτε ένα Γεια!",
"HowToCreateTicket": "Παρακαλούμε διαβάστε τις προτάσεις για τη σύνταξη μιας καλής %1$sαναφοράς σφάλματος%2$s ή %3$sαίτησης για νέο χαρακτηριστικό%4$s. Στη συνέχεια κάντε εγγραφή ή συνδεθείτε στην %5$sπαρακολούθηση αιτημάτων%6$s και υποβάλλετε ένα %7$sνέο αίτημα%8$s.",
"IWantTo": "Θέλω να:",
"LearnWaysToParticipate": "Μάθετε όλους του τρόπους που μπορείτε να %sσυμμετέχετε%s",
@@ -15,12 +13,22 @@
"RateFeatureThankYouTitle": "Ευχαριστούμε που βαθμολογήσατε το '%s'!",
"RateFeatureTitle": "Σας αρέσει το '%s' χαρακτηριστικό; Παρακαλούμε βαθμολογήστε το και αφήστε ένα σχόλιο",
"SendFeedback": "Στείλτε Επισημάνσεις",
- "SpecialRequest": "Έχετε κάποιο ειδικό αίτημα για την ομάδα του Piwik;",
"ThankYou": "Ευχαριστούμε που βοηθήσατε να κάνουμε το Piwik καλύτερο!",
"TopLinkTooltip": "Πείτε μας τι σκέφτεστε ή ζητήστε Επαγγελματική Υποστήριξη.",
"ViewAnswersToFAQ": "Δείτε τις απαντήσεις στις %sΣυχνές Ερωτήσεις%s",
"ViewUserGuides": "Μάθετε πως να παραμετροποιείτε το Piwik και να αναλύετε αποτελεσματικά τα δεδομένα σας με τους %1$sοδηγούς χρήση μας%2$s.",
- "VisitTheForums": "Επισκεφτείτε τις %s Δημόσιες Συζητήσεις%s",
- "WantToThankConsiderDonating": "Πιστεύετε ότι το Piwik είναι καταπληκτικό και θέλετε να μας ευχαριστήσετε;"
+ "CommunityHelp": "Βοήθεια από την κοινότητα",
+ "ProfessionalHelp": "Βοήθεια από επαγγελματίες",
+ "PiwikProIntro": "Το Piwik PRO παρέχει υποστήριξη από ειδικούς και συμβουλές σε πελάτες που τρέχουν το Piwik στη δική τους υποδομή.",
+ "PiwikProOfferIntro": "Η προσφορά μας καλύπτει",
+ "PiwikProReviewPiwikSetup": "Μια σύνοψη της εγκατάστασης του Piwik σας",
+ "PiwikProOptimizationMaintenance": "Βελτιστοποίηση του Piwik και υπηρεσίες συντήρησης",
+ "PiwikProPhoneEmailSupport": "Τηλεφωνική και με e-mail υποστήριξη",
+ "PiwikProTraining": "Εκπαίδευση για χρήστες, τεχνικούς και προγραμματιστές",
+ "PiwikProPremiumFeatures": "Χαρακτηριστικά έκδοσης επί πληρωμή",
+ "PiwikProCustomDevelopment": "Προσαρμοσμένες υπηρεσίες ανάπτυξης",
+ "PiwikProAnalystConsulting": "Υπηρεσίες συμβουλευτικής από αναλυτές",
+ "ContactUs": "Επικοινωνήστε μαζί μας",
+ "VisitTheForums": "Επισκεφτείτε τις %s Δημόσιες Συζητήσεις%s"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/es.json b/plugins/Feedback/lang/es.json
index eb3ef58882..2388f6bbf0 100644
--- a/plugins/Feedback/lang/es.json
+++ b/plugins/Feedback/lang/es.json
@@ -1,8 +1,6 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Contacta al equipo de Piwik!",
"DoYouHaveBugReportOrFeatureRequest": "Tienes un error que reportar o una nueva característica?",
- "GetInTouch": "Agradecemos tu feedback, nosotros leemos siempre todos los mensajes. Quizá te gustaría compartir una oportunidad comercial, contratar un consultor de Piwik, o contarnos sobre un éxito empresarial interesante o simplemente mandarnos un saludo!",
"IWantTo": "Yo quiero:",
"LearnWaysToParticipate": "Aprende sobre todas las formas de %sparticipar%s",
"ManuallySendEmailTo": "Por favor envíe su mensaje manualmente a",
@@ -13,12 +11,10 @@
"RateFeatureThankYouTitle": "¡Gracias por evaluar '%s'!",
"RateFeatureTitle": "¿Te gusta la función '%s'? Por favor evaluala y deja un comento",
"SendFeedback": "Enviar comentario",
- "SpecialRequest": "Tienes una petición especial para el equipo de Piwik?",
"ThankYou": "Gracias por ayudarnos a hacer un mejor Piwik",
"TopLinkTooltip": "Danos tu opinión o solicita Soporte Profesional",
"ViewAnswersToFAQ": "Ver respuestas a las %sPreguntas frecuentes%s",
"ViewUserGuides": "Aprende a configurar Piwik y a analizar tus datos de modo eficaz con nuestras %1$sguías de usuario%2$s",
- "VisitTheForums": "Visita el %sForo%s",
- "WantToThankConsiderDonating": "¿Piensas que Piwik es genial y te gustaría agradecernos?"
+ "VisitTheForums": "Visita el %sForo%s"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/fa.json b/plugins/Feedback/lang/fa.json
index a1e46eb536..9da5b8e998 100644
--- a/plugins/Feedback/lang/fa.json
+++ b/plugins/Feedback/lang/fa.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "ارتباط با تیم پیویک!",
"DoYouHaveBugReportOrFeatureRequest": "آیا شما یک باگ برای گزارش دارید یا درخواستی برای یک ویژگی جدید دارید؟",
"IWantTo": "من می خواهم به :",
"LearnWaysToParticipate": "درباره راه هایی که می توانید %sمشارکت کنید%s بیشتر بدانید.",
"ManuallySendEmailTo": "لطفا پیام خود را به صورت دستی ارسال کنید به",
"SendFeedback": "ارسال بازخورد",
- "SpecialRequest": "آیا شما درخواست ویژه ای از تیم پیویک دارید؟",
"ThankYou": "از شما برای کمک به بهتر کردن پیویک متشکریم!",
"TopLinkTooltip": "به ما بگویید چه می اندیشید یا پشتیبانی حرفه ای درخواست کنید.",
"VisitTheForums": "بازدید %s از فروم %s"
diff --git a/plugins/Feedback/lang/fi.json b/plugins/Feedback/lang/fi.json
index 46173ed6a4..48f3986a1e 100644
--- a/plugins/Feedback/lang/fi.json
+++ b/plugins/Feedback/lang/fi.json
@@ -1,6 +1,5 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Ota yhteyttä Piwikin tiimiin!",
"DoYouHaveBugReportOrFeatureRequest": "Onko sinulle virheraportti tai pyyntö uudesta ominaisuudesta?",
"IWantTo": "Haluan:",
"LearnWaysToParticipate": "Katso erilaisia tapoja %s osallistua%s",
@@ -10,10 +9,8 @@
"RateFeatureThankYouTitle": "Kiitos '%s':n arvostelemisesta!",
"RateFeatureTitle": "Pidätkö ominaisuudesta '%s'? Jätä arvostelu ja kommentti",
"SendFeedback": "Lähetä palaute",
- "SpecialRequest": "Onko sinulla erikoispyyntö Piwikin tiimille?",
"ThankYou": "Kiitos että autat parantamaan Piwikiä!",
"TopLinkTooltip": "Kerro meille mitä ajattelet, tai osta tukipalveluita (englanniksi).",
- "VisitTheForums": "Käy %s foorumeilla %s",
- "WantToThankConsiderDonating": "Onko Piwik mielestäsi mainio, ja haluat kiittää meitä?"
+ "VisitTheForums": "Käy %s foorumeilla %s"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/fr.json b/plugins/Feedback/lang/fr.json
index 52391d6dc7..9bfff5b40f 100644
--- a/plugins/Feedback/lang/fr.json
+++ b/plugins/Feedback/lang/fr.json
@@ -1,12 +1,11 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Contactez l’Équipe Piwik!",
"DoYouHaveBugReportOrFeatureRequest": "Avez-vous un bug à rapporter ou une fonctionnalité à demander ?",
- "GetInTouch": "Nous apprécions vos commentaires et lisons tous les messages. Peut-être voudriez vous nous informer d'une opportunité commerciale, employer un consultant, nous raconter un succès ou simplement dire bonjour !",
"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 suivit 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",
"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.",
"RateFeatureLeaveMessageDislike": "Nous sommes désolés de voir que vous n'aimez pas ça. N'hésitez pas à nous dire comme nous pouvons améliorer.",
"RateFeatureLeaveMessageLike": "Nous sommes heureux de savoir que vous l'aimez ! S'il vous plaît laissez-nous savoir ce que vous aimez le plus ou si vous avez une demande de fonctionnalité.",
@@ -14,12 +13,22 @@
"RateFeatureThankYouTitle": "Merci d'avoir noté \"%s\" !",
"RateFeatureTitle": "Est-ce que vous aimez la fonctionnalité \"%s\" ? Notez la et laissez un commentaire",
"SendFeedback": "Envoyer le retour",
- "SpecialRequest": "Avez-vous une demande spéciale pour l’Équipe Piwik ?",
"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",
"ViewUserGuides": "Apprenez comment configurer Piwik et comment analyser de manière efficaces vos données avec notre %1$sguide utilisateur%2$s",
- "VisitTheForums": "Visitez les %s Forums%s",
- "WantToThankConsiderDonating": "Vous pensez que Piwik est génial et voulez nous remercier ?"
+ "CommunityHelp": "Aide de la communauté",
+ "ProfessionalHelp": "Aide professionnelle",
+ "PiwikProIntro": "Piwik PRO fournit un service expert de support et de consultation aux clients qui hébergent Piwik sur leurs propres infrastructures.",
+ "PiwikProOfferIntro": "Notre offre inclut",
+ "PiwikProReviewPiwikSetup": "Une revue de votre installation Piwik",
+ "PiwikProOptimizationMaintenance": "Services d'optimisation et de maintenance",
+ "PiwikProPhoneEmailSupport": "Support courriel et téléphonique",
+ "PiwikProTraining": "Formation d'utilisation, technique et en développement",
+ "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"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/hi.json b/plugins/Feedback/lang/hi.json
index 4664eede3e..28f85ff992 100644
--- a/plugins/Feedback/lang/hi.json
+++ b/plugins/Feedback/lang/hi.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Piwik टीम से संपर्क!",
"DoYouHaveBugReportOrFeatureRequest": "क्या आपके पास एक बग की रिपोर्ट या एक सुविधा का अनुरोध है?",
"IWantTo": "मैं चाहता हूँ:",
"LearnWaysToParticipate": "सभी तरीकों के बारे में जानें, आप %s भाग %s ले सकते हैं",
"ManuallySendEmailTo": "अपने संदेश को स्वेक्षा से भेजने के लिए कृपया",
"SendFeedback": "प्रतिक्रिया भेजें",
- "SpecialRequest": "आपका Piwik टीम के लिए एक विशेष अनुरोध है?",
"ThankYou": "Piwik बेहतर बनाने में हमें मदद करने के लिए आपका शुक्रिया",
"TopLinkTooltip": "आप क्या सोचते हैं हमें बताओ,या व्यावसायिक सहायता का अनुरोध करे",
"VisitTheForums": "%s विचार मंच %s पर जाएँ"
diff --git a/plugins/Feedback/lang/hu.json b/plugins/Feedback/lang/hu.json
index 4326a6368a..8165b7f499 100644
--- a/plugins/Feedback/lang/hu.json
+++ b/plugins/Feedback/lang/hu.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Vedd fel a kapcsolatot a Piwik fejlesztőkkel!",
"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",
"ManuallySendEmailTo": "Kérjük, küldd el manuálisan az üzeneted ide:",
"SendFeedback": "Visszajelzés elküldése",
- "SpecialRequest": "Valamilyen speciális kérdésed lenne a Piwik fejlesztőkhőz?",
"ThankYou": "Köszönjük, hogy segítesz jobbá tenni a Piwik-et!",
"VisitTheForums": "Látogasd meg a %sFórumot%s"
}
diff --git a/plugins/Feedback/lang/id.json b/plugins/Feedback/lang/id.json
index 25e3a9bb02..39fed42539 100644
--- a/plugins/Feedback/lang/id.json
+++ b/plugins/Feedback/lang/id.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Kontak tim Piwik!",
"DoYouHaveBugReportOrFeatureRequest": "Apakah Anda ada laporan kutu atau permintaan fitur?",
"IWantTo": "Saya ingin:",
"LearnWaysToParticipate": "Pelajari bagaimana kamu dapat %s berpartisipasi%s",
"ManuallySendEmailTo": "Silakan kirim manual pesan Anda ke",
"SendFeedback": "Kirim Umpanbalik",
- "SpecialRequest": "Apakah anda memiliki permintaan khusus untuk tim Piwik?",
"ThankYou": "Terimaksih telah membantu kami menjadikan Piwik lebih baik!",
"TopLinkTooltip": "Katakan apa yang Anda pikirkan, atau membutuhkan Bantuan Profesional.",
"VisitTheForums": "Kunjungi %s Forum%s"
diff --git a/plugins/Feedback/lang/it.json b/plugins/Feedback/lang/it.json
index 714a8219cc..d069a7b1d2 100644
--- a/plugins/Feedback/lang/it.json
+++ b/plugins/Feedback/lang/it.json
@@ -1,8 +1,6 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Contatta il team Piwik!",
"DoYouHaveBugReportOrFeatureRequest": "Hai un bug da segnalare o una richiesta di funzionalità?",
- "GetInTouch": "Apprezziamo il tuo feedback e leggiamo sempre tutti i messaggi. Ma forse vorresti condividere qualche opportunità commerciale, ingaggiare un consulente di Piwik, raccontarci una storia di successi o semplicemente dirci Ciao!",
"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 crea un %7$snuovo problema%8$s.",
"IWantTo": "Vorrei:",
"LearnWaysToParticipate": "Impara tutti i modi attraverso i quali puoi %s partecipare %s",
@@ -15,12 +13,22 @@
"RateFeatureThankYouTitle": "Grazie per il voto '%s'!",
"RateFeatureTitle": "Ti piace la funzione '%s'? Votala e lascia un commento.",
"SendFeedback": "Invia",
- "SpecialRequest": "Hai una richiesta speciale per il team Piwik?",
"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",
"ViewUserGuides": "Impara a configurare Piwik e ad analizzare efficacemente i tuoi dati con le nostre %1$sguide utente%2$s",
- "VisitTheForums": "Visita il %s Forum %s",
- "WantToThankConsiderDonating": "Pensi che Piwik sia grande e vuoi ringraziarci?"
+ "CommunityHelp": "Aiuto dalla comunità",
+ "ProfessionalHelp": "Aiuto professionale",
+ "PiwikProIntro": "Piwik PRO fornisce il supporto di esperti e consulenza ai clienti che installano Piwik nella propria infrastruttura",
+ "PiwikProOfferIntro": "La nostra offerta include",
+ "PiwikProReviewPiwikSetup": "Analisi della tua installazione Piwik",
+ "PiwikProOptimizationMaintenance": "Servizi di manutenzione e ottimizzazione di Piwik",
+ "PiwikProPhoneEmailSupport": "Supporto telefonico ed email",
+ "PiwikProTraining": "Corsi per utenti, tecnici e sviluppatori",
+ "PiwikProPremiumFeatures": "Funzionalità esclusive",
+ "PiwikProCustomDevelopment": "Sviluppo personalizzato su commissione",
+ "PiwikProAnalystConsulting": "Consulenza di analisti",
+ "ContactUs": "Contattaci",
+ "VisitTheForums": "Visita il %s Forum %s"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/ja.json b/plugins/Feedback/lang/ja.json
index d5e925502a..80de66a240 100644
--- a/plugins/Feedback/lang/ja.json
+++ b/plugins/Feedback/lang/ja.json
@@ -1,8 +1,6 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Piwik チームと連絡を取る!",
"DoYouHaveBugReportOrFeatureRequest": "報告するべきバグや機能要望がありますか?",
- "GetInTouch": "フィードバックありがとうございます。私たちは、いつもすべてのメッセージを読んでいます。簡単な挨拶から、ビジネス機会の共有、 Piwik コンサルタントの採用、あなたのサクセスストーリーなど、様々なアイデアや意見を教えてください。",
"IWantTo": "あなたの希望:",
"LearnWaysToParticipate": "あなたが参加できるすべての方法を%s学んでください%s",
"ManuallySendEmailTo": "あなたのメッセージを手作業で次のアドレスへ送ってください:",
@@ -13,12 +11,10 @@
"RateFeatureThankYouTitle": "'%s' の評価をありがとう!",
"RateFeatureTitle": "'%s' の機能は好きですか ? ぜひ評価コメントを残してください。",
"SendFeedback": "フィードバックを送信",
- "SpecialRequest": "Piwik チームに対して特別なリクエストがありますか?",
"ThankYou": "私たちが Piwik をより良くするのを支援していただきありがとうございます!",
"TopLinkTooltip": "あなたの意見をお知らせください。または、プロフェッショナルサポートをリクエストしてください。",
"ViewAnswersToFAQ": "%sFrequently Asked Questions%s への答えをご覧ください。",
"ViewUserGuides": "Piwik の設定方法と、効果的なデータ分析方法は、%1$suser guides%2$s をご確認ください。",
- "VisitTheForums": "%sフォーラム%sにアクセスする",
- "WantToThankConsiderDonating": "Piwik の素晴らしさを実感し、Piwik チームに感謝したいと思いますか ?"
+ "VisitTheForums": "%sフォーラム%sにアクセスする"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/ka.json b/plugins/Feedback/lang/ka.json
index 764dac18a7..b4a46d99ed 100644
--- a/plugins/Feedback/lang/ka.json
+++ b/plugins/Feedback/lang/ka.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "დაუკავშირდით Piwik გუნდს!",
"DoYouHaveBugReportOrFeatureRequest": "არ გაქვთ შეცდომის რეპორტი ან მახასიათებლების მოთხოვნა?",
"IWantTo": "მე მინდა:",
"LearnWaysToParticipate": "გაეცანით ინფორმაციას %s მონაწილეობის%s მიღების ყველა გზის შესახებ",
"ManuallySendEmailTo": "გთხოვთ, ხელით გამოაგზავნეთ წერილი მისამართზე",
"SendFeedback": "გამოხმაურების გაგზავნა",
- "SpecialRequest": "გაქვთ სპეციალური მოთხოვნა Piwik გუნდთან?",
"ThankYou": "გმადლობთ, რომ გვეხმარებით Piwik გახდეს უკეთესი!",
"VisitTheForums": "იხილეთ %s ფორუმები%s"
}
diff --git a/plugins/Feedback/lang/ko.json b/plugins/Feedback/lang/ko.json
index fc7fa2520e..ed80f5b83b 100644
--- a/plugins/Feedback/lang/ko.json
+++ b/plugins/Feedback/lang/ko.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Piwik 팀에 연락하기!",
"DoYouHaveBugReportOrFeatureRequest": "발견한 버그나 기능에 대한 의견을 보고하시겠습니까?",
"IWantTo": "내가 원하는 것은:",
"LearnWaysToParticipate": "당신이 %s참여%s할 수있는 모든 방법",
"ManuallySendEmailTo": "당신의 메시지를 다음 주소로 직접 보내주세요:",
"SendFeedback": "의견 보내기",
- "SpecialRequest": "Piwik 팀에 특별한 요청이 있습니까?",
"ThankYou": "우리가 Piwik을 향상시키는 데 도움을 주셔서 감사합니다!",
"TopLinkTooltip": "당신이 생각하는 기술 지원 요청을 알려주세요.",
"VisitTheForums": "%s포럼%s으로 이동"
diff --git a/plugins/Feedback/lang/lt.json b/plugins/Feedback/lang/lt.json
index 0bb5fe694a..b9904de71b 100644
--- a/plugins/Feedback/lang/lt.json
+++ b/plugins/Feedback/lang/lt.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Susisiekite su Piwik komanda!",
"DoYouHaveBugReportOrFeatureRequest": "Norite pranešti apie aptiktą klaidą arba paprašyti naujų ypatybių?",
"IWantTo": "Aš noriu:",
"LearnWaysToParticipate": "Sužinokite kaip galite %s prisijungti%s",
"ManuallySendEmailTo": "Prašome išsiųsti rankiniu būdu",
"SendFeedback": "Siųsti atsiliepimą",
- "SpecialRequest": "Gal turite specialių pageidavimų Piwik komandai?",
"ThankYou": "Dėkojame už pagalbą kuriant tobulesnį Piwik!",
"VisitTheForums": "Apsilankykite %s forumuose%s"
}
diff --git a/plugins/Feedback/lang/lv.json b/plugins/Feedback/lang/lv.json
index 7171a93354..1a69aa6e39 100644
--- a/plugins/Feedback/lang/lv.json
+++ b/plugins/Feedback/lang/lv.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Kontaktēties ar Piwik komandu!",
"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",
"ManuallySendEmailTo": "Lūdzu manuāli nosūtiet savu ziņu uz",
"SendFeedback": "Sūtīt atsauksmes",
- "SpecialRequest": "Vai Jums ir speciāls pieprasījums Piwik komandai?",
"ThankYou": "Paldies, ka palīdzat uzlabot Piwik!"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/nb.json b/plugins/Feedback/lang/nb.json
index a2db506f90..5a7bca3c16 100644
--- a/plugins/Feedback/lang/nb.json
+++ b/plugins/Feedback/lang/nb.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Kontakt Piwik-laget!",
"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",
"ManuallySendEmailTo": "Send meldingen manuelt til",
"SendFeedback": "Send tilbakemelding",
- "SpecialRequest": "Har du en spesiell forespørsel til Piwik-laget?",
"ThankYou": "Takk for at du hjelper oss å lage Piwik bedre!",
"TopLinkTooltip": "Fortell oss hva du synes eller be om profesjonell støtte.",
"VisitTheForums": "Besøk %sforumet%s"
diff --git a/plugins/Feedback/lang/nl.json b/plugins/Feedback/lang/nl.json
index b916b19077..43f7a95fc3 100644
--- a/plugins/Feedback/lang/nl.json
+++ b/plugins/Feedback/lang/nl.json
@@ -1,6 +1,5 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Neem contact op met het Piwik team!",
"DoYouHaveBugReportOrFeatureRequest": "Heeft u een bugmelding of een verzoek voor nieuwe functies?",
"IWantTo": "Ik wil:",
"LearnWaysToParticipate": "Ontdek op welke manieren je kunt %s bijdragen%s",
@@ -10,11 +9,9 @@
"RateFeatureLeaveMessageLike": "We zijn blij dat je het leuk vind! Laat ons weten wat het leukste vind of als je een goed idee hebt.",
"RateFeatureThankYouTitle": "Bedank voor het waarderen '%s'!",
"SendFeedback": "Stuur Feedback",
- "SpecialRequest": "Heeft u een speciaal verzoek aan het Piwik team?",
"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",
- "VisitTheForums": "Bezoek de %s Forums %s",
- "WantToThankConsiderDonating": "Vind je Piwik geweldig en wil je ons bedanken?"
+ "VisitTheForums": "Bezoek de %s Forums %s"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/nn.json b/plugins/Feedback/lang/nn.json
index 4e2b13f950..e39e428944 100644
--- a/plugins/Feedback/lang/nn.json
+++ b/plugins/Feedback/lang/nn.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Kontakt Piwik-teamet!",
"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",
"ManuallySendEmailTo": "Send meldinga di manuelt til",
"SendFeedback": "Send attendemelding",
- "SpecialRequest": "Har du ein førespurnad til Piwik?",
"ThankYou": "Takk for at hjelper oss med å forbetra Piwik!",
"VisitTheForums": "Gå til %s Forumet%s"
}
diff --git a/plugins/Feedback/lang/pl.json b/plugins/Feedback/lang/pl.json
index 6e9139d94e..abf248a0c1 100644
--- a/plugins/Feedback/lang/pl.json
+++ b/plugins/Feedback/lang/pl.json
@@ -1,8 +1,6 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Kontakt z ekipą Piwik!",
"DoYouHaveBugReportOrFeatureRequest": "Czy odkryłeś błąd o którym chcesz poinformować, lub masz pomysł na nową funkcjonalność?",
- "GetInTouch": "Dziękujemy za uwagi i zawsze czytamy wszystkie wiadomości. Może chcesz podzielić się możliwościami biznesowymi, zatrudnić konsultanta Piwik, opowiedzieć nam historię sukcesu lub po prostu się przywitać!",
"IWantTo": "Pragnę:",
"LearnWaysToParticipate": "Poznaj wszystkie sposoby %s uczestnictwa%s",
"ManuallySendEmailTo": "Prosimy ręcznie wysłać swoją wiadomość",
@@ -12,11 +10,9 @@
"RateFeatureThankYouTitle": "Dziękujemy za ocenę '%s'!",
"RateFeatureTitle": "Czy podoba Ci się '%s' funkcja? Proszę ocenić i zostawić komentarz",
"SendFeedback": "Wyślij opinię",
- "SpecialRequest": "Czy masz wyjątkowe życzenia, które chcesz przekazać dla ekipy programistów z Piwik?",
"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",
- "WantToThankConsiderDonating": "Uważasz, że Piwik jest świetny i chcesz nam podziękować?"
+ "VisitTheForums": "Odwiedź %s forum%s"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/pt-br.json b/plugins/Feedback/lang/pt-br.json
index aa21148af1..a8f3b8961a 100644
--- a/plugins/Feedback/lang/pt-br.json
+++ b/plugins/Feedback/lang/pt-br.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Entre em contato com a equipe Piwik!",
"DoYouHaveBugReportOrFeatureRequest": "Você tem algum bug pra relatar ou alguma caracteristica para pedir?",
"IWantTo": "Eu quero:",
"LearnWaysToParticipate": "Aprenda sobre todas as maneiras que você pode %s participar %s",
"ManuallySendEmailTo": "Por favor envie manualmente sua mensagem para",
"SendFeedback": "Envie FeedBack",
- "SpecialRequest": "Você tem algum pedido especial para a equipe do Piwik?",
"ThankYou": "Obrigado por nos ajudar a fazer o Piwik melhor!",
"TopLinkTooltip": "Diga-nos o que você pensa, ou suporte.",
"VisitTheForums": "Visite o %s Foruns %s"
diff --git a/plugins/Feedback/lang/pt.json b/plugins/Feedback/lang/pt.json
index dc1a045b36..87c378e9e7 100644
--- a/plugins/Feedback/lang/pt.json
+++ b/plugins/Feedback/lang/pt.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Contacte a equipa Piwik!",
"DoYouHaveBugReportOrFeatureRequest": "Tem algum erro para reportar ou um pedido de funcionalidade?",
"IWantTo": "Eu quero:",
"LearnWaysToParticipate": "Aprenda todas as formas como pode %s participar%s",
"ManuallySendEmailTo": "Por favor envie a sua mensagem manualmente para",
"SendFeedback": "Enviar Opinião",
- "SpecialRequest": "Tem um pedido especial para a equipa Piwik?",
"ThankYou": "Obrigado por nos ajudar a melhorar o Piwik!",
"VisitTheForums": "Visitar os %s Fóruns%s"
}
diff --git a/plugins/Feedback/lang/ro.json b/plugins/Feedback/lang/ro.json
index 192e7080f9..b5dd25cca8 100644
--- a/plugins/Feedback/lang/ro.json
+++ b/plugins/Feedback/lang/ro.json
@@ -1,8 +1,6 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Contactează echipa Piwik!",
"DoYouHaveBugReportOrFeatureRequest": "Doreşti să raportezi o problemă sau să propui o înbunătăţire?",
- "GetInTouch": "Noi apreciem parerea dvs si citim intotdeauna toate mesajele. Poate ca doriti sa ne propuneti o oportunitate de afacere, sa angajati un consultant Piwik, sa ne spuneti o poveste de succes sau doar sa ne spuneti un simplu Salut!",
"IWantTo": "Doresc să:",
"LearnWaysToParticipate": "Invata despre toate modalitatile in care poti %s participa%s",
"ManuallySendEmailTo": "Va rugam trimiteti manual mesajul dvs catre",
@@ -13,12 +11,10 @@
"RateFeatureThankYouTitle": "Iti multumim pentru ca ai evaluat '%s'!",
"RateFeatureTitle": "Va place functionalitatea '%s' ? Va rugam evaluati si lasati un comentariu",
"SendFeedback": "Trimite Feedback",
- "SpecialRequest": "Ai o cerece deosebită către echipa Piwik?",
"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",
"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.",
- "WantToThankConsiderDonating": "Credeti ca Piwik este extraordinar si doriti sa ne multumiti?"
+ "VisitTheForums": "Vizitati %s Forumurile%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 7621181d28..ee89e264d1 100644
--- a/plugins/Feedback/lang/ru.json
+++ b/plugins/Feedback/lang/ru.json
@@ -1,11 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Свяжитесь с командой Piwik!",
"DoYouHaveBugReportOrFeatureRequest": "У вас есть багрепорт, или предложение по улучшению функционала?",
- "GetInTouch": "Мы ценим ваше мнение и всегда читаем все сообщения. Может быть, вы бы хотели нанять консультанта Piwik, рассказать нам историю успеха или просто сказать привет!",
"IWantTo": "Я хочу:",
"LearnWaysToParticipate": "Изучить все способы, с помощью которых вы можете %s поучаствовать%s",
"ManuallySendEmailTo": "Пожалуйста, отправьте ваше сообщение вручную на",
+ "PluginDescription": "Направляет обратную связь команде Piwik. Делитесь своими идеями и предложениями чтобы сделать Piwik лучшей аналитической платформой в мире!",
"PrivacyClaim": "Piwik уважает вашу %1$sконфиденциальность%2$s и дает вам полный контроль над вашими данными.",
"RateFeatureLeaveMessageDislike": "Мы сожалеем, что вам не понравилось! Пожалуйста, дайте нам знать что мы можем улучшить.",
"RateFeatureLeaveMessageLike": "Пожалуйста, дайте нам знать, что вам нравится больше всего, или хотите в дальнейшем улучшить.",
@@ -13,11 +12,9 @@
"RateFeatureThankYouTitle": "Спасибо за оценку '%s'!",
"RateFeatureTitle": "Вам нравится эта возможность: «%s»? Пожалуйста, оцените и оставьте комментарий",
"SendFeedback": "Отправить отзыв",
- "SpecialRequest": "У вас есть особая просьба или предложение команде Piwik?",
"ThankYou": "Спасибо за помощь в развитии Piwik!",
"TopLinkTooltip": "Расскажите о своей проблеме с Piwik или запросите профессиональную помощь.",
"ViewAnswersToFAQ": "Посмотреть ответы на %sЧасто Задаваемые Вопросы%s",
- "VisitTheForums": "Посетить %s Форумы%s",
- "WantToThankConsiderDonating": "Вы думаете Piwik потрясающий и хотите поблагодарить нас?"
+ "VisitTheForums": "Посетить %s Форумы%s"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/sl.json b/plugins/Feedback/lang/sl.json
index 09839ada45..ca65fe1a38 100644
--- a/plugins/Feedback/lang/sl.json
+++ b/plugins/Feedback/lang/sl.json
@@ -1,6 +1,5 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Kontaktiraje Piwik-ovo ekipo!",
"DoYouHaveBugReportOrFeatureRequest": "Imate napako ali pa željo, ki nam jo želite sporočiti?",
"IWantTo": "Želim:",
"LearnWaysToParticipate": "Oglejte si vse načine kako lahko %ssodelujete%s",
diff --git a/plugins/Feedback/lang/sq.json b/plugins/Feedback/lang/sq.json
index f90dd35605..f434ed5c54 100644
--- a/plugins/Feedback/lang/sq.json
+++ b/plugins/Feedback/lang/sq.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Lidhuni me ekipin e Piwik-ut!",
"DoYouHaveBugReportOrFeatureRequest": "Keni ndonjë të metë që ta raportoni apo kërkesë për veçori të reja?",
"IWantTo": "Dua të:",
"LearnWaysToParticipate": "Njihuni me krejt mënyrat përmes të cilave mund të %s merrni pjesë%s",
"ManuallySendEmailTo": "Ju lutem, dërgojeni mesazhin tuaj dorazi te",
"SendFeedback": "Dërgoji Përshtypjet",
- "SpecialRequest": "Keni ndonjë kërkesë speciale për ekipin e Piwik-ut?",
"ThankYou": "Faleminderit që na ndihmoni ta bëjmë më të mirë Piwik-un!",
"VisitTheForums": "Vizitoni %s Forumet%s"
}
diff --git a/plugins/Feedback/lang/sr.json b/plugins/Feedback/lang/sr.json
index 0fd25040a8..0fcc704228 100644
--- a/plugins/Feedback/lang/sr.json
+++ b/plugins/Feedback/lang/sr.json
@@ -1,8 +1,6 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Kontaktirajte Piwik tim!",
"DoYouHaveBugReportOrFeatureRequest": "Da li želite da prijavite grešku u programu ili imate neku želju?",
- "GetInTouch": "Zahvaljujemo vam na interesovanju, mi uvek pročitamo sve poruke. Možda želite da podelite sa nama poslovnu ponudu, unajmite Piwik konsultanta, da nam ispričate uspešnu priču ili jednostavno da nas pozdravite!",
"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",
@@ -14,12 +12,10 @@
"RateFeatureThankYouTitle": "Hvala vam na oceni '%s'!",
"RateFeatureTitle": "Da li vam se sviđa '%s'? Molimo vas da date ocenu i ostavite komentar",
"SendFeedback": "Pošaljite vaše zapažanje",
- "SpecialRequest": "Da li imate neki specijalan zahtev za Piwik tim?",
"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",
"ViewUserGuides": "Naučite kako da podesite Piwik i kako da efikasno analizirate vaše podatke prateći %1$skorisničko uputstvo%2$s",
- "VisitTheForums": "Posetite %s Forum%s",
- "WantToThankConsiderDonating": "Da li smatrate da je Piwik fenomenalan i želite da nam se zahvalite?"
+ "VisitTheForums": "Posetite %s Forum%s"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/sv.json b/plugins/Feedback/lang/sv.json
index b32fe3b57f..bad69f07d3 100644
--- a/plugins/Feedback/lang/sv.json
+++ b/plugins/Feedback/lang/sv.json
@@ -1,8 +1,6 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Kontakta Piwikteamet!",
"DoYouHaveBugReportOrFeatureRequest": "Har du en bugg att rapportera eller en funktionsbegäran?",
- "GetInTouch": "Vi uppskattar din feedback och läser alltid alla meddelanden. Du kanske vill dela en affärsmöjlighet, hyra en Piwik konsult, berätta en framgångssaga eller bara säga Hej!",
"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",
@@ -14,12 +12,10 @@
"RateFeatureThankYouTitle": "Tack för att du betygsatt '%s'!",
"RateFeatureTitle": "Tycker du om '%s'-funktionen? Vänligen betygsätt och lämna en kommentar",
"SendFeedback": "Skicka Feedback",
- "SpecialRequest": "Har du en speciell begäran för Piwikteamet?",
"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",
"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",
- "WantToThankConsiderDonating": "Tycker du att Piwik är fantastiskt och vill tacka oss?"
+ "VisitTheForums": "Besök %s Forumet%s"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/ta.json b/plugins/Feedback/lang/ta.json
index 8c8b06bbb1..aae11b5308 100644
--- a/plugins/Feedback/lang/ta.json
+++ b/plugins/Feedback/lang/ta.json
@@ -1,11 +1,9 @@
{
"Feedback": {
- "ContactThePiwikTeam": "piwik குழுவை தொடர்புகொள்ளுங்கள்!",
"DoYouHaveBugReportOrFeatureRequest": "நீங்கள் ஏதேனும் ஒரு பிழையை அல்லது புதிய அம்சம் பற்றி கோர வேண்டுமா?",
"IWantTo": "எனக்கு தேவை:",
"LearnWaysToParticipate": "நீங்கள் %s பங்குகொள்ளகூடிய%s அனைத்து வழிகளைவும் தெரிந்து கொள்ள",
"ManuallySendEmailTo": "தயவுசெய்து சுயமாக உங்கள் செய்தியை இவருக்கு அனுப்புங்கள்",
- "SendFeedback": "கருத்து தெரிவிக்க",
- "SpecialRequest": "Piwik குழுவுக்கு ஏதாவது விசேட கோரிக்கைகளை அனுப்ப விரும்புகிறீரா?"
+ "SendFeedback": "கருத்து தெரிவிக்க"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/th.json b/plugins/Feedback/lang/th.json
index 4743f7c2e5..11765a211e 100644
--- a/plugins/Feedback/lang/th.json
+++ b/plugins/Feedback/lang/th.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "ติดต่อทีมงาน Piwik",
"DoYouHaveBugReportOrFeatureRequest": "คุณมีข้อบกพร่องในการรายงานหรือการร้องขอคุณลักษณะหรือไม่",
"IWantTo": "ฉันอยากจะ:",
"LearnWaysToParticipate": "เรียนรู้เกี่ยวกับทั้งหมดด้วยวิธี %s คุณสามารถ %s มีส่วนร่วมได้",
"ManuallySendEmailTo": "กรุณาส่งข้อความของคุณด้วยตนเอง",
"SendFeedback": "ส่งคำติชม",
- "SpecialRequest": "คุณมีการร้องขอที่พิเศษสำหรับทีม Piwik ได้อย่างไร",
"ThankYou": "ขอบคุณที่ช่วยให้เราสามารถทำให้ Piwik ดีกว่า",
"VisitTheForums": "เข้าชม %s เว็บบอร์ด %s"
}
diff --git a/plugins/Feedback/lang/tl.json b/plugins/Feedback/lang/tl.json
index ec02366cc3..ed55c67f5b 100644
--- a/plugins/Feedback/lang/tl.json
+++ b/plugins/Feedback/lang/tl.json
@@ -1,8 +1,6 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Makipag-ugnay sa team ng Piwik!",
"DoYouHaveBugReportOrFeatureRequest": "Mayroon ka bang iuulat na bug o hihilinging feature?",
- "GetInTouch": "Aming pinahahalagahan ang iyong feedback at laging naming binabasa ang lahat ng mensahe. Kung ikaw ay may maibabahagi na negosyo makipagkasundo sa aming Piwik consultant magkwento sa amin ng isang kwento ng tagumpay o magsabi lamang ng Hello!",
"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",
@@ -14,12 +12,10 @@
"RateFeatureThankYouTitle": "Salamat sa pag-rate '%s'!",
"RateFeatureTitle": "Gusto mo ba ang '%s' feature? Paki-rate at mag-iwan ng komento",
"SendFeedback": "Magpadala ng Feedback",
- "SpecialRequest": "Meron ka bang espesyal na kahilingan para sa Piwik team?",
"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",
"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.",
- "WantToThankConsiderDonating": "Sa tingin mo ba ang Piwik ay mahusay at gusto mo kaming pasalamatan?"
+ "VisitTheForums": "Bisitahin ang mga %s Forum %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 3518584769..7afa546a62 100644
--- a/plugins/Feedback/lang/tr.json
+++ b/plugins/Feedback/lang/tr.json
@@ -1,6 +1,5 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Piwik takımıyla bağlantı kurun!",
"DoYouHaveBugReportOrFeatureRequest": "Hata raporu veya özellik öneriniz mi var?",
"IWantTo": "İstiyorum:",
"LearnWaysToParticipate": "%sOrtak olabileceğiniz%s tüm yolları öğrenin",
@@ -9,10 +8,8 @@
"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",
- "SpecialRequest": "Piwik takımına özel bir sorunuz var mı?",
"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",
- "WantToThankConsiderDonating": "Piwik'in muhteşem olduğunu düşünüyor ve bunun için teşekkür etmek ister misiniz?"
+ "VisitTheForums": "%sForumları%s ziyaret edin"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/uk.json b/plugins/Feedback/lang/uk.json
index febe706adf..94ce2e5322 100644
--- a/plugins/Feedback/lang/uk.json
+++ b/plugins/Feedback/lang/uk.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Звязатися з командою Piwik!",
"DoYouHaveBugReportOrFeatureRequest": "Ви хочете надіслати нам повідомлення про помилку чи попросити додати нову функцію?",
"IWantTo": "Я хочу:",
"LearnWaysToParticipate": "Дізнатися про всі способи %sдолучитися%s",
"ManuallySendEmailTo": "Будь-ласка надішліть ваше повідомлення власноручно на",
"SendFeedback": "Надіслати відгук",
- "SpecialRequest": "Чи є у вас спеціальне звернення до команди Piwik?",
"ThankYou": "Дякуємо що допомагаєте робити Piwik кращим!",
"VisitTheForums": "Відвідати %s Форум%s"
}
diff --git a/plugins/Feedback/lang/vi.json b/plugins/Feedback/lang/vi.json
index 566804f0fa..0c83ad805b 100644
--- a/plugins/Feedback/lang/vi.json
+++ b/plugins/Feedback/lang/vi.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "Liên hệ với Piwik!",
"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",
"ManuallySendEmailTo": "Hãy tự gửi thông điệp của bạn tới",
"SendFeedback": "Gửi feedback",
- "SpecialRequest": "Bạn có yêu cầu đặc biệt cho nhóm Piwik không?",
"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"
diff --git a/plugins/Feedback/lang/zh-cn.json b/plugins/Feedback/lang/zh-cn.json
index e1ab85e269..e95d1f0ddc 100644
--- a/plugins/Feedback/lang/zh-cn.json
+++ b/plugins/Feedback/lang/zh-cn.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "联系 Piwik 小组!",
"DoYouHaveBugReportOrFeatureRequest": "您有bug报告或要新增功能?",
"IWantTo": "我想要:",
"LearnWaysToParticipate": "了解所有您可以 %s 参与%s 的方法",
"ManuallySendEmailTo": "请手动发送信息至",
"SendFeedback": "提交反馈",
- "SpecialRequest": "您对 Piwik 小组有特别的请求?",
"ThankYou": "感谢您帮助我们改进 Piwik !",
"TopLinkTooltip": "告诉我们您的想法,或者寻求专业技术支持。",
"VisitTheForums": "访问 %s 论坛%s"
diff --git a/plugins/Feedback/lang/zh-tw.json b/plugins/Feedback/lang/zh-tw.json
index 096221721a..445de0fd3a 100644
--- a/plugins/Feedback/lang/zh-tw.json
+++ b/plugins/Feedback/lang/zh-tw.json
@@ -1,12 +1,10 @@
{
"Feedback": {
- "ContactThePiwikTeam": "聯絡 Piwik 團隊!",
"DoYouHaveBugReportOrFeatureRequest": "你有一個臭蟲回報或功能請求?",
"IWantTo": "我想要:",
"LearnWaysToParticipate": "瞭解所有你可以 %s 參與%s 的方法",
"ManuallySendEmailTo": "請手動寄送你的訊息至",
"SendFeedback": "送出意見",
- "SpecialRequest": "你對於 Piwik 小組有特殊的請求?",
"ThankYou": "謝謝你協助我們使 Piwik 變得更好!",
"TopLinkTooltip": "請分享您的意見,或提出專業支援要求。",
"VisitTheForums": "訪問 %s 論壇%s"
diff --git a/plugins/Goals/API.php b/plugins/Goals/API.php
index e4ecb322e5..2cb2366c34 100644
--- a/plugins/Goals/API.php
+++ b/plugins/Goals/API.php
@@ -9,6 +9,7 @@
namespace Piwik\Plugins\Goals;
use Exception;
+use Piwik\API\Request;
use Piwik\Archive;
use Piwik\CacheId;
use Piwik\Cache as PiwikCache;
@@ -18,11 +19,14 @@ use Piwik\Db;
use Piwik\Metrics;
use Piwik\Piwik;
use Piwik\Plugin\Report;
+use Piwik\Plugins\API\DataTable\MergeDataTables;
use Piwik\Plugins\CoreHome\Columns\Metrics\ConversionRate;
use Piwik\Plugins\Goals\Columns\Metrics\AverageOrderRevenue;
+use Piwik\Segment\SegmentExpression;
use Piwik\Site;
use Piwik\Tracker\Cache;
use Piwik\Tracker\GoalManager;
+use Piwik\Plugins\VisitFrequency\API as VisitFrequencyAPI;
/**
* Goals API lets you Manage existing goals, via "updateGoal" and "deleteGoal", create new Goals via "addGoal",
@@ -327,7 +331,7 @@ class API extends \Piwik\Plugin\API
}
/**
- * Returns Goals data
+ * Returns Goals data.
*
* @param int $idSite
* @param string $period
@@ -340,6 +344,55 @@ class API extends \Piwik\Plugin\API
public function get($idSite, $period, $date, $segment = false, $idGoal = false, $columns = array())
{
Piwik::checkUserHasViewAccess($idSite);
+
+ /** @var DataTable|DataTable\Map $table */
+ $table = null;
+
+ $segments = array(
+ '' => false,
+ '_new_visit' => 'visitorType%3D%3Dnew', // visitorType==new
+ '_returning_visit' => VisitFrequencyAPI::RETURNING_VISITOR_SEGMENT
+ );
+
+ foreach ($segments as $appendToMetricName => $predefinedSegment) {
+ $segmentToUse = $this->appendSegment($predefinedSegment, $segment);
+
+ /** @var DataTable|DataTable\Map $tableSegmented */
+ $tableSegmented = Request::processRequest('Goals.getMetrics', array(
+ 'segment' => $segmentToUse,
+ 'idSite' => $idSite,
+ 'period' => $period,
+ 'date' => $date,
+ 'idGoal' => $idGoal,
+ 'columns' => $columns,
+ 'serialize' => '0'
+ ));
+
+ $tableSegmented->filter('Piwik\Plugins\Goals\DataTable\Filter\AppendNameToColumnNames',
+ array($appendToMetricName));
+
+ if (!isset($table)) {
+ $table = $tableSegmented;
+ } else {
+ $merger = new MergeDataTables();
+ $merger->mergeDataTables($table, $tableSegmented);
+ }
+ }
+
+ return $table;
+ }
+
+ /**
+ * Similar to {@link get()} but does not return any metrics for new and returning visitors. It won't apply
+ * any segment by default. This method is deprecated from the API as it is only there to make the implementation of
+ * the actual {@link get()} method easy.
+ *
+ * @deprecated
+ * @internal
+ */
+ public function getMetrics($idSite, $period, $date, $segment = false, $idGoal = false, $columns = array())
+ {
+ Piwik::checkUserHasViewAccess($idSite);
$archive = Archive::build($idSite, $period, $date, $segment);
// Mapping string idGoal to internal ID
@@ -349,7 +402,7 @@ class API extends \Piwik\Plugin\API
$allMetrics = Goals::getGoalColumns($idGoal);
$requestedColumns = Piwik::getArrayFromApiParameter($columns);
- $report = Report::factory("Goals", "get");
+ $report = Report::factory('Goals', 'getMetrics');
$columnsToGet = $report->getMetricsRequiredForReport($allMetrics, $requestedColumns);
$inDbMetricNames = array_map(function ($name) use ($idGoal) {
@@ -368,7 +421,7 @@ class API extends \Piwik\Plugin\API
// it's not in ProcessedReport.php). more refactoring must be done to report class before this can be
// corrected.
if ((in_array('avg_order_revenue', $requestedColumns)
- || empty($requestedColumns))
+ || empty($requestedColumns))
&& $isEcommerceGoal
) {
$dataTable->filter(function (DataTable $table) {
@@ -391,6 +444,22 @@ class API extends \Piwik\Plugin\API
return $dataTable;
}
+ protected function appendSegment($segment, $segmentToAppend)
+ {
+ if (empty($segment)) {
+ return $segmentToAppend;
+ }
+
+ if (empty($segmentToAppend)) {
+ return $segment;
+ }
+
+ $segment .= urlencode(SegmentExpression::AND_DELIMITER);
+ $segment .= $segmentToAppend;
+
+ return $segment;
+ }
+
protected function getNumeric($idSite, $period, $date, $segment, $toFetch)
{
Piwik::checkUserHasViewAccess($idSite);
diff --git a/plugins/Goals/Controller.php b/plugins/Goals/Controller.php
index fe1a648e19..f7775262a3 100644
--- a/plugins/Goals/Controller.php
+++ b/plugins/Goals/Controller.php
@@ -48,13 +48,13 @@ class Controller extends \Piwik\Plugin\Controller
*/
private $translator;
- private function formatConversionRate($conversionRate)
+ private function formatConversionRate($conversionRate, $columnName = 'conversion_rate')
{
if ($conversionRate instanceof DataTable) {
if ($conversionRate->getRowsCount() == 0) {
$conversionRate = 0;
} else {
- $conversionRate = $conversionRate->getFirstRow()->getColumn('conversion_rate');
+ $conversionRate = $conversionRate->getFirstRow()->getColumn($columnName);
}
}
@@ -128,14 +128,11 @@ class Controller extends \Piwik\Plugin\Controller
$view->nameGraphEvolution = 'Goals.getEvolutionGraph' . $idGoal;
$view->topDimensions = $this->getTopDimensions($idGoal);
- // conversion rate for new and returning visitors
- $segment = urldecode(\Piwik\Plugins\VisitFrequency\API::RETURNING_VISITOR_SEGMENT);
- $conversionRateReturning = Request::processRequest("Goals.get", array('segment' => $segment, 'idGoal' => $idGoal));
- $view->conversion_rate_returning = $this->formatConversionRate($conversionRateReturning);
+ $goalMetrics = Request::processRequest('Goals.get', array('idGoal' => $idGoal));
- $segment = 'visitorType==new';
- $conversionRateNew = Request::processRequest("Goals.get", array('segment' => $segment, 'idGoal' => $idGoal));
- $view->conversion_rate_new = $this->formatConversionRate($conversionRateNew);
+ // 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->goalReportsByDimension = $this->getGoalReportsByDimensionTable(
$view->nb_conversions, isset($ecommerce), !empty($view->cart_nb_conversions));
@@ -168,27 +165,7 @@ class Controller extends \Piwik\Plugin\Controller
$view = new View('@Goals/manageGoals');
$this->setGeneralVariablesView($view);
-
- $goals = $this->goals;
- $view->goals = $goals;
-
- $idGoal = Common::getRequestVar('idGoal', 0, 'int');
- $view->idGoal = 0;
- if ($idGoal && array_key_exists($idGoal, $goals)) {
- $view->idGoal = $idGoal;
- }
-
- // unsanitize goal names and other text data (not done in API so as not to break
- // any other code/cause security issues)
-
- foreach ($goals as &$goal) {
- $goal['name'] = Common::unsanitizeInputValue($goal['name']);
- if (isset($goal['pattern'])) {
- $goal['pattern'] = Common::unsanitizeInputValue($goal['pattern']);
- }
- }
- $view->goalsJSON = json_encode($goals);
- $view->ecommerceEnabled = $this->site->isEcommerceEnabled();
+ $this->setEditGoalsViewVariables($view);
return $view->render();
}
@@ -263,6 +240,15 @@ class Controller extends \Piwik\Plugin\Controller
return $view->render();
}
+ public function editGoals()
+ {
+ $view = new View('@Goals/editGoals');
+ $this->setGeneralVariablesView($view);
+ $this->setEditGoalsViewVariables($view);
+ $view->userCanEditGoals = Piwik::isUserHasAdminAccess($this->idSite);
+ return $view->render();
+ }
+
public function getEvolutionGraph(array $columns = array(), $idGoal = false, array $defaultColumns = array())
{
if (empty($columns)) {
@@ -486,4 +472,28 @@ class Controller extends \Piwik\Plugin\Controller
return $goalReportsByDimension->render();
}
+
+ private function setEditGoalsViewVariables($view)
+ {
+ $goals = $this->goals;
+ $view->goals = $goals;
+
+ $idGoal = Common::getRequestVar('idGoal', 0, 'int');
+ $view->idGoal = 0;
+ if ($idGoal && array_key_exists($idGoal, $goals)) {
+ $view->idGoal = $idGoal;
+ }
+
+ // unsanitize goal names and other text data (not done in API so as not to break
+ // any other code/cause security issues)
+
+ foreach ($goals as &$goal) {
+ $goal['name'] = Common::unsanitizeInputValue($goal['name']);
+ if (isset($goal['pattern'])) {
+ $goal['pattern'] = Common::unsanitizeInputValue($goal['pattern']);
+ }
+ }
+ $view->goalsJSON = json_encode($goals);
+ $view->ecommerceEnabled = $this->site->isEcommerceEnabled();
+ }
}
diff --git a/plugins/Goals/DataTable/Filter/AppendNameToColumnNames.php b/plugins/Goals/DataTable/Filter/AppendNameToColumnNames.php
new file mode 100644
index 0000000000..70c2542892
--- /dev/null
+++ b/plugins/Goals/DataTable/Filter/AppendNameToColumnNames.php
@@ -0,0 +1,57 @@
+<?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\Goals\DataTable\Filter;
+
+use Piwik\DataTable\BaseFilter;
+use Piwik\DataTable;
+use Piwik\Metrics;
+
+/**
+ * Appends a string to each column name in each row of a table. Please note this filter even appends the name to a
+ * 'label' column. If you do not need this behaviour feel free to add a check to ignore label columns.
+ */
+class AppendNameToColumnNames extends BaseFilter
+{
+ protected $nameToAppend;
+
+ /**
+ * Constructor.
+ *
+ * @param DataTable $table The table that will be eventually filtered.
+ * @param string $nameToAppend The name that will be appended to each column
+ */
+ public function __construct($table, $nameToAppend)
+ {
+ parent::__construct($table);
+ $this->nameToAppend = $nameToAppend;
+ }
+
+ /**
+ * See {@link ReplaceColumnNames}.
+ *
+ * @param DataTable $table
+ */
+ public function filter($table)
+ {
+ if (!isset($this->nameToAppend) || '' === $this->nameToAppend || false === $this->nameToAppend) {
+ return;
+ }
+
+ foreach ($table->getRows() as $row) {
+ $columns = $row->getColumns();
+
+ foreach ($columns as $column => $value) {
+ $row->deleteColumn($column);
+ $row->setColumn($column . $this->nameToAppend, $value);
+ }
+
+ $this->filterSubTable($row);
+ }
+ }
+}
diff --git a/plugins/Goals/Menu.php b/plugins/Goals/Menu.php
index 579aada101..85db036797 100644
--- a/plugins/Goals/Menu.php
+++ b/plugins/Goals/Menu.php
@@ -24,43 +24,40 @@ class Menu extends \Piwik\Plugin\Menu
$goals = API::getInstance()->getGoals($idSite);
$mainGoalMenu = 'Goals_Goals';
- $linkToAddNewGoal = $this->urlForAction('addNewGoal', array(
- 'idGoal' => null
- ));
-
- $order = 1;
-
if (count($goals) == 0) {
-
+ $linkToAddNewGoal = $this->urlForAction('addNewGoal', array(
+ 'idGoal' => null,
+ ));
$menu->addItem($mainGoalMenu, '', $linkToAddNewGoal, 25);
+ $menu->addItem($mainGoalMenu, 'Goals_AddNewGoal', $linkToAddNewGoal, 1);
+ return;
+ }
- } else {
-
- $url = $this->urlForAction('index', array('idGoal' => null));
+ $order = 1;
- $menu->addItem($mainGoalMenu, '', $url, 25);
- $menu->addItem($mainGoalMenu, 'General_Overview', $url, ++$order);
+ $url = $this->urlForAction('index', array('idGoal' => null));
- $group = new Group();
- foreach ($goals as $goal) {
- $subMenuName = str_replace('%', '%%', Translate::clean($goal['name']));
- $params = $this->urlForAction('goalReport', array('idGoal' => $goal['idgoal']));
- $tooltip = sprintf('%s (id = %d)', $subMenuName, $goal['idgoal']);
+ $menu->addItem($mainGoalMenu, '', $url, 25);
+ $menu->addItem($mainGoalMenu, 'General_Overview', $url, ++$order);
- if (count($goals) > 3) {
- $group->add($subMenuName, $params, $tooltip);
- } else {
- $menu->addItem($mainGoalMenu, $subMenuName, $params, ++$order, $tooltip);
- }
- }
+ $group = new Group();
+ foreach ($goals as $goal) {
+ $subMenuName = str_replace('%', '%%', Translate::clean($goal['name']));
+ $params = $this->urlForAction('goalReport', array('idGoal' => $goal['idgoal']));
+ $tooltip = sprintf('%s (id = %d)', $subMenuName, $goal['idgoal']);
if (count($goals) > 3) {
- $menu->addGroup($mainGoalMenu, 'Goals_ChooseGoal', $group, ++$order, $tooltip = false);
+ $group->add($subMenuName, $params, $tooltip);
+ } else {
+ $menu->addItem($mainGoalMenu, $subMenuName, $params, ++$order, $tooltip);
}
+ }
+ if (count($goals) > 3) {
+ $menu->addGroup($mainGoalMenu, 'Goals_ChooseGoal', $group, ++$order, $tooltip = false);
}
- $menu->addItem($mainGoalMenu, 'Goals_AddNewGoal', $linkToAddNewGoal, ++$order);
+ $menu->addItem($mainGoalMenu, 'Goals_ManageGoals', $this->urlForAction('editGoals'), ++$order);
}
public function configureUserMenu(MenuUser $menu)
diff --git a/plugins/Goals/Reports/Get.php b/plugins/Goals/Reports/Get.php
index 163d9fe236..bccecda146 100644
--- a/plugins/Goals/Reports/Get.php
+++ b/plugins/Goals/Reports/Get.php
@@ -9,7 +9,6 @@
namespace Piwik\Plugins\Goals\Reports;
use Piwik\Piwik;
-use Piwik\Plugins\CoreHome\Columns\Metrics\ConversionRate;
class Get extends Base
{
@@ -18,7 +17,7 @@ class Get extends Base
parent::init();
$this->name = Piwik::translate('Goals_Goals');
- $this->processedMetrics = array(new ConversionRate());
+ $this->processedMetrics = array('conversion_rate');
$this->documentation = ''; // TODO
$this->order = 1;
$this->orderGoal = 50;
diff --git a/plugins/Goals/Reports/GetMetrics.php b/plugins/Goals/Reports/GetMetrics.php
new file mode 100644
index 0000000000..a2104823db
--- /dev/null
+++ b/plugins/Goals/Reports/GetMetrics.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\Plugins\Goals\Reports;
+
+use Piwik\Piwik;
+use Piwik\Plugins\CoreHome\Columns\Metrics\ConversionRate;
+
+class GetMetrics extends Base
+{
+ protected function init()
+ {
+ parent::init();
+
+ $this->name = Piwik::translate('Goals_Goals');
+ $this->processedMetrics = array(new ConversionRate());
+ $this->documentation = ''; // TODO
+ $this->order = 1;
+ $this->orderGoal = 50;
+ $this->metrics = array( 'nb_conversions', 'nb_visits_converted', 'revenue');
+ $this->parameters = null;
+ }
+
+ public function configureReportMetadata(&$availableReports, $infos)
+ {
+ }
+}
diff --git a/plugins/Goals/lang/da.json b/plugins/Goals/lang/da.json
index aba18e322b..38d495a5b4 100644
--- a/plugins/Goals/lang/da.json
+++ b/plugins/Goals/lang/da.json
@@ -10,8 +10,10 @@
"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",
"ChooseGoal": "Vælg mål",
"ClickOutlink": "Klik på et link til en ekstern hjemmeside",
+ "SendEvent": "Send en hændelse",
"ColumnAverageOrderRevenueDocumentation": "Gennemsnitlig ordreværdi (GOV) er den samlede indtjening fra alle e-handel ordrer divideret med antallet af ordrer.",
"ColumnAveragePriceDocumentation": "Gennemsnitlig indtjening for denne %s.",
"ColumnAverageQuantityDocumentation": "Gennemsnitlige mængde af denne %s solgt i e-handel ordrer.",
@@ -34,11 +36,11 @@
"ConversionsOverviewBy": "Konverteringsoversigt efter besøgstype",
"CreateNewGOal": "Opret nyt mål",
"DaysToConv": "Dage til konvertering",
+ "Details": "Mål detaljer",
"DefaultGoalConvertedOncePerVisit": "(standard) Målet kan kun konverteres én gang pr. besøg",
"DefaultRevenue": "Målets standard indtægter er",
"DefaultRevenueHelp": "F.eks. en kontaktformular sendt af en besøgende kan være 10 kr. værd i gennemsnit. Piwik vil hjælpe dig med at forstå, hvor godt dine besøgssegmenter klarer sig.",
"DeleteGoalConfirm": "Bekræft sletning af mål %s?",
- "Details": "Mål detaljer",
"DocumentationRevenueGeneratedByProductSales": "Produktsalg. Omfatter ikke moms, forsendelse og rabat",
"Download": "Henter en fil",
"Ecommerce": "E-handel",
@@ -57,6 +59,7 @@
"GoalIsTriggeredWhen": "Målet er opfyldt, når",
"GoalName": "Navn",
"Goals": "Mål",
+ "ManageGoals": "Administrer mål",
"GoalsOverview": "Måloversigt",
"GoalsOverviewDocumentation": "Oversigt over dine målkonverteringer. I første omgang viser diagrammet summen af alle konverteringer. %s Under diagrammet, kan du se konverteringsrapporter for hvert af dine mål. Minidiagrammer kan udvides ved at klikke på dem.",
"GoalX": "Mål %s",
@@ -64,7 +67,6 @@
"IsExactly": "er nøjagtig %s",
"LearnMoreAboutGoalTrackingDocumentation": "Lær mere om %s sporingsmål i Piwik%s i brugerdokumentationen.",
"LeftInCart": "%s tilbage i kurven",
- "ManageGoals": "Administrer mål",
"ManageGoalsOrCreateANewGoal": "%sAdministrer mål%s eller opret et nyt mål nu!",
"Manually": "manuelt",
"ManuallyTriggeredUsingJavascriptFunction": "Målet udløses manuelt ved hjælp af JavaScript API trackGoal ()",
@@ -77,12 +79,12 @@
"OverallRevenue": "%s samlede indtægter",
"PageTitle": "sidetitel",
"Pattern": "Mønster",
+ "PluginDescription": "Opret mål og se detaljerede rapporter om målkonverteringer: udvikling over tid, indtjening pr. besøg, konverteringer pr. henviser, pr. søgeord og meget mere.",
"ProductCategory": "Produktkategori",
"ProductName": "Produktnavn",
"Products": "Produkter",
"ProductSKU": "Produkt SKU",
"ReturningVisitorsConversionRateIs": "Tilbagevendende besøgendes konverteringsrate er %s",
- "SendEvent": "Send en hændelse",
"SingleGoalOverviewDocumentation": "Oversigt over konverteringer for et enkelt mål. %s Minidiagrammer under diagrammet kan forstørres ved at klikke på dem.",
"ThereIsNoGoalToManage": "Der er ingen mål at administrere for hjemmeside %s",
"UpdateGoal": "Opdater mål",
diff --git a/plugins/Goals/lang/el.json b/plugins/Goals/lang/el.json
index 9968b8a605..d44e3d90f6 100644
--- a/plugins/Goals/lang/el.json
+++ b/plugins/Goals/lang/el.json
@@ -9,10 +9,11 @@
"BestCountries": "Οι καλύτερες χώρες μετατροπής είναι:",
"BestKeywords": "Οι κορυφαίες λέξεις-κλειδιά μετατροπής είναι:",
"BestReferrers": "Οι καλύτεροι αναφορείς ιστοσελίδων μετατροπής είναι:",
- "CancelAndReturnToGoals": "Ακύρωση και %sεπιστροφή στη λίστα στόχων%s",
"CaseSensitive": "Ταίριασμα πεζών-κεφαλαίων",
+ "CancelAndReturnToGoals": "Ακύρωση και %sεπιστροφή στη λίστα στόχων%s",
"ChooseGoal": "Επιλέξτε Στόχο",
"ClickOutlink": "Το πάτημα Συνδέσμου προς εξωτερική ιστοσελίδα",
+ "SendEvent": "Αποστολή συμβάντος",
"ColumnAverageOrderRevenueDocumentation": "Μέση Τιμή Παραγγελίας (ΜΤΠ) είναι η συνολική πρόσοδος από όλες τις Ηλεκτρονικές Παραγγελίες διαιρεμένη με τον αριθμό των παραγγελιών.",
"ColumnAveragePriceDocumentation": "Η μέση πρόσοδος για αυτό το %s.",
"ColumnAverageQuantityDocumentation": "Η μέση ποσότητα αυτού του %s που πουλήθηκε με Ηλεκτρονική Παραγγελία.",
@@ -35,11 +36,11 @@
"ConversionsOverviewBy": "Επισκόπηση μετατροπών ανά τμήμα",
"CreateNewGOal": "Δημιουργία νέου Στόχου",
"DaysToConv": "Ημέρες για Μετατροπή",
+ "Details": "Λεπτομέρειες στόχου",
"DefaultGoalConvertedOncePerVisit": "(προεπιλογή) Ο Στόχος μετατρέπεται μόνο μια φορά την ημέρα",
"DefaultRevenue": "Η προεπιλεγμένη πρόσοδος του στόχου είναι",
"DefaultRevenueHelp": "Για παράδειγμα, μια Φόρμα Επικοινωνίας που υποβλήθηκε από έναν επισκέπτη μπορεί να αξίζει 10€ κατά μέσο όρο. Το Piwik θα σας βοηθήσει να καταλάβετε πως λειτουργούν τα τμήματα των χρηστών σας.",
"DeleteGoalConfirm": "Είστε σίγουροι ότι θέλετε να διαγράψετε το Στόχο %s;",
- "Details": "Λεπτομέρειες στόχου",
"DocumentationRevenueGeneratedByProductSales": "Πωλήσεις προϊόντος. Χωρίς φόρο, μεταφορικά και έκπτωση",
"Download": "Τη λήψη ενός αρχείου",
"Ecommerce": "Ηλεκτρονικό Εμπόριο",
@@ -58,6 +59,7 @@
"GoalIsTriggeredWhen": "Ο Στόχος ενεργοποιείτε όταν",
"GoalName": "Ονομασία Στόχου",
"Goals": "Στόχοι",
+ "ManageGoals": "Διαχείριση των Στόχων",
"GoalsOverview": "Επισκόπηση στόχων",
"GoalsOverviewDocumentation": "Αυτό είναι μια επισκόπηση των μετατροπών των στόχων σας. Αρχικά, το διάγραμμα δείχνει το άθροισμα όλων των μετατροπών. %s Κάτω από το διάγραμμα, μπορείτε να αναφορές μετατροπής για κάθε έναν από τους στόχους. Τα μικροδιαγράμματα μπορούν να μεγεθυνθούν πατώντας επάνω τους.",
"GoalX": "Στόχος %s",
@@ -65,7 +67,6 @@
"IsExactly": "είναι ακριβώς %s",
"LearnMoreAboutGoalTrackingDocumentation": "Μάθετε περισσότερα σχετικά με την %sΠαρακολούθηση Στόχων στο Piwik%s στην τεκμηρίωση για το χρήστη.",
"LeftInCart": "%s απομένουν στο καλάθι",
- "ManageGoals": "Διαχείριση των Στόχων",
"ManageGoalsOrCreateANewGoal": "%sΔιαχειριστείτε τους Στόχους%s ή δημιουργήστε τώρα έναν νέο!",
"Manually": "χειροκίνητα",
"ManuallyTriggeredUsingJavascriptFunction": "Ο Στόχος ενεργοποιείτε χειροκίνητα με χρήση του Javascript API trackGoal()",
@@ -84,7 +85,6 @@
"Products": "Προϊόντα",
"ProductSKU": "Προϊόν SKU",
"ReturningVisitorsConversionRateIs": "Ο βαθμός μετατροπής επιστρεφόμενων επισκεπτών είναι %s",
- "SendEvent": "Αποστολή συμβάντος",
"SingleGoalOverviewDocumentation": "Αυτή είναι μια επισκόπηση των μετατροπών για ένα μόνο στόχο. %s Τα μικροδιαγράμματα κάτω από το διάγραμμα μπορούν να μεγεθυνθούν πατώντας επάνω τους.",
"ThereIsNoGoalToManage": "Δεν υπάρχει στόχος για να διαχειριστείτε για τον ιστοτόπο %s",
"UpdateGoal": "Ενημέρωση Στόχου",
diff --git a/plugins/Goals/lang/fr.json b/plugins/Goals/lang/fr.json
index 61b3ccd469..81fa1817d1 100644
--- a/plugins/Goals/lang/fr.json
+++ b/plugins/Goals/lang/fr.json
@@ -10,8 +10,10 @@
"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",
"ChooseGoal": "Choisir un objectif",
"ClickOutlink": "Cliquent sur un lien vers un site externe",
+ "SendEvent": "Envoient un évènement",
"ColumnAverageOrderRevenueDocumentation": "Les recettes moyennes par commande représentent les recettes totales des commandes E-commerce divisées par le nombre de commandes.",
"ColumnAveragePriceDocumentation": "Revenu moyen pour %s.",
"ColumnAverageQuantityDocumentation": "Quantité moyenne vendue de %s dans les commandes E-commerce.",
@@ -34,6 +36,7 @@
"ConversionsOverviewBy": "Vue d'ensemble des conversions par type de visite",
"CreateNewGOal": "Créer un nouvel Objectif",
"DaysToConv": "Jours par conversion",
+ "Details": "Détails de l'objectif",
"DefaultGoalConvertedOncePerVisit": "(par défaut) Un objectif peut-être converti une seule fois par visite",
"DefaultRevenue": "Le revenu par défaut de l'objectif est",
"DefaultRevenueHelp": "Par exemple, un formulaire de contact soumis par un visiteur peut avoir une valeur de 10 € en moyenne. Piwik vous aidera à comprendre comment se comportent vos visiteurs.",
@@ -56,12 +59,15 @@
"GoalIsTriggeredWhen": "L'objectif est déclenché quand",
"GoalName": "Nom de l'objectif",
"Goals": "Objectifs",
+ "ManageGoals": "Gérer les objectifs",
"GoalsOverview": "Vue d'ensemble des Objectifs",
"GoalsOverviewDocumentation": "Ceci est un aperçu de vos conversions d'objectifs. Initialement, le graphique, affiche la somme des conversions. %s Sous le graphique, vous pouvez voir les rapports de conversion pour chacun de vos objectifs. Les lignes de tendance peuvent être agrandies en cliquant dessus.",
"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.",
"LeftInCart": "%s laissé(s) dans le panier",
+ "ManageGoalsOrCreateANewGoal": "%sGérer les objectifs%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",
@@ -73,13 +79,14 @@
"OverallRevenue": "%s revenu global",
"PageTitle": "Titre de la page",
"Pattern": "Modèle",
+ "PluginDescription": "Créez des Objectifs et obtenez des rapports détaillés à propos de leur conversion : évolution au cours du temps, revenus par visite, conversion par référant, par mot clef et plus.",
"ProductCategory": "Catégorie du produit",
"ProductName": "Nom du produit",
"Products": "Produits",
"ProductSKU": "Code Produit",
"ReturningVisitorsConversionRateIs": "Le taux de conversion des visiteurs déjà venus est %s",
- "SendEvent": "Envoient un évènement",
"SingleGoalOverviewDocumentation": "Ceci est un aperçu des conversions pour un seul Objectif. %s les lignes de tendance sous le graphique peuvent être agrandies en cliquant dessus.",
+ "ThereIsNoGoalToManage": "Il n'y a aucun objectif à gérer pour le site %s",
"UpdateGoal": "Mettre à jour un objectif",
"URL": "URL",
"ViewAndEditGoals": "Afficher et modifier un Objectif",
diff --git a/plugins/Goals/lang/ru.json b/plugins/Goals/lang/ru.json
index 438344e6a8..273ebf98c0 100644
--- a/plugins/Goals/lang/ru.json
+++ b/plugins/Goals/lang/ru.json
@@ -9,10 +9,11 @@
"BestCountries": "Наиболее популярные страны:",
"BestKeywords": "Наиболее популярные ключевые слова:",
"BestReferrers": "Наиболее популярные источники входа:",
- "CancelAndReturnToGoals": "Отмена и %sвозврат к списку целей%s",
"CaseSensitive": "Совпадения являются чувствительными к регистру",
+ "CancelAndReturnToGoals": "Отмена и %sвозврат к списку целей%s",
"ChooseGoal": "Выберите цель",
"ClickOutlink": "Переходят по ссылке на внешний сайт",
+ "SendEvent": "Отправляют событие",
"ColumnAverageOrderRevenueDocumentation": "Средняя цена за заказ – общая прибыль за все эл. заказы, разделенная на число заказов.",
"ColumnAveragePriceDocumentation": "Средняя прибыль для %s.",
"ColumnAverageQuantityDocumentation": "Среднее количество %s, проданных через электронные заказы.",
@@ -35,11 +36,11 @@
"ConversionsOverviewBy": "Обзор конверсий по типам посещения",
"CreateNewGOal": "Создать новую цель",
"DaysToConv": "Конверсия по дням",
+ "Details": "Подробнее о цели",
"DefaultGoalConvertedOncePerVisit": "(по умолчанию) Цель может быть засчитана единожды за посещение",
"DefaultRevenue": "Стоимость цели по умолчанию:",
"DefaultRevenueHelp": "Например, форма заказа, отправленная посетителем, имеет среднюю цену $10. Тогда Веб-аналитика подсчитает суммарную прибыль за вас",
"DeleteGoalConfirm": "Вы уверены, что желаете удалить цель %s?",
- "Details": "Подробнее о цели",
"DocumentationRevenueGeneratedByProductSales": "Продажи товаров. Без налогов, цены доставки и скидок",
"Download": "Скачивают файл",
"Ecommerce": "Эл. коммерция",
@@ -58,6 +59,7 @@
"GoalIsTriggeredWhen": "когда",
"GoalName": "Название Цели",
"Goals": "Цели",
+ "ManageGoals": "Управление целями",
"GoalsOverview": "Обзор целей",
"GoalsOverviewDocumentation": "Это обзор конверсии ваших целей. График показывает сумму всех конверсий. %s Под графиком можно увидеть отчет по конверсиям - по каждой из целей. Графики могут быть увеличены при клике на них.",
"GoalX": "Цель %s",
@@ -65,7 +67,6 @@
"IsExactly": "точно %s",
"LearnMoreAboutGoalTrackingDocumentation": "Узнать больше об %sотслеживании целей в Piwik%s в руководстве пользователя.",
"LeftInCart": "%s брошено в корзине",
- "ManageGoals": "Управление целями",
"ManageGoalsOrCreateANewGoal": "%sУправляйте целями%s или создайте новую прямо сейчас!",
"Manually": "ручная настройка",
"ManuallyTriggeredUsingJavascriptFunction": "Цель вручную стала условной через Javascript API trackGoal()",
@@ -83,7 +84,6 @@
"Products": "Товары",
"ProductSKU": "Артикул",
"ReturningVisitorsConversionRateIs": "Коэффициент наиболее частых вернувшихся посетителей %s",
- "SendEvent": "Отправляют событие",
"SingleGoalOverviewDocumentation": "Это обзор конверсий по конкретной цели. %s Графики, показанные ниже, можно увеличить, кликнув по ним.",
"ThereIsNoGoalToManage": "Нет целей для редактирования и просмотра для сайта %s",
"UpdateGoal": "Обновить цель",
diff --git a/plugins/Goals/templates/addNewGoal.twig b/plugins/Goals/templates/addNewGoal.twig
index 2dfd23c965..00c23f47c7 100644
--- a/plugins/Goals/templates/addNewGoal.twig
+++ b/plugins/Goals/templates/addNewGoal.twig
@@ -2,7 +2,7 @@
<h2 piwik-enriched-headline>{{ 'Goals_AddNewGoal'|translate }}</h2>
<p>{{ 'Goals_NewGoalIntro'|translate }}</p>
<p>{{ 'Goals_LearnMoreAboutGoalTrackingDocumentation'|translate("<a href='?module=Proxy&action=redirect&url=http://piwik.org/docs/tracking-goals-web-analytics/' target='_blank'>","</a>")|raw }}
- {{ 'Goals_ManageGoalsOrCreateANewGoal'|translate("<a href='" ~ linkTo({'module':'Goals','action':'manage'}) ~ "'>","</a>")|raw }}
+ {{ 'Goals_ManageGoalsOrCreateANewGoal'|translate("<a href='#module=Goals&action=editGoals'>","</a>")|raw }}
</p>
{% include "@Goals/_addEditGoal.twig" %}
diff --git a/plugins/Goals/templates/editGoals.twig b/plugins/Goals/templates/editGoals.twig
new file mode 100644
index 0000000000..ecba5494be
--- /dev/null
+++ b/plugins/Goals/templates/editGoals.twig
@@ -0,0 +1,17 @@
+{% if userCanEditGoals %}
+
+ <h2 piwik-enriched-headline>{{ 'Goals_ManageGoals'|translate }}</h2>
+
+ {% include "@Goals/_addEditGoal.twig" %}
+
+{% else %}
+
+ <h2>{{ 'Goals_CreateNewGOal'|translate }}</h2>
+ <p>
+ {{ 'Goals_NoGoalsNeedAccess'|translate|raw }}
+ </p>
+ <p>
+ {{ 'Goals_LearnMoreAboutGoalTrackingDocumentation'|translate("<a href='?module=Proxy&action=redirect&url=http://piwik.org/docs/tracking-goals-web-analytics/' target='_blank'>","</a>")|raw }}
+ </p>
+
+{% endif %} \ No newline at end of file
diff --git a/plugins/Goals/templates/getOverviewView.twig b/plugins/Goals/templates/getOverviewView.twig
index 798c8fc285..1c6098c5ee 100644
--- a/plugins/Goals/templates/getOverviewView.twig
+++ b/plugins/Goals/templates/getOverviewView.twig
@@ -15,21 +15,32 @@
</a>
</h2>
+ {% if not isWidget %}
<div class="row">
<div class="col-md-6">
+ {% endif %}
+
<div class="sparkline">{{ sparkline(goal.urlSparklineConversions) }}
{{ 'Goals_Conversions'|translate("<strong>"~nb_conversions~"</strong>")|raw }}
{% if goal.goalAllowMultipleConversionsPerVisit %}
({{ 'General_NVisits'|translate("<strong>"~nb_visits_converted~"</strong>") | raw }})
{% endif %}
</div>
+
+ {% if not isWidget %}
</div>
<div class="col-md-6">
+ {% endif %}
+
<div class="sparkline">{{ sparkline(goal.urlSparklineConversionRate) }}
{{ 'Goals_ConversionRate'|translate("<strong>"~conversion_rate~"</strong>")|raw }}
</div>
+
+ {% if not isWidget %}
</div>
</div>
+ {% endif %}
+
</div>
{% endfor %}
diff --git a/plugins/Goals/tests/Unit/AppendNameToColumnNamesTest.php b/plugins/Goals/tests/Unit/AppendNameToColumnNamesTest.php
new file mode 100644
index 0000000000..b409ae1fbb
--- /dev/null
+++ b/plugins/Goals/tests/Unit/AppendNameToColumnNamesTest.php
@@ -0,0 +1,100 @@
+<?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\Goals\tests\Unit;
+
+use Piwik\DataTable;
+use Piwik\DataTable\Row;
+use Piwik\Tests\Framework\TestCase\UnitTestCase;
+
+/**
+ * @group AppendNameToColumnNamesTest
+ * @group AppendNameToColumnNames
+ * @group DataTable
+ * @group Filter
+ * @group Goals
+ */
+class AppendNameToColumnNamesTest extends UnitTestCase
+{
+ private $filter = 'Piwik\Plugins\Goals\DataTable\Filter\AppendNameToColumnNames';
+
+ /**
+ * @var DataTable
+ */
+ private $table;
+
+ public function setUp()
+ {
+ $this->table = new DataTable\Simple();
+ $this->addRow(array('nb_visits' => 1, 'nb_conversions' => 5, 'revenue' => 10, 'conversion_rate' => 20));
+ }
+
+ private function addRow($columns)
+ {
+ $this->table->addRow($this->buildRow($columns));
+ }
+
+ private function buildRow($columns)
+ {
+ return new Row(array(Row::COLUMNS => $columns));
+ }
+
+ public function test_filter_shouldNotAppendAnything_IfNameToReplaceIsEmpty()
+ {
+ $columnNamesBefore = array('nb_visits', 'nb_conversions', 'revenue', 'conversion_rate');
+
+ $this->table->filter($this->filter, array(''));
+ $this->table->filter($this->filter, array(null));
+ $this->table->filter($this->filter, array(false));
+
+ $columnNamesAfter = array_keys($this->table->getFirstRow()->getColumns());
+ $this->assertSame($columnNamesBefore, $columnNamesAfter);
+ }
+
+ public function test_filter_shoulAppendGivenStringToAllColumns_IfSet()
+ {
+ $nameToAppend = '_new_visit';
+ $this->table->filter($this->filter, array($nameToAppend));
+
+ $expected = array(
+ 'nb_visits' . $nameToAppend => 1,
+ 'nb_conversions' . $nameToAppend => 5,
+ 'revenue' . $nameToAppend => 10,
+ 'conversion_rate' . $nameToAppend => 20
+ );
+
+ $this->assertColumnsOfRowIdEquals($expected, $rowId = 0);
+ }
+
+ public function test_filter_shoulAppendGivenStringToAllColumnsOfAllRows_EvenIfTheyHaveDifferentColumns()
+ {
+ $this->addRow(array('nb_visits' => 49));
+
+ $nameToAppend = '_new_visit';
+ $this->table->filter($this->filter, array($nameToAppend));
+
+ $expectedRow1 = array(
+ 'nb_visits' . $nameToAppend => 1,
+ 'nb_conversions' . $nameToAppend => 5,
+ 'revenue' . $nameToAppend => 10,
+ 'conversion_rate' . $nameToAppend => 20
+ );
+
+ $expectedRow2 = array(
+ 'nb_visits' . $nameToAppend => 49,
+ );
+
+ $this->assertColumnsOfRowIdEquals($expectedRow1, $rowId = 0);
+ $this->assertColumnsOfRowIdEquals($expectedRow2, $rowId = 1);
+ }
+
+ private function assertColumnsOfRowIdEquals($expectedColumns, $rowId)
+ {
+ $this->assertSame($expectedColumns, $this->table->getRowFromId($rowId)->getColumns());
+ }
+} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/da.json b/plugins/ImageGraph/lang/da.json
index ec4e208ed5..72b5ba3c0b 100644
--- a/plugins/ImageGraph/lang/da.json
+++ b/plugins/ImageGraph/lang/da.json
@@ -1,5 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "Kolonnen '%s' blev ikke fundet i denne rapport. Prøv en af %s"
+ "ColumnOrdinateMissing": "Kolonnen '%s' blev ikke fundet i denne rapport. Prøv en af %s",
+ "PluginDescription": "Generer flotte statiske PNG Graph billeder til alle datarapporter."
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/fr.json b/plugins/ImageGraph/lang/fr.json
index 5287312b14..b2e3e5abc8 100644
--- a/plugins/ImageGraph/lang/fr.json
+++ b/plugins/ImageGraph/lang/fr.json
@@ -1,5 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "La colonne '%s' n'a pas été trouvée dans ce rapport. Essayez parmi %s"
+ "ColumnOrdinateMissing": "La colonne '%s' n'a pas été trouvée dans ce rapport. Essayez parmi %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/Insights/Visualizations/Insight/RequestConfig.php b/plugins/Insights/Visualizations/Insight/RequestConfig.php
index b7d1d16eb0..585d3092cb 100644
--- a/plugins/Insights/Visualizations/Insight/RequestConfig.php
+++ b/plugins/Insights/Visualizations/Insight/RequestConfig.php
@@ -26,7 +26,6 @@ class RequestConfig extends VisualizationRequestConfig
public function __construct()
{
$this->disable_generic_filters = true;
- $this->disable_queued_filters = true;
$properties = array(
'min_growth_percent',
diff --git a/plugins/Insights/lang/bg.json b/plugins/Insights/lang/bg.json
index 76bf392c12..1a9e736782 100644
--- a/plugins/Insights/lang/bg.json
+++ b/plugins/Insights/lang/bg.json
@@ -2,8 +2,12 @@
"Insights": {
"ControlComparedToDescription": "Ръст спрямо",
"DayComparedToPreviousDay": "предишен ден",
+ "DayComparedToPreviousWeek": "същия ден през предходната седмица",
+ "DayComparedToPreviousYear": "същия ден през предходната година",
"Filter": "Филтър",
"FilterOnlyNew": "Само нови",
+ "MonthComparedToPreviousMonth": "предишен месец",
+ "MonthComparedToPreviousYear": "същия месец на предходната година",
"TitleRowDisappearedDetails": "'%1$s' намалял с %2$s и изчезна в %3$s сравнено с %4$s.",
"WeekComparedToPreviousWeek": "предишна седмица",
"YearComparedToPreviousYear": "предишна година"
diff --git a/plugins/Insights/lang/cs.json b/plugins/Insights/lang/cs.json
index 792d9dae66..1589d24ed2 100644
--- a/plugins/Insights/lang/cs.json
+++ b/plugins/Insights/lang/cs.json
@@ -3,9 +3,9 @@
"ControlComparedToDescription": "Růst ve srovnání s",
"ControlFilterByDescription": "Zobrazit všechny, pouze hybatele, pouze nové nebo ztracené",
"DatePeriodCombinationNotSupported": "Pro tuto kombinaci období a data není možné vytvořit vhledy.",
- "DayComparedToPreviousDay": "předchozí den",
- "DayComparedToPreviousWeek": "stejný den v předchozím týdnu",
- "DayComparedToPreviousYear": "stejný den v předchozím roce",
+ "DayComparedToPreviousDay": "Předchozí den",
+ "DayComparedToPreviousWeek": "Stejný den v minulém týdnu",
+ "DayComparedToPreviousYear": "Stejný den v předchozím roce",
"Filter": "Filtr",
"FilterIncreaserAndDecreaser": "Zvyšovač & snižovač",
"FilterOnlyDecreaser": "Pouze snižovač",
@@ -27,7 +27,7 @@
"TitleRowDisappearedDetails": "'%1$s' se snížili o %2$s a ztratili se v %3$s ve srovnání s %4$s.",
"TitleRowMoverAndShaker": "Tento řádek měl větší dopad než průměr.",
"TitleRowNewDetails": "'%1$s' se zvýšili o %2$s a jsou noví ve srovnání s %3$s.",
- "WeekComparedToPreviousWeek": "předchozí týden",
+ "WeekComparedToPreviousWeek": "minulý týden",
"WidgetCategory": "Vhledy",
"YearComparedToPreviousYear": "předchozí rok"
}
diff --git a/plugins/Insights/lang/et.json b/plugins/Insights/lang/et.json
index 6a83802c17..9ce41d8ad1 100644
--- a/plugins/Insights/lang/et.json
+++ b/plugins/Insights/lang/et.json
@@ -1,5 +1,10 @@
{
"Insights": {
- "Filter": "Filter"
+ "DayComparedToPreviousDay": "eelmine päev",
+ "DayComparedToPreviousWeek": "sama päev eelmisel nädalal",
+ "DayComparedToPreviousYear": "sama päev eelmisel aastal",
+ "Filter": "Filter",
+ "MonthComparedToPreviousMonth": "eelmine kuu",
+ "WeekComparedToPreviousWeek": "eelmine nädal"
}
} \ No newline at end of file
diff --git a/plugins/Insights/lang/it.json b/plugins/Insights/lang/it.json
index a864b1754c..7134414a68 100644
--- a/plugins/Insights/lang/it.json
+++ b/plugins/Insights/lang/it.json
@@ -4,8 +4,8 @@
"ControlFilterByDescription": "Mostra tutto, solo protagoniste, solo nuove o solo scomparse",
"DatePeriodCombinationNotSupported": "Non è possibile generare approfondimenti per questa combinazione di data e periodo.",
"DayComparedToPreviousDay": "giorno precedente",
- "DayComparedToPreviousWeek": "stesso giorno della settimana precedente",
- "DayComparedToPreviousYear": "stesso giorno dell'anno precedente",
+ "DayComparedToPreviousWeek": "lo stesso giorno della settimana precedente",
+ "DayComparedToPreviousYear": "lo stesso giorno dell'anno precedente",
"Filter": "Filtro",
"FilterIncreaserAndDecreaser": "Crescono & Diminuiscono",
"FilterOnlyDecreaser": "Diminuiscono solamente",
diff --git a/plugins/Insights/lang/ja.json b/plugins/Insights/lang/ja.json
index ffc0f54585..9695c7fa54 100644
--- a/plugins/Insights/lang/ja.json
+++ b/plugins/Insights/lang/ja.json
@@ -3,9 +3,9 @@
"ControlComparedToDescription": "比較する実績値は",
"ControlFilterByDescription": "すべて、変動のみ、新規のみ、削除のみを表示",
"DatePeriodCombinationNotSupported": "この日付と期間の組み合わせに対するインサイトは作成できません。",
- "DayComparedToPreviousDay": "前の日",
- "DayComparedToPreviousWeek": "前週の同じ日",
- "DayComparedToPreviousYear": "去年の同じ日",
+ "DayComparedToPreviousDay": "前日",
+ "DayComparedToPreviousWeek": "先週の同日",
+ "DayComparedToPreviousYear": "昨年の同日",
"Filter": "フィルター",
"FilterIncreaserAndDecreaser": "増加と減少した値",
"FilterOnlyDecreaser": "減少した値のみ",
diff --git a/plugins/Insights/lang/nl.json b/plugins/Insights/lang/nl.json
index c9bf5dc919..86ade4a7c5 100644
--- a/plugins/Insights/lang/nl.json
+++ b/plugins/Insights/lang/nl.json
@@ -2,8 +2,8 @@
"Insights": {
"ControlComparedToDescription": "Groei vergeleken met",
"DayComparedToPreviousDay": "vorige dag",
- "DayComparedToPreviousWeek": "zelfde dag vorige week",
- "DayComparedToPreviousYear": "zelfde dag vorig jaar",
+ "DayComparedToPreviousWeek": "zelfde dag in de vorige week",
+ "DayComparedToPreviousYear": "zelfde dag in het vorige jaar",
"Filter": "Filter",
"FilterIncreaserAndDecreaser": "Toename & afname",
"FilterOnlyDecreaser": "Alleen afname",
@@ -12,7 +12,7 @@
"FilterOnlyMovers": "Alleen verschoven",
"FilterOnlyNew": "Alleen nieuwe",
"MonthComparedToPreviousMonth": "vorige maand",
- "MonthComparedToPreviousYear": "zelfde maand vorig jaar",
+ "MonthComparedToPreviousYear": "zelfde maand in het vorige jaar",
"MoversAndShakersWidgetTitle": "Movers en Shakers",
"NoResultMatchesCriteria": "Er komen geen rijen overeen met de criteria",
"OverviewWidgetTitle": "Inzichten Overzicht",
diff --git a/plugins/Insights/lang/pt-br.json b/plugins/Insights/lang/pt-br.json
new file mode 100644
index 0000000000..15b8b18cce
--- /dev/null
+++ b/plugins/Insights/lang/pt-br.json
@@ -0,0 +1,10 @@
+{
+ "Insights": {
+ "DayComparedToPreviousDay": "dia anterior",
+ "DayComparedToPreviousWeek": "mesmo dia na semana anterior",
+ "DayComparedToPreviousYear": "mesmo dia no ano anterior",
+ "MonthComparedToPreviousMonth": "mês anterior",
+ "MonthComparedToPreviousYear": "mesmo mês no ano anterior",
+ "WeekComparedToPreviousWeek": "semana anterior"
+ }
+} \ No newline at end of file
diff --git a/plugins/Insights/lang/pt.json b/plugins/Insights/lang/pt.json
new file mode 100644
index 0000000000..a07d96b784
--- /dev/null
+++ b/plugins/Insights/lang/pt.json
@@ -0,0 +1,10 @@
+{
+ "Insights": {
+ "DayComparedToPreviousDay": "dia anterior",
+ "DayComparedToPreviousWeek": "mesmo dia da semana anterior",
+ "DayComparedToPreviousYear": "mesmo dia do ano anterior",
+ "MonthComparedToPreviousMonth": "mês anterior",
+ "MonthComparedToPreviousYear": "mesmo mês no ano anterior",
+ "WeekComparedToPreviousWeek": "semana anterior"
+ }
+} \ No newline at end of file
diff --git a/plugins/Insights/lang/ro.json b/plugins/Insights/lang/ro.json
index e8a83a087c..64dca94baf 100644
--- a/plugins/Insights/lang/ro.json
+++ b/plugins/Insights/lang/ro.json
@@ -3,9 +3,9 @@
"ControlComparedToDescription": "Crestere comparativ cu",
"ControlFilterByDescription": "Aratale pe toate, doar Miscarile, numai pe cele noi sau dispărute",
"DatePeriodCombinationNotSupported": "Nu este posibil să genereze perspective pentru această dată și combinație perioadă.",
- "DayComparedToPreviousDay": "ziua precedenta",
- "DayComparedToPreviousWeek": "aceeasi zi in saptamana precedenta",
- "DayComparedToPreviousYear": "aceeasi zi in anul precedent",
+ "DayComparedToPreviousDay": "ziua anterioara",
+ "DayComparedToPreviousWeek": "aceeasi zi in saptamana anterioara",
+ "DayComparedToPreviousYear": "aceeasi zi in anul anterior",
"Filter": "Filtru",
"FilterIncreaserAndDecreaser": "Creșterea & scăderea",
"FilterOnlyDecreaser": "Doar descrestere",
@@ -15,7 +15,7 @@
"FilterOnlyNew": "Doar nou",
"IgnoredChanges": "Modificarile afecteaza mai putin decat %s vizitele care au fost ignorate.",
"MonthComparedToPreviousMonth": "luna precedenta",
- "MonthComparedToPreviousYear": "aceeasi luna in anul precedent",
+ "MonthComparedToPreviousYear": "aceeasi luna in anul anterior",
"MoversAndShakersWidgetTitle": "Miscari si zguduituri",
"NoResultMatchesCriteria": "Nici un rând nu corespunde criteriilor",
"OverviewWidgetTitle": "Prezentare generală",
@@ -27,7 +27,7 @@
"TitleRowDisappearedDetails": "'%1$s' a scăzut cu %2$s și a dispărut în %3$s, comparativ cu %4$s.",
"TitleRowMoverAndShaker": "Acest rând a avut un impact mai mare decât media.",
"TitleRowNewDetails": "'%1$s' a crescut cu %2$s și este nou față de %3$s.",
- "WeekComparedToPreviousWeek": "săptămâna trecuta",
+ "WeekComparedToPreviousWeek": "saptamana anterioara",
"WidgetCategory": "înţelegere",
"YearComparedToPreviousYear": "anul trecut"
}
diff --git a/plugins/Insights/lang/ru.json b/plugins/Insights/lang/ru.json
index b177158c4f..952f4e6fdb 100644
--- a/plugins/Insights/lang/ru.json
+++ b/plugins/Insights/lang/ru.json
@@ -7,6 +7,7 @@
"FilterOnlyNew": "Только новые",
"MonthComparedToPreviousMonth": "предыдущий месяц",
"MonthComparedToPreviousYear": "тот же месяц годом ранее",
+ "NoResultMatchesCriteria": "Нет строк, отвечающих критериям",
"WeekComparedToPreviousWeek": "предыдущая неделя",
"YearComparedToPreviousYear": "прошлый год"
}
diff --git a/plugins/Insights/lang/sq.json b/plugins/Insights/lang/sq.json
new file mode 100644
index 0000000000..4e3eb982f0
--- /dev/null
+++ b/plugins/Insights/lang/sq.json
@@ -0,0 +1,7 @@
+{
+ "Insights": {
+ "ControlComparedToDescription": "Rritja e krahasuar me",
+ "DayComparedToPreviousDay": "dita e mëparshme",
+ "DayComparedToPreviousWeek": "e njëjta ditë javën e kaluar"
+ }
+} \ No newline at end of file
diff --git a/plugins/Insights/lang/tr.json b/plugins/Insights/lang/tr.json
index c570b13fc5..4ae9dd0055 100644
--- a/plugins/Insights/lang/tr.json
+++ b/plugins/Insights/lang/tr.json
@@ -5,6 +5,8 @@
"DayComparedToPreviousYear": "bir önceki yılın aynı günü",
"Filter": "Filtre",
"FilterOnlyNew": "Sadece yeni",
+ "MonthComparedToPreviousMonth": "önceki ay",
+ "MonthComparedToPreviousYear": "önceki yılın aynı ayı",
"WeekComparedToPreviousWeek": "önceki hafta",
"YearComparedToPreviousYear": "önceki yıl"
}
diff --git a/plugins/Insights/lang/vi.json b/plugins/Insights/lang/vi.json
new file mode 100644
index 0000000000..6d349abaf9
--- /dev/null
+++ b/plugins/Insights/lang/vi.json
@@ -0,0 +1,5 @@
+{
+ "Insights": {
+ "DayComparedToPreviousDay": "Ngày trước đó"
+ }
+} \ No newline at end of file
diff --git a/plugins/Installation/lang/bg.json b/plugins/Installation/lang/bg.json
index c0f48576d9..63e8563351 100644
--- a/plugins/Installation/lang/bg.json
+++ b/plugins/Installation/lang/bg.json
@@ -32,7 +32,6 @@
"NfsFilesystemWarning": "Вашият сървър ползва NFS файлова система.",
"NfsFilesystemWarningSuffixAdmin": "Това означава, че Piwik ще бъде изключително бавен, когато използвате файлови базирани сесии.",
"NoConfigFound": "Piwik конфигурационният файл не е открит.<br \/><b>  » Можете да <a href='index.php'>инсталирате Piwik сега<\/a><\/b><br \/><small>Ако преди това сте инсталирали Piwik и имате в базата от данни (БД) таблици - можете да запазите Вашите данни!<\/small>",
- "NotSupported": "не се поддържа",
"Optional": "По избор",
"Password": "парола",
"PasswordDoNotMatch": "паролата не съвпада",
@@ -97,6 +96,7 @@
"SystemCheckWriteDirs": "Директории с права за писане",
"SystemCheckWriteDirsHelp": "За да поправите тази грешка (на Linux сървър), опитайте със следните команди",
"SystemCheckZlibHelp": "Трябва да конфигурирате PHP \"zlib\" да се поддържа, --with-zlib.",
+ "NotSupported": "не се поддържа",
"Tables": "Създаване на таблици",
"TablesCreatedSuccess": "Таблиците са създадени успешно!",
"TablesDelete": "Изтрий съществуващите таблици",
diff --git a/plugins/Installation/lang/cs.json b/plugins/Installation/lang/cs.json
index c7a8d61c33..63aae47f1e 100644
--- a/plugins/Installation/lang/cs.json
+++ b/plugins/Installation/lang/cs.json
@@ -1,7 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "Nelze se připojit k databázi",
- "CannotConnectToDbResolvingExplanation": "To může být dočasný problém, zkuste %1$sobnovit stránku%2$s. Pokud problém přetrvá, kontaktujte vašeho administrátora Piwiku.",
"CollaborativeProject": "Piwik je společný projekt tvořený s láskou lidmi z celého světa.",
"ConfigurationHelp": "Váš konfigurační soubor Piwiku je špatně nastavený. Můžete buď odstranit soubor config\/config.ini a znovu začít instalaci, nebo opravit nastavení databáze.",
"ConfirmDeleteExistingTables": "Jste si jistí, že chcete vymazat tabulky: %s z vaší databáze? UPOZORNĚNÍ: DATA Z TĚCHTO TABULEK NEPŮJDOU OBNOVIT!",
@@ -17,8 +15,6 @@
"DatabaseSetupLogin": "uživatelské jméno",
"DatabaseSetupServer": "server s databází",
"DatabaseSetupTablePrefix": "prefix tabulek",
- "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í.",
"Email": "e-mail",
"Extension": "přípona",
"Filesystem": "Souborový systém",
@@ -41,18 +37,19 @@
"NfsFilesystemWarningSuffixAdmin": "To znamená, že Piwik bude při použití sessions založených na souborech velmi pomalý.",
"NfsFilesystemWarningSuffixInstall": "Sessions založené na souborech jsou na NFS velmi pomalé. Proto Piwik použije databázové sessions. Pokud bude k nástěnkám přistupovat současně hodně uživatelů, možná budete muset zvýšit maximální počet klientských databázových spojení v konfiguraci databázového serveru.",
"NoConfigFound": "Konfigurační soubor Piwiku nebyl nalezen a snažíte se vstoupit na stránku Piwiku.<br \/><b> » Můžete <a href='index.php'>teď nainstalovat<\/a><\/b><br \/><small>Pokud jste Piwik již instalovali a máte v DB nějaké tabulky, nemějte obavy. Můžete je použít a zachovat jejich data.!<\/small>",
- "NotSupported": "nepodporováno",
"Optional": "Volitelné",
"Password": "heslo",
"PasswordDoNotMatch": "hesla si neodpovídají",
"PasswordRepeat": "heslo (opakování)",
"PercentDone": "%s %% hotovo",
- "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 %sPiwik pro%s",
"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 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 %sPiwik pro%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",
@@ -68,8 +65,6 @@
"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",
- "SystemCheckCronArchiveProcess": "Archivační cron",
- "SystemCheckCronArchiveProcessCLI": "Správa procesů pomocí CLI",
"SystemCheckDatabaseHelp": "Piwik vyžaduje buď rozšíření mysqli, nebo PDO s pdo_mysql rozšířením",
"SystemCheckDebugBacktraceHelp": "View::factory není schopna vytvořit pohled pro volající modul.",
"SystemCheckError": "Vyskytla se chyba - musí být opravena než budete pokračovat",
@@ -93,16 +88,15 @@
"SystemCheckOpenURLHelp": "Předplatné novinek, informace o aktualizaci a aktualizace jedním kliknutím vyžadují rozšíření \"curl\", allow_url_fopen=On, nebo povolené fsockopen().",
"SystemCheckOtherExtensions": "Ostatní rozšíření",
"SystemCheckOtherFunctions": "Ostatní funkce",
- "SystemCheckPackHelp": "Funkce pack() je nutná ke sledování návštěvnosti v Piwiku.",
"SystemCheckPageSpeedDisabled": "PageSpeed zakázán",
"SystemCheckPageSpeedWarn": "Doporučujeme modul PageSpeed zakázat v konfiguraci webového serveru: %s Bylo hlášeno, že způsobuje problémy s Piwikem.",
+ "SystemCheckPackHelp": "Funkce pack() je nutná ke sledování návštěvnosti v Piwiku.",
"SystemCheckParseIniFileHelp": "Tato vestavěná funkce byla na vašem hostiteli zakázaná. Piwik se pokusí tuto funkci emulovat, ale můžete zaznamenat další bezpečnostní omezení. Výkonnost trackeru bude také omezena.",
"SystemCheckPdoAndMysqliHelp": "Na GNU\/Linux systému můžete zkompilovat PHP s následujícími volbami: %1$s Přidejte následující řádky do php.ini: %2$s",
"SystemCheckPhp": "Verze PHP",
"SystemCheckPhpPdoAndMysqli": "Více informací na: %1$sPHP PDO%2$s and %3$sMYSQLI%4$s.",
- "SystemCheckPhpSetting": "Abyste zabránili vážným problémům, ve vašem souboru php.ini musíte nastavit %s",
- "SystemCheckSettings": "Požadovaná konfigurace PHP (php.ini)",
"SystemCheckSplHelp": "Musíte překompilovat PHP s povolenou standardní PHP knihovou (ve výchozím stavu povolena).",
+ "SystemCheckSettings": "Požadovaná konfigurace PHP (php.ini)",
"SystemCheckSummaryNoProblems": "Hurááá! Nejsou zde žádné problémy s nastavením Piwiku. Gratulujeme",
"SystemCheckSummaryThereWereErrors": "Ajaj! Piwik zjistil %1$skritické problémy%2$s s nastavením instalace Piwiku. %3$sTyto problémy musí být okamžitě vyřešeny.%4$s",
"SystemCheckSummaryThereWereWarnings": "JVyskytly se problémy s vaším systémem. Piwik poběží, ale možná se nevyhnete menším problémům.",
@@ -118,6 +112,11 @@
"SystemCheckWriteDirs": "Adresáře s přístupem k zápisu",
"SystemCheckWriteDirsHelp": "Pro opravu této chyby v Linuxu zkuste napsat následující příkaz(y)",
"SystemCheckZlibHelp": "Musíte nakonfigurovat a překompilovat PHP s podporou pro \"zlib\", --with-zlib",
+ "SystemCheckCronArchiveProcess": "Archivační cron",
+ "SystemCheckCronArchiveProcessCLI": "Správa procesů pomocí CLI",
+ "SystemCheckPhpSetting": "Abyste zabránili vážným problémům, ve vašem souboru php.ini musíte nastavit %s",
+ "SystemCheckUpdateHttps": "Aktualizace přes HTTPS",
+ "NotSupported": "nepodporováno",
"Tables": "Vytváření tabulek",
"TablesCreatedSuccess": "Tabulky vytvořeny úspěšně!",
"TablesDelete": "Vymazat detekované tabulky",
@@ -131,6 +130,8 @@
"WeHopeYouWillEnjoyPiwik": "Doufáme, že si užijete používání Piwiku tak, jako si my užíváme jeho vývoj.",
"Welcome": "Vítejte!",
"WelcomeHelp": "<p>Piwik je open source program pro analýzu webu, pomocí kterého můžete jednoduše získat informace, které chcete od vaších návštěvníků.<\/p><p>Tento proces je rozdělen to %s jednoduchých kroků a zabere přibližne 5 minut.<\/p>",
- "WelcomeToCommunity": "Vítejte v komunitě Piwiku!"
+ "WelcomeToCommunity": "Vítejte v komunitě Piwiku!",
+ "CannotConnectToDb": "Nelze se připojit k databázi",
+ "CannotConnectToDbResolvingExplanation": "To může být dočasný problém, zkuste %1$sobnovit stránku%2$s. Pokud problém přetrvá, kontaktujte vašeho administrátora Piwiku."
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/da.json b/plugins/Installation/lang/da.json
index ff3a59ded4..db3249e6ae 100644
--- a/plugins/Installation/lang/da.json
+++ b/plugins/Installation/lang/da.json
@@ -1,7 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "Kan ikke oprette forbindelse til databasen",
- "CannotConnectToDbResolvingExplanation": "Kan være et midlertidigt problem, så prøv at %1$sopdatere siden%2$s. Hvis problemet fortsætter skal du kontakte din Piwik administrator.",
"CollaborativeProject": "Piwik er et samarbejdsprojekt, bygget med kærlighed af folk fra hele verden.",
"ConfigurationHelp": "Piwik konfigurationsfil synes at være konfigureret forkert. Fjern enten config\/config.ini.php og genoptage installation eller ret database forbindelsesindstillinger.",
"ConfirmDeleteExistingTables": "Bekræft sletning af tabellerne: %s fra databasen? ADVARSEL: DATA FRA DISSE TABELLER KAN IKKE GENSKABES!",
@@ -17,8 +15,6 @@
"DatabaseSetupLogin": "Brugernavn",
"DatabaseSetupServer": "Databaseserver",
"DatabaseSetupTablePrefix": "Tabel præfiks",
- "DefaultSettings": "Piwik standardindstillinger",
- "DefaultSettingsHelp": "Piwik leveres med standardindstillinger. Tilpas dem nu, eller gør det senere på adminskærmen.",
"Email": "E-mail",
"Extension": "udvidelse",
"Filesystem": "Filsystem",
@@ -40,17 +36,19 @@
"NfsFilesystemWarningSuffixAdmin": "Det betyder at Piwik vil være ekstremt langsom når der benyttes filbaserede sessioner.",
"NfsFilesystemWarningSuffixInstall": "Brug af filbaserede sessioner på et NFS filsystem er ekstrem langsomt, så Piwik vil benytte database sessioner. Hvis du har mange samtidige kontrolpanelsbrugere, vil du muligvis være nødt til at hæve det maksimale antal af klient forbindelser til database serveren.",
"NoConfigFound": "Piwik-konfigurationsfil blev ikke fundet og du prøver at få adgang til Piwik. <ul><li>Du kan <a href='index.php'>installere Piwik nu<\/a><\/b><small> Hvis du har installeret Piwik tidligere og har nogle tabeller i databasen, kan du genbruge tabellerne og holde dine eksisterende data!<\/small>",
- "NotSupported": "Ikke supporteret",
"Optional": "Valgfri",
"Password": "Adgangskode",
"PasswordDoNotMatch": "adgangskoder stemmer ikke overens",
"PasswordRepeat": "Gentag adgangskode",
"PercentDone": "%s %% udført",
- "PiwikOrgNewsletter": "e-mail mig de vigtigste Piwik community opdateringer",
"PleaseFixTheFollowingErrors": "Ret følgende fejl",
+ "DefaultSettings": "Piwik standardindstillinger",
+ "DefaultSettingsHelp": "Piwik leveres med standardindstillinger. Tilpas dem nu, eller gør det senere på adminskærmen.",
"Requirements": "Piwik krav",
"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",
"SeeBelowForMoreInfo": "Se nedenfor for mere information.",
"SetupWebsite": "Tilføj en hjemmeside",
"SetupWebsiteError": "Fejl ved tilføjelse af hjemmeside",
@@ -66,8 +64,6 @@
"SystemCheck": "Systemcheck",
"SystemCheckAutoUpdateHelp": "Note: Piwik's ét klik opdatering kræver skrive-tilladelser til Piwik mappen og dens indhold.",
"SystemCheckCreateFunctionHelp": "Piwik bruger anonyme funktioner til tilbagekald.",
- "SystemCheckCronArchiveProcess": "Arkiv Cron",
- "SystemCheckCronArchiveProcessCLI": "Håndtering af processer via kommandolinie",
"SystemCheckDatabaseHelp": "Piwik behøver enten mysqli udvidelsen eller både PDO og pdo_mysql udvidelserne.",
"SystemCheckDebugBacktraceHelp": "View:: factory kan ikke oprette visninger for det modul.",
"SystemCheckError": "En fejl opstod - skal rettes før der fortsættes",
@@ -91,16 +87,15 @@
"SystemCheckOpenURLHelp": "Nyhedsbrev tilmelding, opdateringsbeskeder og et-klik opdatering kræver \"curl\" udvidelsen, allow_url_fopen=On, eller fsockopen() aktiveret.",
"SystemCheckOtherExtensions": "Andre udvidelser",
"SystemCheckOtherFunctions": "Andre funktioner",
- "SystemCheckPackHelp": "Funktionen pack() er nødvendig for at spore besøgende i Piwik.",
"SystemCheckPageSpeedDisabled": "PageSpeed er deaktiveret",
"SystemCheckPageSpeedWarn": "Vi anbefaler at deaktivere PageSpeed modulet i server %s: PageSpeed er blevet rapporteret at forårsage flere problemer med Piwik.",
+ "SystemCheckPackHelp": "Funktionen pack() er nødvendig for at spore besøgende i Piwik.",
"SystemCheckParseIniFileHelp": "Den indbyggede funktion er blevet deaktiveret hos udbyderen. Piwik vil forsøge at efterligne funktionen, men kan støde på yderligere sikkerhed restriktioner. Sporingsydelsen vil også blive påvirket.",
"SystemCheckPdoAndMysqliHelp": "På en linux-server kan php kompileres med følgende valg: %1$sn i php.ini, tilføj følgende linjer: %2$s",
"SystemCheckPhp": "PHP version",
"SystemCheckPhpPdoAndMysqli": "Mere information på: %1$sPHP PDO%2$s og %3$sMYSQLI%4$s.",
- "SystemCheckPhpSetting": "For at undgå nogle kritiske punkter, skal følgende indstilles i php.ini filen: %s",
- "SystemCheckSettings": "Obligatorisk PHP konfiguration (php.ini)",
"SystemCheckSplHelp": "Konfigurer og genstart PHP med standard PHP Biblioteket (SPL) aktiveret (som standard).",
+ "SystemCheckSettings": "Obligatorisk PHP konfiguration (php.ini)",
"SystemCheckSummaryNoProblems": "Sådan! Der er ingen problemer med din Piwik opsætning. Giv dig selv et klap på skulderen.",
"SystemCheckSummaryThereWereErrors": "Ups! Piwik har opdaget nogle %1$skritiske problemer%2$s med din Piwik opsætning. %3$sDisse problemer skal løses øjeblikkeligt.%4$s",
"SystemCheckSummaryThereWereWarnings": "Der er nogle problemer med dit system. Piwik vil virke, men du kan opleve nogle mindre problemer.",
@@ -116,6 +111,10 @@
"SystemCheckWriteDirs": "Mapper med skriveadgang",
"SystemCheckWriteDirsHelp": "Prøv at skrive følgende kommandoer for at rette fejlen på et linux-system",
"SystemCheckZlibHelp": "Konfigurer og genstart PHP med zlib support aktiveret, --with-zlib.",
+ "SystemCheckCronArchiveProcess": "Arkiv Cron",
+ "SystemCheckCronArchiveProcessCLI": "Håndtering af processer via kommandolinie",
+ "SystemCheckPhpSetting": "For at undgå nogle kritiske punkter, skal følgende indstilles i php.ini filen: %s",
+ "NotSupported": "Ikke supporteret",
"Tables": "Opretter tabeller",
"TablesCreatedSuccess": "Tabellerne blev oprettet!",
"TablesDelete": "Slet detekterede tabeller",
@@ -129,6 +128,8 @@
"WeHopeYouWillEnjoyPiwik": "Vi håber du vil nyde at bruge Piwik så meget, som vi nyder at lave det.",
"Welcome": "Velkommen!",
"WelcomeHelp": "<p>Piwik er et Open Source statistik-program som gør det nemt at finde information om besøgende.<\/p><p> Processen er delt op i %s lette trin og vil tage ca. 5 minutter.<\/p>",
- "WelcomeToCommunity": "Velkommen til fællesskab om Piwik!"
+ "WelcomeToCommunity": "Velkommen til fællesskab om Piwik!",
+ "CannotConnectToDb": "Kan ikke oprette forbindelse til databasen",
+ "CannotConnectToDbResolvingExplanation": "Kan være et midlertidigt problem, så prøv at %1$sopdatere siden%2$s. Hvis problemet fortsætter skal du kontakte din Piwik administrator."
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/de.json b/plugins/Installation/lang/de.json
index aeed6a9abd..b4e8814d2d 100644
--- a/plugins/Installation/lang/de.json
+++ b/plugins/Installation/lang/de.json
@@ -1,7 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "Verbindung zur Datenbank ist fehlgeschlagen",
- "CannotConnectToDbResolvingExplanation": "Dies könnte ein temporäres Problem sein. Versuchen Sie diese %1$sSeite neu zu laden%2$s. Wenn das Problem weiterhin besetht wernden Sie sich bitte an Ihren Piwik Administrator.",
"CollaborativeProject": "Piwik ist ein gemeinschaftliches Projekt, geschaffen mit Liebe von Menschen aus der ganzen Welt.",
"ConfigurationHelp": "Ihre Konfigurationsdatei enthält Fehler. Sie können entweder die config\/config.php löschen und neu installieren, oder die Einstellung zur Datenbankverbindung korrigieren.",
"ConfirmDeleteExistingTables": "Wollen Sie wirklich die Tabellen: %s aus der Datenbank löschen? WARNUNG: DATEN AUS DIESEN TABELLEN KÖNNEN NICHT WIEDERHERGESTELLT WERDEN!",
@@ -17,8 +15,6 @@
"DatabaseSetupLogin": "Benutzer",
"DatabaseSetupServer": "Datenbank-Server",
"DatabaseSetupTablePrefix": "Tabellen-Prefix",
- "DefaultSettings": "Standard Piwik Einstellungen",
- "DefaultSettingsHelp": "Piwik ist mit Standardeinstellungen vorkonfiguriert. Sie können diese nun personalisieren oder dies später im Adminbereich nachholen.",
"Email": "E-Mail",
"Extension": "Erweiterung",
"Filesystem": "Dateisystem",
@@ -41,18 +37,19 @@
"NfsFilesystemWarningSuffixAdmin": "Dies bedeutet, dass Piwik extrem langsam arbeitet wenn Dateibasierte Sessions genutzt werden.",
"NfsFilesystemWarningSuffixInstall": "Die Benutzung von dateibasierten Sessions auf NFS ist extrem langsam, deshalb wird Piwik datenbankbasierte Sessions nutzen. Falls es viele gleichzeitige Zugriffe auf das Dashboard gibt sollten Sie möglicherweise die maximal erlaubten Client-Zugriffe auf den Datenbankserver erhöhen.",
"NoConfigFound": "Die Piwik-Konfigurationsdatei konnte nicht gefunden werden und es wird versucht, eine Piwik-Seite aufzurufen.<br \/><b>  » Sie können <a href='index.php'>Piwik jetzt installieren<\/a><\/b><br \/><small>Wenn Sie Piwik zuvor schon installiert haben und noch Tabellen in der Datenbank vorhanden sind: Keine Angst, Sie können diese Tabellen und die enthaltenen Daten weiterhin verwenden!<\/small>",
- "NotSupported": "nicht unterstützt",
"Optional": "Optional",
"Password": "Passwort",
"PasswordDoNotMatch": "Passwörter stimmen nicht überein",
"PasswordRepeat": "Passwort (wiederholen)",
"PercentDone": "%s %% Fertig",
- "PiwikOrgNewsletter": "Wichtige Piwik Community Updates per Mail zukommen lassen",
- "PiwikProNewsletter": "Lassen Sie mir Informationen über %sPiwik PRO%s Dienstleistungen und Angebote zukommen.",
"PleaseFixTheFollowingErrors": "Bitte beheben Sie die folgenden Fehler",
+ "DefaultSettings": "Standard Piwik Einstellungen",
+ "DefaultSettingsHelp": "Piwik ist mit Standardeinstellungen vorkonfiguriert. Sie können diese nun personalisieren oder dies später im Adminbereich nachholen.",
"Requirements": "Anforderungen für die Piwik-Installation",
"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 %sPiwik PRO%s Dienstleistungen und Angebote zukommen.",
"SeeBelowForMoreInfo": "Unterhalb können Sie weitere Informationen finden.",
"SetupWebsite": "Webseite hinzufügen",
"SetupWebsiteError": "Beim Hinzufügen der Webseite ist ein Fehler aufgetreten",
@@ -68,8 +65,7 @@
"SystemCheck": "Systemprüfung",
"SystemCheckAutoUpdateHelp": "Hinweis: Piwik's Ein-Klick-Aktualisierung benötigt Schreibrechte für den Piwik-Ordner und dessen Inhalt.",
"SystemCheckCreateFunctionHelp": "Piwik verwendet anonyme Funktionen für Rückfragen.",
- "SystemCheckCronArchiveProcess": "Archiv Cron",
- "SystemCheckCronArchiveProcessCLI": "Prozesse via CLI steuern",
+ "SystemCheckDatabaseExtensions": "MySQL Erweiterungen",
"SystemCheckDatabaseHelp": "Piwik erfordert entweder die mysqli Erweiterung oder die PDO und pdo_mysql Erweiterung.",
"SystemCheckDebugBacktraceHelp": "View::factory wird nicht in der Lage sein, die Module für die Anzeige zu laden.",
"SystemCheckError": "Ein Fehler ist aufgetreten - dieser muss behoben werden, bevor Sie weiter machen können.",
@@ -93,16 +89,15 @@
"SystemCheckOpenURLHelp": "Eintragen in den Newsletter, Aktualisierungshinweise und Ein-Klick-Aktualisierungen erfordern die \"curl\" Erweiterung, allow_url_fopen=On und fsockopen() aktiviert.",
"SystemCheckOtherExtensions": "Andere Erweiterungen",
"SystemCheckOtherFunctions": "Andere Funktionen",
- "SystemCheckPackHelp": "Die Funktion pack() wird benötigt um Besucher in Piwik tracken zu können.",
"SystemCheckPageSpeedDisabled": "PageSpeed deaktiviert",
"SystemCheckPageSpeedWarn": "Wir empfehlen, das PageSpeed Modul auf Ihrem Web Server zu deaktivieren %s: PageSpeed wurde als Verursacher diverser Probleme im Zusammenhang mit Piwik gemeldet.",
+ "SystemCheckPackHelp": "Die Funktion pack() wird benötigt um Besucher in Piwik tracken zu können.",
"SystemCheckParseIniFileHelp": "Diese Funktion wird von Ihrem System nicht unterstützt. Piwik wird versuchen, diese Funktion zu emulieren, aber es könnte sein, dass dadurch Sicherheitseinstellungen gelockert werden müssen. Die Geschwindigkeit des Tracker könnte auch beeinflußt werden.",
"SystemCheckPdoAndMysqliHelp": "Auf einem Linux-Server können Sie PHP mit den folgenden Optionen kompilieren: %1$s In Ihrer php.ini fügen Sie dann die folgenden Zeilen ein: %2$s",
"SystemCheckPhp": "PHP-Version",
"SystemCheckPhpPdoAndMysqli": "Weitere Informationen unter: %1$sPHP PDO%2$s und %3$sMYSQLI%4$s.",
- "SystemCheckPhpSetting": "Um schwerwiegende Probleme zu verhinden, sollten Sie Folgendes in Ihrer php.ini setzen: %s",
- "SystemCheckSettings": "Benötigte PHP Konfiguration (php.ini)",
"SystemCheckSplHelp": "Sie müssen PHP mit standardmäßig aktivierter Standard PHP Bibliothek (SPL) konfigurieren und neu übersetzen.",
+ "SystemCheckSettings": "Benötigte PHP Konfiguration (php.ini)",
"SystemCheckSummaryNoProblems": "Gratulation! Es gibt keine Probleme mit Ihrer Piwik Installation. Sie können sich selbst auf die Schulter klopfen.",
"SystemCheckSummaryThereWereErrors": "Ohje! Piwik hat einige %1$skritische Fehler%2$s mit Ihrer Installation festgestellt. %3$sDiese sollten schnellstmöglich behoben werden.%4$s",
"SystemCheckSummaryThereWereWarnings": "Es gibt einige Ungereimtheiten mit Ihrem System. Piwik wird funktionieren, aber es könnten geringfügige Probleme auftauchen.",
@@ -118,6 +113,12 @@
"SystemCheckWriteDirs": "Verzeichnisse mit Schreibzugriff",
"SystemCheckWriteDirsHelp": "Um diesen Fehler im Linux-System zu beheben, versuchen Sie den\/die folgenden Befehl(e) einzugeben",
"SystemCheckZlibHelp": "Sie müssen PHP mit \"zlib\" Unterstützung konfigurieren und neu übersetzen ( --with-zlib).",
+ "SystemCheckCronArchiveProcess": "Archiv Cron",
+ "SystemCheckCronArchiveProcessCLI": "Prozesse via CLI steuern",
+ "SystemCheckPhpSetting": "Um schwerwiegende Probleme zu verhinden, sollten Sie Folgendes in Ihrer php.ini setzen: %s",
+ "SystemCheckUpdateHttps": "Update über HTTPS",
+ "SystemCheckUpdateHttpsNotSupported": "Piwik kann HTTPS nicht für das Update verwenden, es stattdessen auf ein unsicheres Update über HTTP zurückgegriffen. Überprüfen Sie dass Curl oder allow_url_fopen unterstützt wird und dass die openssl PHP Erweiterung installiert ist: http:\/\/piwik.org\/faq\/troubleshooting\/faq_177\/",
+ "NotSupported": "nicht unterstützt",
"Tables": "Erstelle die Tabellen",
"TablesCreatedSuccess": "Die Tabellen wurden erfolgreich erzeugt!",
"TablesDelete": "Entferne die erkannten Tabellen",
@@ -131,6 +132,8 @@
"WeHopeYouWillEnjoyPiwik": "Wir hoffen, Sie haben soviel Spaß daran, Piwik zu nutzen, wie wir hatten, es zu erstellen.",
"Welcome": "Willkommen!",
"WelcomeHelp": "<p>Piwik ist eine freiverfügbare Webanalyse-Software, um einfach Informationen über die Besucher Ihrer Webseite zu erhalten.<\/p><p>Der Prozess teilt sich in %s einfache Schritte und wird rund 5 Minuten dauern.<\/p>",
- "WelcomeToCommunity": "Willkommen in der Piwik Community!"
+ "WelcomeToCommunity": "Willkommen in der Piwik Community!",
+ "CannotConnectToDb": "Verbindung zur Datenbank ist fehlgeschlagen",
+ "CannotConnectToDbResolvingExplanation": "Dies könnte ein temporäres Problem sein. Versuchen Sie diese %1$sSeite neu zu laden%2$s. Wenn das Problem weiterhin besetht wernden Sie sich bitte an Ihren Piwik Administrator."
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/el.json b/plugins/Installation/lang/el.json
index 44d951060d..1aea763f5e 100644
--- a/plugins/Installation/lang/el.json
+++ b/plugins/Installation/lang/el.json
@@ -1,7 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "Δεν είναι δυνατή η σύνδεση με τη βάση δεδομένων.",
- "CannotConnectToDbResolvingExplanation": "Ενδεχομένως να υπάρχει ένα προσωρινό πρόβλημα, δοκιμάστε να %1$sανανεώστε τη σελίδα%2$s. Αν το πρόβλημα παραμένει, παρακαλούμε επικοινωνήστε με το διαχειριστή του Piwik.",
"CollaborativeProject": "Το Piwik είναι ένα συνεργατικό έργο, δημιουργημένο με αγάπη από ανθρώπους από όλο τον κόσμο.",
"ConfigurationHelp": "Οι ρυθμίσεις του Piwik φαίνεται ότι έχουν πρόβλημα. Μπορείτε να απομακρύνετε το config\/config.ini.php και να συνεχίσετε την εγκατάσταση ή διορθώστε τις ρυθμίσεις σύνδεσης της βάσης δεδομένων.",
"ConfirmDeleteExistingTables": "Θέλετε σίγουρα να διαγράψετε τους πίνακες: %s από τη βάση δεδομένων σας; ΠΡΟΕΙΔΟΠΟΙΗΣΗ: ΤΑ ΔΕΔΟΜΕΝΑ ΑΠΟ ΑΥΤΟΥΣ ΤΟΥ ΠΙΝΑΚΕΣ ΔΕΝ ΘΑ ΜΠΟΡΟΥΝ ΝΑ ΑΝΑΚΤΗΘΟΥΝ!",
@@ -17,8 +15,6 @@
"DatabaseSetupLogin": "Όνομα χρήστη",
"DatabaseSetupServer": "Διακομιστής βάσης δεδομένων",
"DatabaseSetupTablePrefix": "Πρόθεμα πινάκων",
- "DefaultSettings": "Προκαθορισμένες ρυθμίσεις του Piwik",
- "DefaultSettingsHelp": "Το Piwik έρχεται με προκαθορισμένες ρυθμίσεις. Μπορείτε να τις αλλάξετε τώρα ή αργότερα στην οθόνη διαχείρισης.",
"Email": "Ηλεκτρονική διεύθυνση",
"Extension": "επέκταση",
"Filesystem": "Σύστημα αρχείων",
@@ -41,18 +37,19 @@
"NfsFilesystemWarningSuffixAdmin": "Αυτό σημαίνει ότι το Piwik θα είναι εξαιρετικά αργό, όταν χρησιμοποιεί το αρχείο συνεδρίες σε αρχεία (file based sessions).",
"NfsFilesystemWarningSuffixInstall": "Οι συνεδρίες αρχείων (file based sessions) στο NFS είναι εξαιρετικά αργές, έτσι το Piwik θα χρησιμοποιήσει συνεδρίες με βάση δεδομένων. Εάν έχετε πολλούς ταυτόχρονους χρήστες, μπορεί να χρειαστεί να αυξήσετε τον μέγιστο αριθμό συνδέσεων προς τον εξυπηρετητή της βάσης δεδομένων.",
"NoConfigFound": "Το αρχείο ρυθμίσεων του Piwik δεν βρέθηκε και προσπαθείτε να ανοίξετε μια σελίδα Piwik.<br \/><b>  » Μπορείτε να <a href=\"index.php\">εγκαταστήσετε το Piwik τώρα<\/a><\/b><br \/><small>αν έχετε εγκαταστήσει το Piwik προηγούμενα και έχετε κάποιους πίνακες στη βάση δεδομένων σας, μην ανησυχείτε, μπορείτε να χρησιμοποιήσετε ξανά τους ίδιους πίνακες και να διατηρήσετε τα υπάρχοντα δεδομένα σας!<\/small>",
- "NotSupported": "δεν υποστηρίζεται",
"Optional": "Προαιρετικά",
"Password": "Κωδικός πρόσβασης",
"PasswordDoNotMatch": "ο κωδικός δεν ταιριάζει",
"PasswordRepeat": "Επανάληψη κωδικού πρόσβασης",
"PercentDone": "%s %% Ολοκληρώθηκε",
- "PiwikOrgNewsletter": "στείλε μου e-mail για μεγάλες ενημερώσεις της κοινοτικής έκδοσης του Piwik",
- "PiwikProNewsletter": "στείλε μου πληροφορίες σχετικά με τις υπηρεσίες του %sPiwik PRO%s και τις προσφορές του",
"PleaseFixTheFollowingErrors": "Διορθώστε τα ακόλουθα σφάλματα",
+ "DefaultSettings": "Προκαθορισμένες ρυθμίσεις του Piwik",
+ "DefaultSettingsHelp": "Το Piwik έρχεται με προκαθορισμένες ρυθμίσεις. Μπορείτε να τις αλλάξετε τώρα ή αργότερα στην οθόνη διαχείρισης.",
"Requirements": "Απαιτήσεις Piwik",
"RestartWebServer": "Μετά από αυτή την αλλαγή, επανεκκινήστε τον διακομιστή σας.",
"ReusingTables": "Γίνεται χρήση των Πινάκων",
+ "PiwikOrgNewsletter": "στείλε μου e-mail για μεγάλες ενημερώσεις της κοινοτικής έκδοσης του Piwik",
+ "PiwikProNewsletter": "στείλε μου πληροφορίες σχετικά με τις υπηρεσίες του %sPiwik PRO%s και τις προσφορές του",
"SeeBelowForMoreInfo": "Δείτε παρακάτω για περισσότερες πληροφορίες.",
"SetupWebsite": "Ρύθμιση μιας ιστοσελίδας",
"SetupWebsiteError": "Συνέβη ένα σφάλμα κατά της προσθήκη της ιστοσελίδας",
@@ -68,8 +65,7 @@
"SystemCheck": "Έλεγχος συστήματος",
"SystemCheckAutoUpdateHelp": "Σημείωση: Η αναβάθμιση με Ένα Πάτημα του Piwik απαιτεί δικαιώματα εγγραφής στο φάκελο Piwik και στα περιεχόμενά του.",
"SystemCheckCreateFunctionHelp": "Το Piwik χρησιμοποιεί ανώνυμες συναρτήσεις για ανακλήσεις.",
- "SystemCheckCronArchiveProcess": "Cron αρχειοθέτησης",
- "SystemCheckCronArchiveProcessCLI": "Διαχείριση εργασιών από CLI",
+ "SystemCheckDatabaseExtensions": "Επεκτάσεις MySQL",
"SystemCheckDatabaseHelp": "Το Piwik απαιτεί είτε την επέκταση mysqli ή τις επεκτάσεις PDO και pdo_mysql.",
"SystemCheckDebugBacktraceHelp": "Η εντολή View::factory δεν θα μπορεί να δημιουργήσει προβολές για το κληθέν πρότυπο.",
"SystemCheckError": "Συνέβη ένα σφάλμα – πρέπει να διορθωθεί πριν συνεχίσετε",
@@ -93,16 +89,15 @@
"SystemCheckOpenURLHelp": "Εγγραφές Newsletter, ειδοποιήσεις ενημερώσεων και οι ενημερώσεις ενός κλικ απαιτούν την επέκταση «curl», ενεργοποιήστε το allow_url_fopen=On ή το fsockopen().",
"SystemCheckOtherExtensions": "Άλλες επεκτάσεις",
"SystemCheckOtherFunctions": "Άλλες συναρτήσεις",
- "SystemCheckPackHelp": "Η συνάρτηση pack() απαιτείται για την καταγραφή επισκεπτών στο Piwik.",
"SystemCheckPageSpeedDisabled": "Το PageSpeed είναι απενεργοποιημένο",
"SystemCheckPageSpeedWarn": "Συνιστούμε την απενεργοποίηση της μονάδας PageSpeed στον διακομιστή ιστού σας %s: Έχει αναφερθεί ότι το PageSpeed δημιουργεί διάφορα προβλήματα στο Piwik.",
+ "SystemCheckPackHelp": "Η συνάρτηση pack() απαιτείται για την καταγραφή επισκεπτών στο Piwik.",
"SystemCheckParseIniFileHelp": "Αυτή η εσωτερική συνάρτηση έχει απενεργοποιηθεί στον διακομιστή σας. Το Piwik θα προσπαθήσει να εξομοιώσει αυτή τη συνάρτηση αλλά ίσως προκύψουν περαιτέρω περιορισμοί ασφάλειας. Η απόδοση της ανίχνευσης θα επηρεαστεί.",
"SystemCheckPdoAndMysqliHelp": "Σε διακομιστή Linux μπορείτε να ρυθμίσετε την php με τις ακόλουθες επιλογές: %1$s στο αρχείο php.ini, προσθέστε τις ακόλουθες γραμμές: %2$s",
"SystemCheckPhp": "Έκδοση PHP",
"SystemCheckPhpPdoAndMysqli": "Περισσότερες πληροφορίες στο: %1$sPHP PDO%2$s και %3$sMYSQLI%4$s.",
- "SystemCheckPhpSetting": "Για την αποφυγή σημαντικών προβλημάτων, πρέπει να ορίσετε τα παρακάτω στο αρχείο php.ini: %s",
- "SystemCheckSettings": "Απαιτούμενη παραμετροποίηση PHP (php.ini)",
"SystemCheckSplHelp": "Πρέπει να ρυθμίσετε και ξαναεγκαταστήσετε την PHP με τη Βασική Βιβλιοθήκη PHP (SPL) ενεργοποιήμένη (ως προεπιλογή).",
+ "SystemCheckSettings": "Απαιτούμενη παραμετροποίηση PHP (php.ini)",
"SystemCheckSummaryNoProblems": "Δεν υπάρχουν προβλήματα με την εγκατάσταση του Piwik. Όλα καλά!",
"SystemCheckSummaryThereWereErrors": "Ώωχ, το Piwik εντόπισε %1$sκρίσιμα θέματα%2$s με την εγκατάσταση του Piwik. %3$sΑυτά τα θέματα πρέπει να διορθωθούν άμεσα.%4$s",
"SystemCheckSummaryThereWereWarnings": "Υπάρχουν ορισμένα ζητήματα με το σύστημά σας. Το Piwik θα τρέξει, αλλά μπορεί να αντιμετωπίσετε κάποια μικροπροβλήματα.",
@@ -118,6 +113,12 @@
"SystemCheckWriteDirs": "Υποφάκελοι με δικαίωμα εγγραφής",
"SystemCheckWriteDirsHelp": "Για να διορθώσετε αυτό το σφάλμα στο Linux σύστημά σας δοκιμάστε να πληκτρολογήσετε τις ακόλουθες εντολές",
"SystemCheckZlibHelp": "Πρέπει να ρυθμίσετε και ξαναεγκαταστήσετε την PHP με ενεργοποιημένη την υποστήριξη «zlib», --with-zlib.",
+ "SystemCheckCronArchiveProcess": "Cron αρχειοθέτησης",
+ "SystemCheckCronArchiveProcessCLI": "Διαχείριση εργασιών από CLI",
+ "SystemCheckPhpSetting": "Για την αποφυγή σημαντικών προβλημάτων, πρέπει να ορίσετε τα παρακάτω στο αρχείο php.ini: %s",
+ "SystemCheckUpdateHttps": "Ενημέρωση μέσω HTTPS",
+ "SystemCheckUpdateHttpsNotSupported": "Το Piwik δεν μπορεί να χρησιμοποιήσει HTTPS για ενημέρωση, θα δοκιμάσει να κάνει ενημέρωση μέσω μη ασφαλούς σύνδεσης HTTP. Ελέγξτε ότι υποστηρίζεται το CURL ή το allow_url_fopen και ότι η επέκταση openssl της PHP είναι εγκατεστημένη: http:\/\/piwik.org\/faq\/troubleshooting\/faq_177\/.",
+ "NotSupported": "δεν υποστηρίζεται",
"Tables": "Δημιουργία πινάκων",
"TablesCreatedSuccess": "Οι πίνακες δημιουργήθηκαν επιτυχώς!",
"TablesDelete": "Διαγραφή των πινάκων που ανιχνεύθηκαν",
@@ -131,6 +132,8 @@
"WeHopeYouWillEnjoyPiwik": "Ελπίζουμε να χαίρεστε το Piwik όσο εμείς που το προγραμματίζουμε.",
"Welcome": "Καλωσορίσατε!",
"WelcomeHelp": "<p>Το Piwik είναι ένα λογισμικό ανοιχτού κώδικα ανάλυσης ιστοσελίδων που συλλέγει τις πληροφορίες που θέλετε από του επισκέπτες σας.<\/p><p>Αυτή η διαδικασία είναι χωρισμένη σε %s απλά βήματα και θα πάρει περίπου 5 λεπτά.<\/p>",
- "WelcomeToCommunity": "Καλωσήρθατε στην κοινότητα του Piwik!"
+ "WelcomeToCommunity": "Καλωσήρθατε στην κοινότητα του Piwik!",
+ "CannotConnectToDb": "Δεν είναι δυνατή η σύνδεση με τη βάση δεδομένων.",
+ "CannotConnectToDbResolvingExplanation": "Ενδεχομένως να υπάρχει ένα προσωρινό πρόβλημα, δοκιμάστε να %1$sανανεώστε τη σελίδα%2$s. Αν το πρόβλημα παραμένει, παρακαλούμε επικοινωνήστε με το διαχειριστή του Piwik."
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/es.json b/plugins/Installation/lang/es.json
index 13d1eb36d5..52ae13dd28 100644
--- a/plugins/Installation/lang/es.json
+++ b/plugins/Installation/lang/es.json
@@ -1,6 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "No se puedo conectar con la base de datos",
"CollaborativeProject": "Piwik es un proyecto de colaboración, creado con amor por personas de todo el mundo",
"ConfigurationHelp": "Su archivo de configuración de Piwik parece estar desconfigurado. Puede remover el archivo config\/config.ini.php y seguir la instalación, o corregir la configuración de conexión de la base de datos.",
"ConfirmDeleteExistingTables": "¿Está seguro de que desea borrar las tablas: %s de su base de datos? ADVERTENCIA: ¡LOS DATOS DE ESTAS TABLAS NO SE PUEDEN RECUPERAR!",
@@ -37,7 +36,6 @@
"NfsFilesystemWarningSuffixAdmin": "Esto significa que Piwik será extremadamente lento cuando se utilice sesiones basadas en archivos.",
"NfsFilesystemWarningSuffixInstall": "Utilizando sesiones basadas en archivos sobre NFS es extremadamente lento, por lo tanto, Piwik utilizará sesiones basada en base de datos. Si tiene varios usuarios de panel, puede que necesite incrementar el número máximo de conexiones de clientes al servidor de la base de datos.",
"NoConfigFound": "El archivo de configuración de Piwik no se ha encontrado y está intentando acceder a una página de Piwik.<br \/><b>  » Puede <a href='index.php'>instalar Piwik ahora<\/a><\/b><br \/><small>¡Si ha instalado Piwik antes y tiene algunas tablas en su BD, no se preocupe, usted puede reutilizar las mismas tablas y mantener sus datos existentes!<\/small>",
- "NotSupported": "no soportado",
"Optional": "Opcional",
"Password": "Contraseña",
"PasswordDoNotMatch": "las contraseñas no coinciden",
@@ -106,6 +104,7 @@
"SystemCheckWriteDirs": "Directorios con acceso de escritura",
"SystemCheckWriteDirsHelp": "Para arreglar este error en su sistema Linux, intente tecleando los siguientes comandos",
"SystemCheckZlibHelp": "Necesita configurar y reconstruir PHP con el soporte \"zlib\" habilitado, --with-zlib.",
+ "NotSupported": "no soportado",
"Tables": "Creando las tablas",
"TablesCreatedSuccess": "¡Tablas creadas con éxito!",
"TablesDelete": "Borrar las tablas detectadas",
@@ -119,6 +118,7 @@
"WeHopeYouWillEnjoyPiwik": "Esperamos que te gusta usar Piwik tanto como a nosotros nos gusta crearlo.",
"Welcome": "¡Bienvenido!",
"WelcomeHelp": "<p>Piwik es un software de análisis web de código abierto que facilita el obtener la información que desea de sus visitantes.<\/p><p>Este proceso se divide en %s sencillos pasos que le llevarán en torno a 5 minutos.<\/p>",
- "WelcomeToCommunity": "¡Bienvenido a la comunidad de Piwik!"
+ "WelcomeToCommunity": "¡Bienvenido a la comunidad de Piwik!",
+ "CannotConnectToDb": "No se puedo conectar con la base de datos"
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/fa.json b/plugins/Installation/lang/fa.json
index 76d5ca46fb..ff0dcdf2b8 100644
--- a/plugins/Installation/lang/fa.json
+++ b/plugins/Installation/lang/fa.json
@@ -1,6 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "نمیتوان با پایگاه داده ارتباط برقرار کرد",
"CollaborativeProject": "پیویک یک پروژه گروهی است که با عشق و علاقه توسط افرادی از سراسر دنیا ساخته شده است.",
"ConfigurationHelp": "فایل پیکربندی Piwik شما به نظر می رسد بد باشد. شما هم می توانید پیکربندی \/ config.ini.php و حذف از سر نصب و راه اندازی و یا اصلاح تنظیمات اتصال پایگاه داده.",
"ConfirmDeleteExistingTables": "آیا شما مطمئن هستید که می خواهید این جدول ها را : %s از پایگاه داده تان حذف کنید؟ هشدار : داده های این جدول ها قابل بازیابی نخواهد بود!",
@@ -30,7 +29,6 @@
"NfsFilesystemWarningSuffixAdmin": "این به آن معنا است که پیویک بسیار کند خواهد بود هنگامی که از فایل مبتنی بر نشست ها(session) استفاده می کند.",
"NfsFilesystemWarningSuffixInstall": "استفاده از نشست های مبتنی بر فایل با NFS بسیار کند است، بنابراین پیویک نشست های مبتنی بر پایگاه داده را به کار خواهد برد. اگر شما کاربران همزمان بسیاری دارید ، احتمالا نیاز به افزایش تعداد اتصالات کاربر(Client Connection) به پایگاه داده دارید.",
"NoConfigFound": "Piwik فایل پیکربندی را می توان یافت نمی شود و شما در حال تلاش برای دسترسی به یک صفحه Piwik. <br\/><B> »می تواند href='index.php'> <a نصب Piwik در حال حاضر <\/a> <\/B> <br \/> <small> اگر شما نصب Piwik قبل و برخی از جداول در پایگاه داده خود را داشته باشند، نگران نباشید، شما می توانید جداول و استفاده مجدد از داده های موجود خود را حفظ کنید <\/small>",
- "NotSupported": "پشتیبانی نمیشود",
"Optional": "اختیاری",
"Password": "کلمه عبور",
"PasswordDoNotMatch": "کلمه عبور یکی نیست",
@@ -93,6 +91,7 @@
"SystemCheckWriteDirs": "راهنماها با دسترسی نوشتن",
"SystemCheckWriteDirsHelp": "برای حل این خطا بر روی سیستم لینوکس خود را، سعی کنید با تایپ کردن دستور زیر را ()",
"SystemCheckZlibHelp": "شما نیاز به بازسازی و پیکربندی PHP با پشتیبانی از zlib می \"را فعال کنید، - با zlib می.",
+ "NotSupported": "پشتیبانی نمیشود",
"Tables": "ایجاد جداول",
"TablesCreatedSuccess": "جداول با موفقیت ساخته شد!",
"TablesDelete": "حذف جداول شناسایی",
@@ -104,6 +103,7 @@
"WeHopeYouWillEnjoyPiwik": "ما آرزو می کنیم شما از کار با پیویک لذت ببرید همان طوری که مااز ساختن آن لذت بردیم.",
"Welcome": "خوش آمدید!",
"WelcomeHelp": "<p>پیویک یک نرم افزار آمار وب متن باز است که بدست آوردن اطلاعات بازدیدکنندگان وبسایت شما را آسان کرده است.<\/p><p>فرآیند نصب پیویک به %s مرحله ی آسان تقسیم شده است و فقط حدود 5 دقیقه زمان می برد.<\/p>",
- "WelcomeToCommunity": "به انجمن برنامه خوش آمدید"
+ "WelcomeToCommunity": "به انجمن برنامه خوش آمدید",
+ "CannotConnectToDb": "نمیتوان با پایگاه داده ارتباط برقرار کرد"
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/fi.json b/plugins/Installation/lang/fi.json
index 729cdd45d0..ae3a23fecf 100644
--- a/plugins/Installation/lang/fi.json
+++ b/plugins/Installation/lang/fi.json
@@ -1,6 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "Tietokantaan yhdistäminen epäonnistui",
"CollaborativeProject": "Piwik on yhteistyöprojekti, jonka parissa ovat työskennelleet ihmiset ympäri maailmaa suurella sydämellä.",
"ConfigurationHelp": "Piwikin asetustiedosto on luotu väärin. Voit joko poistaa tiedoston config\/config.ini.php ja käyttää asennusohjelmaa uudelleen tai korjata tietokannan asetukset.",
"ConfirmDeleteExistingTables": "Haluatko varmasti poistaa seuraavat taulut tietokannasta: %s? VAROITUS: TAULUJEN TIETOJA EI VOI PALAUTTAA EIKÄ POISTAMISTA VOI KUMOTA!",
@@ -37,17 +36,16 @@
"NfsFilesystemWarningSuffixAdmin": "Tämä tarkoittaa, että Piwik on todella hidas käytettäessä tiedostopohjaisia sessioita.",
"NfsFilesystemWarningSuffixInstall": "Tiedostopohjaisten sessioiden käyttäminen NFS:ssä on todella hidasta, joten Piwik käyttää tietokantasessioita. Jos sinulla on monia samanaikaisia ohjauspaneelin käyttäjiä, sinun tarvitsee ehkä lisätä tietokantaserverin käyttäjäyhteyksien maksimimäärää.",
"NoConfigFound": "Piwikin asetustiedostoa ei löydy ja yrität siirtyä Piwikin sivuille.<br \/><b>  » Voit <a href='index.php'>asentaa Piwikin nyt<\/a><\/b><br \/><small>Jos asensit Piwikin aikaisemmin ja tietokannassa on jo tietoja, älä murehdi, tietoja ei hävitetä.<\/small>",
- "NotSupported": "ei tuettu",
"Optional": "Optionaalinen",
"Password": "salasana",
"PasswordDoNotMatch": "salasanat eivät täsmää",
"PasswordRepeat": "salasana (uudelleen)",
"PercentDone": "%s %% valmiina",
- "PiwikOrgNewsletter": "lähetä minulle sähköpostia isoista Piwikin yhteisön päivityksistä",
"PleaseFixTheFollowingErrors": "Korjaa seuraavat virheet",
"Requirements": "Piwikin vaatimukset",
"RestartWebServer": "Käynnistä web-palvelimesi uudelleen näiden muutosten jälkeen.",
"ReusingTables": "Taulukoiden uudelleenkäyttö",
+ "PiwikOrgNewsletter": "lähetä minulle sähköpostia isoista Piwikin yhteisön päivityksistä",
"SeeBelowForMoreInfo": "Katso alempaa lisätietoja.",
"SetupWebsite": "Lisää verkkosivu",
"SetupWebsiteError": "Virhe verkkosivun lisäämisessä",
@@ -63,8 +61,6 @@
"SystemCheck": "Järjestelmän asetukset",
"SystemCheckAutoUpdateHelp": "Huomioi: Piwikin yhden klikkauksen päivitys vaatii kirjoitusoikeudet Piwikin kansioon ja kansion kaikkeen sisältöön.",
"SystemCheckCreateFunctionHelp": "Piwik käyttää anonyymejä funktioita takaisinkutsuihin.",
- "SystemCheckCronArchiveProcess": "Arkistointityö",
- "SystemCheckCronArchiveProcessCLI": "Prosessien hallinta komentoriviltä",
"SystemCheckDatabaseHelp": "Piwik vaatii joko mysqli-lisäosan tai sekä PDO- että pdo_mysql-lisäosat..",
"SystemCheckDebugBacktraceHelp": "View::factory ei voi luoda näkymää kutsuvalle moduulille.",
"SystemCheckError": "Tapahtui virhe - täytyy korjata ennen jatkamista",
@@ -108,6 +104,9 @@
"SystemCheckWriteDirs": "Tiedostot kirjoitusoikeudella",
"SystemCheckWriteDirsHelp": "Aja Linux-järjestelmässä seuraavat komennot:",
"SystemCheckZlibHelp": "PHP pitää olla asennettuna zlib-lisäosan kanssa, --with-zlib.",
+ "SystemCheckCronArchiveProcess": "Arkistointityö",
+ "SystemCheckCronArchiveProcessCLI": "Prosessien hallinta komentoriviltä",
+ "NotSupported": "ei tuettu",
"Tables": "Luodaan taulut",
"TablesCreatedSuccess": "Taulut luotu onnistuneesti!",
"TablesDelete": "Poista löydetyt taulut",
@@ -121,6 +120,7 @@
"WeHopeYouWillEnjoyPiwik": "Toivomme että nautit Piwikin käytöstä yhtä paljon kuin me nautimme sen luomisesta!",
"Welcome": "Tervetuloa!",
"WelcomeHelp": "<p>Piwik on vapaan lähdekoodin verkkosivujen analysointityökalu, joka tekee kävijöiden tietojen keräämisen ja analysoinnin helpoksi.<\/p><p>Tämä prosessi on jaettu %s helppoon osaan ja vie aikaa noin viisi minuuttia.<\/p>",
- "WelcomeToCommunity": "Tervetuloa Piwik-yhteisöön!"
+ "WelcomeToCommunity": "Tervetuloa Piwik-yhteisöön!",
+ "CannotConnectToDb": "Tietokantaan yhdistäminen epäonnistui"
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/fr.json b/plugins/Installation/lang/fr.json
index 64571453e2..5598e56ebd 100644
--- a/plugins/Installation/lang/fr.json
+++ b/plugins/Installation/lang/fr.json
@@ -1,7 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "Impossible de se connecter à la base de données",
- "CannotConnectToDbResolvingExplanation": "Cela peut être un problème temporaire, essayer de %1$srafraichir la page%2$s. Si le problème persiste veuillez contacter votre administrateur Piwik.",
"CollaborativeProject": "Piwik est un projet collaboratif, construit avec amour par des personnes du monde entier.",
"ConfigurationHelp": "Votre configuration de Piwik semble être erronée. Vous pouvez ou bien supprimer config\/config.inc.php et reprendre l'installation ou corriger les paramètres de connexion.",
"ConfirmDeleteExistingTables": "Êtes vous sûr de vouloir supprimer les tables %s de votre base de données ? ATTENTION : LES DONNÉES SERONT DÉFINITIVEMENT PERDUES !",
@@ -17,8 +15,6 @@
"DatabaseSetupLogin": "Compte utilisateur",
"DatabaseSetupServer": "Serveur de base de données",
"DatabaseSetupTablePrefix": "Préfixe des tables",
- "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.",
"Email": "Courriel",
"Extension": "Extension",
"Filesystem": "Système de fichiers",
@@ -29,6 +25,7 @@
"InstallationStatus": "Statut de l'installation",
"InsufficientPrivilegesHelp": "Vous pouvez donner ces droits en utilisant un outils tel que phpMyAdmin ou en exécutant les requêtes SQL appropriées. Si vous ne savez pas comment effectuer cela veuillez demander à votre administrateur système de donner ces droits pour vous.",
"InsufficientPrivilegesMain": "La base de données n'existe pas (et n'a pas pu être créée), ou l'utilisateur spécifié a des privilèges insuffisants. Les utilisateurs de la base de données doivent avoir les privilèges suivants : %s",
+ "InvalidStateError": "Erreur : Piwik est déjà installé. %1$s Retourner %2$s vers Piwik%3$s.",
"JsTagArchivingHelp1": "Pour les sites à moyen et fort trafic il existe des optimisations qui pourraient être mises en place pour aider Piwik à s'exécuter plus rapidement (comme %1$smettre en place l'auto-archivage%2$s).",
"JSTracking_EndNote": "Note : après le processus d'installation, vous pouvez générer un code de suivi personnalisé depuis la section d'administration \"%1$sCode de Suivi%2$s.",
"JSTracking_Intro": "Pour effectuer le suivi du trafic web avec Piwik vous devez vous assurer que du code supplémentaire est ajouté sur toutes vos pages.",
@@ -40,17 +37,18 @@
"NfsFilesystemWarningSuffixAdmin": "Cela signifie que Piwik va être très lent lors de l'utilisation des sessions en fichier.",
"NfsFilesystemWarningSuffixInstall": "Utiliser les sessions en fichier avec NFS est très lent, donc Piwik va utiliser des sessions en base de données. Si vous avez plusieurs utilisateurs de tableaux de bords en parallèle, vous pourriez avoir besoin d'augmenter le nombre maximal de connexions au serveur de base de données.",
"NoConfigFound": "Le fichier de configuration de Piwik ne peut être trouvé et vous essayez d'accéder à une page de Piwik.<br> <b>  » Vous pouvez <a href='index.php'>installer Piwik maintenant<\/a><\/b><br><small>Si vous avez déjà installé Piwik ne vous inquiétez pas Piwik réutilisera ces tables et leurs données.<\/small>",
- "NotSupported": "non supporté",
"Optional": "Optionnel",
"Password": "Mot de passe",
"PasswordDoNotMatch": "Le mot de passe ne concorde pas",
"PasswordRepeat": "Mot de passe (à nouveau)",
"PercentDone": "%s %% complété",
- "PiwikOrgNewsletter": "Envoyez moi des courriels pour les mises à jour importantes de Piwik",
"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.",
"Requirements": "Pré requis Piwik",
"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",
"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",
@@ -66,8 +64,7 @@
"SystemCheck": "Vérification du système",
"SystemCheckAutoUpdateHelp": "Note : La mise à jour de Piwik en un clic requiert une permission en écriture sur le dossier de Piwik et son contenu.",
"SystemCheckCreateFunctionHelp": "Piwik utilise des fonctions anonymes pour les callbacks.",
- "SystemCheckCronArchiveProcess": "Tâche Cron d'archivage",
- "SystemCheckCronArchiveProcessCLI": "Gestion des processus via la ligne de commande",
+ "SystemCheckDatabaseExtensions": "Extensions MySQL",
"SystemCheckDatabaseHelp": "Piwik requiert ou l'extension mysqli ou les extensions pdo et pdo_mysql.",
"SystemCheckDebugBacktraceHelp": "View::factory ne pourra pas créer des vues pour le module appelé.",
"SystemCheckError": "Une erreur s'est produite — elle doit être corrigée avant de pouvoir continuer",
@@ -91,14 +88,15 @@
"SystemCheckOpenURLHelp": "Abonnements à la newsletter, notifications des mises à jour, et mise à jour en un clic requièrent l'extension curl, allow_url_fopen=On, ou fsockopen() activé.",
"SystemCheckOtherExtensions": "Autres extensions",
"SystemCheckOtherFunctions": "Autres fonctions",
- "SystemCheckPackHelp": "La fonction pack() est requise pour suivre les visiteurs dans Piwik.",
"SystemCheckPageSpeedDisabled": "PageSpeed désactivé",
+ "SystemCheckPageSpeedWarn": "Nous vous recommandons de désactiver le module PageSpeed sur votre serveur web %s: PageSpeed a été rapporté comme causant de multiples erreurs avec Piwik.",
+ "SystemCheckPackHelp": "La fonction pack() est requise pour suivre les visiteurs dans Piwik.",
"SystemCheckParseIniFileHelp": "Cette fonction incluse a été désactivée sur votre serveur. Piwik va essayer d'émuler cette fonction mais il est possible que vous rencontriez des restrictions de sécurité par la suite. Les performances seront aussi impactées.",
"SystemCheckPdoAndMysqliHelp": "Sur un serveur linux vous pouvez compiler PHP avec les options suivantes : %1$s Dans votre php.ini, ajoutez les lignes suivantes: %2$s",
"SystemCheckPhp": "Version PHP",
"SystemCheckPhpPdoAndMysqli": "Plus d'informations sur: %1$sPHP PDO%2$s et %3$sMYSQLI%4$s.",
- "SystemCheckSettings": "Configuration PHP requise (php.ini)",
"SystemCheckSplHelp": "Vous devez configurer et recompiler PHP avec la librairie standard (par défaut).",
+ "SystemCheckSettings": "Configuration PHP requise (php.ini)",
"SystemCheckSummaryNoProblems": "Génial ! Il n'y a aucun problème avec votre installation de Piwik. Donnez-vous une tape dans le dos.",
"SystemCheckSummaryThereWereErrors": "Oh-oh ! Piwik a détecté des %1$sproblèmes critiques%2$s avec votre installation de Piwik. %3$sCes problèmes critiques doivent être fixés immédiatement.%4$s",
"SystemCheckSummaryThereWereWarnings": "Il y a des problèmes avec votre système. Piwik va fonctionner, mais vous pourriez rencontrer des problèmes mineurs.",
@@ -114,6 +112,12 @@
"SystemCheckWriteDirs": "Répertoires avec les droits d'accès en écriture",
"SystemCheckWriteDirsHelp": "Pour corriger les erreurs sur votre système Linux essayez de taper les commandes suivantes",
"SystemCheckZlibHelp": "Vous devez reconfigurer et recompiler PHP avec le support zlib, --with-zlib.",
+ "SystemCheckCronArchiveProcess": "Tâche Cron d'archivage",
+ "SystemCheckCronArchiveProcessCLI": "Gestion des processus via la ligne de commande",
+ "SystemCheckPhpSetting": "Pour éviter certaines erreurs critique, vous devez définier les entrées suivantes dans votre fichier php.ini : %s",
+ "SystemCheckUpdateHttps": "Mettre à jour via HTTPS",
+ "SystemCheckUpdateHttpsNotSupported": "Piwik ne peut pas utiliser du HTTPS pour se mettre à jour, il va rétrograder vers une mise à jour utilisant du HTTP non sécurisé. Vérifiez que CURL ou allow_url_fopen est supporté et que l'extesion PHP openssl est installée: http:\/\/piwik.org\/faq\/troubleshooting\/faq_177\/",
+ "NotSupported": "non supporté",
"Tables": "Création des tables",
"TablesCreatedSuccess": "Tables créées avec succès !",
"TablesDelete": "Supprimer les tables détectées",
@@ -127,6 +131,8 @@
"WeHopeYouWillEnjoyPiwik": "Nous espérons que vous allez aimer utiliser Piwik autant que nous aimons le concevoir.",
"Welcome": "Bienvenue !",
"WelcomeHelp": "<p>Piwik est une application d'analyse du web Open Source qui vous permet d'obtenir facilement les informations que vous désirez sur vos visiteurs.<\/p>\t<p>Ce procédé est divisé en %s étapes faciles et vous prendra 5 minutes environ.<\/p>",
- "WelcomeToCommunity": "Bienvenue dans la communauté Piwik !"
+ "WelcomeToCommunity": "Bienvenue dans la communauté Piwik !",
+ "CannotConnectToDb": "Impossible de se connecter à la base de données",
+ "CannotConnectToDbResolvingExplanation": "Cela peut être un problème temporaire, essayer de %1$srafraichir la page%2$s. Si le problème persiste veuillez contacter votre administrateur Piwik."
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/it.json b/plugins/Installation/lang/it.json
index 46cfd6d3ce..abe2a80dd6 100644
--- a/plugins/Installation/lang/it.json
+++ b/plugins/Installation/lang/it.json
@@ -1,7 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "Impossibile connettersi al database",
- "CannotConnectToDbResolvingExplanation": "Potrebbe trattarsi di un problema temporaneo, prova a %1$sricaricare la pagina%2$s. Se il problema persiste, contatta il tuo amministratore di Piwik.",
"CollaborativeProject": "Piwik è un progetto in collaborazione, costruito con amore da persone di tutto il mondo.",
"ConfigurationHelp": "Il tuo file di configurazioni Piwik sembra essere configurato male. Puoi rimuovere il file config\/config.ini.php e ricominciare l'installazione, o correggere i dati di connessione al database.",
"ConfirmDeleteExistingTables": "Sei sicuro di voler cancellare le tabelle %s dal tuo Database? ATTENZIONE: I DATI NON POTRANNO ESSERE RECUPERATI!",
@@ -17,8 +15,6 @@
"DatabaseSetupLogin": "login",
"DatabaseSetupServer": "database server",
"DatabaseSetupTablePrefix": "Prefisso tabelle",
- "DefaultSettings": "Impostazioni predefinite di Piwik",
- "DefaultSettingsHelp": "Piwik ha delle impostazioni predefinite. Puoi personalizzarle ora o farlo in seguito dalla schermata di amministrazione.",
"Email": "E-mail",
"Extension": "estensione",
"Filesystem": "Filesystem",
@@ -40,18 +36,19 @@
"NfsFilesystemWarningSuffixAdmin": "Questo significa che Piwik sarà estremamente lento quando utilizzerà delle sessioni basate sui files.",
"NfsFilesystemWarningSuffixInstall": "L'utilizzo di sessioni basate sui files è estremamente lento, così Piwik userà delle sessioni con database. Se hai molti utenti della dashboard, potresti avere la necessità di aumentare il numero massimo di connessioni dei client al server del database.",
"NoConfigFound": "Il file di configurazione di Piwik non è stato trovato e stai tentando l'accesso ad una pagina di Piwik.<br \/><b> » Puoi <a href='index.php'>installare Piwik ora.<\/a><\/b><br \/><small>Se hai già installato in precedenza Piwik e nel tuo Database sono presenti delle tabelle della vecchia installazione, non preoccuparti, puoi riutilizzarle e salvare i dati già esistenti!<\/small>",
- "NotSupported": "non supportato",
"Optional": "Opzionale",
"Password": "Password",
"PasswordDoNotMatch": "Le Password non coincidono",
"PasswordRepeat": "Password (ripeti)",
"PercentDone": "%s %% Fatto",
- "PiwikOrgNewsletter": "Inviami per email gli aggiornamenti importanti della comunità di Piwik",
- "PiwikProNewsletter": "inviami informazioni su servizi e offerte di %sPiwik PRO%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.",
"Requirements": "Requisiti di Piwik",
"RestartWebServer": "Dopo aver fatto questa modifica, riavviare 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",
"SeeBelowForMoreInfo": "Guarda sotto per altre informazioni.",
"SetupWebsite": "Configura un sito web",
"SetupWebsiteError": "C'è stato un errore durante l'aggiunta del sito web",
@@ -67,8 +64,6 @@
"SystemCheck": "Controllo del sistema",
"SystemCheckAutoUpdateHelp": "Nota: Lo \"One Click update\" di Piwik richiede i permessi di scrittura sulla cartella Piwik e il suo contenuto.",
"SystemCheckCreateFunctionHelp": "Piwik usa funzioni anonime per i callbacks.",
- "SystemCheckCronArchiveProcess": "Cron-task Archivio",
- "SystemCheckCronArchiveProcessCLI": "Gestione processi tramite CLI",
"SystemCheckDatabaseHelp": "Piwik necessita dell'estensione mysqli o in alternativa sia l'estensione PDO sia l'estensione pdo_mysql",
"SystemCheckDebugBacktraceHelp": "View::factory non può creare viste (view) per il modulo chiamante.",
"SystemCheckError": "Si è verificato un errore - deve essere corretto prima di proseguire",
@@ -92,16 +87,15 @@
"SystemCheckOpenURLHelp": "Iscrizione alla newsletter, notifiche per gli aggiornamenti, e 'one-click updates' (aggiornamenti con un solo click) richiedono l'estensione 'curl', allow_url_fopen=On, o fsockopen() abilitato.",
"SystemCheckOtherExtensions": "Altre estensioni",
"SystemCheckOtherFunctions": "Altre funzioni",
- "SystemCheckPackHelp": "La funzione pack() è necessaria per monitorare i visitatori in Piwik.",
"SystemCheckPageSpeedDisabled": "PageSpeed disabilitato",
"SystemCheckPageSpeedWarn": "Raccomandiamo di disabilitare il modulo PageSpeed nel tuo server %s: PageSpeed è segnalato come causa di svariati problemi con Piwik.",
+ "SystemCheckPackHelp": "La funzione pack() è necessaria per monitorare i visitatori in Piwik.",
"SystemCheckParseIniFileHelp": "Questa funzione è stata disabilitata sul tuo host. Piwik proverà a simularla ma potrebbe incontrare altre restrizioni di sicurezza. Anche le prestazioni del tracciatore potrebbero risentirne.",
"SystemCheckPdoAndMysqliHelp": "Su un server Linux puoi compilare PHP con le seguenti opzioni: %1$s Nel tuo php.ini, aggiungi le seguenti linee: %2$s",
"SystemCheckPhp": "Versione PHP",
"SystemCheckPhpPdoAndMysqli": "Maggiori informazioni a riguardo: %1$sPHP PDO%2$s e %3$sMYSQLI%4$s.",
- "SystemCheckPhpSetting": "Per prevenite alcuni problemi critici, devi impostare ciò che segue nel php.ini: %s",
- "SystemCheckSettings": "Richiesta configurazione PHP (php.ini)",
"SystemCheckSplHelp": "Devi configurare e ricostruire il PHP con la libreria Standard PHP abilitata (di default).",
+ "SystemCheckSettings": "Richiesta configurazione PHP (php.ini)",
"SystemCheckSummaryNoProblems": "Evviva! Non ci sono problemi con le impostazioni di Piwik. Datti una pacca sulla spalla.",
"SystemCheckSummaryThereWereErrors": "Piwik ha rilevato alcuni %1$sproblemi critici%2$s con la configurazione di Piwik. %3$sQuesti problemi devono essere risolti immediatamente.%4$s",
"SystemCheckSummaryThereWereWarnings": "Ci sono alcuni problemi con il tuo sistema. Piwik verrà eseguito o stesso ma potrebbero verificarsi alcuni problemi minori.",
@@ -117,6 +111,10 @@
"SystemCheckWriteDirs": "Directories con permessi di scrittura",
"SystemCheckWriteDirsHelp": "Per correggere questo errore in Linux, prova ad eseguire il seguente comando\/i",
"SystemCheckZlibHelp": "Devi configurare e ricostruire il PHP con il supporto zlib abilitato, --with-zlib.",
+ "SystemCheckCronArchiveProcess": "Cron-task Archivio",
+ "SystemCheckCronArchiveProcessCLI": "Gestione processi tramite CLI",
+ "SystemCheckPhpSetting": "Per prevenite alcuni problemi critici, devi impostare ciò che segue nel php.ini: %s",
+ "NotSupported": "non supportato",
"Tables": "Sto creando le tabelle",
"TablesCreatedSuccess": "Tabelle create con successo!",
"TablesDelete": "Cancella le tabelle individuate",
@@ -130,6 +128,8 @@
"WeHopeYouWillEnjoyPiwik": "Noi speriamo che tu gradirai utilizzare Piwik come a noi piace realizzarlo.",
"Welcome": "Benvenuto!",
"WelcomeHelp": "<p>Piwik è un software open source che ti permette di analizzare facilmente le informazioni dei visitatori che visitano i tuoi siti web.<\/p><p>Questa procedura si divide in %s semplici passaggi e si completa nel giro di 5 minuti.<\/p>",
- "WelcomeToCommunity": "Benevenuto nella comunità di Piwik!"
+ "WelcomeToCommunity": "Benevenuto nella comunità di Piwik!",
+ "CannotConnectToDb": "Impossibile connettersi al database",
+ "CannotConnectToDbResolvingExplanation": "Potrebbe trattarsi di un problema temporaneo, prova a %1$sricaricare la pagina%2$s. Se il problema persiste, contatta il tuo amministratore di Piwik."
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/ja.json b/plugins/Installation/lang/ja.json
index 47d54a5519..87439c9615 100644
--- a/plugins/Installation/lang/ja.json
+++ b/plugins/Installation/lang/ja.json
@@ -1,7 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "データベースに接続できません。",
- "CannotConnectToDbResolvingExplanation": "これは一時的な問題の可能性があります。%1$srefreshing the page%2$s をお試しください。問題が続く場合、Piwik 管理者にお問い合わせください。",
"CollaborativeProject": "Piwik は、世界中の人々に愛され、構築されている共同プロジェクトです。",
"ConfigurationHelp": "Piwik 設定ファイルが誤設定されているようです。 config\/config.ini.php を削除してインストールを再開するか、データベースの接続設定を修正してください。",
"ConfirmDeleteExistingTables": "本当にデータベースからテーブル %s を削除しますか? 警告: これらのテーブルのデータを復旧することはできません!",
@@ -38,17 +36,16 @@
"NfsFilesystemWarningSuffixAdmin": "これは、ファイルベースのセッションを利用する際、Piwik が極端に遅くなることを意味します。",
"NfsFilesystemWarningSuffixInstall": "NFS 上でファイルベースのセッションを利用すると極端に遅いので、Piwik はデータベースセッションを使用します。同時に多くのダッシュボードユーザーがいる場合、データベースサーバーへのクライアント接続の最大数を増やす必要があります。",
"NoConfigFound": "Piwik の設定ファイルを見つけることができませんでしたが、あなたは Piwik ページにアクセスしようとしています。<br \/><b>  »<a href='index.php'>ただちに Piwik をインストール<\/a>することができます。<\/b><br \/><small>以前に Piwik をインストールしたことがあり、DB に多少のデータがある場合でも心配しないでください。 既存のデータを保持したまま、同じテーブルを再利用することができます!<\/small>",
- "NotSupported": "サポートされていません",
"Optional": "オプション",
"Password": "パスワード",
"PasswordDoNotMatch": "パスワードが一致しませんでした",
"PasswordRepeat": "パスワード(再入力)",
"PercentDone": "%s %% 完了",
- "PiwikOrgNewsletter": "私に Piwik コミュニティの最新情報をメールで送る",
"PleaseFixTheFollowingErrors": "次のエラーを修正してください",
"Requirements": "Piwik の動作環境",
"RestartWebServer": "この変更を行った後、ウェブサーバーを再起動してください。",
"ReusingTables": "表の再利用",
+ "PiwikOrgNewsletter": "私に Piwik コミュニティの最新情報をメールで送る",
"SeeBelowForMoreInfo": "詳細は、以下をご確認ください。",
"SetupWebsite": "ウェブサイトのセットアップ",
"SetupWebsiteError": "ウェブサイトを追加する際にエラーが発生しました",
@@ -64,8 +61,6 @@
"SystemCheck": "システムの確認",
"SystemCheckAutoUpdateHelp": "注意: Piwik のワンクリックアップデートには、Piwik のフォルダとその内容に書き込み権限が必要となります。",
"SystemCheckCreateFunctionHelp": "Piwik はコールバックに匿名関数を使用します。",
- "SystemCheckCronArchiveProcess": "アーカイブ cron",
- "SystemCheckCronArchiveProcessCLI": "CLI を経由して処理を管理する",
"SystemCheckDatabaseHelp": "Piwik には、mysqli エクステンションか、PDO と pdo_mysql エクステンションの両方の、どちらかが必要です。",
"SystemCheckDebugBacktraceHelp": "View::factory はコール側モジュールのビューを作成することができません。",
"SystemCheckError": "エラー発生 - 次の処理へ進む前に修正する必要があります。",
@@ -110,6 +105,9 @@
"SystemCheckWriteDirs": "書き込み権限のあるディレクトリ",
"SystemCheckWriteDirsHelp": "この Linux システムでこの問題を修正するには、次のコマンドを打ち込んでみてください",
"SystemCheckZlibHelp": "\"zlib\" のサポートを有効にして、PHP の再構築と設定を行う必要があります(--with-zlib)。",
+ "SystemCheckCronArchiveProcess": "アーカイブ cron",
+ "SystemCheckCronArchiveProcessCLI": "CLI を経由して処理を管理する",
+ "NotSupported": "サポートされていません",
"Tables": "テーブルの作成",
"TablesCreatedSuccess": "テーブルは正常に作成されました!",
"TablesDelete": "検出されたテーブルを削除",
@@ -123,6 +121,8 @@
"WeHopeYouWillEnjoyPiwik": "私達が Piwik の開発を楽しんでいるように、Piwik のご利用をお楽しみ頂ける事を願っています。",
"Welcome": "ようこそ!",
"WelcomeHelp": "<p>Piwik は、ビジターからあなたが必要とする情報を収集することを容易にする、オープンソースのウェブ解析ソフトウェアです。<\/p><p>この処理は %s の簡単なステップに分かれていて、5分程度で完了します。<\/p>",
- "WelcomeToCommunity": "Piwik コミュニティへようこそ!"
+ "WelcomeToCommunity": "Piwik コミュニティへようこそ!",
+ "CannotConnectToDb": "データベースに接続できません。",
+ "CannotConnectToDbResolvingExplanation": "これは一時的な問題の可能性があります。%1$srefreshing the page%2$s をお試しください。問題が続く場合、Piwik 管理者にお問い合わせください。"
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/nb.json b/plugins/Installation/lang/nb.json
index 3a8348fb89..395de6e0e7 100644
--- a/plugins/Installation/lang/nb.json
+++ b/plugins/Installation/lang/nb.json
@@ -1,6 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "Kan ikke koble til databasen",
"ConfirmDeleteExistingTables": "Er du sikker på at du vil slette tabellene %s fra databasen din? ADVARSEL: DATA FRA DISSE TABELLENE KAN IKKE GJENOPPRETTES!",
"Congratulations": "Gratulerer",
"CongratulationsHelp": "<p>Gratulerer! Din Piwik installasjon er fullført.<\/p><p>Sørg for at JavaScript-koden er lagt inn på dine sider, og vent på dine første besøkende!<\/p>",
@@ -24,7 +23,6 @@
"NfsFilesystemWarning": "Din tjeneren bruker et NFS filsystem.",
"NfsFilesystemWarningSuffixAdmin": "Dette betyr Piwik vil være svært treg når du bruker filbaserte økter.",
"NoConfigFound": "Klarte ikke finne konfigurasjonsfilen for Piwik, og du prøver å få tilgang til en Piwik-side. <br \/><b>  »Du kan <a href='index.php'>installere Piwik nå<\/a><\/b><br \/><small>Hvis du prøvde å installere Piwik tidligere og har noen tabeller i databasen, kan du ta det med ro. Du kan bruke de gamle tabellene og beholde dine eksisterende data!<\/small>",
- "NotSupported": "støttes ikke",
"Optional": "Valgfritt",
"Password": "passord",
"PasswordDoNotMatch": "passordene stemmer ikke overens",
@@ -61,8 +59,8 @@
"SystemCheckOpenURLHelp": "Nyhetsbrev abonnement, oppdatering påminninger og en-klikk-oppdatering krever Curl-utvidelsen, \"allow_url_fopen=On\" eller at fsockopen() er aktivert.",
"SystemCheckOtherExtensions": "Andre utvidelser",
"SystemCheckOtherFunctions": "Andre funksjoner",
- "SystemCheckPackHelp": "pack()-funksjonen er nødvendig for å spore besøkende i Piwik.",
"SystemCheckPageSpeedDisabled": "PageSpeed deaktivert",
+ "SystemCheckPackHelp": "pack()-funksjonen er nødvendig for å spore besøkende i Piwik.",
"SystemCheckParseIniFileHelp": "Denne innebygde funksjonen har blitt deaktivert på verten. Piwik vil forsøke å etterligne denne funksjonen, men kan møte ytterligere sikkerhetsbegrensninger. Sporingsytelsen vil også bli påvirket.",
"SystemCheckPhp": "PHP-versjon",
"SystemCheckPhpPdoAndMysqli": "Mer informasjon om: %1$sPHP PDO%2$s og %3$sMYSQLI%4$s.",
@@ -75,6 +73,7 @@
"SystemCheckWriteDirs": "Kataloger med skrivetilgang",
"SystemCheckWriteDirsHelp": "For å fikse denne feilen på ditt Linux-system, prøv å skriv inn følgende kommando(er)",
"SystemCheckZlibHelp": "Du må konfigurere og bygge PHP på nytt med zlib-støtte aktivert, --with-zlib.",
+ "NotSupported": "støttes ikke",
"Tables": "Oppretter tabellene",
"TablesCreatedSuccess": "Tabellene ble vellykket opprettet!",
"TablesDelete": "Slett de oppdagede tabellene",
@@ -87,6 +86,7 @@
"Timezone": "tidssone for nettsted",
"Welcome": "Velkommen!",
"WelcomeHelp": "<p>Piwik er åpen kildekode nettstatistikk-programvare som gjør det enkelt å finne informasjonen du ønsker om dine besøkende.<\/p><p>Denne prossessen er delt opp i %s lette steg og vil ta ca 5 minutter.<\/p>",
- "WelcomeToCommunity": "Velkommen til Piwik-fellesskapet!"
+ "WelcomeToCommunity": "Velkommen til Piwik-fellesskapet!",
+ "CannotConnectToDb": "Kan ikke koble til databasen"
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/nl.json b/plugins/Installation/lang/nl.json
index ad3ec5a7d5..e9e4f9e985 100644
--- a/plugins/Installation/lang/nl.json
+++ b/plugins/Installation/lang/nl.json
@@ -1,6 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "Kan geen verbinding maken met de database",
"CollaborativeProject": "Piwik is een samenwerkingsproject, met liefde gebouwd door mensen van over de hele wereld.",
"ConfigurationHelp": "Uw Piwik configuratie bestand is waarschijnlijk niet correct geconfigureerd. U kunt ofwel config\/config.ini.php verwijderen en de installatie vervolgen of de toegangsgegevens voor de database corrigeren.",
"ConfirmDeleteExistingTables": "Bent u zeker dat u de tabellen wilt verwijderen: %s uit uw datbase? WAARSCHUWING: DATA VAN DEZE TABELLEN KAN NIET WORDEN HERSTELD!",
@@ -16,18 +15,17 @@
"DatabaseSetupLogin": "login",
"DatabaseSetupServer": "database server",
"DatabaseSetupTablePrefix": "tabel voorvoegsel",
- "DefaultSettings": "Standaard Piwik instellingen",
"Email": "email",
"Extension": "extensie",
"Filesystem": "Bestandsssysteem",
"GoBackAndDefinePrefix": "Ga terug en definieer een voorvoegsel voor de Piwik tabellen",
"Installation": "Installatie",
"InstallationStatus": "Installatie status",
- "InsufficientPrivilegesHelp": "U kunt deze privileges toeveoegen door gebruik te maken van een tool als phpMyAdmin of door het uitvoeren van de juiste SQL queries. Als u niet weet hoe dit moet, dan kunt u het beste de beheerder van uw webserver vragen om de privileges aan te passen.",
- "InsufficientPrivilegesMain": "Oftwel bestaat de Database niet (en kon ze niet worden aangemaakt), of de opgegeven Gebruiker heeft onvoldoende rechten. Database gebruiker heeft de volgende rechten nodig: %s",
+ "InsufficientPrivilegesHelp": "U kunt deze privileges toevoegen door gebruik te maken van een tool als phpMyAdmin of door het uitvoeren van de juiste SQL queries. Als u niet weet hoe dit moet, dan kunt u het beste de beheerder van uw webserver vragen om de privileges aan te passen.",
+ "InsufficientPrivilegesMain": "Of de database bestaat niet (en kon niet worden aangemaakt), of de opgegeven gebruiker heeft onvoldoende rechten. De database gebruiker heeft de volgende rechten nodig: %s",
"JsTagArchivingHelp1": "Voor middelgrote en grote websites, zijn er enkele optimalisaties die Piwik moeten helpen sneller te werken (zoals %1$s auto-archivering instellen%2$s).",
"JSTracking_EndNote": "Opmerking: Na het installatie proces, kun je custom tracking code genereren in het %1$sTracking Code%2$s admin gedeelte.",
- "JSTracking_Intro": "Om je web verkeer te volgen met Piwik, moet je zorgen dat je wat extra vode toevoegt aan het einde van je webpagina's.",
+ "JSTracking_Intro": "Om je web verkeer te volgen met Piwik, moet je zorgen dat je wat extra code toevoegt aan het einde van je webpagina's.",
"LargePiwikInstances": "Hulp voor grote Piwik installaties",
"Legend": "Legende",
"LoadDataInfileRecommended": "Als je Piwik server populaire websites trackt (bijv. > 100,000 pagina's per maand), raden we aan dit probleem op te lossen.",
@@ -36,13 +34,13 @@
"NfsFilesystemWarningSuffixAdmin": "Dit betekent dat Piwik extreem traag zal zijn bij gebruik van bestands gebaseerde sessies.",
"NfsFilesystemWarningSuffixInstall": "Gebruik maken van bestands gebaseerde sessies op NFS is extreem traag, dus zal Piwik gebruik maken van database sessies. Indien je veel gelijktijdige dashboard gebruikers hebt, zul je mogelijk het maximum aantal client connecties naar de database server moeten verhogen.",
"NoConfigFound": "Het Piwik configuratiebestand werd niet gevonden.<br \/><b>  » U kunt <a href='index.php'>Piwik nu installeren<\/a><\/b><br \/><small>Wanneer u Piwik al eerder geïnstalleerd heeft en de Piwik tabellen reeds data bevatten: maakt u zich geen zorgen, u kunt dezelfde tabellen blijven gebruiken en uw bestaande data behouden!<\/small>',",
- "NotSupported": "niet ondersteund",
"Optional": "Optioneel",
"Password": "wachtwoord",
"PasswordDoNotMatch": "wachtwoord komt niet overeen",
"PasswordRepeat": "wachtwoord (herhaal)",
"PercentDone": "%s %% Gereed",
"PleaseFixTheFollowingErrors": "Los de volgende problemen op",
+ "DefaultSettings": "Standaard Piwik instellingen",
"Requirements": "Piwik vereisten",
"RestartWebServer": "Herstart uw webserver na deze aanpassing.",
"ReusingTables": "Hergebruik de tabellen",
@@ -102,6 +100,8 @@
"SystemCheckWriteDirs": "Mappen met schrijf-rechten",
"SystemCheckWriteDirsHelp": "Om dit probleem te verhelpen op uw linux server, type de volgende commando(s)",
"SystemCheckZlibHelp": "U moet PHP configureren met zlib support ingeschakeld, --with-zlib.",
+ "SystemCheckUpdateHttps": "Bijwerken via HTTPS",
+ "NotSupported": "niet ondersteund",
"Tables": "Tabellen creëren",
"TablesCreatedSuccess": "De tabellen zijn succesvol aangemaakt",
"TablesDelete": "Verwijder de gevonden tabellen",
@@ -114,6 +114,7 @@
"Timezone": "tijdzone website",
"Welcome": "Welkom!",
"WelcomeHelp": "<p>Piwik is een open source web analytics software pakket die u op simpele wijze de gegevens van uw bezoekers presenteert.<\/p><p>Dit proces is opgedeeld in %s simpele stappen welke ongeveer 5 minuten in beslag nemen.<\/p>",
- "WelcomeToCommunity": "Welkom bij de Piwik community!"
+ "WelcomeToCommunity": "Welkom bij de Piwik community!",
+ "CannotConnectToDb": "Kan geen verbinding maken met de database"
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/pl.json b/plugins/Installation/lang/pl.json
index f87e8ab244..1ef1a5e502 100644
--- a/plugins/Installation/lang/pl.json
+++ b/plugins/Installation/lang/pl.json
@@ -1,6 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "Nie można połączyć się z bazą danych",
"CollaborativeProject": "Piwik jest wspólnym projetem, tworzonym z miłością przez ludzi z całego świata.",
"ConfigurationHelp": "Twój plik konfiguracyjny Piwik wydaje się nieskonfigurowany. Możesz również usunąć config\/config.ini.php i powtórzyć instalację, lub naprawić konfigurację połączenia z bazą danych.",
"ConfirmDeleteExistingTables": "Czy masz pewność, że chcesz skasować tabele: %s ze swojej bazy danych? OSTRZEŻENIE: DANE Z TYCH TABEL NIE ZOSTANĄ ODTWORZONE CZY ZABEZPIECZONE!",
@@ -26,17 +25,16 @@
"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>",
- "NotSupported": "nie obsługiwane",
"Optional": "Opcionalnie",
"Password": "hasło",
"PasswordDoNotMatch": "hasło jest nieprawidłowe",
"PasswordRepeat": "hasło (ponownie)",
"PercentDone": "%s %% wykonano",
- "PiwikOrgNewsletter": "Wyślij mi wiadomość email z głównymi aktualizacjami społeczności Piwik",
"PleaseFixTheFollowingErrors": "Prosimy naprawić następujące błędy",
"Requirements": "Wymagania systemu Piwik",
"RestartWebServer": "Po dokonaniu tych zmian, zrestartuj swój serwer.",
"ReusingTables": "Ponowne użycie Tabel",
+ "PiwikOrgNewsletter": "Wyślij mi wiadomość email z głównymi aktualizacjami społeczności Piwik",
"SeeBelowForMoreInfo": "Poniżej znajdziesz więcej informacji.",
"SetupWebsite": "Konfiguracja portalu",
"SetupWebsiteError": "Pojawił się błąd podczas dodawania adresu strony",
@@ -52,7 +50,6 @@
"SystemCheck": "Sprawdzenie systemu",
"SystemCheckAutoUpdateHelp": "Uwaga: automatyczna aktualizacja statystyk Piwik wymaga praw do zapisu w folderze Piwik i w jego podkatalogach.",
"SystemCheckCreateFunctionHelp": "Piwik używa funkcji anonimizujących dla wywołań zwrotnych.",
- "SystemCheckCronArchiveProcessCLI": "Zarządzaj procesami z wiersza poleceń",
"SystemCheckDatabaseHelp": "Piwik wymaga do prawidłowego działania również rozszerzeń MYSQLI lub jednocześnie działania rozszerzeń PDO i pdo_mysql.",
"SystemCheckDebugBacktraceHelp": "Podgląd::czynnik ten nie będzie zdolny do wytworzenia podglądu w wywołanym module.",
"SystemCheckError": "Wystąpił błąd - powinien zostać naprawiony przed dalszym działaniem",
@@ -95,6 +92,8 @@
"SystemCheckWriteDirs": "Katalogi z prawem do zapisu",
"SystemCheckWriteDirsHelp": "Aby naprawić ten błąd w swoim systemie Linux, próbuj wpisać następującą komendę(y)",
"SystemCheckZlibHelp": "Potrzebujesz skonfigurować i przebudować środowisko PHP, z włączonym wsparciem dla \"zlib\", --with-zlib.",
+ "SystemCheckCronArchiveProcessCLI": "Zarządzaj procesami z wiersza poleceń",
+ "NotSupported": "nie obsługiwane",
"Tables": "Tworzenie tabel",
"TablesCreatedSuccess": "Tabele zostały utworzone pomyślnie!",
"TablesDelete": "Kasowanie wykrytych tabel z bazy",
@@ -106,6 +105,7 @@
"Timezone": "strefa czasowa",
"Welcome": "Witaj!",
"WelcomeHelp": "<p>Piwik jest systemem analityki statystyk stron w oparciu o wolne oprogramowanie open source, które zapewnia bezpośrednie pozyskanie informacji o odwiedzinach danego serwisu www.<\/p><p>Proces ten jest podzielony na kilka łatwych kroków, obecnie w ilości: %s i zajmie około 5 minut.<\/p>",
- "WelcomeToCommunity": "Witamy w społeczności Piwik"
+ "WelcomeToCommunity": "Witamy w społeczności Piwik",
+ "CannotConnectToDb": "Nie można połączyć się z bazą danych"
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/ro.json b/plugins/Installation/lang/ro.json
index 4129444de9..82864092ec 100644
--- a/plugins/Installation/lang/ro.json
+++ b/plugins/Installation/lang/ro.json
@@ -36,17 +36,16 @@
"NfsFilesystemWarningSuffixAdmin": "Acest lucru înseamnă că Piwik va fi extrem de lent atunci când se utilizează sesiuni bazate pe fișiere.",
"NfsFilesystemWarningSuffixInstall": "Folosind sesiuni bazate pe fișiere NFS sunt extrem de lente, astfel Piwik va folosi sesiuni de baze de date. Dacă aveți mai mulți utilizatori de tablou de bord, ar putea fi necesar sa se creasca numărul maxim de conexiuni client la serverul de baze de date.",
"NoConfigFound": "Fișierul de configurare Piwik nu a putut fi găsit și se încearcă să se acceseze o pagină Piwik.<br \/><b> » Puteți a href='index.php'> instala Piwik acum <\/a><\/b><br \/><mic> Dacă ați instalat Piwik înainte și au aveti unele tabele din DB , nu vă faceți griji, aveți posibilitatea să reutilizați aceleași tabele și să se păstreze datele existente!<\/mic>",
- "NotSupported": "nu sunt acceptate",
"Optional": "Opţional",
"Password": "password",
"PasswordDoNotMatch": "Parola nu se potriveste",
"PasswordRepeat": "Parolă (repetă)",
"PercentDone": "%s %% Done",
- "PiwikOrgNewsletter": "trimite-mi email-uri cu noutăți importante legate de comunitatea Piwik",
"PleaseFixTheFollowingErrors": "Vă rugăm să reparati următoarele erori",
"Requirements": "Piwik Cerințe",
"RestartWebServer": "Dupa ce faci aceasta schimbare, reporniți serverul de web.",
"ReusingTables": "Reutilizare Tabele",
+ "PiwikOrgNewsletter": "trimite-mi email-uri cu noutăți importante legate de comunitatea Piwik",
"SeeBelowForMoreInfo": "Vezi mai jos pentru mai multe informații.",
"SetupWebsite": "Setup a website",
"SetupWebsiteError": "A fost o eroare atunci când s-a adăugart website-ul",
@@ -62,8 +61,6 @@
"SystemCheck": "System check",
"SystemCheckAutoUpdateHelp": "Notă: Un singur click pe Piwik pentru actualizare se necesită scrie-permisiune la folderul Piwik și conținutul său.",
"SystemCheckCreateFunctionHelp": "Piwik foloseste functii anonime pentru callback.",
- "SystemCheckCronArchiveProcess": "Arhiva Cron",
- "SystemCheckCronArchiveProcessCLI": "Administrarea proceselor via CLI",
"SystemCheckDatabaseHelp": "Piwik necesită fie extensia mysqli sau ambele extensiile DOP și PDO_MYSQL .",
"SystemCheckDebugBacktraceHelp": "Vezi :: fabrica nu va fi capabila sa creeze vizualizări pentru modulul de asteptare.",
"SystemCheckError": "A apărut o eroare - trebuie să fie reparata înainte de a continua",
@@ -108,6 +105,9 @@
"SystemCheckWriteDirs": "Directoare cu acces de scriere",
"SystemCheckWriteDirsHelp": "Pentru a remedia această eroare pe sistemul dvs. Linux, încercați să tastați următoarea comandă",
"SystemCheckZlibHelp": "Aveți nevoie de a configura și reconstrui PHP cu \"zlib\" sprijin activat, - cu-zlib.",
+ "SystemCheckCronArchiveProcess": "Arhiva Cron",
+ "SystemCheckCronArchiveProcessCLI": "Administrarea proceselor via CLI",
+ "NotSupported": "nu sunt acceptate",
"Tables": "Creare Tabele",
"TablesCreatedSuccess": "Tabele create cu succes!",
"TablesDelete": "Sterge tabelele detectate",
diff --git a/plugins/Installation/lang/ru.json b/plugins/Installation/lang/ru.json
index ebda4f78f7..8a07d8966b 100644
--- a/plugins/Installation/lang/ru.json
+++ b/plugins/Installation/lang/ru.json
@@ -1,9 +1,7 @@
{
"Installation": {
- "CannotConnectToDb": "Не удается подключиться к базе данных",
- "CannotConnectToDbResolvingExplanation": "Это может быть временная проблема, попробуйте %1$sобновить страницу%2$s. Если проблема не исчезнет, обратитесь к администратору Piwik.",
"CollaborativeProject": "Piwik является совместным проектом, построенный с любовью людей со всего мира.",
- "ConfigurationHelp": "Похоже, конфигурационный файл Piwik не сконфигурирован надлежащим образом. Вы можете удалить config\/config.ini.php, и продолжить установку, или исправить настройки соединения с базой данных.",
+ "ConfigurationHelp": "Похоже, конфигурационный файл Piwik не сконфигурирован надлежащим образом. Вы можете удалить config\/config.ini.php и продолжить установку, или исправить настройки соединения с базой данных.",
"ConfirmDeleteExistingTables": "Вы действительно хотите удалить таблицы: %s из базы данных? ВНИМАНИЕ: УДАЛЕННЫЕ ДАННЫЕ НЕВОЗМОЖНО ВОССТАНОВИТЬ!",
"Congratulations": "Поздравляем",
"CongratulationsHelp": "<p>Поздравляем! Установка Piwik закончена.<\/p><p>Убедитесь, что JavaScript-код размещен на всех страницах, и ожидайте первых посетителей!",
@@ -17,8 +15,6 @@
"DatabaseSetupLogin": "логин",
"DatabaseSetupServer": "сервер баз данных",
"DatabaseSetupTablePrefix": "префикс таблиц",
- "DefaultSettings": "Настройки Piwik по умолчанию",
- "DefaultSettingsHelp": "Piwik поставляется с настройками по умолчанию. Вы можете настроить их сейчас или сделать это позже в настройках администратора.",
"Email": "Адрес электронной почты (email)",
"Extension": "модуль",
"Filesystem": "Файловая система",
@@ -27,6 +23,7 @@
"Installation": "Установка",
"InstallationStatus": "Статус установки",
"InsufficientPrivilegesHelp": "Вы можете добавить эти права, используя, например, phpMyAdmin или с помощью соответствующих SQL-запросов. Если вы не знаете, как это работает, пожалуйста, попросите вашего сисадмина, чтобы он добавил вам права.",
+ "InvalidStateError": "Ошибка: Piwik уже установлен. %1$s Вернуться %2$s к Piwik%3$s.",
"JsTagArchivingHelp1": "Для сайтов с высокой и средней посещаемостью есть определенные оптимизации, которые должны быть сделаны, чтобы помочь Piwik работать быстрее (например, %1$sнастройка автоматического архивирования (en)%2$s).",
"JSTracking_EndNote": "Примечание: После того, как закончится процесс установки, вы сможете генерировать код в разделе %1$sКод отслеживания%2$s в настройках.",
"JSTracking_Intro": "Чтобы отслеживать интернет-трафик с Piwik вы должны убедиться, что сгенерированный код добавляется на каждую вашу веб-страницу.",
@@ -35,16 +32,19 @@
"LoadDataInfileRecommended": "Если ваш сервер Piwik отслеживает сайты с высоким посещением (например, более 100 000 страниц в месяц), мы рекомендуем решить эту проблему.",
"LoadDataInfileUnavailableHelp": "Использование %1$s позволит значительно ускорить процесс архивирования Piwik. Чтобы сделать его доступным для Piwik, попробуйте обновить PHP и MySQL и убедитесь, что пользователь вашей базы имеет привилегии %2$s.",
"NfsFilesystemWarning": "Ваш сервер использует NFS.",
+ "NfsFilesystemWarningSuffixAdmin": "Имеется ввиду, что Piwik будет очень медленным при использовании сессий на основе файлов.",
"NoConfigFound": "Конфигурационный файл Piwik не может быть найден, однако вы пытаетесь зайти в систему.<br \/><b>  » Вы можете <a href='index.php'>установить Piwik сейчас.<\/a><\/b><br \/><small> Если Piwik уже был установлен и вы имеете данные в БД, вы можете использовать их.<\/small>",
- "NotSupported": "не поддерживается",
"Optional": "Необязательно",
"Password": "Пароль",
"PasswordDoNotMatch": "Пароль не совпадает",
"PasswordRepeat": "Пароль (еще раз)",
"PercentDone": "%s %% Завершено",
"PleaseFixTheFollowingErrors": "Пожалуйста, исправьте следующие ошибки",
+ "DefaultSettings": "Настройки Piwik по умолчанию",
+ "DefaultSettingsHelp": "Piwik поставляется с настройками по умолчанию. Вы можете настроить их сейчас или сделать это позже в настройках администратора.",
"Requirements": "Требования Piwik",
"RestartWebServer": "После этих изменений перезапустите браузер.",
+ "PiwikOrgNewsletter": "послать мне email о новых обновления Piwik community",
"SeeBelowForMoreInfo": "Смотрите ниже для получения дополнительной информации.",
"SetupWebsite": "Добавить сайт",
"SetupWebsiteError": "Возникла ошибка при добавлении сайта",
@@ -55,13 +55,12 @@
"SiteSetupFootnote": "Подсказка: Если установка Piwik завершена, вы сможете добавить больше сайтов для отслеживания!",
"SuperUser": "Суперпользователь",
"SuperUserLogin": "Логин суперпользователя",
- "SuperUserSetupError": "Был ошибка при добавлении суперпользователя",
+ "SuperUserSetupError": "Была ошибка при добавлении суперпользователя",
"SuperUserSetupSuccess": "Суперпользователь успешно создан!",
"SystemCheck": "Проверка системы",
"SystemCheckAutoUpdateHelp": "Учтите: Piwik One Click Update требует прав записи в папку Piwik и в папки компонентов.",
"SystemCheckCreateFunctionHelp": "Piwik использует анонимные функции для колбэков.",
- "SystemCheckCronArchiveProcess": "Cron для архивации",
- "SystemCheckCronArchiveProcessCLI": "Управление процессами через консоль",
+ "SystemCheckDatabaseExtensions": "MySQL дополнения",
"SystemCheckDatabaseHelp": "Piwik для своей работы требует модуль mysqli, или оба модуля: PDO и pdo_mysql.",
"SystemCheckDebugBacktraceHelp": "View::factory не может сгенерировать просмотры для вызвавшего модуля.",
"SystemCheckError": "Возникла ошибка, которая должна быть исправлена перед продолжением",
@@ -78,21 +77,21 @@
"SystemCheckJsonHelp": "Для чтения\/записи данных JSON, Piwik требуется расширение php5-json.",
"SystemCheckMailHelp": "Отзывы разработчиков и письма восстановления паролей не будут отправляться без mail().",
"SystemCheckMbstring": "mbstring",
+ "SystemCheckMbstringHelp": "Расширение mbstring необходимо для работы с мультибайтовыми символами в интерфейсе пользователя и ответах API. Также убедитесь что mbstring.func_overload равно \"0\" в php.ini.",
"SystemCheckMemoryLimit": "Ограничение памяти",
"SystemCheckMemoryLimitHelp": "На высоконагруженном сайте, процесс архивации может занять больше памяти, чем разрешено в данный момент. Если необходимо, измените директиву memory_limit в вашем php.ini файле.",
"SystemCheckOpenURL": "Открыть URL",
"SystemCheckOpenURLHelp": "Подписки на новостные ленты, сообщения о обновлениях, и One Click Update требует наличия включенного модуля \"curl\", измените директиву php.ini allow_url_fopen=On, или вызовите fsockopen().",
"SystemCheckOtherExtensions": "Другие модули",
"SystemCheckOtherFunctions": "Другие функции",
- "SystemCheckPackHelp": "Функиця pack() необходима для отслеживания действий Piwik.",
"SystemCheckPageSpeedDisabled": "Выключен PageSpeed",
+ "SystemCheckPackHelp": "Функиця pack() необходима для отслеживания действий Piwik.",
"SystemCheckParseIniFileHelp": "Эта встроенная функция отключена на сервере. Piwik попытается сэмулировать ее вызов, но могут возникнуть ограничения безопасности. Это также может нанести вред общей производительности системы.",
"SystemCheckPdoAndMysqliHelp": "На сервере с Linux вы можете откомпилировать php со следующими опциями: %1$s В вашем php.ini добавьте следующие строки: %2$s",
"SystemCheckPhp": "Версия PHP",
"SystemCheckPhpPdoAndMysqli": "Узнайте больше на страница: %1$sPHP PDO%2$s и %3$sMYSQLI%4$s.",
- "SystemCheckPhpSetting": "Для предотвращения критической проблемы необходимо установить следующее значение в вашем файле php.ini: %s",
- "SystemCheckSettings": "Требуется настройка PHP (php.ini)",
"SystemCheckSplHelp": "Вам необходимо сконфигурировать или перекомпилировать PHP со включенной стандартной библиотекой PHP (SPL), обычно включенной по умолчанию.",
+ "SystemCheckSettings": "Требуется настройка PHP (php.ini)",
"SystemCheckSummaryNoProblems": "Ура! Нет никаких проблем с настройками Piwik. Молодец, возьми с полки пирожок.",
"SystemCheckSummaryThereWereErrors": "Ой-ой! Piwik обнаружил некоторые %1$sкритические ошибки%2$s. %3$sЭти ошибки должны быть исправленные немедленно.%4$s",
"SystemCheckSummaryThereWereWarnings": "Есть некоторые проблемы с вашей системой. Piwik будет работать, но вы можете столкнуться с некоторыми незначительными проблемами.",
@@ -108,6 +107,11 @@
"SystemCheckWriteDirs": "Папки с правами записи",
"SystemCheckWriteDirsHelp": "Для исправления этой ошибки в ОС Linux, попробуйте ввести следующие команды",
"SystemCheckZlibHelp": "Вам необходимо сконфигурировать PHP на поддержку zlib, или перекомпилировать с параметром --with-zlib.",
+ "SystemCheckCronArchiveProcess": "Cron для архивации",
+ "SystemCheckCronArchiveProcessCLI": "Управление процессами через консоль",
+ "SystemCheckPhpSetting": "Для предотвращения критической проблемы необходимо установить следующее значение в вашем файле php.ini: %s",
+ "SystemCheckUpdateHttps": "Обновление через HTTPS",
+ "NotSupported": "не поддерживается",
"Tables": "Создание таблиц",
"TablesCreatedSuccess": "Таблицы успешно созданы!",
"TablesDelete": "Удалить найденные таблицы",
@@ -121,6 +125,8 @@
"WeHopeYouWillEnjoyPiwik": "Мы надеемся, что вам понравится использовать Piwik настолько, насколько мы любим создавать его.",
"Welcome": "Добро пожаловать!",
"WelcomeHelp": "<p>Piwik – это открытое программное обеспечение, позволяющее вам вести статистический учет посещений ваших сайтов и анализировать полученную информацию о посетителях. Этот процесс состоит из %s простых шагов и занимает около пяти минут времени.<\/p>",
- "WelcomeToCommunity": "Добро пожаловать в сообщество Piwik!"
+ "WelcomeToCommunity": "Добро пожаловать в сообщество Piwik!",
+ "CannotConnectToDb": "Не удается подключиться к базе данных",
+ "CannotConnectToDbResolvingExplanation": "Это может быть временная проблема, попробуйте %1$sобновить страницу%2$s. Если проблема не исчезнет, обратитесь к администратору Piwik."
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/sk.json b/plugins/Installation/lang/sk.json
index 4c337eb0fd..aa131537f9 100644
--- a/plugins/Installation/lang/sk.json
+++ b/plugins/Installation/lang/sk.json
@@ -1,47 +1,76 @@
{
"Installation": {
+ "CollaborativeProject": "Piwik je spoločný projekt, postavený s láskou ľuďmi z celého sveta.",
+ "ConfigurationHelp": "Zdá sa, ze váš konfiguračný súbor pre Piwik je zle nastavený. Buď odstráňte config\/config.ini.php a pokračujte v inštalácii, alebo v ňom opravte nastavenia pre pripojenie k databáze.",
"ConfirmDeleteExistingTables": "Ste si istý, že chcete zmazať tabuľky: %s z Vašej databázy? VAROVANIE: DÁTA Z TÝCHTO TABULIEK NEBUDE MOŽNÉ OBNOVIŤ!",
"Congratulations": "Blahoželanie",
"CongratulationsHelp": "<p>Blahoželáme Vám! Inštalácia Piwik je dokončená.<\/p><p>Uistite sa, že Váš javascript kód je vložený od Vašich stránok a počkajte si na prvých návštevníkov!<\/p>",
+ "DatabaseAbilities": "Schopnosti databázy",
+ "DatabaseCreation": "Vytváranie databázy",
+ "DatabaseErrorConnect": "Chyba pri pokuse o spojenie s databázovým serverom",
+ "DatabaseServerVersion": "Verzia databázového servera",
+ "DatabaseSetup": "Nastavenie databázy",
+ "DatabaseSetupAdapter": "Adaptér",
+ "DatabaseSetupDatabaseName": "Názov databázy",
+ "DatabaseSetupLogin": "Prihlásenie",
+ "DatabaseSetupServer": "Databázový server",
+ "DatabaseSetupTablePrefix": "Prefix tabuľky",
"Email": "e-mail",
+ "Extension": "rozšírenie",
+ "Filesystem": "Súborový systém",
"GoBackAndDefinePrefix": "Choďte späť a zadefinujte predponu pre Piwik tabuľky",
+ "HappyAnalysing": "Prajem veselú analýzu!",
"Installation": "Inštalácia",
"InstallationStatus": "Stav inštalácie",
"Legend": "Legenda",
"NoConfigFound": "Piwik konfiguračný súbor nie je možné nájsť a vy sa pokúšate pripojiť k Piwik stránke. <br \/><b>  » Môžete <a href='index.php'>teraz nainštalovať Piwik<\/a><\/b><br \/><small>Ak ste nainštalovali Piwik už skôr, a máte nejaké tabuľky s dátami v databáze, nemusíte sa báť, budete ich ďalej používať!<\/small>",
+ "Optional": "Voliteľné",
"Password": "heslo",
"PasswordDoNotMatch": "heslo nie je zhodné",
"PasswordRepeat": "heslo (zopakovať)",
"PercentDone": "%s %% Dokončené",
+ "DefaultSettings": "Štandardné Piwik nastavania",
+ "Requirements": "Piwik požiadavky",
"SetupWebsite": "Nastavenie webstránky",
"SetupWebsiteError": "Vyskytla sa chyba pridávaní webstránky",
"SetupWebSiteName": "názov webovej stránky",
+ "SetupWebsiteSetupSuccess": "Webstránka %s bola úspešne vytvorená!",
"SetupWebSiteURL": "URL webovej stránky",
"SuperUser": "Super užívateľ",
"SuperUserLogin": "prihlásenie (login) superpoužívateľa",
"SuperUserSetupSuccess": "Super užívateľ bol úspešne vytvorený!",
"SystemCheck": "Kontrola systému",
+ "SystemCheckDatabaseExtensions": "MySQL rozšírenia",
"SystemCheckError": "Vyskytla sa chyba - musíte ju vyriešiť, inak nie je možné pokračovať",
"SystemCheckExtensions": "Ostatné požadované rozšírenia",
"SystemCheckFileIntegrity": "Integrita súborov",
"SystemCheckFunctions": "Požadované funkcie",
+ "SystemCheckGDFreeType": "GD > 2.x + Freetype (grafika)",
"SystemCheckGDHelp": "„Sparklines“ (malé grafy) nebudú fungovať.",
+ "SystemCheckMbstring": "mbstring",
"SystemCheckMemoryLimit": "Pamäťový limit",
"SystemCheckMemoryLimitHelp": "Na webstránkach s vysokou premávkou archivačný proces bude vyžadovať viac pamäte, než je to aktuálne povolené.<br \/> Pozrite si direktívu memory_limit vo vašom php.ini súbore, ak je to potrebné.",
+ "SystemCheckOpenURL": "Otvoriť URL",
"SystemCheckPhp": "PHP verzia",
"SystemCheckTimeLimitHelp": "Na webstránkach s vysokou premávkou bude spúšťanie archivačného procesu trvať dlhšie, než je to aktuálne povolené.<br \/> Pozrite si direktívu max_execution_time vo vašom php.ini súbore, ak je to potrebné.",
"SystemCheckWarning": "Piwik bude fungovať normálne, ale niektoré vlastnosti budú chýbať.",
"SystemCheckWriteDirs": "Priečinky s prístupom na zápis",
"SystemCheckWriteDirsHelp": "Na vyriešenie problém v Linuxe skúste napísať nasledovné príkazy",
+ "SystemCheckUpdateHttps": "Aktualizovať cez HTTPS",
+ "NotSupported": "nepodporované",
"Tables": "Vytváranie tabuliek",
"TablesCreatedSuccess": "Tabuľky boli úspešne vytvorené!",
"TablesDelete": "zmazanie delegovaných tabuliek",
"TablesDeletedSuccess": "Existujúce Piwik tabuľky boli úspešne zmazané",
"TablesFound": "Nasledujúce tabuľky boli nájdené.",
"TablesReuse": "Znovu použiť existujúce tabuľky",
+ "TablesUpdatedSuccess": "Databáza bola úspešne aktualizovaná z %1$s na %2$s!",
"TablesWarningHelp": "Vyberte si použitie už existujúcich tabuliek alebo výber čistej inštalácie s vymazaním všetkých existujúcich dát v databáze.",
"TablesWithSameNamesFound": "Niektoré %1$s tabuľky vo vašej databáze %2$s majú rovnaké názvy, ako sa snaží vytvoriť Piwik",
+ "Timezone": "časová zóna stránky",
"Welcome": "Vitajte!",
- "WelcomeHelp": "<p>Piwik je open source projekt analýzy webstránok, ktorý zjednodušuje získavanie informácií o Vašich návštevníkoch.<\/p><p>Tento proces je rozdelený do %s jednoduchých krokov a bude trvať asi 5 minút.<\/p>"
+ "WelcomeHelp": "<p>Piwik je open source projekt analýzy webstránok, ktorý zjednodušuje získavanie informácií o Vašich návštevníkoch.<\/p><p>Tento proces je rozdelený do %s jednoduchých krokov a bude trvať asi 5 minút.<\/p>",
+ "WelcomeToCommunity": "Vitajte v Piwik komunite",
+ "CannotConnectToDb": "Nie je možné sa pripojiť k databáze"
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/sr.json b/plugins/Installation/lang/sr.json
index 60a1cd7185..7a4a7c4a97 100644
--- a/plugins/Installation/lang/sr.json
+++ b/plugins/Installation/lang/sr.json
@@ -1,7 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "Ne mogu da se povežem na bazu podataka.",
- "CannotConnectToDbResolvingExplanation": "Ovo bi mogao da bude privremeni problem, pokušajte da %1$sosvežite stranicu%2$s. Ukoliko se problem ponovi, kontaktirajte Piwik administratora.",
"CollaborativeProject": "Piwik je saradnički projekat, satkan od ljubavi od strane ljudi diljem celog sveta.",
"ConfigurationHelp": "Vaša Piwik podešavanja kao da nisu dobra. Možete ili ukloniti config\/config.ini.php datoteku i nastaviti sa instalacijom, ili ispraviti podešavanja u vezi sa povezivanjem na bazu podataka.",
"ConfirmDeleteExistingTables": "Da li zaista želite da obrišete tabele: %s iz vaše baze? Upozorenje: Podaci iz ovih tabela se ne mogu više povratiti!",
@@ -38,17 +36,16 @@
"NfsFilesystemWarningSuffixAdmin": "To znači da će Piwik biti jako spor ako koristite sesije bazirane na datotekama.",
"NfsFilesystemWarningSuffixInstall": "Korišćene sesija na bazi datoteka na NFS sistemu je jako sporo tako da će piwik koristiti sesije u bazi podataka. Ako imate puno istovremenih korisnika Konzole, možda ćete morati da povećate maksimalan broj klijentskih konekcija ka serveru sa bazom.",
"NoConfigFound": "Piwik datoteka sa podešavanjima nije nađena u momentu dok vi pokušavate da pristupite Piwik stranici.<br \/><b>  » Kliknite ovde kako biste <a href='index.php'>instalirali Piwik<\/a><\/b><br \/><small>Ukoliko ste već ranije instalirali Piwik i imate neke tabele u bazi podataka, bez brige: možete nastaviti da ih koristite i zadržite postojeće podatke!<\/small>",
- "NotSupported": "nije podržano",
"Optional": "Opciono",
"Password": "lozinka",
"PasswordDoNotMatch": "lozinke se ne podudaraju",
"PasswordRepeat": "lozinka (ponovo)",
"PercentDone": "%s %% Završeno",
- "PiwikOrgNewsletter": "pošalji mi mejl kada dođe do značajne Piwik izmene",
"PleaseFixTheFollowingErrors": "Molimo vas da ispravite sledeće greške",
"Requirements": "Piwik zahtevi",
"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",
"SeeBelowForMoreInfo": "Pogledajte ispod za više informacija.",
"SetupWebsite": "Podešavanje sajta",
"SetupWebsiteError": "Došlo je do greške prilikom dodavanja sajta",
@@ -64,8 +61,6 @@
"SystemCheck": "Provera sistema",
"SystemCheckAutoUpdateHelp": "Pažnja: Piwik nadogradnja putem jednog klika zahteva da bude omogućeno pisanje u Piwik direktorijum i njegov sadržaj",
"SystemCheckCreateFunctionHelp": "Piwik koristi anonimne funkcije",
- "SystemCheckCronArchiveProcess": "Kron za arhiviranje",
- "SystemCheckCronArchiveProcessCLI": "Upravljanje procesima pomoću CLI",
"SystemCheckDatabaseHelp": "Piwik zahteva ili mysqli proširenje ili PDO i pdo_mysql proširenja.",
"SystemCheckDebugBacktraceHelp": "View::factory neće biti u mogućnosti da generiše prikaze za module koji ga pozivaju.",
"SystemCheckError": "Došlo je do greške koja mora biti ispravljena pre nego što nastavimo",
@@ -110,6 +105,9 @@
"SystemCheckWriteDirs": "Diektorijumi sa pristupom pisanja",
"SystemCheckWriteDirsHelp": "Da biste ispravili ovu grešku na Linux serveru, ukucajte sledeće komande:",
"SystemCheckZlibHelp": "Potrebno je da kompajlirate PHP sa \"zlib\" podrškom, --with-zlib.",
+ "SystemCheckCronArchiveProcess": "Kron za arhiviranje",
+ "SystemCheckCronArchiveProcessCLI": "Upravljanje procesima pomoću CLI",
+ "NotSupported": "nije podržano",
"Tables": "Kreiranje tabela",
"TablesCreatedSuccess": "Tabele su uspešno kreirane!",
"TablesDelete": "Brisanje postojećih tabela",
@@ -123,6 +121,8 @@
"WeHopeYouWillEnjoyPiwik": "Nadamo se da ćete uživati u korišćenju Piwik-a isto koliko smo mi uživali u njegovom stvaranju.",
"Welcome": "Dobrodošli!",
"WelcomeHelp": "<p>Piwik je alat otvorenog koda za analizu saobraćaja na sajtovima koji vam na lak način pruža željene informacije o vašim posetiocima.<\/p><p>Proces instalacije je podeljen na %s jednostavnih koraka i zahteva svega 5 minuta vašeg vremena.<\/p>",
- "WelcomeToCommunity": "Dobrodošli u Piwik zajednicu!"
+ "WelcomeToCommunity": "Dobrodošli u Piwik zajednicu!",
+ "CannotConnectToDb": "Ne mogu da se povežem na bazu podataka.",
+ "CannotConnectToDbResolvingExplanation": "Ovo bi mogao da bude privremeni problem, pokušajte da %1$sosvežite stranicu%2$s. Ukoliko se problem ponovi, kontaktirajte Piwik administratora."
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/sv.json b/plugins/Installation/lang/sv.json
index e2f0225a67..0b228f8d7c 100644
--- a/plugins/Installation/lang/sv.json
+++ b/plugins/Installation/lang/sv.json
@@ -1,6 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "Kan inte ansluta till databasen",
"CollaborativeProject": "Piwik är ett projekt som arbetats fram av människor från hela världen, med samma mål och mycket kärlek!",
"ConfigurationHelp": "Din Piwik konfigurationsfil verkar vara felkonfigurerad. Du kan antingen ta bort config \/ config.ini.php och återuppta installationen, eller korrigera inställningarna för databasanslutningen.",
"ConfirmDeleteExistingTables": "Är du säker på att du vill ta bort tabellerna: %s från din databas? Varning: Data från dessa tabeller kommer inte kunna återskapas!",
@@ -16,7 +15,6 @@
"DatabaseSetupLogin": "inloggning",
"DatabaseSetupServer": "databasserver",
"DatabaseSetupTablePrefix": "tabellprefix",
- "DefaultSettings": "Grundinställningar för Piwik",
"Email": "e-post",
"Extension": "tillägg",
"Filesystem": "Filsystem",
@@ -39,17 +37,17 @@
"NfsFilesystemWarningSuffixAdmin": "Det betyder att Piwik kommer att vara extremt långsamt när det använder filbaserade sessioner.",
"NfsFilesystemWarningSuffixInstall": "Att använda filbaserade sessioner och NFS är extremt långsamt, så Piwik kommer att använda databassessioner. Om du har många samtidiga användare av instrumentpanelen så är det möjligt att du behöver öka det maximala antalet anslutningar till databasservern.",
"NoConfigFound": "Piwik's konfigurationsfil kunde inte hittas och du försöker komma åt en Piwik sida. <br \/><b> » Du kan <a href='index.php'> installera Piwik nu<\/a><\/b><br \/><small> Om du har installerat Piwik innan och har en del tabeller i databasen så oroa dig inte, du kan återanvända samma tabeller och behålla dina befintliga data!<\/small>",
- "NotSupported": "stöds inte",
"Optional": "Frivilligt",
"Password": "lösenord",
"PasswordDoNotMatch": "Lösenorden matchar inte",
"PasswordRepeat": "lösenord (bekräfta)",
"PercentDone": "%s %% Klar",
- "PiwikOrgNewsletter": "maila mig vid större Piwik community uppdateringar",
"PleaseFixTheFollowingErrors": "Vänligen fixa följande fel",
+ "DefaultSettings": "Grundinställningar för Piwik",
"Requirements": "Piwik Krav",
"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",
"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.",
@@ -65,8 +63,6 @@
"SystemCheck": "Systemkontroll",
"SystemCheckAutoUpdateHelp": "Notering: Piwik Ett-Klicks-uppdatering kräver skriv-behörigheter till Piwik mappen och dess innehåll.",
"SystemCheckCreateFunctionHelp": "Piwik använder anonyma funktioner för återanropning.",
- "SystemCheckCronArchiveProcess": "Schemalagd Arkivering",
- "SystemCheckCronArchiveProcessCLI": "Hantering av processer via CLI",
"SystemCheckDatabaseHelp": "Piwik kräver antingen tillägget mysqli eller båda tilläggen PDO och pdo_mysql.",
"SystemCheckDebugBacktraceHelp": "View::factory kommer inte att kunna skapa vyer för den anropande modulen.",
"SystemCheckError": "Ett fel uppstod - detta måste fixas innan du fortsätter",
@@ -90,13 +86,12 @@
"SystemCheckOpenURLHelp": "Nyhetsbrev abonnemang, anmälningar uppdatering, och \"one-click updates\" kräver att något av tilläggen \"curl\", allow_url_fopen =On eller fsockopen() är aktiverat.",
"SystemCheckOtherExtensions": "Andra tillägg",
"SystemCheckOtherFunctions": "Andra funktioner",
- "SystemCheckPackHelp": "pack()-funktionen krävs för att spåra besökare i Piwik.",
"SystemCheckPageSpeedDisabled": "PageSpeed inaktiverat",
+ "SystemCheckPackHelp": "pack()-funktionen krävs för att spåra besökare i Piwik.",
"SystemCheckParseIniFileHelp": "Denna inbyggda funktionen har inaktiverats på din värd. Piwik försöker emulera denna funktion men den kan stöta på ytterligare säkerhetsrestriktioner. Spårningens resultat kommer också att påverkas.",
"SystemCheckPdoAndMysqliHelp": "På en Linux server kan du kompilera php med följande alternativ: %1$s I din php.ini, lägg till följande rader: %2$s",
"SystemCheckPhp": "PHP version",
"SystemCheckPhpPdoAndMysqli": "Mer information finner du på: %1$sPHP PDO%2$s och %3$sYSQLI%4$s.",
- "SystemCheckPhpSetting": "För att det inte ska uppstå problem måste du ställa in följande i din php.ini-fil: %s",
"SystemCheckSplHelp": "Du måste konfigurera och installera PHP på nytt med Standard PHP Bibliotek (SPL) aktiverat (som standard).",
"SystemCheckSummaryNoProblems": "Jippiii! Det finns inga problem med installationen av Piwik. Ge dig själv en klapp på axeln.",
"SystemCheckSummaryThereWereErrors": "Oj då.. Piwik har upptäckt några %1$skritiska problem%2$s med installationen. %3$sDessa problem bör åtgärdas omgående.%4$s",
@@ -113,6 +108,10 @@
"SystemCheckWriteDirs": "Kataloger med skrivrättighet",
"SystemCheckWriteDirsHelp": "För att åtgärda felet på ditt Linux-system, prova att skriv in följande kommando(n)",
"SystemCheckZlibHelp": "Du måste konfigurera och installera PHP på nytt med \"zlib\" stöd aktiverat, --with-zlib.",
+ "SystemCheckCronArchiveProcess": "Schemalagd Arkivering",
+ "SystemCheckCronArchiveProcessCLI": "Hantering av processer via CLI",
+ "SystemCheckPhpSetting": "För att det inte ska uppstå problem måste du ställa in följande i din php.ini-fil: %s",
+ "NotSupported": "stöds inte",
"Tables": "Skapar tabellerna",
"TablesCreatedSuccess": "Tabeller skapades utan problem!",
"TablesDelete": "Ta bort de upptäckta tabellerna",
@@ -126,6 +125,7 @@
"WeHopeYouWillEnjoyPiwik": "Vi hoppas att du kommer tycka om att använda Piwik lika mycket som vi tyckte om att skapa det!",
"Welcome": "Välkommen!",
"WelcomeHelp": "<p>Piwik är ett open source webbanalysprogram som gör det enkelt att få den information du vill ha från dina besökare.<\/p><p>Denna process är uppdelad i %s enkla steg och tar ca 5 minuter.<\/p>",
- "WelcomeToCommunity": "Välkommen till Piwiks gemenskap!"
+ "WelcomeToCommunity": "Välkommen till Piwiks gemenskap!",
+ "CannotConnectToDb": "Kan inte ansluta till databasen"
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/tl.json b/plugins/Installation/lang/tl.json
index 07df57b66a..8901f12421 100644
--- a/plugins/Installation/lang/tl.json
+++ b/plugins/Installation/lang/tl.json
@@ -1,7 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "Hindi makakonekta sa database",
- "CannotConnectToDbResolvingExplanation": "Itoy ay maaring panandaliang isyu subukan na %1$s e-refresh ang pahina %2$s. Kung patuloy pa rin ang ganitong problema mangyarin makipag-ugnayan sa iyong Piwik administrator.",
"CollaborativeProject": "Ang Piwik ay mga pinagsama-samang mga proyekto na binuo na may pag-ibig sa pamamagitan ng mga tao mula sa buong mundo.",
"ConfigurationHelp": "Ang iyong Piwik configuration file ay mukhang hindi tama. Maari mong tanggalin ang config\/config.ini.php at ipagpatuloy ang pag-iinstall o itama ang database connection settings.",
"ConfirmDeleteExistingTables": "Sigurado ka bang gusto mong tanggaling ang mga table na ito: %s mula sa iyong database? BABALA: ANG MGA DATUS MULA SA MGA TABLES NA ITO AY HINDI NA MAIBABALIK!",
@@ -36,16 +34,15 @@
"NfsFilesystemWarningSuffixAdmin": "Ito ay nangangahulugan na ang Piwik ay lubhang babagal kapag gumagamit ng file na batay sa session.",
"NfsFilesystemWarningSuffixInstall": "Ang pag-gamit ng file based session sa NFS ay sobrang mabagal iyong kakailanganin ang pag dag-dag ng maximum number na komokonekta sa iyong database server.",
"NoConfigFound": "Ang Piwik configuration file ay hindi makita at iyong sinusubukang pumasok sa pahina ng Piwik.<br \/><b> » Maari mong <a href='index.php'>I-install ang Piwik ngayon<\/a><\/b><br \/><small>Kung iyo ng nainstall ang piwik dati at at meron ka nang mga tables sa iyong DB wag mabahala maari mo paring gamitin ang parehong mga tables at mapanatili ang mga datus na meron ka na!<\/small>",
- "NotSupported": "Hindi supportado",
"Optional": "Opsyonal",
"Password": "password",
"PasswordDoNotMatch": "password ay hindi tumutugma",
"PercentDone": "%s %% Tapos na",
- "PiwikOrgNewsletter": "I-email sa akin ang mga pangunahing update sa komunidad ng Piwik",
"PleaseFixTheFollowingErrors": "Mangyaring ayusin ang mga sumusunod na error",
"Requirements": "Mga kailangan ng Piwik",
"RestartWebServer": "Pagkatapos gawin ang pagbabagong ito i-restart ang iyong web browser",
"ReusingTables": "Muling pag-gamit sa mga table",
+ "PiwikOrgNewsletter": "I-email sa akin ang mga pangunahing update sa komunidad ng Piwik",
"SeeBelowForMoreInfo": "Tingnan sa ibaba para sa karagdagang impormasyon.",
"SetupWebsite": "Pag-setup ng Website",
"SetupWebsiteError": "Mayroong error habang idinadagdag ang website.",
@@ -61,8 +58,6 @@
"SystemCheck": "Pagsusuri sa System",
"SystemCheckAutoUpdateHelp": "Tandaan: Ang Piwik One click update ay nangangailangan ng permiso upang mabago ang folder at mga laman nito.",
"SystemCheckCreateFunctionHelp": "Gumagamit ang Piwik ng hindi kilalang function para sa callback.",
- "SystemCheckCronArchiveProcess": "Archive ng Cron",
- "SystemCheckCronArchiveProcessCLI": "Mga pamamahala ng proseso sa pamamagitan ng CLI",
"SystemCheckDatabaseHelp": "Ang Piwik ay nangangailangan ng alinman sa extension mysqli o pareho ang PDO at pdo_mysql extension.",
"SystemCheckDebugBacktraceHelp": "Tingnan :: ang factory ay hindi magagawang lumikha ng mga view para sa calling module.",
"SystemCheckError": "May naganap na error - kailangan itong maayos bago magpatuloy.",
@@ -107,6 +102,9 @@
"SystemCheckWriteDirs": "Mga directory na may write access",
"SystemCheckWriteDirsHelp": "Upang maayos ang error na ito sa iyong system GNU \/ Linux subukang mag-type sa (mga) sumusunod na command.",
"SystemCheckZlibHelp": "Kailangan mong i-configure at muling e-build ang PHP na may \"zlib\" na may gumaganang supporta ng --with-zlib.",
+ "SystemCheckCronArchiveProcess": "Archive ng Cron",
+ "SystemCheckCronArchiveProcessCLI": "Mga pamamahala ng proseso sa pamamagitan ng CLI",
+ "NotSupported": "Hindi supportado",
"Tables": "Pag-gawa ng Tables",
"TablesCreatedSuccess": "Ang mga table ay tagumpay na nalikha!",
"TablesDelete": "Tanggaling ang mga nakitang table",
@@ -120,6 +118,8 @@
"WeHopeYouWillEnjoyPiwik": "Umaasa kaming masiyahan ka sa paggamit ng Piwik kagaya ng aming kasiyahan sa paggawa nito.",
"Welcome": "Maligayang Pagdating!",
"WelcomeHelp": "<p>Piwi ay isang libreng web analytics software na ginagawang madali ang pagkuha ng impormasyon sa iyong mga bisita. <\/p> <p> Ang prosesong ito ay nakabahagi sa %s easy steps at uma-aabot lamang ng 5 minutes.<\/p>",
- "WelcomeToCommunity": "Maligayang pagdating sa komunidad Piwik!"
+ "WelcomeToCommunity": "Maligayang pagdating sa komunidad Piwik!",
+ "CannotConnectToDb": "Hindi makakonekta sa database",
+ "CannotConnectToDbResolvingExplanation": "Itoy ay maaring panandaliang isyu subukan na %1$s e-refresh ang pahina %2$s. Kung patuloy pa rin ang ganitong problema mangyarin makipag-ugnayan sa iyong Piwik administrator."
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/tr.json b/plugins/Installation/lang/tr.json
index 8c9e097e3f..6925ffc5ee 100644
--- a/plugins/Installation/lang/tr.json
+++ b/plugins/Installation/lang/tr.json
@@ -1,6 +1,5 @@
{
"Installation": {
- "CannotConnectToDb": "Veritabanına bağlanamadı",
"Congratulations": "Tebrikler",
"CongratulationsHelp": "<p>Tebrikler! Piwik Başarıyla kuruldu.<\/p><p>JavaScript kodunu sayfalarınıza yerleştirdiğinizden emin olun ve ilk ziyaretçilerinizi beklemeye başlayın!<\/p>",
"DatabaseCreation": "Veritabaı oluşturma",
@@ -43,6 +42,7 @@
"SystemCheckWarning": "Piwik normal olarak çalışacaktır ancak bazı özellikler eksik olacak.",
"Tables": "Tablolar oluşturuluyor",
"TablesCreatedSuccess": "Tablolar başarılı bir şekilde yaratıldı!",
- "Welcome": "Hoşgeldiniz!"
+ "Welcome": "Hoşgeldiniz!",
+ "CannotConnectToDb": "Veritabanına bağlanamadı"
}
} \ No newline at end of file
diff --git a/plugins/Installation/lang/zh-cn.json b/plugins/Installation/lang/zh-cn.json
index 10372362f2..4385934a47 100644
--- a/plugins/Installation/lang/zh-cn.json
+++ b/plugins/Installation/lang/zh-cn.json
@@ -33,7 +33,6 @@
"NfsFilesystemWarningSuffixAdmin": "这意味着 Piwik 使用基于文件的会话将会非常慢。",
"NfsFilesystemWarningSuffixInstall": "在NFS上使用基于文件的会话会非常慢,所以 Piwik 将使用数据库会话。如果您有很多并发的面板用户,需要在增大客户端连接到服务器的最大数。",
"NoConfigFound": "无法找到 Piwik 配置文件,而您正尝试存取一个 Piwik 的页面!<br \/><b>  » 您可以 <a href='index.php'>立刻安装 Piwik<\/a><\/b><br \/><small>假如您在之前已安装过 Piwik,并且已有些数据表在您的数据库中,不用担心,您可以重复使用此相同的数据表并保留您现存的数据!<\/small>",
- "NotSupported": "不支持",
"Optional": "选项",
"Password": "密码",
"PasswordDoNotMatch": "密码不匹配",
@@ -97,6 +96,7 @@
"SystemCheckWriteDirs": "具写入权限的目录",
"SystemCheckWriteDirsHelp": "要在您的 Linux 系统修正这个错误,尝试输入以下的命令",
"SystemCheckZlibHelp": "您需要设定及重建 PHP, 然后启用\"zlib\"支持, --with-zlib.",
+ "NotSupported": "不支持",
"Tables": "建立数据表中",
"TablesCreatedSuccess": "数据表已成功建立!",
"TablesDelete": "删除已检测到的数据表",
diff --git a/plugins/LanguagesManager/Commands/CompareKeys.php b/plugins/LanguagesManager/Commands/CompareKeys.php
deleted file mode 100644
index fbbe803a6e..0000000000
--- a/plugins/LanguagesManager/Commands/CompareKeys.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?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\LanguagesManager\Commands;
-
-use Piwik\Container\StaticContainer;
-use Piwik\Translation\Translator;
-use Symfony\Component\Console\Input\ArrayInput;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\OutputInterface;
-
-/**
- */
-class CompareKeys extends TranslationBase
-{
- protected function configure()
- {
- $this->setName('translations:compare')
- ->setDescription('Updates translation files')
- ->addOption('username', 'u', InputOption::VALUE_OPTIONAL, 'oTrance username')
- ->addOption('password', 'p', InputOption::VALUE_OPTIONAL, 'oTrance password');
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- $command = $this->getApplication()->find('translations:fetch');
- $arguments = array(
- 'command' => 'translations:fetch',
- '--username' => $input->getOption('username'),
- '--password' => $input->getOption('password'),
- '--keep-english' => true,
- );
- $inputObject = new ArrayInput($arguments);
- $inputObject->setInteractive($input->isInteractive());
- $command->run($inputObject, $output);
-
- $englishFromOTrance = FetchFromOTrance::getDownloadPath() . DIRECTORY_SEPARATOR . 'en.json';
-
- if (!file_exists($englishFromOTrance)) {
- $output->writeln("English file from oTrance missing. Aborting");
- return;
- }
-
- $englishFromOTrance = json_decode(file_get_contents($englishFromOTrance), true);
-
- /** @var Translator $translator */
- $translator = StaticContainer::get('Piwik\Translation\Translator');
- $translator->setCurrentLanguage('en');
- $availableTranslations = $translator->getAllTranslations();
-
- $categories = array_unique(array_merge(array_keys($englishFromOTrance), array_keys($availableTranslations)));
- sort($categories);
-
- $unnecessary = $outdated = $missing = array();
-
- foreach ($categories as $category)
- {
- if (!empty($englishFromOTrance[$category])) {
- foreach ($englishFromOTrance[$category] as $key => $value) {
- if (!array_key_exists($category, $availableTranslations) || !array_key_exists($key, $availableTranslations[$category])) {
- $unnecessary[] = sprintf('%s_%s', $category, $key);
- continue;
- } else if (html_entity_decode($availableTranslations[$category][$key]) != html_entity_decode($englishFromOTrance[$category][$key])) {
- $outdated[] = sprintf('%s_%s', $category, $key);
- continue;
- }
- }
- }
- if (!empty($availableTranslations[$category])) {
- foreach ($availableTranslations[$category] as $key => $value) {
- if (!array_key_exists($category, $englishFromOTrance) || !array_key_exists($key, $englishFromOTrance[$category])) {
- $missing[] = sprintf('%s_%s', $category, $key);
- continue;
- }
- }
- }
- }
-
- $output->writeln("");
-
- if (!empty($missing)) {
- $output->writeln("<bg=yellow;options=bold>-- Following keys are missing on oTrance --</bg=yellow;options=bold>");
- $output->writeln(implode("\n", $missing));
-
- $output->writeln("");
- }
-
- if (!empty($unnecessary)) {
- $output->writeln("<bg=yellow;options=bold>-- Following keys might be unnecessary on oTrance --</bg=yellow;options=bold>");
- $output->writeln(implode("\n", $unnecessary));
-
- $output->writeln("");
- }
-
- if (!empty($outdated)) {
- $output->writeln("<bg=yellow;options=bold>-- Following keys are outdated on oTrance --</bg=yellow;options=bold>");
- $output->writeln(implode("\n", $outdated));
-
- $output->writeln("");
- }
-
- $output->writeln("Finished.");
- }
-}
diff --git a/plugins/LanguagesManager/Commands/CreatePull.php b/plugins/LanguagesManager/Commands/CreatePull.php
index bf208ac332..4436a4ba38 100644
--- a/plugins/LanguagesManager/Commands/CreatePull.php
+++ b/plugins/LanguagesManager/Commands/CreatePull.php
@@ -23,8 +23,8 @@ class CreatePull extends TranslationBase
{
$this->setName('translations:createpull')
->setDescription('Updates translation files')
- ->addOption('username', 'u', InputOption::VALUE_OPTIONAL, 'oTrance username')
- ->addOption('password', 'p', InputOption::VALUE_OPTIONAL, 'oTrance password')
+ ->addOption('username', 'u', InputOption::VALUE_OPTIONAL, 'Transifex username')
+ ->addOption('password', 'p', InputOption::VALUE_OPTIONAL, 'Transifex password')
->addOption('plugin', 'P', InputOption::VALUE_OPTIONAL, 'optional name of plugin to update translations for');
}
@@ -158,7 +158,7 @@ class CreatePull extends TranslationBase
implode(', ', $languageCodesTouched)
);
- shell_exec('git commit -m "language update ${pluginName} refs #3430"');
+ shell_exec('git commit -m "language update ${pluginName}"');
shell_exec('git push');
shell_exec('git checkout master > /dev/null 2>&1');
diff --git a/plugins/LanguagesManager/Commands/FetchFromOTrance.php b/plugins/LanguagesManager/Commands/FetchFromOTrance.php
deleted file mode 100644
index 8802209ced..0000000000
--- a/plugins/LanguagesManager/Commands/FetchFromOTrance.php
+++ /dev/null
@@ -1,182 +0,0 @@
-<?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\LanguagesManager\Commands;
-
-use Piwik\Container\StaticContainer;
-use Piwik\Unzip;
-use Symfony\Component\Console\Helper\DialogHelper;
-use Symfony\Component\Console\Helper\ProgressHelper;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Input\InputOption;
-use Symfony\Component\Console\Output\OutputInterface;
-
-/**
- */
-class FetchFromOTrance extends TranslationBase
-{
- const DOWNLOAD_PATH = '/oTrance';
-
- protected function configure()
- {
- $path = StaticContainer::get('path.tmp') . self::DOWNLOAD_PATH;
-
- $this->setName('translations:fetch')
- ->setDescription('Fetches translations files from oTrance to ' . $path)
- ->addOption('username', 'u', InputOption::VALUE_OPTIONAL, 'oTrance username')
- ->addOption('password', 'p', InputOption::VALUE_OPTIONAL, 'oTrance password')
- ->addOption('keep-english', 'k', InputOption::VALUE_NONE, 'keep english file');
- }
-
- protected function execute(InputInterface $input, OutputInterface $output)
- {
- $output->writeln("Starting to fetch latest language pack");
-
- /** @var DialogHelper $dialog */
- $dialog = $this->getHelperSet()->get('dialog');
-
- $cookieFile = self::getDownloadPath() . DIRECTORY_SEPARATOR . 'cookie.txt';
- @unlink($cookieFile);
-
- $username = $input->getOption('username');
- $password = $input->getOption('password');
-
- while (!file_exists($cookieFile)) {
- if (empty($username)) {
- $username = $dialog->ask($output, 'What is your oTrance username? ');
- }
-
- if (empty($password)) {
- $password = $dialog->askHiddenResponse($output, 'What is your oTrance password? ');
- }
-
- // send login request to oTrance and save the login cookie
- $curl = curl_init('http://translations.piwik.org/public/index/login');
- curl_setopt($curl, CURLOPT_POSTFIELDS, sprintf("user=%s&pass=%s&autologin=1", $username, $password));
- curl_setopt($curl, CURLOPT_COOKIEJAR, $cookieFile);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
- curl_exec($curl);
- curl_close($curl);
-
- if (strpos(file_get_contents($cookieFile), 'oTranCe_autologin') !== false) {
- break;
- }
-
- $username = null;
- $password = null;
- @unlink($cookieFile);
- $output->writeln("Invalid oTrance credentials. Please try again...");
- }
-
- // send request to create a new download package using the cookie file
- $createNewPackage = true;
- if ($input->isInteractive()) {
- $createNewPackage = $dialog->askConfirmation($output, 'Shall we create a new language pack? ');
- }
-
- if ($createNewPackage) {
-
- $curl = curl_init('http://translations.piwik.org/public/export/update.all');
- curl_setopt($curl, CURLOPT_COOKIEFILE, $cookieFile);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
- curl_exec($curl);
- curl_close($curl);
- }
-
- // request download page to search for available packages
- $curl = curl_init('http://translations.piwik.org/public/downloads/');
- curl_setopt($curl, CURLOPT_COOKIEFILE, $cookieFile);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
- $response = curl_exec($curl);
- curl_close($curl);
-
- preg_match_all('/language\_pack\-[0-9]{8}\-[0-9]{6}\.tar\.gz/i', $response, $matches);
-
- if (empty($matches[0])) {
-
- $output->writeln("No packages found for download. Please try again.");
- return;
- }
-
- $downloadPackage = array_shift($matches[0]);
-
- $continueWithPackage = true;
- if ($input->isInteractive()) {
- $continueWithPackage = $dialog->askConfirmation($output, "Found language pack $downloadPackage. Proceed? ");
- }
-
- if (!$continueWithPackage) {
-
- $output->writeln('Aborted.');
- return;
- }
-
- // download language pack
- $packageHandle = fopen(self::getDownloadPath() . DIRECTORY_SEPARATOR . 'language_pack.tar.gz', 'w');
- $curl = curl_init('http://translations.piwik.org/public/downloads/download/file/'.$downloadPackage);
- curl_setopt($curl, CURLOPT_COOKIEFILE, self::getDownloadPath() . DIRECTORY_SEPARATOR . 'cookie.txt');
- curl_setopt($curl, CURLOPT_FILE, $packageHandle);
- curl_exec($curl);
- curl_close($curl);
-
- @unlink($cookieFile);
-
- $output->writeln("Extracting package...");
-
- $unzipper = Unzip::factory('tar.gz', self::getDownloadPath() . DIRECTORY_SEPARATOR . 'language_pack.tar.gz');
- $unzipper->extract(self::getDownloadPath());
-
- if (!$input->getOption('keep-english')) {
- @unlink(self::getDownloadPath() . DIRECTORY_SEPARATOR . 'en.php');
- @unlink(self::getDownloadPath() . DIRECTORY_SEPARATOR . 'en.json');
- }
- @unlink(self::getDownloadPath() . DIRECTORY_SEPARATOR . 'language_pack.tar.gz');
-
- $filesToConvert = _glob(self::getDownloadPath() . DIRECTORY_SEPARATOR . '*.php');
-
- $output->writeln("Converting downloaded php files to json");
-
- /** @var ProgressHelper $progress */
- $progress = $this->getHelperSet()->get('progress');
-
- $progress->start($output, count($filesToConvert));
- foreach ($filesToConvert as $filename) {
-
- require_once $filename;
- $basename = explode(".", basename($filename));
- $nested = array();
- foreach ($translations as $key => $value) {
- list($plugin, $nkey) = explode("_", $key, 2);
- $nested[$plugin][$nkey] = $value;
- }
- $translations = $nested;
- $data = json_encode($translations, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
- $newFile = sprintf("%s/%s.json", self::getDownloadPath(), $basename[0]);
- file_put_contents($newFile, $data);
- @unlink($filename);
-
- $progress->advance();
- }
-
- $progress->finish();
-
- $output->writeln("Finished fetching new language files from oTrance");
- }
-
- public static function getDownloadPath()
- {
- $path = StaticContainer::get('path.tmp') . self::DOWNLOAD_PATH;
-
- if (!is_dir($path)) {
- mkdir($path);
- }
-
- return $path;
- }
-}
diff --git a/plugins/LanguagesManager/Commands/FetchTranslations.php b/plugins/LanguagesManager/Commands/FetchTranslations.php
new file mode 100644
index 0000000000..532d1061d8
--- /dev/null
+++ b/plugins/LanguagesManager/Commands/FetchTranslations.php
@@ -0,0 +1,114 @@
+<?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\LanguagesManager\Commands;
+
+use Piwik\Container\StaticContainer;
+use Piwik\Plugins\LanguagesManager\API as LanguagesManagerApi;
+use Piwik\Translation\Transifex\API;
+use Symfony\Component\Console\Helper\ProgressHelper;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+ */
+class FetchTranslations extends TranslationBase
+{
+ const DOWNLOAD_PATH = '/transifex';
+
+ protected function configure()
+ {
+ $path = StaticContainer::get('path.tmp') . self::DOWNLOAD_PATH;
+
+ $this->setName('translations:fetch')
+ ->setDescription('Fetches translations files from Transifex to ' . $path)
+ ->addOption('username', 'u', InputOption::VALUE_OPTIONAL, 'Transifex username')
+ ->addOption('password', 'p', InputOption::VALUE_OPTIONAL, 'Transifex password')
+ ->addOption('lastupdate', 'l', InputOption::VALUE_OPTIONAL, 'Last time update ran', time()-30*24*3600)
+ ->addOption('plugin', 'r', InputOption::VALUE_OPTIONAL, 'Plugin to update');
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $username = $input->getOption('username');
+ $password = $input->getOption('password');
+ $plugin = $input->getOption('plugin');
+ $lastUpdate = $input->getOption('lastupdate');
+
+ $resource = 'piwik-'. ($plugin ? 'plugin-'.strtolower($plugin) : 'base');
+
+ $transifexApi = new API($username, $password);
+
+ // remove all existing translation files in download path
+ $files = glob($this->getDownloadPath() . DIRECTORY_SEPARATOR . '*.json');
+ array_map('unlink', $files);
+
+ if (!$transifexApi->resourceExists($resource)) {
+ $output->writeln("Skipping resource $resource as it doesn't exist on Transifex");
+ return;
+ }
+
+ $output->writeln("Fetching translations from Transifex for resource $resource");
+
+ $languages = $transifexApi->getAvailableLanguageCodes();
+
+ if (!empty($plugin)) {
+ $languages = array_filter($languages, function($language) {
+ return LanguagesManagerApi::getInstance()->isLanguageAvailable(str_replace('_', '-', strtolower($language)));
+ });
+ }
+
+ $availableLanguages = LanguagesManagerApi::getInstance()->getAvailableLanguageNames();
+
+ $languageCodes = array();
+ foreach ($availableLanguages as $languageInfo) {
+ $languageCodes[] = $languageInfo['code'];
+ }
+
+ /** @var ProgressHelper $progress */
+ $progress = $this->getHelperSet()->get('progress');
+
+ $progress->start($output, count($languages));
+
+ $statistics = $transifexApi->getStatistics($resource);
+
+ foreach ($languages as $language) {
+ try {
+ // if we have modification date given from statistics api compare it with given last update time to ignore not update resources
+ if (LanguagesManagerApi::getInstance()->isLanguageAvailable(str_replace('_', '-', strtolower($language))) && isset($statistics->$language)) {
+ $lastupdated = strtotime($statistics->$language->last_update);
+ if ($lastUpdate > $lastupdated) {
+ $progress->advance();
+ continue;
+ }
+ }
+
+ $translations = $transifexApi->getTranslations($resource, $language, true);
+ file_put_contents($this->getDownloadPath() . DIRECTORY_SEPARATOR . str_replace('_', '-', strtolower($language)) . '.json', $translations);
+ } catch (\Exception $e) {
+ $output->writeln("Error fetching language file $language: " . $e->getMessage());
+ }
+ $progress->advance();
+ }
+
+ $progress->finish();
+ }
+
+ public static function getDownloadPath()
+ {
+ $path = StaticContainer::get('path.tmp') . self::DOWNLOAD_PATH;
+
+ if (!is_dir($path)) {
+ mkdir($path);
+ }
+
+ return $path;
+ }
+}
diff --git a/plugins/LanguagesManager/Commands/Update.php b/plugins/LanguagesManager/Commands/Update.php
index 4d0c28bd76..2539ab0e77 100644
--- a/plugins/LanguagesManager/Commands/Update.php
+++ b/plugins/LanguagesManager/Commands/Update.php
@@ -26,26 +26,19 @@ class Update extends TranslationBase
{
$this->setName('translations:update')
->setDescription('Updates translation files')
- ->addOption('username', 'u', InputOption::VALUE_OPTIONAL, 'oTrance username')
- ->addOption('password', 'p', InputOption::VALUE_OPTIONAL, 'oTrance password')
+ ->addOption('force', 'f', InputOption::VALUE_NONE, 'Force update of all language files')
+ ->addOption('username', 'u', InputOption::VALUE_OPTIONAL, 'Transifex username')
+ ->addOption('password', 'p', InputOption::VALUE_OPTIONAL, 'Transifex password')
->addOption('plugin', 'P', InputOption::VALUE_OPTIONAL, 'optional name of plugin to update translations for');
}
protected function execute(InputInterface $input, OutputInterface $output)
{
+ $start = microtime(true);
+
/** @var DialogHelper $dialog */
$dialog = $this->getHelperSet()->get('dialog');
- $command = $this->getApplication()->find('translations:fetch');
- $arguments = array(
- 'command' => 'translations:fetch',
- '--username' => $input->getOption('username'),
- '--password' => $input->getOption('password')
- );
- $inputObject = new ArrayInput($arguments);
- $inputObject->setInteractive($input->isInteractive());
- $command->run($inputObject, $output);
-
$languages = API::getInstance()->getAvailableLanguageNames();
$languageCodes = array();
@@ -55,79 +48,78 @@ class Update extends TranslationBase
$plugin = $input->getOption('plugin');
- $files = _glob(FetchFromOTrance::getDownloadPath() . DIRECTORY_SEPARATOR . '*.json');
-
- $output->writeln("Starting to import new language files");
-
if (!$input->isInteractive()) {
$output->writeln("(!) Non interactive mode: New languages will be skipped");
}
- /** @var ProgressHelper $progress */
- $progress = $this->getHelperSet()->get('progress');
+ $pluginList = array($plugin);
+ if (empty($plugin)) {
+ $pluginList = self::getPluginsInCore();
+ array_unshift($pluginList, '');
+ }
- $progress->start($output, count($files));
+ foreach ($pluginList as $plugin) {
- foreach ($files as $filename) {
+ $output->writeln("");
- $progress->advance();
+ // fetch base or specific plugin
+ $this->fetchTranslations($input, $output, $plugin);
- $code = basename($filename, '.json');
+ $files = _glob(FetchTranslations::getDownloadPath() . DIRECTORY_SEPARATOR . '*.json');
- if (!in_array($code, $languageCodes)) {
+ if (count($files) == 0) {
+ $output->writeln("No translation updates available! Skipped.");
+ continue;
+ }
- if (!empty($plugin)) {
+ $output->writeln("Starting to import new language files");
- continue; # never create a new language for plugin only
- }
+ /** @var ProgressHelper $progress */
+ $progress = $this->getHelperSet()->get('progress');
- $createNewFile = false;
- if ($input->isInteractive()) {
- $createNewFile = $dialog->askConfirmation($output, "\nLanguage $code does not exist. Should it be added? ", false);
- }
+ $progress->start($output, count($files));
- if (!$createNewFile) {
+ foreach ($files as $filename) {
- continue; # do not create a new file for the language
- }
+ $progress->advance();
- @touch(PIWIK_DOCUMENT_ROOT . DIRECTORY_SEPARATOR . 'lang' . DIRECTORY_SEPARATOR . $code . '.json');
- API::unsetInstance(); // unset language manager instance, so valid names are refetched
- }
+ $code = basename($filename, '.json');
+
+ if (!in_array($code, $languageCodes)) {
+
+ if (!empty($plugin)) {
+ continue; # never create a new language for plugin only
+ }
+
+ $createNewFile = false;
+ if ($input->isInteractive()) {
+ $createNewFile = $dialog->askConfirmation($output, "\nLanguage $code does not exist. Should it be added? ", false);
+ }
+
+ if (!$createNewFile) {
+ continue; # do not create a new file for the language
+ }
- $command = $this->getApplication()->find('translations:set');
- $arguments = array(
- 'command' => 'translations:set',
- '--code' => $code,
- '--file' => $filename,
- '--plugin' => $plugin
- );
- $inputObject = new ArrayInput($arguments);
- $inputObject->setInteractive($input->isInteractive());
- $command->run($inputObject, new NullOutput());
-
- // update core modules that aren't in their own repo
- if (empty($plugin)) {
-
- foreach (self::getPluginsInCore() as $pluginName) {
-
- // update translation files
- $command = $this->getApplication()->find('translations:set');
- $arguments = array(
- 'command' => 'translations:set',
- '--code' => $code,
- '--file' => $filename,
- '--plugin' => $pluginName
- );
- $inputObject = new ArrayInput($arguments);
- $inputObject->setInteractive($input->isInteractive());
- $command->run($inputObject, new NullOutput());
+ @touch(PIWIK_DOCUMENT_ROOT . DIRECTORY_SEPARATOR . 'lang' . DIRECTORY_SEPARATOR . $code . '.json');
+ API::unsetInstance(); // unset language manager instance, so valid names are refetched
}
+
+ $command = $this->getApplication()->find('translations:set');
+ $arguments = array(
+ 'command' => 'translations:set',
+ '--code' => $code,
+ '--file' => $filename,
+ '--plugin' => $plugin
+ );
+ $inputObject = new ArrayInput($arguments);
+ $inputObject->setInteractive($input->isInteractive());
+ $command->run($inputObject, new NullOutput());
}
+
+ $progress->finish();
}
- $progress->finish();
- $output->writeln("Finished.");
+ $output->writeln("Finished in " . round(microtime(true)-$start, 3) . "s");
}
/**
@@ -154,7 +146,7 @@ class Update extends TranslationBase
$pluginsNotInCore = array_merge($submodulePlugins, $newPlugins);
$pluginsWithTranslations = glob(sprintf('%s/plugins/*/lang/en.json', PIWIK_INCLUDE_PATH));
- $pluginsWithTranslations = array_map(function($elem){
+ $pluginsWithTranslations = array_map(function ($elem) {
return str_replace(array(sprintf('%s/plugins/', PIWIK_INCLUDE_PATH), '/lang/en.json'), '', $elem);
}, $pluginsWithTranslations);
@@ -162,4 +154,48 @@ class Update extends TranslationBase
return $pluginsInCore;
}
+
+ /**
+ * @param InputInterface $input
+ * @param OutputInterface $output
+ * @param string $plugin
+ * @throws \Exception
+ */
+ protected function fetchTranslations(InputInterface $input, OutputInterface $output, $plugin)
+ {
+
+ $command = $this->getApplication()->find('translations:fetch');
+ $arguments = array(
+ 'command' => 'translations:fetch',
+ '--username' => $input->getOption('username'),
+ '--password' => $input->getOption('password'),
+ '--plugin' => $plugin
+ );
+
+ if ($input->getOption('force')) {
+ $arguments['--lastupdate'] = 1;
+ } else {
+ $lastModDate = strtotime('2015-01-04 00:00:00'); // date of inital transifex setup
+ try {
+ // try to find the language file (of given plugin) with the newest modification date in git log
+ $path = ($plugin ? 'plugins/' . $plugin . '/' : '') . 'lang';
+ $files = explode("\n", trim(shell_exec('git ls-tree -r --name-only HEAD ' . $path)));
+
+ foreach ($files as $file) {
+ $fileModDate = shell_exec('git log -1 --format="%at" -- ' . $file);
+ if (basename($file) != 'en.json' && $fileModDate > $lastModDate) {
+ $lastModDate = $fileModDate;
+ }
+ }
+ } catch (\Exception $e) {
+ }
+
+ if ($lastModDate != 0) {
+ $arguments['--lastupdate'] = $lastModDate;
+ }
+ }
+ $inputObject = new ArrayInput($arguments);
+ $inputObject->setInteractive($input->isInteractive());
+ $command->run($inputObject, $output);
+ }
}
diff --git a/plugins/LanguagesManager/Test/Integration/LanguagesManagerTest.php b/plugins/LanguagesManager/Test/Integration/LanguagesManagerTest.php
index 1573d4ec37..1d0b74f3bf 100755
--- a/plugins/LanguagesManager/Test/Integration/LanguagesManagerTest.php
+++ b/plugins/LanguagesManager/Test/Integration/LanguagesManagerTest.php
@@ -97,7 +97,7 @@ class LanguagesManagerTest extends \PHPUnit_Framework_TestCase
$translationWriter->saveTemporary();
$this->markTestSkipped(implode("\n", $translationWriter->getFilterMessages()) . "\n"
. 'Translation file errors detected in ' . $language . "...\n"
- . "To synchronise the language files with the english strings, you can manually edit the language files or run the following command may work if you have access to oTrance: \n"
+ . "To synchronise the language files with the english strings, you can manually edit the language files or run the following command may work if you have access to Transifex: \n"
. "$ ./console translations:update [--plugin=XYZ] \n"
);
}
diff --git a/plugins/LanguagesManager/lang/ru.json b/plugins/LanguagesManager/lang/ru.json
index 5d0aa50bfd..fe46134977 100644
--- a/plugins/LanguagesManager/lang/ru.json
+++ b/plugins/LanguagesManager/lang/ru.json
@@ -1,5 +1,6 @@
{
"LanguagesManager": {
- "AboutPiwikTranslations": "О переводах Piwik"
+ "AboutPiwikTranslations": "О переводах Piwik",
+ "TranslationSearch": "Поиск перевода"
}
} \ No newline at end of file
diff --git a/plugins/LeftMenu/lang/cs.json b/plugins/LeftMenu/lang/cs.json
index 222664d7d9..e7d9815870 100644
--- a/plugins/LeftMenu/lang/cs.json
+++ b/plugins/LeftMenu/lang/cs.json
@@ -1,10 +1,10 @@
{
"LeftMenu": {
+ "SettingsIntroduction": "Zásuvný modul levé menu přesune menu hlášení na levou stranu (je-li povolen). To je především užitečné na velkých displejích.",
+ "GlobalSettingTitle": "Levé menu je ve výchozím stavu povoleno",
"GlobalSettingDescription": "Definuje systémovou výchozí hodnotu pro všechny uživatele.",
"GlobalSettingInlineHelp": "Uživatelé si mohou zakázat\/povolit levé menu nezávisle na systémové výchozí hodnotě.",
- "GlobalSettingTitle": "Levé menu je ve výchozím stavu povoleno",
- "SettingsIntroduction": "Zásuvný modul levé menu přesune menu hlášení na levou stranu (je-li povolen). To je především užitečné na velkých displejích.",
- "UserSettingInlineHelp": "Toto povolí nebo zakáže levé menu jen pro vás bez ohledu na jiné uživatele. Super uživatel může nastavit výchozí systémovou hodnotu.",
- "UserSettingTitle": "Povolit levé menu hlášení"
+ "UserSettingTitle": "Povolit levé menu hlášení",
+ "UserSettingInlineHelp": "Toto povolí nebo zakáže levé menu jen pro vás bez ohledu na jiné uživatele. Super uživatel může nastavit výchozí systémovou hodnotu."
}
} \ No newline at end of file
diff --git a/plugins/LeftMenu/lang/da.json b/plugins/LeftMenu/lang/da.json
index 537645be76..27da2b1651 100644
--- a/plugins/LeftMenu/lang/da.json
+++ b/plugins/LeftMenu/lang/da.json
@@ -1,10 +1,10 @@
{
"LeftMenu": {
+ "SettingsIntroduction": "Venstre menu udvidelsen vil flytte rapportmenuen fra toppen til venstre, hvis aktiveret. Dette er især nyttigt for store skærme.",
+ "GlobalSettingTitle": "Venstre menu aktiveret som standard",
"GlobalSettingDescription": "Definerer systemets standard indstillinger for alle brugerne.",
"GlobalSettingInlineHelp": "Brugerne er i stand til at aktivere\/deaktivere venstremenuen uafhængigt af systemets standard indstillinger.",
- "GlobalSettingTitle": "Venstre menu aktiveret som standard",
- "SettingsIntroduction": "Venstre menu udvidelsen vil flytte rapportmenuen fra toppen til venstre, hvis aktiveret. Dette er især nyttigt for store skærme.",
- "UserSettingInlineHelp": "Dette vil kun aktivere eller deaktivere venstre menuen for dig og påvirker ikke andre brugere. En superbruger kan ændre standardindstillingen for alle brugere.",
- "UserSettingTitle": "Aktiver rapportmenu til venstre"
+ "UserSettingTitle": "Aktiver rapportmenu til venstre",
+ "UserSettingInlineHelp": "Dette vil kun aktivere eller deaktivere venstre menuen for dig og påvirker ikke andre brugere. En superbruger kan ændre standardindstillingen for alle brugere."
}
} \ No newline at end of file
diff --git a/plugins/LeftMenu/lang/de.json b/plugins/LeftMenu/lang/de.json
index a2ff86656a..0a1c85e2c9 100644
--- a/plugins/LeftMenu/lang/de.json
+++ b/plugins/LeftMenu/lang/de.json
@@ -1,10 +1,10 @@
{
"LeftMenu": {
+ "SettingsIntroduction": "Das LeftMenu Plug-In verschiebt die Menüs für die Reporte auf die linke Seite. Dies ist für umfangreiche Reporte hilfreich.",
+ "GlobalSettingTitle": "LeftMenu aktiviert als Voreinstellung",
"GlobalSettingDescription": "Legt die Standardeinstellung für alle Benutzer fest.",
"GlobalSettingInlineHelp": "Die Benutzer können es unabhängig von der Vorgabe aktivieren\/deaktivieren.",
- "GlobalSettingTitle": "LeftMenu aktiviert als Voreinstellung",
- "SettingsIntroduction": "Das LeftMenu Plug-In verschiebt die Menüs für die Reporte auf die linke Seite. Dies ist für umfangreiche Reporte hilfreich.",
- "UserSettingInlineHelp": "Legt die Einstellung für den aktuellen Benutzer fest, ob LeftMenu aktiviert oder deaktiviert sein soll. Ein Administrator kann die Standardeinstellung für alle Benutzer festlegen.",
- "UserSettingTitle": "LeftMenu aktiviert"
+ "UserSettingTitle": "LeftMenu aktiviert",
+ "UserSettingInlineHelp": "Legt die Einstellung für den aktuellen Benutzer fest, ob LeftMenu aktiviert oder deaktiviert sein soll. Ein Administrator kann die Standardeinstellung für alle Benutzer festlegen."
}
} \ No newline at end of file
diff --git a/plugins/LeftMenu/lang/el.json b/plugins/LeftMenu/lang/el.json
index 1c8989026f..d269efd4dd 100644
--- a/plugins/LeftMenu/lang/el.json
+++ b/plugins/LeftMenu/lang/el.json
@@ -1,10 +1,10 @@
{
"LeftMenu": {
+ "SettingsIntroduction": "Το πρόσθετο για το αριστερό μενού θα μετακινήσει το μενού αναφορών από την κορυφή προς τα αριστερά αν ενεργοποιηθεί. Αυτό είναι ιδιαίτερα χρήσιμο για μεγάλες οθόνες.",
+ "GlobalSettingTitle": "Το αριστερό μενού είναι εξ' ορισμού ενεργοποιημένο.",
"GlobalSettingDescription": "Ορίζει την προεπιλογή για όλους τους χρήστες.",
"GlobalSettingInlineHelp": "Οι χρήστες μπορούν να απενεργοποιούν\/ενεργοποιούν το αριστερό μενού ανεξάρτητα από την προεπιλεγμένη ρύθμιση του συστήματος.",
- "GlobalSettingTitle": "Το αριστερό μενού είναι εξ' ορισμού ενεργοποιημένο.",
- "SettingsIntroduction": "Το πρόσθετο για το αριστερό μενού θα μετακινήσει το μενού αναφορών από την κορυφή προς τα αριστερά αν ενεργοποιηθεί. Αυτό είναι ιδιαίτερα χρήσιμο για μεγάλες οθόνες.",
- "UserSettingInlineHelp": "Αυτό θα ενεργοποιήσει ή απενεργοποιήσει το αριστερό μενού μόνο για εσάς και δε θα επηρεάσει άλλους χρήστες. Ένας Υπερχρήστης μπορεί να αλλάξει την προκαθορισμένη ρύθμιση για όλους τους χρήστες.",
- "UserSettingTitle": "Ενεργοποίηση του αριστερού μενού αναφορών"
+ "UserSettingTitle": "Ενεργοποίηση του αριστερού μενού αναφορών",
+ "UserSettingInlineHelp": "Αυτό θα ενεργοποιήσει ή απενεργοποιήσει το αριστερό μενού μόνο για εσάς και δε θα επηρεάσει άλλους χρήστες. Ένας Υπερχρήστης μπορεί να αλλάξει την προκαθορισμένη ρύθμιση για όλους τους χρήστες."
}
} \ No newline at end of file
diff --git a/plugins/LeftMenu/lang/fi.json b/plugins/LeftMenu/lang/fi.json
index 5df54f25cb..d2007c8cf4 100644
--- a/plugins/LeftMenu/lang/fi.json
+++ b/plugins/LeftMenu/lang/fi.json
@@ -1,8 +1,8 @@
{
"LeftMenu": {
+ "GlobalSettingTitle": "Vasen valikko oletuksena käytössä",
"GlobalSettingDescription": "Määrittää järjestelmän oletusasetuksen kaikille käyttäjille.",
"GlobalSettingInlineHelp": "Käyttäjät voivat poistaa käytöstä\/ottaa käyttöön vasemman valikon riippumatta järjestelmän oletusasetuksesta.",
- "GlobalSettingTitle": "Vasen valikko oletuksena käytössä",
"UserSettingTitle": "Ota vasen raportointivalikko käyttöön"
}
} \ No newline at end of file
diff --git a/plugins/LeftMenu/lang/fr.json b/plugins/LeftMenu/lang/fr.json
index de32f65baa..ec79124c1d 100644
--- a/plugins/LeftMenu/lang/fr.json
+++ b/plugins/LeftMenu/lang/fr.json
@@ -1,10 +1,10 @@
{
"LeftMenu": {
+ "SettingsIntroduction": "Le composant de menu à gauche va déplacer le menu de rapport d'en haut vers la gauche s'il est activé. C'est particulièrement utile pour les affichages larges.",
+ "GlobalSettingTitle": "Menu de gauche activé par défaut",
"GlobalSettingDescription": "Définit les valeurs système par défaut pour tous les utilisateurs.",
"GlobalSettingInlineHelp": "Les utilisateurs peuvent activer\/désactiver le menu de gauche indépendant des valeurs par défaut du système.",
- "GlobalSettingTitle": "Menu de gauche activé par défaut",
- "SettingsIntroduction": "Le composant de menu à gauche va déplacer le menu de rapport d'en haut vers la gauche s'il est activé. C'est particulièrement utile pour les affichages larges.",
- "UserSettingInlineHelp": "Cela va activer ou désactiver le menu de gauche pour vous uniquement et ne pas affecter les autres utilisateurs. Un super utilisateur peut modifier le paramètre par défaut pour tous les utilisateurs.",
- "UserSettingTitle": "Activer le menu de rapport de gauche"
+ "UserSettingTitle": "Activer le menu de rapport de gauche",
+ "UserSettingInlineHelp": "Cela va activer ou désactiver le menu de gauche pour vous uniquement et ne pas affecter les autres utilisateurs. Un super utilisateur peut modifier le paramètre par défaut pour tous les utilisateurs."
}
} \ No newline at end of file
diff --git a/plugins/LeftMenu/lang/it.json b/plugins/LeftMenu/lang/it.json
index 0b305449d9..6b3de37d47 100644
--- a/plugins/LeftMenu/lang/it.json
+++ b/plugins/LeftMenu/lang/it.json
@@ -1,10 +1,10 @@
{
"LeftMenu": {
+ "SettingsIntroduction": "Il plugin menù di sinistra sposta il menu di segnalazione dalla parte superiore a sinistra, se abilitato. Ciò è particolarmente utile per i display di grandi dimensioni.",
+ "GlobalSettingTitle": "Il menù di sinistra è abilitato di default",
"GlobalSettingDescription": "Definisce le impostazioni predefinite di sistema per tutti gli utenti.",
"GlobalSettingInlineHelp": "Gli utenti possono disabilitare o abilitare il menù di sinistra indipendentemente dalle impostazioni predefinite del sistema.",
- "GlobalSettingTitle": "Il menù di sinistra è abilitato di default",
- "SettingsIntroduction": "Il plugin menù di sinistra sposta il menu di segnalazione dalla parte superiore a sinistra, se abilitato. Ciò è particolarmente utile per i display di grandi dimensioni.",
- "UserSettingInlineHelp": "Questo abilita o disabilita il menù di sinistra solo per te e non ha effetto per gli altri utenti. Un Super User può cambiare per tutti gli utenti le impostazioni predefinite.",
- "UserSettingTitle": "Abilita il menù di segnalazione di sinistra"
+ "UserSettingTitle": "Abilita il menù di segnalazione di sinistra",
+ "UserSettingInlineHelp": "Questo abilita o disabilita il menù di sinistra solo per te e non ha effetto per gli altri utenti. Un Super User può cambiare per tutti gli utenti le impostazioni predefinite."
}
} \ No newline at end of file
diff --git a/plugins/LeftMenu/lang/ja.json b/plugins/LeftMenu/lang/ja.json
index a07c9abebf..6d4e82e5ec 100644
--- a/plugins/LeftMenu/lang/ja.json
+++ b/plugins/LeftMenu/lang/ja.json
@@ -1,10 +1,10 @@
{
"LeftMenu": {
+ "SettingsIntroduction": "左メニューのプラグインは、有効化されている場合、レポートメニューをトップから左に移動します。この移動は、特に大きなディスプレイをお使いの場合、便利です。",
+ "GlobalSettingTitle": "デフォルトにより有効化された左メニュー",
"GlobalSettingDescription": "全サイトユーザーのためのシステムデフォルトを定義",
"GlobalSettingInlineHelp": "ユーザーは、システムデフォルトの左メニューの独立を無効 \/ 有効にすることができます。",
- "GlobalSettingTitle": "デフォルトにより有効化された左メニュー",
- "SettingsIntroduction": "左メニューのプラグインは、有効化されている場合、レポートメニューをトップから左に移動します。この移動は、特に大きなディスプレイをお使いの場合、便利です。",
- "UserSettingInlineHelp": "これは、左メニューをあなたのためだけに有効または無効にし、他のユーザーには影響しません。スーパーユーザーは、全てのユーザーに対するデフォルト設定を変更できます。",
- "UserSettingTitle": "左のレポートメニューを有効にする"
+ "UserSettingTitle": "左のレポートメニューを有効にする",
+ "UserSettingInlineHelp": "これは、左メニューをあなたのためだけに有効または無効にし、他のユーザーには影響しません。スーパーユーザーは、全てのユーザーに対するデフォルト設定を変更できます。"
}
} \ No newline at end of file
diff --git a/plugins/LeftMenu/lang/nl.json b/plugins/LeftMenu/lang/nl.json
index e0fa59a255..4c2124bf6a 100644
--- a/plugins/LeftMenu/lang/nl.json
+++ b/plugins/LeftMenu/lang/nl.json
@@ -1,6 +1,6 @@
{
"LeftMenu": {
- "GlobalSettingDescription": "Definieert het systeem standaard voor al uw gebruikers.",
- "GlobalSettingTitle": "Linker menu standaard ingeschakeld"
+ "GlobalSettingTitle": "Linker menu standaard ingeschakeld",
+ "GlobalSettingDescription": "Definieert het systeem standaard voor al uw gebruikers."
}
} \ No newline at end of file
diff --git a/plugins/LeftMenu/lang/pl.json b/plugins/LeftMenu/lang/pl.json
index 891008463f..c75b2ea5d8 100644
--- a/plugins/LeftMenu/lang/pl.json
+++ b/plugins/LeftMenu/lang/pl.json
@@ -1,6 +1,6 @@
{
"LeftMenu": {
- "GlobalSettingDescription": "Definiuje domyślne systemu dla wszystkich użytkowników.",
- "GlobalSettingTitle": "Menu po lewej stronie domyślnie włączone"
+ "GlobalSettingTitle": "Menu po lewej stronie domyślnie włączone",
+ "GlobalSettingDescription": "Definiuje domyślne systemu dla wszystkich użytkowników."
}
} \ No newline at end of file
diff --git a/plugins/LeftMenu/lang/ro.json b/plugins/LeftMenu/lang/ro.json
index 64a829c25d..fa63c4cac6 100644
--- a/plugins/LeftMenu/lang/ro.json
+++ b/plugins/LeftMenu/lang/ro.json
@@ -1,10 +1,10 @@
{
"LeftMenu": {
+ "SettingsIntroduction": "Modulul meniului din stânga va muta meniul de raportare din partea de sus în partea stângă dacă este activat. Acesta este folositor în special în cazul ecranelor mari.",
+ "GlobalSettingTitle": "Meniul din stânnga este activat implicit",
"GlobalSettingDescription": "Definește valoarea implicită pentru toți utilizatorii.",
"GlobalSettingInlineHelp": "Utilizatorii pot dezactiva\/activa meniul din stânga independet de valoare implicită.",
- "GlobalSettingTitle": "Meniul din stânnga este activat implicit",
- "SettingsIntroduction": "Modulul meniului din stânga va muta meniul de raportare din partea de sus în partea stângă dacă este activat. Acesta este folositor în special în cazul ecranelor mari.",
- "UserSettingInlineHelp": "Acesta va activa sau dezactiva meniul din stânga doar pentru dumneavoastra și nu va afecta alți utilizatori. Un Super Utilizator va putea schimba modul implicit pentru toți utilizatorii.",
- "UserSettingTitle": "Activează meniul de raportare din stânga"
+ "UserSettingTitle": "Activează meniul de raportare din stânga",
+ "UserSettingInlineHelp": "Acesta va activa sau dezactiva meniul din stânga doar pentru dumneavoastra și nu va afecta alți utilizatori. Un Super Utilizator va putea schimba modul implicit pentru toți utilizatorii."
}
} \ No newline at end of file
diff --git a/plugins/LeftMenu/lang/ru.json b/plugins/LeftMenu/lang/ru.json
index e970c5b45b..e0d825348b 100644
--- a/plugins/LeftMenu/lang/ru.json
+++ b/plugins/LeftMenu/lang/ru.json
@@ -1,9 +1,9 @@
{
"LeftMenu": {
+ "SettingsIntroduction": "Если включить плагин LeftMenu, он переместит главное меню сверху налево. Это будет удобно для больших экранов.",
+ "GlobalSettingTitle": "Левое меню включено поумолчанию",
"GlobalSettingDescription": "Определяет значение по умолчанию для всех пользователей.",
"GlobalSettingInlineHelp": "Пользователи имеют возможность отключить\/включить левое меню независимо от значения по умолчанию.",
- "GlobalSettingTitle": "Левое меню включено поумолчанию",
- "SettingsIntroduction": "Если включить плагин LeftMenu, он переместит главное меню сверху налево. Это будет удобно для больших экранов.",
"UserSettingInlineHelp": "Это включает или отключает левое меню только для вас и не влияет на других пользователей. Суперпользователь может изменить настройки по умолчанию для всех пользователей."
}
} \ No newline at end of file
diff --git a/plugins/LeftMenu/lang/sr.json b/plugins/LeftMenu/lang/sr.json
index 50cde7ed16..12ce6cf860 100644
--- a/plugins/LeftMenu/lang/sr.json
+++ b/plugins/LeftMenu/lang/sr.json
@@ -1,10 +1,10 @@
{
"LeftMenu": {
+ "SettingsIntroduction": "Dodatak za levi meni će pomeriti meni za izveštaje sa vrha na levu stranu. Ovo je praktično od velikih monitora.",
+ "GlobalSettingTitle": "Levi meni je podrazumevano uključen",
"GlobalSettingDescription": "Postavljanje podrazumevanih vrednosti za sve korisnike.",
"GlobalSettingInlineHelp": "Korisnici mogu da uključuju i isključuju levi meni nezavisno od podrazumevanih sistemskih podešavanja.",
- "GlobalSettingTitle": "Levi meni je podrazumevano uključen",
- "SettingsIntroduction": "Dodatak za levi meni će pomeriti meni za izveštaje sa vrha na levu stranu. Ovo je praktično od velikih monitora.",
- "UserSettingInlineHelp": "Ova opcija će uključiti ili isključiti meni sa leve strane samo za vas a ne i za ostale korisnike. Superkorisnik može da promeni podrazumevane vrednosti za sve korisnike.",
- "UserSettingTitle": "Omogući meni sa leve strane"
+ "UserSettingTitle": "Omogući meni sa leve strane",
+ "UserSettingInlineHelp": "Ova opcija će uključiti ili isključiti meni sa leve strane samo za vas a ne i za ostale korisnike. Superkorisnik može da promeni podrazumevane vrednosti za sve korisnike."
}
} \ No newline at end of file
diff --git a/plugins/LeftMenu/lang/sv.json b/plugins/LeftMenu/lang/sv.json
index 433b6173ab..76c1854df2 100644
--- a/plugins/LeftMenu/lang/sv.json
+++ b/plugins/LeftMenu/lang/sv.json
@@ -1,10 +1,10 @@
{
"LeftMenu": {
+ "SettingsIntroduction": "Tillägget för vänstermeny kommer, ifall det är aktiverat, flytta rapportmenyn till den vänstra sidan. Detta är speciellt användbart för större skärmar.",
+ "GlobalSettingTitle": "Vänster meny aktiverad som standard",
"GlobalSettingDescription": "Definierar systemets standardinställning för alla dina användare.",
"GlobalSettingInlineHelp": "Användare har möjlighet att aktivera\/deaktivera vänstermenyn oavhängigt systeminställningarna.",
- "GlobalSettingTitle": "Vänster meny aktiverad som standard",
- "SettingsIntroduction": "Tillägget för vänstermeny kommer, ifall det är aktiverat, flytta rapportmenyn till den vänstra sidan. Detta är speciellt användbart för större skärmar.",
- "UserSettingInlineHelp": "Detta kommer aktivera\/deaktivera för dig utan att påverka andra användare. En Super User kan ändra inställningen för samtliga användare.",
- "UserSettingTitle": "Aktivera vänster rapporteringsmeny"
+ "UserSettingTitle": "Aktivera vänster rapporteringsmeny",
+ "UserSettingInlineHelp": "Detta kommer aktivera\/deaktivera för dig utan att påverka andra användare. En Super User kan ändra inställningen för samtliga användare."
}
} \ No newline at end of file
diff --git a/plugins/LeftMenu/lang/tl.json b/plugins/LeftMenu/lang/tl.json
index ecf59a587c..2a6a0045b6 100644
--- a/plugins/LeftMenu/lang/tl.json
+++ b/plugins/LeftMenu/lang/tl.json
@@ -1,10 +1,10 @@
{
"LeftMenu": {
+ "SettingsIntroduction": "Ang kaliwang menu na may plugin ay pwedeng ilipat ang menu kung saan makikita ang ulat mula sa taas papunta sa kaliwa kung ito ay gumagana. Ito ay lalong mapapakinabangan sa malalaking display.",
+ "GlobalSettingTitle": "Ang kaliwa menu ay gumagana bilang default",
"GlobalSettingDescription": "Tinutukoy ang default system para sa lahat ng iyong mga user.",
"GlobalSettingInlineHelp": "Ang user ay maari makapag pagana o hindi makapag pagana ng menu sa kaliwa na independent sa system default.",
- "GlobalSettingTitle": "Ang kaliwa menu ay gumagana bilang default",
- "SettingsIntroduction": "Ang kaliwang menu na may plugin ay pwedeng ilipat ang menu kung saan makikita ang ulat mula sa taas papunta sa kaliwa kung ito ay gumagana. Ito ay lalong mapapakinabangan sa malalaking display.",
- "UserSettingInlineHelp": "Ang menu sa kaliwa ay pwede mong paganahin o wag paganahin at hindi maapektuhan ang ibang mga user. Ang Super User ay pwedeng baguhin ang lahat pangunahing pagpipilian sa lahat ng users.",
- "UserSettingTitle": "Pagahanin ang kaliwang menu na pang ulat"
+ "UserSettingTitle": "Pagahanin ang kaliwang menu na pang ulat",
+ "UserSettingInlineHelp": "Ang menu sa kaliwa ay pwede mong paganahin o wag paganahin at hindi maapektuhan ang ibang mga user. Ang Super User ay pwedeng baguhin ang lahat pangunahing pagpipilian sa lahat ng users."
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/cs.json b/plugins/Live/lang/cs.json
index e61ccd1f42..6ab27f36ce 100644
--- a/plugins/Live/lang/cs.json
+++ b/plugins/Live/lang/cs.json
@@ -25,10 +25,6 @@
"PreviousVisitor": "Předchozí návštěvník",
"RealTimeVisitorCount": "Počet návštěvníků v reálném čase",
"Referrer_URL": "Odkazující URL",
- "RowActionTooltipDefault": "Zobrazit záznam návštěvníků rozdělený podle tohoto řádku",
- "RowActionTooltipTitle": "Otevřít rozdělený záznam návštěvníků",
- "RowActionTooltipWithDimension": "Zobrazit záznam návštěvníků rozdělený podle %s",
- "SegmentedVisitorLogTitle": "Záznam návštěvníků zobrazuje návštěvy, kde %s je \\\"%s\\\"",
"ShowMap": "Zobrazit mapu",
"SimpleRealTimeWidget_Message": "%s a %s v posledních %s.",
"ViewVisitorProfile": "Zobrazit profil návštěvníka",
@@ -39,6 +35,9 @@
"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 %4$szobrazil %5$s stránek za %6$s návštěv.%7$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ů"
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/da.json b/plugins/Live/lang/da.json
index 794fc3236a..1c6af1bc30 100644
--- a/plugins/Live/lang/da.json
+++ b/plugins/Live/lang/da.json
@@ -24,8 +24,6 @@
"PreviousVisitor": "Forrige besøgende",
"RealTimeVisitorCount": "Tidstro besøgsantal",
"Referrer_URL": "Henvisning netadresse",
- "RowActionTooltipDefault": "Vis besøgslog opdelt efter denne række",
- "RowActionTooltipWithDimension": "Vis besøgslog opdelt efter %s",
"ShowMap": "vis kort",
"SimpleRealTimeWidget_Message": "%s og %s i den sidste %s.",
"ViewVisitorProfile": "Vis besøgendes profil",
@@ -36,6 +34,10 @@
"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$så %5$s sider på %6$s besøg. %7$s"
+ "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\\\""
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/de.json b/plugins/Live/lang/de.json
index a547492428..5064e5d51f 100644
--- a/plugins/Live/lang/de.json
+++ b/plugins/Live/lang/de.json
@@ -25,10 +25,6 @@
"PreviousVisitor": "Vorheriger Besucher",
"RealTimeVisitorCount": "Echtzeit-Besucherzähler",
"Referrer_URL": "Herkunftsseite",
- "RowActionTooltipDefault": "Zeige Besucher-Log aufgeteilt durch diese Zeile",
- "RowActionTooltipTitle": "Log segmentierter Besucher öffnen",
- "RowActionTooltipWithDimension": "Zeige Besucher-Log segmentiert durch %s",
- "SegmentedVisitorLogTitle": "Besucher-Log zeigt Besuche bei denen gilt: %s ist \\\"%s\\\"",
"ShowMap": "Karte einblenden",
"SimpleRealTimeWidget_Message": "%s und %s in den letzten %s.",
"ViewVisitorProfile": "Besucherprofil ansehen",
@@ -39,6 +35,10 @@
"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 Webseite%3$s, und %4$sgezeigten %5$s Seiten in %6$s Besuchen.%7$s"
+ "VisitSummary": "Verbrachte insgesamt %1$s%2$s auf der Webseite%3$s, und %4$sgezeigten %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\\\""
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/el.json b/plugins/Live/lang/el.json
index bf2230d3d3..6550b41637 100644
--- a/plugins/Live/lang/el.json
+++ b/plugins/Live/lang/el.json
@@ -25,10 +25,6 @@
"PreviousVisitor": "Προηγούμενος επισκέπτης",
"RealTimeVisitorCount": "Αριθμός επισκεπτών σε πραγματικό χρόνο",
"Referrer_URL": "Διεύθυνση URL παραπομπού",
- "RowActionTooltipDefault": "Εμφάνιση του Ημερολογίου Επισκεπτών κατατμημένο σε αυτή τη γραμμή",
- "RowActionTooltipTitle": "Άνοιγμα κατετμημένου Ημερολογίου Επισκεπτών",
- "RowActionTooltipWithDimension": "Εμφάνιση του Ημερολογίου Επισκεπτών κατατμημένο με αυτό το %s",
- "SegmentedVisitorLogTitle": "Το Ημερολόγιο Επισκεπτών εμφανίζει επισκέψεις όπου το %s είναι \\\"%s\\\"",
"ShowMap": "εμφάνιση χάρτη",
"SimpleRealTimeWidget_Message": "%s και %s στα τελευταία %s.",
"ViewVisitorProfile": "Εμφάνιση του προφίλ επισκέπτη",
@@ -39,6 +35,10 @@
"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",
+ "RowActionTooltipDefault": "Εμφάνιση του Ημερολογίου Επισκεπτών κατατμημένο σε αυτή τη γραμμή",
+ "RowActionTooltipWithDimension": "Εμφάνιση του Ημερολογίου Επισκεπτών κατατμημένο με αυτό το %s",
+ "RowActionTooltipTitle": "Άνοιγμα κατετμημένου Ημερολογίου Επισκεπτών",
+ "SegmentedVisitorLogTitle": "Ημερολόγιο επισκεπτών που δείχνει επισκέψεις όπου το %s είναι \"%s\""
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/fr.json b/plugins/Live/lang/fr.json
index fa410b92cd..4a3e46bc4b 100644
--- a/plugins/Live/lang/fr.json
+++ b/plugins/Live/lang/fr.json
@@ -21,6 +21,7 @@
"NextVisitor": "Visiteur suivant",
"NoMoreVisits": "Il n'y a pas d'autres visites pour ce visiteur.",
"PageRefreshed": "Nombre de fois où cette page a été vue \/ rafraîchie d'affilée.",
+ "PluginDescription": "Fournit le log en temps réel des visiteurs et vous permet de visualiser vos visiteurs en temps réel au sein d'un gadget du tableau de bord. Ce composant vous permet aussi de voir le profil d'un visiteur pour n'importe quel utilisateur.",
"PreviousVisitor": "Visiteur précédent",
"RealTimeVisitorCount": "Décompte des visiteurs en temps réel",
"Referrer_URL": "URL du référent",
@@ -34,6 +35,10 @@
"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"
+ "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\""
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/it.json b/plugins/Live/lang/it.json
index 776da28c8a..6195417c7a 100644
--- a/plugins/Live/lang/it.json
+++ b/plugins/Live/lang/it.json
@@ -25,10 +25,6 @@
"PreviousVisitor": "Visitatore precedente",
"RealTimeVisitorCount": "Conteggio Visitatori in Tempo Reale",
"Referrer_URL": "URL del referer",
- "RowActionTooltipDefault": "Mostra Log Visitatori segmentato per questa riga",
- "RowActionTooltipTitle": "Apri il log segmentato dei visitatori",
- "RowActionTooltipWithDimension": "Mostra Log Visitatori segmentato per questo %s",
- "SegmentedVisitorLogTitle": "Log Visitatore che mostra le visite dove %s è \\\"%s\\\"",
"ShowMap": "mostra mappa",
"SimpleRealTimeWidget_Message": "%s e %s negli ultimi %s",
"ViewVisitorProfile": "Guarda profilo visitatore",
@@ -39,6 +35,9 @@
"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": "Passato un totale di %1$s%2$s sul sito%3$s e %4$sviste %5$s pagine in %6$s visite.%7$s",
+ "RowActionTooltipDefault": "Mostra Log Visitatori segmentato per questa riga",
+ "RowActionTooltipWithDimension": "Mostra Log Visitatori segmentato per questo %s",
+ "RowActionTooltipTitle": "Apri il log segmentato dei visitatori"
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/nl.json b/plugins/Live/lang/nl.json
index 8d71ac5985..6fa0e2d65b 100644
--- a/plugins/Live/lang/nl.json
+++ b/plugins/Live/lang/nl.json
@@ -22,7 +22,6 @@
"PreviousVisitor": "Vorige bezoeker",
"RealTimeVisitorCount": "Real Time bezoekers aantal",
"Referrer_URL": "Referrer URL",
- "RowActionTooltipTitle": "Open gesegmenteerd Bezoekerslogboek",
"ShowMap": "Toon kaart",
"SimpleRealTimeWidget_Message": "%s en %s in de laatste %s",
"ViewVisitorProfile": "Bekijk bezoeker profiel",
@@ -33,6 +32,7 @@
"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"
+ "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",
+ "RowActionTooltipTitle": "Open gesegmenteerd Bezoekerslogboek"
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/ru.json b/plugins/Live/lang/ru.json
index 6b4545aeed..31388029f4 100644
--- a/plugins/Live/lang/ru.json
+++ b/plugins/Live/lang/ru.json
@@ -23,9 +23,6 @@
"PreviousVisitor": "Предыдущий посетитель",
"RealTimeVisitorCount": "Счётчик посетителей в реальном времени",
"Referrer_URL": "URL источника",
- "RowActionTooltipDefault": "Показать журнал посетителей, сегментированный по этой строке",
- "RowActionTooltipTitle": "Открыть сегментированный журнал посетителей",
- "SegmentedVisitorLogTitle": "Просмотр посещений где %s равно \\\"%s\\\"",
"ShowMap": "показать карту",
"SimpleRealTimeWidget_Message": "%s и %s за последние %s",
"ViewVisitorProfile": "Посмотреть профиль посетителя",
@@ -36,6 +33,9 @@
"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.",
+ "RowActionTooltipDefault": "Показать журнал посетителей, сегментированный по этой строке",
+ "RowActionTooltipTitle": "Открыть сегментированный журнал посетителей",
+ "SegmentedVisitorLogTitle": "Просмотр посещений где %s равно \\\"%s\\\""
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/sv.json b/plugins/Live/lang/sv.json
index 0a2674369e..c801a062c5 100644
--- a/plugins/Live/lang/sv.json
+++ b/plugins/Live/lang/sv.json
@@ -7,7 +7,7 @@
"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": "Typ",
+ "GoalType": "Sort",
"HideMap": "Dölj mapp",
"KeywordRankedOnSearchResultForThisVisitor": "Sökordet %1$s rankade %2$s på %3$s i sökresultatet för besökaren",
"LastHours": "Senaste %s timmarna",
diff --git a/plugins/Login/lang/da.json b/plugins/Login/lang/da.json
index e64a368a62..0815389fe4 100644
--- a/plugins/Login/lang/da.json
+++ b/plugins/Login/lang/da.json
@@ -16,6 +16,7 @@
"PasswordChanged": "Din adgangskode er blevet ændret.",
"PasswordRepeat": "Adgangskode (gentag)",
"PasswordsDoNotMatch": "Adgangskoder er ikke ens.",
+ "PluginDescription": "Giver godkendelse via brugernavn og adgangskode samt nulstilling af adgangskode funktionalitet. Godkendelsesmetoden kan ændres ved hjælp af en anden logind udvidelse såsom LoginLDAP, som er tilgængelig på markedspladsen.",
"RememberMe": "Husk mig",
"ResetPasswordInstructions": "Indtast en ny adgangskode til din konto."
}
diff --git a/plugins/Login/lang/fr.json b/plugins/Login/lang/fr.json
index 5d06a91d34..dba180c81f 100644
--- a/plugins/Login/lang/fr.json
+++ b/plugins/Login/lang/fr.json
@@ -16,6 +16,7 @@
"PasswordChanged": "Votre mot de passe a été modifié",
"PasswordRepeat": "Mot de passe (répétez)",
"PasswordsDoNotMatch": "Les mots de passe ne correspondent pas.",
+ "PluginDescription": "Fournit une authentification via nom d'utilisateur et mot de passe ainsi qu'une fonctionnalité de réinitialisation. La méthode d'authentification peut être changée en utilisant un autre composant d'identification comme LoginLdap disponible de le Marché.",
"RememberMe": "Se souvenir de moi",
"ResetPasswordInstructions": "Entrez un nouveau mot de passe pour votre compte."
}
diff --git a/plugins/Login/lang/ru.json b/plugins/Login/lang/ru.json
index 49f3ab5b94..bf6a6ad20a 100644
--- a/plugins/Login/lang/ru.json
+++ b/plugins/Login/lang/ru.json
@@ -16,6 +16,7 @@
"PasswordChanged": "Ваш пароль был изменен.",
"PasswordRepeat": "Пароль еще раз",
"PasswordsDoNotMatch": "Пароли не совпадают.",
+ "PluginDescription": "Предоставляет авторизацию через имя пользователя и пароль, а также функцию сброса пароля. Способ авторизации может быть изменён если использовать другой Login плагин, такой как LoginLdap, доступный через Marketplace.",
"RememberMe": "Запомнить меня",
"ResetPasswordInstructions": "Введите новый пароль для вашего аккаунта."
}
diff --git a/config/environment/cli.php b/plugins/Monolog/config/cli.php
index 0db3009ad4..04bf1cdbca 100644
--- a/config/environment/cli.php
+++ b/plugins/Monolog/config/cli.php
@@ -24,6 +24,6 @@ return array(
$handler->setFormatter(new ConsoleFormatter($c->get('log.console.format'), null, true, true));
return $handler;
},
- 'log.console.format' => '%start_tag%%level_name% %extra.class%[%datetime%]%end_tag% %message%' . PHP_EOL,
+ 'log.console.format' => '%start_tag%%level_name% [%datetime%]%end_tag% %message%' . PHP_EOL,
);
diff --git a/plugins/Monolog/config/config.php b/plugins/Monolog/config/config.php
index 3fd3fcf63a..22cf7debee 100644
--- a/plugins/Monolog/config/config.php
+++ b/plugins/Monolog/config/config.php
@@ -6,9 +6,11 @@ use Piwik\Log;
return array(
- 'Psr\Log\LoggerInterface' => DI\object('Monolog\Logger')
+ 'Monolog\Logger' => DI\object('Monolog\Logger')
->constructor('piwik', DI\get('log.handlers'), DI\get('log.processors')),
+ 'Psr\Log\LoggerInterface' => DI\get('Monolog\Logger'),
+
'log.handlers' => DI\factory(function (ContainerInterface $c) {
if ($c->has('ini.log.log_writers')) {
$writerNames = $c->get('ini.log.log_writers');
diff --git a/plugins/Monolog/config/tracker.php b/plugins/Monolog/config/tracker.php
new file mode 100644
index 0000000000..c1a19a6618
--- /dev/null
+++ b/plugins/Monolog/config/tracker.php
@@ -0,0 +1,16 @@
+<?php
+
+use Interop\Container\ContainerInterface;
+
+return array(
+
+ 'Psr\Log\LoggerInterface' => function (ContainerInterface $c) {
+ $trackerDebug = $c->get("ini.Tracker.debug");
+ if ($trackerDebug == 1) {
+ return $c->get('Monolog\Logger');
+ } else {
+ return new \Psr\Log\NullLogger();
+ }
+ }
+
+);
diff --git a/plugins/Morpheus/stylesheets/general/_jqueryUI.less b/plugins/Morpheus/stylesheets/general/_jqueryUI.less
index 66b2384011..f5025fbd03 100644
--- a/plugins/Morpheus/stylesheets/general/_jqueryUI.less
+++ b/plugins/Morpheus/stylesheets/general/_jqueryUI.less
@@ -168,14 +168,13 @@ div.ui-state-highlight {
opacity: 1 !important;
}
-.ui-datepicker td .ui-state-hover, .ui-datepicker .ui-datepicker td.ui-datepicker-current-period a.ui-state-hover, .ui-datepicker td.ui-datepicker-week-end .ui-state-hover {
+.ui-datepicker td .ui-state-hover, .ui-datepicker td .ui-state-hover:hover, .ui-datepicker .ui-datepicker td.ui-datepicker-current-period a.ui-state-hover, .ui-datepicker td.ui-datepicker-week-end .ui-state-hover {
background: #e5e3e0 !important;
color: #000 !important;
}
-.ui-datepicker td.ui-datepicker-current-period .ui-state-default.ui-state-hover, .ui-datepicker td.ui-datepicker-current-period .ui-state-hover:hover {
- background: #978c7c !important;
- border-color: #978c7c !important;
+.ui-datepicker td .ui-state-active.ui-state-hover {
+ color: #fff !important;
}
td.ui-datepicker-other-month.ui-state-hover {
@@ -186,10 +185,6 @@ td.ui-datepicker-other-month.ui-state-hover {
cursor: pointer !important;
}
-td.ui-datepicker-other-month.ui-state-hover.ui-datepicker-current-period {
- background: #978c7c !important;
-}
-
.ui-datepicker select.ui-datepicker-month {
width: 46%;
}
diff --git a/plugins/Morpheus/stylesheets/ui/_components.less b/plugins/Morpheus/stylesheets/ui/_components.less
index cf373a147c..e16b8b9775 100644
--- a/plugins/Morpheus/stylesheets/ui/_components.less
+++ b/plugins/Morpheus/stylesheets/ui/_components.less
@@ -34,7 +34,8 @@
}
}
-.ui-datepicker td.ui-datepicker-current-period a.ui-state-default, td .ui-state-active, .ui-datepicker td.ui-datepicker-current-period a.ui-state-active, .ui-datepicker td.ui-datepicker-week-end .ui-state-active, .ui-datepicker td.ui-datepicker-other-month.ui-datepicker-current-period {
+.ui-datepicker td.ui-datepicker-current-period a.ui-state-default, td .ui-state-active, .ui-datepicker td.ui-datepicker-current-period a.ui-state-active, .ui-datepicker td.ui-datepicker-week-end .ui-state-active, .ui-datepicker td.ui-datepicker-other-month.ui-datepicker-current-period,
+.ui-datepicker td .ui-state-default.ui-state-active:hover {
background: @theme-color-text !important;
}
diff --git a/plugins/MultiSites/.gitignore b/plugins/MultiSites/.gitignore
new file mode 100644
index 0000000000..c8c9480010
--- /dev/null
+++ b/plugins/MultiSites/.gitignore
@@ -0,0 +1 @@
+tests/System/processed/*xml \ No newline at end of file
diff --git a/plugins/MultiSites/API.php b/plugins/MultiSites/API.php
index c85dc94024..08055385bf 100755
--- a/plugins/MultiSites/API.php
+++ b/plugins/MultiSites/API.php
@@ -14,6 +14,7 @@ use Piwik\Archive;
use Piwik\Common;
use Piwik\Container\StaticContainer;
use Piwik\DataTable;
+use Piwik\DataTable\Row;
use Piwik\Period\Range;
use Piwik\Piwik;
use Piwik\Plugins\Goals\Archiver;
@@ -81,9 +82,10 @@ class API extends \Piwik\Plugin\API
* Only used when a scheduled task is running
* @param bool|string $enhanced When true, return additional goal & ecommerce metrics
* @param bool|string $pattern If specified, only the website which names (or site ID) match the pattern will be returned using SitesManager.getPatternMatchSites
+ * @param array $showColumns If specified, only the requested columns will be fetched
* @return DataTable
*/
- public function getAll($period, $date, $segment = false, $_restrictSitesToLogin = false, $enhanced = false, $pattern = false)
+ public function getAll($period, $date, $segment = false, $_restrictSitesToLogin = false, $enhanced = false, $pattern = false, $showColumns = array())
{
Piwik::checkUserHasSomeViewAccess();
@@ -100,7 +102,8 @@ class API extends \Piwik\Plugin\API
$segment,
$_restrictSitesToLogin,
$enhanced,
- $multipleWebsitesRequested = true
+ $multipleWebsitesRequested = true,
+ $showColumns
);
}
@@ -185,7 +188,8 @@ class API extends \Piwik\Plugin\API
$segment,
$_restrictSitesToLogin,
$enhanced,
- $multipleWebsitesRequested = false
+ $multipleWebsitesRequested = false,
+ $showColumns = array()
);
}
@@ -197,7 +201,7 @@ class API extends \Piwik\Plugin\API
return $sites;
}
- private function buildDataTable($sitesToProblablyAdd, $period, $date, $segment, $_restrictSitesToLogin, $enhanced, $multipleWebsitesRequested)
+ private function buildDataTable($sitesToProblablyAdd, $period, $date, $segment, $_restrictSitesToLogin, $enhanced, $multipleWebsitesRequested, $showColumns)
{
$idSites = array();
if (!empty($sitesToProblablyAdd)) {
@@ -221,6 +225,10 @@ class API extends \Piwik\Plugin\API
$apiECommerceMetrics = array();
$apiMetrics = API::getApiMetrics($enhanced);
foreach ($apiMetrics as $metricName => $metricSettings) {
+ if (!empty($showColumns) && !in_array($metricName, $showColumns)) {
+ unset($apiMetrics[$metricName]);
+ continue;
+ }
$fieldsToGet[] = $metricSettings[self::METRIC_RECORD_NAME_KEY];
$columnNameRewrites[$metricSettings[self::METRIC_RECORD_NAME_KEY]] = $metricName;
@@ -229,25 +237,11 @@ class API extends \Piwik\Plugin\API
}
}
- // get the data
- // $dataTable instanceOf Set
- $dataTable = $archive->getDataTableFromNumeric($fieldsToGet);
-
- if ($multipleWebsitesRequested && count($idSites) === 1 && Range::isMultiplePeriod($date, $period)) {
- } else {
- $dataTable = $this->mergeDataTableMapAndPopulateLabel($idSites, $multipleWebsitesRequested, $dataTable);
- }
-
- if ($dataTable instanceof DataTable\Map) {
- foreach ($dataTable->getDataTables() as $table) {
- $this->addMissingWebsites($table, $fieldsToGet, $sitesToProblablyAdd);
- }
- } else {
- $this->addMissingWebsites($dataTable, $fieldsToGet, $sitesToProblablyAdd);
- }
+ $dataTable = $archive->getDataTableFromNumericAndMergeChildren($fieldsToGet);
- // calculate total visits/actions/revenue
- $this->setMetricsTotalsMetadata($dataTable, $apiMetrics);
+ $this->populateLabel($dataTable);
+ $totalMetrics = $this->preformatApiMetricsForTotalsCalculation($apiMetrics);
+ $this->setMetricsTotalsMetadata($dataTable, $totalMetrics);
// if the period isn't a range & a lastN/previousN date isn't used, we get the same
// data for the last period to show the evolution of visits/actions/revenue
@@ -263,23 +257,21 @@ class API extends \Piwik\Plugin\API
}
$pastArchive = Archive::build($idSites, $period, $strLastDate, $segment, $_restrictSitesToLogin);
+ $pastData = $pastArchive->getDataTableFromNumericAndMergeChildren($fieldsToGet);
- $pastData = $pastArchive->getDataTableFromNumeric($fieldsToGet);
-
- if ($multipleWebsitesRequested && count($idSites) === 1 && Range::isMultiplePeriod($date, $period)) {
+ $this->populateLabel($pastData); // labels are needed to calculate evolution
+ $this->calculateEvolutionPercentages($dataTable, $pastData, $apiMetrics);
+ $this->setPastTotalVisitsMetadata($dataTable, $pastData);
- } else {
- $pastData = $this->mergeDataTableMapAndPopulateLabel($idSites, $multipleWebsitesRequested, $pastData);
+ if ($dataTable instanceof DataTable) {
+ // needed for MultiSites\Dashboard
+ $dataTable->setMetadata('pastData', $pastData);
}
-
- // use past data to calculate evolution percentages
- $this->calculateEvolutionPercentages($dataTable, $pastData, $apiMetrics);
}
- // move the site id to a metadata column
- $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'group', array('\Piwik\Site', 'getGroupFor'), array()));
- $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'main_url', array('\Piwik\Site', 'getMainUrlFor'), array()));
- $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'idsite'));
+ // move the site id to a metadata column
+ $dataTable->queueFilter('MetadataCallbackAddMetadata', array('idsite', 'group', array('\Piwik\Site', 'getGroupFor'), array()));
+ $dataTable->queueFilter('MetadataCallbackAddMetadata', array('idsite', 'main_url', array('\Piwik\Site', 'getMainUrlFor'), array()));
// set the label of each row to the site name
if ($multipleWebsitesRequested) {
@@ -420,6 +412,17 @@ class API extends \Piwik\Plugin\API
return $metrics;
}
+ private function preformatApiMetricsForTotalsCalculation($apiMetrics)
+ {
+ $metrics = array();
+ foreach ($apiMetrics as $label => $metricsInfo) {
+ $totalMetadataName = self::getTotalMetadataName($label);
+ $metrics[$totalMetadataName] = $metricsInfo[self::METRIC_RECORD_NAME_KEY];
+ }
+
+ return $metrics;
+ }
+
/**
* Sets the total visits, actions & revenue for a DataTable returned by
* $this->buildDataTable.
@@ -436,92 +439,63 @@ class API extends \Piwik\Plugin\API
}
} else {
$totals = array();
- foreach ($apiMetrics as $label => $metricInfo) {
- $totalMetadataName = self::getTotalMetadataName($label);
- $totals[$totalMetadataName] = 0;
+ foreach ($apiMetrics as $label => $recordName) {
+ $totals[$label] = 0;
}
foreach ($dataTable->getRows() as $row) {
- foreach ($apiMetrics as $label => $metricInfo) {
- $totalMetadataName = self::getTotalMetadataName($label);
- $totals[$totalMetadataName] += $row->getColumn($metricInfo[self::METRIC_RECORD_NAME_KEY]);
+ foreach ($apiMetrics as $totalMetadataName => $recordName) {
+ $totals[$totalMetadataName] += $row->getColumn($recordName);
}
}
- foreach ($totals as $name => $value) {
- $dataTable->setMetadata($name, $value);
- }
+ $dataTable->setMetadataValues($totals);
}
}
- private static function getTotalMetadataName($name)
- {
- return 'total_' . $name;
- }
-
- private static function getLastPeriodMetadataName($name)
- {
- return 'last_period_' . $name;
- }
-
/**
- * @param DataTable|DataTable\Map $dataTable
- * @param $fieldsToGet
- * @param $sitesToProblablyAdd
+ * Sets the number of total visits in tha pastTable on the dataTable as metadata.
+ *
+ * @param DataTable $dataTable
+ * @param DataTable $pastTable
*/
- private function addMissingWebsites($dataTable, $fieldsToGet, $sitesToProblablyAdd)
+ private function setPastTotalVisitsMetadata($dataTable, $pastTable)
{
- $siteIdsInDataTable = array();
- foreach ($dataTable->getRows() as $row) {
- /** @var DataTable\Row $row */
- $siteIdsInDataTable[] = $row->getColumn('label');
- }
+ if ($pastTable instanceof DataTable) {
+ $total = 0;
+ $metric = 'nb_visits';
- foreach ($sitesToProblablyAdd as $site) {
- if (!in_array($site['idsite'], $siteIdsInDataTable)) {
- $siteRow = array_combine($fieldsToGet, array_pad(array(), count($fieldsToGet), 0));
- $siteRow['label'] = (int) $site['idsite'];
- $dataTable->addRowFromSimpleArray($siteRow);
+ foreach ($pastTable->getRows() as $row) {
+ $total += $row->getColumn($metric);
}
+
+ $dataTable->setMetadata(self::getTotalMetadataName($metric . '_lastdate'), $total);
}
}
- private function removeEcommerceRelatedMetricsOnNonEcommercePiwikSites($dataTable, $apiECommerceMetrics)
+ private static function getTotalMetadataName($name)
{
- // $dataTableRows instanceOf Row[]
- $dataTableRows = $dataTable->getRows();
-
- foreach ($dataTableRows as $dataTableRow) {
- $siteId = $dataTableRow->getColumn('label');
- if (!Site::isEcommerceEnabledFor($siteId)) {
- foreach ($apiECommerceMetrics as $metricSettings) {
- $dataTableRow->deleteColumn($metricSettings[self::METRIC_RECORD_NAME_KEY]);
- $dataTableRow->deleteColumn($metricSettings[self::METRIC_EVOLUTION_COL_NAME_KEY]);
- }
- }
- }
+ return 'total_' . $name;
}
- private function mergeDataTableMapAndPopulateLabel($idSitesOrIdSite, $multipleWebsitesRequested, $dataTable)
+ private static function getLastPeriodMetadataName($name)
{
- // get rid of the DataTable\Map that is created by the IndexedBySite archive type
- if ($dataTable instanceof DataTable\Map && $multipleWebsitesRequested) {
-
- return $dataTable->mergeChildren();
-
- } else {
-
- if (!$dataTable instanceof DataTable\Map && $dataTable->getRowsCount() > 0) {
-
- $firstSite = is_array($idSitesOrIdSite) ? reset($idSitesOrIdSite) : $idSitesOrIdSite;
-
- $firstDataTableRow = $dataTable->getFirstRow();
+ return 'last_period_' . $name;
+ }
- $firstDataTableRow->setColumn('label', $firstSite);
+ private function populateLabel($dataTable)
+ {
+ $dataTable->filter(function (DataTable $table) {
+ foreach ($table->getRowsWithoutSummaryRow() as $row) {
+ $row->setColumn('label', $row->getMetadata('idsite'));
}
- }
-
- return $dataTable;
+ });
+ // make sure label column is always first column
+ $dataTable->queueFilter(function (DataTable $table) {
+ foreach ($table->getRowsWithoutSummaryRow() as $row) {
+ $row->setColumns(array_merge(array('label' => $row->getColumn('label')), $row->getColumns()));
+ }
+ });
}
private function isEcommerceEvolutionMetric($metricSettings)
@@ -532,4 +506,4 @@ class API extends \Piwik\Plugin\API
self::ECOMMERCE_REVENUE_METRIC . '_evolution'
));
}
-} \ No newline at end of file
+}
diff --git a/plugins/MultiSites/Columns/Metrics/EcommerceOnlyEvolutionMetric.php b/plugins/MultiSites/Columns/Metrics/EcommerceOnlyEvolutionMetric.php
index cee88af3f5..e43504154e 100644
--- a/plugins/MultiSites/Columns/Metrics/EcommerceOnlyEvolutionMetric.php
+++ b/plugins/MultiSites/Columns/Metrics/EcommerceOnlyEvolutionMetric.php
@@ -36,13 +36,13 @@ class EcommerceOnlyEvolutionMetric extends EvolutionMetric
// if the site this is for doesn't support ecommerce & this is for the revenue_evolution column,
// we don't add the new column
- if (($currentValue === false
- || !$this->isRevenueEvolution)
- && !Site::isEcommerceEnabledFor($row->getColumn('label'))
- ) {
- $row->deleteColumn($columnName);
+ if ($currentValue === false || !$this->isRevenueEvolution) {
+ $idSite = $row->getMetadata('idsite');
+ if (!$idSite || !Site::isEcommerceEnabledFor($idSite)) {
+ $row->deleteColumn($columnName);
- return false;
+ return false;
+ }
}
return parent::compute($row);
diff --git a/plugins/MultiSites/Controller.php b/plugins/MultiSites/Controller.php
index 647ae147dc..a59e8a4cdb 100644
--- a/plugins/MultiSites/Controller.php
+++ b/plugins/MultiSites/Controller.php
@@ -8,10 +8,15 @@
*/
namespace Piwik\Plugins\MultiSites;
+use Piwik\API\Request;
+use Piwik\API\ResponseBuilder;
use Piwik\Common;
use Piwik\Config;
use Piwik\Date;
use Piwik\Period;
+use Piwik\DataTable;
+use Piwik\DataTable\Row;
+use Piwik\DataTable\Row\DataTableSummaryRow;
use Piwik\Piwik;
use Piwik\Translation\Translator;
use Piwik\View;
@@ -40,6 +45,34 @@ class Controller extends \Piwik\Plugin\Controller
return $this->getSitesInfo($isWidgetized = true);
}
+ public function getAllWithGroups()
+ {
+ Piwik::checkUserHasSomeViewAccess();
+
+ $period = Common::getRequestVar('period', null, 'string');
+ $date = Common::getRequestVar('date', null, 'string');
+ $segment = Common::getRequestVar('segment', false, 'string');
+ $pattern = Common::getRequestVar('pattern', '', 'string');
+ $limit = Common::getRequestVar('filter_limit', 0, 'int');
+ $segment = $segment ?: false;
+ $request = $_GET + $_POST;
+
+ $dashboard = new Dashboard($period, $date, $segment);
+
+ if ($pattern !== '') {
+ $dashboard->search(strtolower($pattern));
+ }
+
+ $response = array(
+ 'numSites' => $dashboard->getNumSites(),
+ 'totals' => $dashboard->getTotals(),
+ 'lastDate' => $dashboard->getLastDate(),
+ 'sites' => $dashboard->getSites($request, $limit)
+ );
+
+ return json_encode($response);
+ }
+
public function getSitesInfo($isWidgetized = false)
{
Piwik::checkUserHasSomeViewAccess();
diff --git a/plugins/MultiSites/Dashboard.php b/plugins/MultiSites/Dashboard.php
new file mode 100644
index 0000000000..015592b1bd
--- /dev/null
+++ b/plugins/MultiSites/Dashboard.php
@@ -0,0 +1,312 @@
+<?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\MultiSites;
+
+use Piwik\API\ResponseBuilder;
+use Piwik\Config;
+use Piwik\Metrics\Formatter;
+use Piwik\Period;
+use Piwik\DataTable;
+use Piwik\DataTable\Row;
+use Piwik\DataTable\Row\DataTableSummaryRow;
+use Piwik\Plugins\API\ProcessedReport;
+use Piwik\Site;
+use Piwik\View;
+
+/**
+ * Fetches and formats the response of `MultiSites.getAll` in a way that it can be used by the All Websites AngularJS
+ * widget. Eg sites are moved into groups if one is assigned, stats are calculated for groups, etc.
+ */
+class Dashboard
+{
+ /** @var DataTable */
+ private $sitesByGroup;
+
+ /**
+ * @var int
+ */
+ private $numSites = 0;
+
+ /**
+ * @param string $period
+ * @param string $date
+ * @param string|false $segment
+ */
+ public function __construct($period, $date, $segment)
+ {
+ $sites = API::getInstance()->getAll($period, $date, $segment, $_restrictSitesToLogin = false,
+ $enhanced = true, $searchTerm = false,
+ $showColumns = array('nb_visits', 'nb_pageviews', 'revenue'));
+ $sites->deleteRow(DataTable::ID_SUMMARY_ROW);
+
+ /** @var DataTable $pastData */
+ $pastData = $sites->getMetadata('pastData');
+
+ $sites->filter(function (DataTable $table) use ($pastData) {
+ foreach ($table->getRows() as $row) {
+ $idSite = $row->getColumn('label');
+ $site = Site::getSite($idSite);
+ // we cannot queue label and group as we might need them for search and sorting!
+ $row->setColumn('label', $site['name']);
+ $row->setMetadata('group', $site['group']);
+
+ // if we do not update the pastData labels, the evolution cannot be calculated correctly.
+ $pastRow = $pastData->getRowFromLabel($idSite);
+ if ($pastRow) {
+ $pastRow->setColumn('label', $site['name']);
+ }
+ }
+
+ $pastData->setLabelsHaveChanged();
+ });
+
+ $this->setSitesTable($sites);
+ }
+
+ public function setSitesTable(DataTable $sites)
+ {
+ $this->numSites = $sites->getRowsCount();
+ $this->sitesByGroup = $this->moveSitesHavingAGroupIntoSubtables($sites);
+ }
+
+ public function getSites($request, $limit)
+ {
+ $request['filter_limit'] = $limit;
+
+ $sitesExpanded = $this->convertDataTableToArrayAndApplyFilters($this->sitesByGroup, $request);
+ $sitesFlat = $this->makeSitesFlat($sitesExpanded);
+ $sitesFlat = $this->applyLimitIfNeeded($sitesFlat, $limit);
+ $sitesFlat = $this->enrichValues($sitesFlat);
+
+ return $sitesFlat;
+ }
+
+ public function getTotals()
+ {
+ return array(
+ 'nb_pageviews' => $this->sitesByGroup->getMetadata('total_nb_pageviews'),
+ 'nb_visits' => $this->sitesByGroup->getMetadata('total_nb_visits'),
+ 'revenue' => $this->sitesByGroup->getMetadata('total_revenue'),
+ 'nb_visits_lastdate' => $this->sitesByGroup->getMetadata('total_nb_visits_lastdate') ? : 0,
+ );
+ }
+
+ public function getNumSites()
+ {
+ return $this->numSites;
+ }
+
+ public function search($pattern)
+ {
+ $this->nestedSearch($this->sitesByGroup, $pattern);
+
+ $this->numSites = $this->sitesByGroup->getRowsCountRecursive();
+ }
+
+ private function nestedSearch(DataTable $sitesByGroup, $pattern)
+ {
+ foreach ($sitesByGroup->getRows() as $index => $site) {
+
+ $label = strtolower($site->getColumn('label'));
+ $labelMatches = false !== strpos($label, $pattern);
+
+ if ($site->getMetadata('isGroup')) {
+ $subtable = $site->getSubtable();
+ $this->nestedSearch($subtable, $pattern);
+
+ if (!$labelMatches && !$subtable->getRowsCount()) {
+ // we keep the group if at least one site within the group matches the pattern
+ $sitesByGroup->deleteRow($index);
+ }
+
+ } elseif (!$labelMatches) {
+ $group = $site->getMetadata('group');
+
+ if (!$group || false === strpos(strtolower($group), $pattern)) {
+ $sitesByGroup->deleteRow($index);
+ }
+ }
+ }
+ }
+
+ /**
+ * @return string
+ */
+ public function getLastDate()
+ {
+ $lastPeriod = $this->sitesByGroup->getMetadata('last_period_date');
+
+ if (!empty($lastPeriod)) {
+ $lastPeriod = $lastPeriod->toString();
+ } else {
+ $lastPeriod = '';
+ }
+
+ return $lastPeriod;
+ }
+
+ private function convertDataTableToArrayAndApplyFilters(DataTable $table, $request)
+ {
+ $request['serialize'] = 0;
+ $request['expanded'] = 1;
+ $request['totals'] = 0;
+ $request['format_metrics'] = 1;
+
+ // filter_sort_column does not work correctly is a bug in MultiSites.getAll
+ if (!empty($request['filter_sort_column']) && $request['filter_sort_column'] === 'nb_pageviews') {
+ $request['filter_sort_column'] = 'Actions_nb_pageviews';
+ } elseif (!empty($request['filter_sort_column']) && $request['filter_sort_column'] === 'revenue') {
+ $request['filter_sort_column'] = 'Goal_revenue';
+ }
+
+ $responseBuilder = new ResponseBuilder('php', $request);
+ $rows = $responseBuilder->getResponse($table, 'MultiSites', 'getAll');
+
+ return $rows;
+ }
+
+ private function moveSitesHavingAGroupIntoSubtables(DataTable $sites)
+ {
+ /** @var DataTableSummaryRow[] $groups */
+ $groups = array();
+
+ $sitesByGroup = $this->makeCloneOfDataTableSites($sites);
+ $sitesByGroup->enableRecursiveFilters(); // we need to make sure filters get applied to subtables (groups)
+
+ foreach ($sites->getRows() as $site) {
+
+ $group = $site->getMetadata('group');
+
+ if (!empty($group) && !array_key_exists($group, $groups)) {
+ $row = new DataTableSummaryRow();
+ $row->setColumn('label', $group);
+ $row->setMetadata('isGroup', 1);
+ $row->setSubtable($this->createGroupSubtable($sites));
+ $sitesByGroup->addRow($row);
+
+ $groups[$group] = $row;
+ }
+
+ if (!empty($group)) {
+ $groups[$group]->getSubtable()->addRow($site);
+ } else {
+ $sitesByGroup->addRow($site);
+ }
+ }
+
+ foreach ($groups as $group) {
+ // we need to recalculate as long as all rows are there, as soon as some rows are removed
+ // we can no longer recalculate the correct value. We might even calculate values for groups
+ // that are not returned. If this becomes a problem we need to keep a copy of this to recalculate
+ // only actual returned groups.
+ $group->recalculate();
+ }
+
+ return $sitesByGroup;
+ }
+
+ private function createGroupSubtable(DataTable $sites)
+ {
+ $table = new DataTable();
+ $processedMetrics = $sites->getMetadata(DataTable::EXTRA_PROCESSED_METRICS_METADATA_NAME);
+ $table->setMetadata(DataTable::EXTRA_PROCESSED_METRICS_METADATA_NAME, $processedMetrics);
+
+ return $table;
+ }
+
+ private function makeCloneOfDataTableSites(DataTable $sites)
+ {
+ $sitesByGroup = $sites->getEmptyClone(true);
+ // we handle them ourselves for faster performance etc. This way we also avoid to apply them twice.
+ $sitesByGroup->disableFilter('ColumnCallbackReplace');
+ $sitesByGroup->disableFilter('MetadataCallbackAddMetadata');
+
+ return $sitesByGroup;
+ }
+
+ /**
+ * Makes sure to not have any subtables anymore.
+ * So if $sites is
+ * array(
+ * site1
+ * site2
+ * subtable => site3
+ * site4
+ * site5
+ * site6
+ * site7
+ * )
+ *
+ * it will return
+ *
+ * array(
+ * site1
+ * site2
+ * site3
+ * site4
+ * site5
+ * site6
+ * site7
+ * )
+ *
+ * @param $sites
+ * @return array
+ */
+ private function makeSitesFlat($sites)
+ {
+ $flatSites = array();
+
+ foreach ($sites as $site) {
+ if (!empty($site['subtable'])) {
+ if (isset($site['idsubdatatable'])) {
+ unset($site['idsubdatatable']);
+ }
+
+ $subtable = $site['subtable'];
+ unset($site['subtable']);
+ $flatSites[] = $site;
+ foreach ($subtable as $siteWithinGroup) {
+ $flatSites[] = $siteWithinGroup;
+ }
+ } else {
+ $flatSites[] = $site;
+ }
+ }
+
+ return $flatSites;
+ }
+
+ private function applyLimitIfNeeded($sites, $limit)
+ {
+ // why do we need to apply a limit again? because we made sitesFlat and it may contain many more sites now
+ if ($limit > 0) {
+ $sites = array_slice($sites, 0, $limit);
+ }
+
+ return $sites;
+ }
+
+ private function enrichValues($sites)
+ {
+ $formatter = new Formatter();
+
+ foreach ($sites as &$site) {
+ if (!isset($site['idsite'])) {
+ continue;
+ }
+
+ if (isset($site['revenue'])) {
+ $site['revenue'] = $formatter->getPrettyMoney($site['revenue'], $site['idsite']);
+ }
+ $site['main_url'] = Site::getMainUrlFor($site['idsite']);
+ }
+
+ return $sites;
+ }
+}
diff --git a/plugins/MultiSites/MultiSites.php b/plugins/MultiSites/MultiSites.php
index f3f62ecae4..c69f174d84 100644
--- a/plugins/MultiSites/MultiSites.php
+++ b/plugins/MultiSites/MultiSites.php
@@ -68,13 +68,13 @@ class MultiSites extends \Piwik\Plugin
$translations[] = 'MultiSites_LoadingWebsites';
$translations[] = 'General_ErrorRequest';
$translations[] = 'General_Pagination';
+ $translations[] = 'General_ClickToSearch';
}
public function getJsFiles(&$jsFiles)
{
$jsFiles[] = "plugins/MultiSites/angularjs/dashboard/dashboard-model.service.js";
$jsFiles[] = "plugins/MultiSites/angularjs/dashboard/dashboard.controller.js";
- $jsFiles[] = "plugins/MultiSites/angularjs/dashboard/dashboard-group.filter.js";
$jsFiles[] = "plugins/MultiSites/angularjs/dashboard/dashboard.directive.js";
$jsFiles[] = "plugins/MultiSites/angularjs/site/site.controller.js";
$jsFiles[] = "plugins/MultiSites/angularjs/site/site.directive.js";
diff --git a/plugins/MultiSites/angularjs/dashboard/dashboard-group.filter.js b/plugins/MultiSites/angularjs/dashboard/dashboard-group.filter.js
deleted file mode 100644
index b8f9040e9b..0000000000
--- a/plugins/MultiSites/angularjs/dashboard/dashboard-group.filter.js
+++ /dev/null
@@ -1,67 +0,0 @@
-/*!
- * Piwik - free/libre analytics platform
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- */
-
-/**
- * Filters a given list of websites and groups and makes sure only the websites within a given offset and limit are
- * displayed. It also makes sure sites are displayed under the groups. That means it flattens a structure like this:
- *
- * - website1
- * - website2
- * - website3.sites // this is a group
- * - website4
- * - website5
- * - website6
- *
- * to the following structure
- * - website1
- * - website2
- * - website3.sites // this is a group
- * - website4
- * - website5
- * - website6
- */
-(function () {
- angular.module('piwikApp').filter('multiSitesGroupFilter', multiSitesGroupFilter);
-
- function multiSitesGroupFilter() {
- return function(websites, from, to) {
- var offsetEnd = parseInt(from, 10) + parseInt(to, 10);
- var groups = {};
-
- var sites = [];
- for (var index = 0; index < websites.length; index++) {
- var website = websites[index];
-
- sites.push(website);
- if (website.sites && website.sites.length) {
- groups[website.label] = website;
- for (var innerIndex = 0; innerIndex < website.sites.length; innerIndex++) {
- sites.push(website.sites[innerIndex]);
- }
- }
-
- if (sites.length >= offsetEnd) {
- break;
- }
- }
-
- // if the first site is a website having a group, then try to find the related group and prepend it to the list
- // of sites to make sure we always display the name of the group that belongs to a website.
- var filteredSites = sites.slice(from, offsetEnd);
-
- if (filteredSites.length && filteredSites[0] && filteredSites[0].group) {
- var groupName = filteredSites[0].group;
- if (groups[groupName]) {
- filteredSites.unshift(groups[groupName]);
- }
- }
-
- return filteredSites;
- };
- }
-})();
-
diff --git a/plugins/MultiSites/angularjs/dashboard/dashboard-model.service.js b/plugins/MultiSites/angularjs/dashboard/dashboard-model.service.js
index f2261aad1c..ee0848ef2e 100644
--- a/plugins/MultiSites/angularjs/dashboard/dashboard-model.service.js
+++ b/plugins/MultiSites/angularjs/dashboard/dashboard-model.service.js
@@ -7,30 +7,14 @@
multisitesDashboardModel.$inject = ['piwikApi', '$filter', '$timeout'];
function multisitesDashboardModel(piwikApi, $filter, $timeout) {
- /**
- *
- * this is the list of all available sites. For performance reason this list is different to model.sites. ngRepeat
- * won't operate on the whole list this way. The allSites array contains websites and groups in the following
- * structure
- *
- * - website1
- * - website2
- * - website3.sites = [ // this is a group
- * - website4
- * - website5
- * ]
- * - website6
- *
- * This structure allows us to display the sites within a group directly under the group without big logic and also
- * allows us to calculate the summary for each group easily
- */
- var allSitesByGroup = [];
+
+ var refreshPromise = null;
// those sites are going to be displayed
var model = {
sites : [],
isLoading : false,
- pageSize : 5,
+ pageSize : 25,
currentPage : 0,
totalVisits : '?',
totalActions : '?',
@@ -38,6 +22,7 @@
searchTerm : '',
lastVisits : '?',
lastVisitsDate : '?',
+ numberOfSites : 0,
updateWebsitesList: updateWebsitesList,
getNumberOfFilteredSites: getNumberOfFilteredSites,
getNumberOfPages: getNumberOfPages,
@@ -46,153 +31,52 @@
previousPage: previousPage,
nextPage: nextPage,
searchSite: searchSite,
- fetchAllSites: fetchAllSites
+ sortBy: sortBy,
+ reverse: true,
+ sortColumn: 'nb_visits',
+ fetchAllSites: fetchAllSites,
+ refreshInterval: 0
};
- fetchPreviousSummary();
-
return model;
- // create a new group object which has similar structure than a website
- function createGroup(name){
- return {
- label: name,
- sites: [],
- nb_visits: 0,
- nb_pageviews: 0,
- revenue: 0,
- isGroup: true
- };
- }
-
- // create a new group with empty site to make sure we do not change the original group in $allSites
- function copyGroup(group)
+ function cancelRefereshInterval()
{
- return {
- label: group.label,
- sites: [],
- nb_visits: group.nb_visits,
- nb_pageviews: group.nb_pageviews,
- revenue: group.revenue,
- isGroup: true
+ if (refreshPromise) {
+ $timeout.cancel(refreshPromise);
+ refreshPromise = null;
};
}
function onError () {
model.errorLoadingSites = true;
- model.sites = [];
- allSitesByGroup = [];
- }
-
- function calculateMetricsForEachGroup(groups)
- {
- angular.forEach(groups, function (group) {
- angular.forEach(group.sites, function (site) {
- var revenue = 0;
- if (site.revenue) {
- revenue = (site.revenue+'').match(/(\d+\.?\d*)/); // convert $ 0.00 to 0.00 or 5€ to 5
- }
-
- group.nb_visits += parseInt(site.nb_visits, 10);
- group.nb_pageviews += parseInt(site.nb_pageviews, 10);
- if (revenue.length) {
- group.revenue += parseInt(revenue[0], 10);
- }
- });
- });
+ model.sites = [];
}
- function createGroupsAndMoveSitesIntoRelatedGroup(allSitesUnordered, reportMetadata)
- {
- var sitesByGroup = [];
- var groups = {};
+ function updateWebsitesList(report) {
+ if (!report) {
+ onError();
+ return;
+ }
- // we do 3 things (complete site information, create groups, move sites into group) in one step for
- // performance reason, there can be > 20k sites
- angular.forEach(allSitesUnordered, function (site, index) {
- site.idsite = reportMetadata[index].idsite;
- site.group = reportMetadata[index].group;
- site.main_url = reportMetadata[index].main_url;
- // casting evolution to int fixes sorting, see: https://github.com/piwik/piwik/issues/4885
+ var allSites = report.sites;
+ angular.forEach(allSites, function (site, index) {
site.visits_evolution = parseInt(site.visits_evolution, 10);
site.pageviews_evolution = parseInt(site.pageviews_evolution, 10);
site.revenue_evolution = parseInt(site.revenue_evolution, 10);
-
- if (site.group) {
-
- if (!groups[site.group]) {
- var group = createGroup(site.group);
-
- groups[site.group] = group;
- sitesByGroup.push(group);
- }
-
- groups[site.group].sites.push(site);
-
- } else {
- sitesByGroup.push(site);
- }
});
- calculateMetricsForEachGroup(groups);
-
- return sitesByGroup;
- }
-
- function getSumTotalActions(allSitesUnordered)
- {
- var totalActions = 0;
-
- if (allSitesUnordered && allSitesUnordered.length) {
- for (var index in allSitesUnordered) {
- var site = allSitesUnordered[index];
- if (site && site.nb_pageviews) {
- totalActions += parseInt(site.nb_pageviews, 10);
- }
- }
- }
-
- return totalActions;
- }
-
- function updateWebsitesList(processedReport) {
- if (!processedReport) {
- onError();
- return;
- }
-
- var allSitesUnordered = processedReport.reportData;
-
- model.totalActions = getSumTotalActions(allSitesUnordered);
- model.totalVisits = processedReport.reportTotal.nb_visits;
- model.totalRevenue = processedReport.reportTotal.revenue;
-
- allSitesByGroup = createGroupsAndMoveSitesIntoRelatedGroup(allSitesUnordered, processedReport.reportMetadata);
-
- if (!allSitesByGroup.length) {
- return;
- }
-
- if (model.searchTerm) {
- searchSite(model.searchTerm);
- } else {
- model.sites = allSitesByGroup;
- }
+ model.totalActions = report.totals.nb_pageviews;
+ model.totalVisits = report.totals.nb_visits;
+ model.totalRevenue = report.totals.revenue;
+ model.lastVisits = report.totals.nb_visits_lastdate;
+ model.sites = allSites;
+ model.numberOfSites = report.numSites;
+ model.lastVisitsDate = report.lastDate;
}
function getNumberOfFilteredSites () {
- var numSites = model.sites.length;
-
- var groupNames = {};
-
- for (var index = 0; index < model.sites.length; index++) {
- var site = model.sites[index];
- if (site && site.isGroup) {
- numSites += site.sites.length;
- }
- }
-
- return numSites;
+ return model.numberOfSites;
}
function getNumberOfPages() {
@@ -214,100 +98,78 @@
function previousPage() {
model.currentPage = model.currentPage - 1;
+ fetchAllSites();
}
- function nextPage() {
- model.currentPage = model.currentPage + 1;
- }
-
- function nestedSearch(sitesByGroup, term)
- {
- var filteredSites = [];
+ function sortBy(metric) {
+ if (model.sortColumn == metric) {
+ model.reverse = !model.reverse;
+ }
- term = term.toLowerCase();
+ model.sortColumn = metric;
+ fetchAllSites();
+ };
- for (var index in sitesByGroup) {
- var site = sitesByGroup[index];
- if (site.isGroup) {
- var matchingSites = nestedSearch(site.sites, term);
- if (matchingSites.length || (''+site.label).toLowerCase().indexOf(term) > -1) {
- var clonedGroup = copyGroup(site);
- clonedGroup.sites = matchingSites;
- filteredSites.push(clonedGroup);
- }
- } else if ((''+site.label).toLowerCase().indexOf(term) > -1) {
- filteredSites.push(site);
- } else if (site.group && (''+site.group).toLowerCase().indexOf(term) > -1) {
- filteredSites.push(site);
- }
- }
+ function previousPage() {
+ model.currentPage = model.currentPage - 1;
+ fetchAllSites();
+ }
- return filteredSites;
+ function nextPage() {
+ model.currentPage = model.currentPage + 1;
+ fetchAllSites();
}
function searchSite (term) {
model.searchTerm = term;
model.currentPage = 0;
- model.sites = nestedSearch(allSitesByGroup, term);
- }
-
- function fetchPreviousSummary () {
- piwikApi.fetch({
- method: 'API.getLastDate'
- }).then(function (response) {
- if (response && response.value) {
- return response.value;
- }
- }).then(function (lastDate) {
- if (!lastDate) {
- return;
- }
-
- model.lastVisitsDate = lastDate;
-
- return piwikApi.fetch({
- method: 'API.getProcessedReport',
- apiModule: 'MultiSites',
- apiAction: 'getAll',
- hideMetricsDoc: '1',
- filter_limit: '0',
- showColumns: 'label,nb_visits',
- enhanced: 1,
- date: lastDate
- });
- }).then(function (response) {
- if (response && response.reportTotal) {
- model.lastVisits = response.reportTotal.nb_visits;
- }
- });
+ fetchAllSites();
}
- function fetchAllSites(refreshInterval) {
+ function fetchAllSites() {
if (model.isLoading) {
piwikApi.abort();
+ cancelRefereshInterval();
}
model.isLoading = true;
model.errorLoadingSites = false;
- return piwikApi.fetch({
- method: 'API.getProcessedReport',
- apiModule: 'MultiSites',
- apiAction: 'getAll',
+ var params = {
+ module: 'MultiSites',
+ action: 'getAllWithGroups',
hideMetricsDoc: '1',
- filter_limit: '-1',
- showColumns: 'label,nb_visits,nb_pageviews,visits_evolution,pageviews_evolution,revenue_evolution,nb_actions,revenue',
- enhanced: 1
- }).then(function (response) {
+ filter_sort_order: 'asc',
+ filter_limit: model.pageSize,
+ filter_offset: getCurrentPagingOffsetStart(),
+ showColumns: 'label,nb_visits,nb_pageviews,visits_evolution,pageviews_evolution,revenue_evolution,nb_actions,revenue'
+ };
+
+ if (model.searchTerm) {
+ params.pattern = model.searchTerm;
+ }
+
+ if (model.sortColumn) {
+ params.filter_sort_column = model.sortColumn;
+ }
+
+ if (model.reverse) {
+ params.filter_sort_order = 'desc';
+ }
+
+ return piwikApi.fetch(params).then(function (response) {
updateWebsitesList(response);
}, onError)['finally'](function () {
model.isLoading = false;
- if (refreshInterval && refreshInterval > 0) {
- $timeout(function () {
- fetchAllSites(refreshInterval);
- }, refreshInterval * 1000);
+ if (model.refreshInterval && model.refreshInterval > 0) {
+ cancelRefereshInterval();
+
+ refreshPromise = $timeout(function () {
+ refreshPromise = null;
+ fetchAllSites(model.refreshInterval);
+ }, model.refreshInterval * 1000);
}
});
}
diff --git a/plugins/MultiSites/angularjs/dashboard/dashboard.controller.js b/plugins/MultiSites/angularjs/dashboard/dashboard.controller.js
index d4dd4eba3f..3ba1b15a21 100644
--- a/plugins/MultiSites/angularjs/dashboard/dashboard.controller.js
+++ b/plugins/MultiSites/angularjs/dashboard/dashboard.controller.js
@@ -13,8 +13,6 @@
$scope.model = multisitesDashboardModel;
- $scope.reverse = true;
- $scope.predicate = 'nb_visits';
$scope.evolutionSelector = 'visits_evolution';
$scope.hasSuperUserAccess = piwik.hasSuperUserAccess;
$scope.date = piwik.broadcast.getValueFromUrl('date');
@@ -22,19 +20,9 @@
$scope.url = piwik.piwik_url;
$scope.period = piwik.period;
- $scope.sortBy = function (metric) {
-
- var reverse = $scope.reverse;
- if ($scope.predicate == metric) {
- reverse = !reverse;
- }
-
- $scope.predicate = metric;
- $scope.reverse = reverse;
- };
-
this.refresh = function (interval) {
- multisitesDashboardModel.fetchAllSites(interval);
+ multisitesDashboardModel.refreshInterval = interval;
+ multisitesDashboardModel.fetchAllSites();
};
}
})();
diff --git a/plugins/MultiSites/angularjs/dashboard/dashboard.directive.html b/plugins/MultiSites/angularjs/dashboard/dashboard.directive.html
index 287ef25c98..5c9159d076 100644
--- a/plugins/MultiSites/angularjs/dashboard/dashboard.directive.html
+++ b/plugins/MultiSites/angularjs/dashboard/dashboard.directive.html
@@ -12,30 +12,30 @@
<table id="mt" class="dataTable" cellspacing="0">
<thead>
<tr>
- <th id="names" class="label" ng-click="sortBy('label')" ng-class="{columnSorted: 'label' == predicate}">
+ <th id="names" class="label" ng-click="model.sortBy('label')" ng-class="{columnSorted: 'label' == model.sortColumn}">
<span class="heading">{{ 'General_Website'|translate }}</span>
- <span ng-class="{multisites_asc: !reverse && 'label' == predicate, multisites_desc: reverse && 'label' == predicate}" class="arrow"></span>
+ <span ng-class="{multisites_asc: !model.reverse && 'label' == model.sortColumn, multisites_desc: model.reverse && 'label' == model.sortColumn}" class="arrow"></span>
</th>
- <th id="visits" class="multisites-column" ng-click="sortBy('nb_visits')" ng-class="{columnSorted: 'nb_visits' == predicate}">
+ <th id="visits" class="multisites-column" ng-click="model.sortBy('nb_visits')" ng-class="{columnSorted: 'nb_visits' == model.sortColumn}">
<span class="heading">{{ 'General_ColumnNbVisits'|translate }}</span>
- <span ng-class="{multisites_asc: !reverse && 'nb_visits' == predicate, multisites_desc: reverse && 'nb_visits' == predicate}" class="arrow"></span>
+ <span ng-class="{multisites_asc: !model.reverse && 'nb_visits' == model.sortColumn, multisites_desc: model.reverse && 'nb_visits' == model.sortColumn}" class="arrow"></span>
</th>
- <th id="pageviews" class="multisites-column" ng-click="sortBy('nb_pageviews')" ng-class="{columnSorted: 'nb_pageviews' == predicate}">
+ <th id="pageviews" class="multisites-column" ng-click="model.sortBy('nb_pageviews')" ng-class="{columnSorted: 'nb_pageviews' == model.sortColumn}">
<span class="heading">{{ 'General_ColumnPageviews'|translate }}</span>
- <span ng-class="{multisites_asc: !reverse && 'nb_pageviews' == predicate, multisites_desc: reverse && 'nb_pageviews' == predicate}" class="arrow"></span>
+ <span ng-class="{multisites_asc: !model.reverse && 'nb_pageviews' == model.sortColumn, multisites_desc: model.reverse && 'nb_pageviews' == model.sortColumn}" class="arrow"></span>
</th>
- <th ng-if="displayRevenueColumn" id="revenue" class="multisites-column" ng-click="sortBy('revenue')" ng-class="{columnSorted: 'revenue' == predicate}">
+ <th ng-if="displayRevenueColumn" id="revenue" class="multisites-column" ng-click="model.sortBy('revenue')" ng-class="{columnSorted: 'revenue' == model.sortColumn}">
<span class="heading">{{ 'General_ColumnRevenue'|translate }}</span>
- <span ng-class="{multisites_asc: !reverse && 'revenue' == predicate, multisites_desc: reverse && 'revenue' == predicate}" class="arrow"></span>
+ <span ng-class="{multisites_asc: !model.reverse && 'revenue' == model.sortColumn, multisites_desc: model.reverse && 'revenue' == model.sortColumn}" class="arrow"></span>
</th>
- <th id="evolution" colspan="{{ showSparklines ? 2 : 1 }}" ng-class="{columnSorted: evolutionSelector == predicate}">
- <span class="arrow" ng-class="{multisites_asc: !reverse && evolutionSelector == predicate, multisites_desc: reverse && evolutionSelector == predicate}"></span>
+ <th id="evolution" colspan="{{ showSparklines ? 2 : 1 }}" ng-class="{columnSorted: evolutionSelector == model.sortColumn}">
+ <span class="arrow" ng-class="{multisites_asc: !model.reverse && evolutionSelector == model.sortColumn, multisites_desc: model.reverse && evolutionSelector == model.sortColumn}"></span>
<span class="evolution"
- ng-click="sortBy(evolutionSelector)"> {{ 'MultiSites_Evolution'|translate }}</span>
+ ng-click="model.sortBy(evolutionSelector)"> {{ 'MultiSites_Evolution'|translate }}</span>
<select class="selector" id="evolution_selector" ng-model="evolutionSelector"
- ng-change="predicate = evolutionSelector">
+ ng-change="model.sortBy(evolutionSelector)">
<option value="visits_evolution">{{ 'General_ColumnNbVisits'|translate }}</option>
<option value="pageviews_evolution">{{ 'General_ColumnPageviews'|translate }}</option>
<option ng-if="displayRevenueColumn" value="revenue_evolution">{{ 'General_ColumnRevenue'|translate }}</option>
@@ -68,10 +68,10 @@
piwik-multisites-site
date-sparkline="dateSparkline"
show-sparklines="showSparklines"
- metric="predicate"
+ metric="model.sortColumn"
ng-class-odd="'columnodd'"
display-revenue-column="displayRevenueColumn"
- ng-repeat="website in model.sites | orderBy:predicate:reverse | multiSitesGroupFilter:model.getCurrentPagingOffsetStart():model.pageSize">
+ ng-repeat="website in model.sites">
</tr>
</tbody>
@@ -108,18 +108,13 @@
<tr row_id="last">
<td colspan="8" class="site_search">
<input type="text"
- ng-change="model.searchSite(searchTerm)"
ng-model="searchTerm"
+ piwik-onenter="model.searchSite(searchTerm)"
placeholder="{{ 'Actions_SubmenuSitesearch' | translate }}">
- <img title="Search"
- ng-show="!searchTerm"
+ <img title="{{ 'General_ClickToSearch' | translate }}"
+ ng-click="model.searchSite(searchTerm)"
class="search_ico"
src="plugins/Morpheus/images/search_ico.png"/>
- <img title="Clear"
- ng-show="searchTerm"
- ng-click="searchTerm='';model.searchSite('')"
- class="reset"
- src="plugins/CoreHome/images/reset_search.png"/>
</td>
</tr>
diff --git a/plugins/MultiSites/angularjs/dashboard/dashboard.directive.less b/plugins/MultiSites/angularjs/dashboard/dashboard.directive.less
index 6502f4244c..580e3b2772 100644
--- a/plugins/MultiSites/angularjs/dashboard/dashboard.directive.less
+++ b/plugins/MultiSites/angularjs/dashboard/dashboard.directive.less
@@ -86,6 +86,7 @@
left: -25px;
margin-right: 0px;
margin-top: -1px;
+ cursor: pointer;
}
.reset {
position: relative;
diff --git a/plugins/MultiSites/lang/bg.json b/plugins/MultiSites/lang/bg.json
index 45470163ca..6535de584c 100644
--- a/plugins/MultiSites/lang/bg.json
+++ b/plugins/MultiSites/lang/bg.json
@@ -2,7 +2,7 @@
"MultiSites": {
"Evolution": "Развитие",
"LoadingWebsites": "Зарежда сайтовете",
- "Pagination": "%s - %s като %s",
- "TopLinkTooltip": "Сравнете статистиката за всички ваши уебсайтове."
+ "TopLinkTooltip": "Сравнете статистиката за всички ваши уебсайтове.",
+ "Pagination": "%s - %s като %s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/ca.json b/plugins/MultiSites/lang/ca.json
index 822f181e5d..764efcbeb1 100644
--- a/plugins/MultiSites/lang/ca.json
+++ b/plugins/MultiSites/lang/ca.json
@@ -1,6 +1,7 @@
{
"MultiSites": {
"Evolution": "Evolució",
- "TopLinkTooltip": "Compareu les estadístiques anàlitiques de tots els vostres llocs web."
+ "TopLinkTooltip": "Compareu les estadístiques anàlitiques de tots els vostres llocs web.",
+ "Pagination": "%s - %s de %s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/cs.json b/plugins/MultiSites/lang/cs.json
index 1578bf4799..2e5df85149 100644
--- a/plugins/MultiSites/lang/cs.json
+++ b/plugins/MultiSites/lang/cs.json
@@ -2,8 +2,8 @@
"MultiSites": {
"Evolution": "Vývoj",
"LoadingWebsites": "Načítání webových stránek",
- "Pagination": "%s - %s z %s",
"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."
+ "TopLinkTooltip": "Porovnejte webové analytické statistiky pro všechny vaše webové stránky.",
+ "Pagination": "%s - %s z %s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/da.json b/plugins/MultiSites/lang/da.json
index bd34e9dc71..7ef8b68538 100644
--- a/plugins/MultiSites/lang/da.json
+++ b/plugins/MultiSites/lang/da.json
@@ -2,7 +2,7 @@
"MultiSites": {
"Evolution": "Udvikling",
"LoadingWebsites": "Loading websites",
- "Pagination": "%s - %s af %s",
- "TopLinkTooltip": "Sammenlign analyse statistik for alle hjemmesider."
+ "TopLinkTooltip": "Sammenlign analyse statistik for alle hjemmesider.",
+ "Pagination": "%s - %s af %s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/de.json b/plugins/MultiSites/lang/de.json
index 00db9bed07..c2d91cd7ca 100644
--- a/plugins/MultiSites/lang/de.json
+++ b/plugins/MultiSites/lang/de.json
@@ -2,8 +2,8 @@
"MultiSites": {
"Evolution": "Entwicklung",
"LoadingWebsites": "Lade Webseiten",
- "Pagination": "%s - %s von %s",
"PluginDescription": "Zeige und vergleiche alle Webseiten und Apps im hilfreichen 'Alle Websiten' Dashboard.",
- "TopLinkTooltip": "Vergleichen Sie Webanalytikstatistiken für alle Ihre Webseiten."
+ "TopLinkTooltip": "Vergleichen Sie Webanalytikstatistiken für alle Ihre Webseiten.",
+ "Pagination": "%s - %s von %s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/el.json b/plugins/MultiSites/lang/el.json
index e1af221436..930b87d814 100644
--- a/plugins/MultiSites/lang/el.json
+++ b/plugins/MultiSites/lang/el.json
@@ -2,8 +2,8 @@
"MultiSites": {
"Evolution": "Πρόοδος",
"LoadingWebsites": "Γίνεται φόρτωση των ιστοτόπων",
- "Pagination": "%s - %s από %s",
"PluginDescription": "Δείτε και συγκρίνετε όλους τους ιστοτόπους σας και τις εφαρμογές σας σε αυτό τον χρήσιμο πίνακα 'Όλοι οι Ιστοτόποι'.",
- "TopLinkTooltip": "Σύγκριση στατιστικών Ιστού για όλες τις ιστοσελίδες σας."
+ "TopLinkTooltip": "Σύγκριση στατιστικών Ιστού για όλες τις ιστοσελίδες σας.",
+ "Pagination": "%s - %s από %s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/fr.json b/plugins/MultiSites/lang/fr.json
index 47219e9321..6f7a2d1117 100644
--- a/plugins/MultiSites/lang/fr.json
+++ b/plugins/MultiSites/lang/fr.json
@@ -2,7 +2,8 @@
"MultiSites": {
"Evolution": "Évolution",
"LoadingWebsites": "Chargement des sites",
- "Pagination": "%s - %s de %s",
- "TopLinkTooltip": "Comparez les statistiques pour tous vos sites web."
+ "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"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/it.json b/plugins/MultiSites/lang/it.json
index 5a58359a04..d3fbb5db23 100644
--- a/plugins/MultiSites/lang/it.json
+++ b/plugins/MultiSites/lang/it.json
@@ -2,8 +2,8 @@
"MultiSites": {
"Evolution": "Evoluzione",
"LoadingWebsites": "Caricamento siti web",
- "Pagination": "%s - %s di %s",
"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."
+ "TopLinkTooltip": "Compara le statistiche web di tutti i tuoi siti web.",
+ "Pagination": "%s - %s di %s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/ja.json b/plugins/MultiSites/lang/ja.json
index 7cf82633d7..dacac1ac65 100644
--- a/plugins/MultiSites/lang/ja.json
+++ b/plugins/MultiSites/lang/ja.json
@@ -2,7 +2,7 @@
"MultiSites": {
"Evolution": "推移",
"LoadingWebsites": "ウェブサイトをロード中",
- "Pagination": "%s の %s - %s",
- "TopLinkTooltip": "あなたの全ウェブサイトに対するウェブ解析統計情報を比較してください。"
+ "TopLinkTooltip": "あなたの全ウェブサイトに対するウェブ解析統計情報を比較してください。",
+ "Pagination": "%s の %s - %s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/nl.json b/plugins/MultiSites/lang/nl.json
index 90661c56d4..798a085bc3 100644
--- a/plugins/MultiSites/lang/nl.json
+++ b/plugins/MultiSites/lang/nl.json
@@ -2,7 +2,7 @@
"MultiSites": {
"Evolution": "Evolutie",
"LoadingWebsites": "Websites laden",
- "Pagination": "%s - %s van %s",
- "TopLinkTooltip": "Vergelijk Website statistieken van al je websites."
+ "TopLinkTooltip": "Vergelijk Website statistieken van al je websites.",
+ "Pagination": "%s - %s van %s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/ro.json b/plugins/MultiSites/lang/ro.json
index 6d8d68ca30..147d73ab51 100644
--- a/plugins/MultiSites/lang/ro.json
+++ b/plugins/MultiSites/lang/ro.json
@@ -2,7 +2,7 @@
"MultiSites": {
"Evolution": "Evoluţie",
"LoadingWebsites": "încărcare site-uri web",
- "Pagination": "%s - %s of %s",
- "TopLinkTooltip": "Compara statisticiLE Web Analytics pentru toate site-urile dvs.."
+ "TopLinkTooltip": "Compara statisticiLE Web Analytics pentru toate site-urile dvs..",
+ "Pagination": "%s - %s of %s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/sq.json b/plugins/MultiSites/lang/sq.json
index 1a526c6c35..480a6eb843 100644
--- a/plugins/MultiSites/lang/sq.json
+++ b/plugins/MultiSites/lang/sq.json
@@ -1,5 +1,6 @@
{
"MultiSites": {
- "Evolution": "Evolution"
+ "Evolution": "Evolution",
+ "Pagination": "%s - %s of %s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/sr.json b/plugins/MultiSites/lang/sr.json
index 28951995c4..6395b0eda7 100644
--- a/plugins/MultiSites/lang/sr.json
+++ b/plugins/MultiSites/lang/sr.json
@@ -2,7 +2,7 @@
"MultiSites": {
"Evolution": "Razvoj",
"LoadingWebsites": "Učitavanje sajtova",
- "Pagination": "%s - %s od %s",
- "TopLinkTooltip": "Uporedi statistiku za sve vaše sajtove"
+ "TopLinkTooltip": "Uporedi statistiku za sve vaše sajtove",
+ "Pagination": "%s - %s od %s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/sv.json b/plugins/MultiSites/lang/sv.json
index db05655513..2a2c8a5b88 100644
--- a/plugins/MultiSites/lang/sv.json
+++ b/plugins/MultiSites/lang/sv.json
@@ -2,7 +2,7 @@
"MultiSites": {
"Evolution": "Utveckling",
"LoadingWebsites": "Laddar webbplatser",
- "Pagination": "%s - %s av %s",
- "TopLinkTooltip": "Jämför statistik för alla dina webbplatser."
+ "TopLinkTooltip": "Jämför statistik för alla dina webbplatser.",
+ "Pagination": "%s - %s av %s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/tl.json b/plugins/MultiSites/lang/tl.json
index 1e0fac6429..fe4d425619 100644
--- a/plugins/MultiSites/lang/tl.json
+++ b/plugins/MultiSites/lang/tl.json
@@ -2,7 +2,7 @@
"MultiSites": {
"Evolution": "Ebolusyon",
"LoadingWebsites": "Naglo-load ang mga website",
- "Pagination": "%s - %s ng %s",
- "TopLinkTooltip": "Ikumpara ang stats ng Web Analytics para sa lahat ng iyong Website."
+ "TopLinkTooltip": "Ikumpara ang stats ng Web Analytics para sa lahat ng iyong Website.",
+ "Pagination": "%s - %s ng %s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/tests/Fixtures/ManySitesWithVisits.php b/plugins/MultiSites/tests/Fixtures/ManySitesWithVisits.php
new file mode 100644
index 0000000000..8305ad9b33
--- /dev/null
+++ b/plugins/MultiSites/tests/Fixtures/ManySitesWithVisits.php
@@ -0,0 +1,83 @@
+<?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\MultiSites\tests\Fixtures;
+
+use Piwik\Date;
+use Piwik\Tests\Framework\Fixture;
+
+/**
+ * Generates tracker testing data for our ControllerTest
+ *
+ * This Simple fixture adds one website and tracks one visit with couple pageviews and an ecommerce conversion
+ */
+class ManySitesWithVisits extends Fixture
+{
+ public $dateTime = '2013-01-23 01:23:45';
+ public $idSite = 1;
+
+ public function setUp()
+ {
+ $this->setUpWebsite();
+ $this->trackFirstVisit($this->idSite);
+ $this->trackSecondVisit($this->idSite);
+ $this->trackFirstVisit($siteId = 2);
+ $this->trackSecondVisit($siteId = 3);
+ $this->trackSecondVisit($siteId = 3);
+ $this->trackSecondVisit($siteId = 4);
+ }
+
+ public function tearDown()
+ {
+ // empty
+ }
+
+ private function setUpWebsite()
+ {
+ for ($i = 1; $i <= 15; $i++) {
+ if (!self::siteCreated($i)) {
+ $idSite = self::createWebsite($this->dateTime, $ecommerce = 1, 'Site ' . $i);
+ $this->assertSame($i, $idSite);
+ }
+ }
+ }
+
+ protected function trackFirstVisit($idSite)
+ {
+ $t = self::getTracker($idSite, $this->dateTime, $defaultInit = true);
+
+ $t->setForceVisitDateTime(Date::factory($this->dateTime)->addHour(0.1)->getDatetime());
+ $t->setUrl('http://example.com/');
+ self::checkResponse($t->doTrackPageView('Viewing homepage'));
+
+ $t->setForceVisitDateTime(Date::factory($this->dateTime)->addHour(0.2)->getDatetime());
+ $t->setUrl('http://example.com/sub/page');
+ self::checkResponse($t->doTrackPageView('Second page view'));
+
+ $t->setForceVisitDateTime(Date::factory($this->dateTime)->addHour(0.25)->getDatetime());
+ $t->addEcommerceItem($sku = 'SKU_ID', $name = 'Test item!', $category = 'Test & Category', $price = 777, $quantity = 33);
+ self::checkResponse($t->doTrackEcommerceOrder('TestingOrder', $grandTotal = 33 * 77));
+ }
+
+ protected function trackSecondVisit($idSite)
+ {
+ $t = self::getTracker($idSite, $this->dateTime, $defaultInit = true);
+ $t->setIp('56.11.55.73');
+
+ $t->setForceVisitDateTime(Date::factory($this->dateTime)->addHour(0.1)->getDatetime());
+ $t->setUrl('http://example.com/sub/page');
+ self::checkResponse($t->doTrackPageView('Viewing homepage'));
+
+ $t->setForceVisitDateTime(Date::factory($this->dateTime)->addHour(0.2)->getDatetime());
+ $t->setUrl('http://example.com/?search=this is a site search query');
+ self::checkResponse($t->doTrackPageView('Site search query'));
+
+ $t->setForceVisitDateTime(Date::factory($this->dateTime)->addHour(0.3)->getDatetime());
+ $t->addEcommerceItem($sku = 'SKU_ID2', $name = 'A durable item', $category = 'Best seller', $price = 321);
+ self::checkResponse($t->doTrackEcommerceCartUpdate($grandTotal = 33 * 77));
+ }
+} \ No newline at end of file
diff --git a/plugins/MultiSites/tests/Integration/ControllerTest.php b/plugins/MultiSites/tests/Integration/ControllerTest.php
new file mode 100644
index 0000000000..cd6ea91b11
--- /dev/null
+++ b/plugins/MultiSites/tests/Integration/ControllerTest.php
@@ -0,0 +1,126 @@
+<?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\MultiSites\tests\Integration;
+
+use Piwik\FrontController;
+use Piwik\Plugins\MultiSites\tests\fixtures\ManySitesWithVisits;
+use Piwik\Tests\Framework\TestCase\SystemTestCase;
+
+/**
+ * @group MultiSites
+ * @group ControllerTest
+ * @group Plugins
+ */
+class ControllerTest extends SystemTestCase
+{
+ /**
+ * @var ManySitesWithVisits
+ */
+ public static $fixture = null; // initialized below class definition
+
+ public function test_getAllWithGroups()
+ {
+ $sites = $this->requestGetAllWithGroups(array('filter_limit' => 20));
+ $this->assertTrue(is_string($sites));
+
+ $sites = json_decode($sites, true);
+
+ // as limit is 20 make sure it returns all 15 sites but we do not check for all the detailed sites info,
+ // this is tested in other tests. We only check for first site.
+ $this->assertSame(15, count($sites['sites']));
+ $this->assertEquals(array(
+ 'label' => 'Site 1',
+ 'nb_visits' => 2,
+ 'nb_pageviews' => 3,
+ 'revenue' => '$ 2541',
+ 'visits_evolution' => '100%',
+ 'pageviews_evolution' => '100%',
+ 'revenue_evolution' => '100%',
+ 'idsite' => 1,
+ 'group' => '',
+ 'main_url' => 'http://piwik.net',
+ ), $sites['sites'][0]);
+
+ unset($sites['sites']);
+ $expected = array(
+ 'numSites' => 15,
+ 'totals' => array(
+ 'nb_pageviews' => 8,
+ 'nb_visits' => 5,
+ 'revenue' => 5082,
+ 'nb_visits_lastdate' => 0,
+ ),
+ 'lastDate' => '2013-01-22'
+ );
+
+ $this->assertEquals($expected, $sites);
+ }
+
+ public function test_getAllWithGroups_ifLimitIsApplied_ShouldStill_ReturnCorrectNumberOfSitesAvailable()
+ {
+ $sites = $this->requestGetAllWithGroups(array('filter_limit' => 5));
+ $sites = json_decode($sites, true);
+
+ $this->assertSame(5, count($sites['sites']));
+ $this->assertSame(15, $sites['numSites']);
+ $this->assertReturnedSitesEquals(array(1, 2, 3, 4, 5), $sites);
+ }
+
+ public function test_getAllWithGroups_shouldBeAbleToHandleLimitAndOffset()
+ {
+ $sites = $this->requestGetAllWithGroups(array('filter_limit' => 5, 'filter_offset' => 4));
+ $sites = json_decode($sites, true);
+
+ $this->assertSame(5, count($sites['sites']));
+ $this->assertSame(15, $sites['numSites']);
+ $this->assertReturnedSitesEquals(array(5, 6, 7, 8, 9), $sites);
+ }
+
+ public function test_getAllWithGroups_shouldApplySearchAndReturnInNumSitesOnlyTheNumberOfMatchingSites()
+ {
+ $pattern = 'Site 1';
+ $sites = $this->requestGetAllWithGroups(array('filter_limit' => 5, 'pattern' => $pattern));
+ $sites = json_decode($sites, true);
+
+ $this->assertSame(5, count($sites['sites']));
+ $this->assertSame(1 + 6, $sites['numSites']); // Site 1 + Site10-15
+ $this->assertReturnedSitesEquals(array(1, 10, 11, 12, 13), $sites);
+ }
+
+ private function assertReturnedSitesEquals($expectedSiteIds, $sites)
+ {
+ foreach ($expectedSiteIds as $index => $expectedSiteId) {
+ $this->assertSame($expectedSiteId, $sites['sites'][$index]['idsite']);
+ }
+ }
+
+ private function requestGetAllWithGroups($params)
+ {
+ $oldGet = $_GET;
+ $params['period'] = 'day';
+ $params['date'] = '2013-01-23';
+ $_GET = $params;
+ $sites = FrontController::getInstance()->dispatch('MultiSites', 'getAllWithGroups');
+ $_GET = $oldGet;
+ return $sites;
+ }
+
+ public static function getOutputPrefix()
+ {
+ return '';
+ }
+
+ public static function getPathToTestDirectory()
+ {
+ return dirname(__FILE__);
+ }
+
+}
+
+ControllerTest::$fixture = new ManySitesWithVisits(); \ No newline at end of file
diff --git a/plugins/MultiSites/tests/Integration/DashboardTest.php b/plugins/MultiSites/tests/Integration/DashboardTest.php
new file mode 100644
index 0000000000..33d671cbb2
--- /dev/null
+++ b/plugins/MultiSites/tests/Integration/DashboardTest.php
@@ -0,0 +1,401 @@
+<?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\MultiSites\tests\Integration;
+
+use Piwik\DataTable;
+use Piwik\Period;
+use Piwik\Plugins\MultiSites\Dashboard;
+use Piwik\Tests\Framework\Fixture;
+use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
+
+/**
+ * @group MultiSites
+ * @group DashboardTest
+ * @group Dashboard
+ * @group Plugins
+ */
+class DashboardTest extends IntegrationTestCase
+{
+ /**
+ * @var Dashboard
+ */
+ private $dashboard;
+
+ private $numSitesToCreate = 3;
+
+ public function setUp()
+ {
+ parent::setUp();
+
+ for ($i = 1; $i <= $this->numSitesToCreate; $i++) {
+ Fixture::createWebsite('2012-12-12 00:00:00', $ecommerce = 0, 'Site ' . $i);
+ }
+
+ $this->dashboard = $this->getMockBuilder('Piwik\Plugins\MultiSites\Dashboard')
+ ->setMethods(null)
+ ->disableOriginalConstructor()
+ ->getMock();
+ }
+
+ public function test__construct_shouldFetchSitesWithNeededColumns_AndReturnEvenSitesHavingNoVisits()
+ {
+ $dayToFetch = '2012-12-13';
+ $lastDate = '2012-12-12';
+
+ $dashboard = new Dashboard('day', $dayToFetch, false);
+
+ $this->assertSame($this->numSitesToCreate, $dashboard->getNumSites());
+ $this->assertEquals($lastDate, $dashboard->getLastDate());
+
+ $expectedTotals = array(
+ 'nb_pageviews' => 0,
+ 'nb_visits' => 0,
+ 'revenue' => 0,
+ 'nb_visits_lastdate' => 0,
+ );
+ $this->assertEquals($expectedTotals, $dashboard->getTotals());
+
+ $expectedSites = array (
+ array (
+ 'label' => 'Site 1',
+ 'nb_visits' => 0,
+ 'nb_pageviews' => 0,
+ 'revenue' => '$ 0',
+ 'visits_evolution' => '0%',
+ 'pageviews_evolution' => '0%',
+ 'revenue_evolution' => '0%',
+ 'idsite' => 1,
+ 'group' => '',
+ 'main_url' => 'http://piwik.net',
+ ),
+ array (
+ 'label' => 'Site 2',
+ 'nb_visits' => 0,
+ 'nb_pageviews' => 0,
+ 'revenue' => '$ 0',
+ 'visits_evolution' => '0%',
+ 'pageviews_evolution' => '0%',
+ 'revenue_evolution' => '0%',
+ 'idsite' => 2,
+ 'group' => '',
+ 'main_url' => 'http://piwik.net',
+ ),
+ array (
+ 'label' => 'Site 3',
+ 'nb_visits' => 0,
+ 'nb_pageviews' => 0,
+ 'revenue' => '$ 0',
+ 'visits_evolution' => '0%',
+ 'pageviews_evolution' => '0%',
+ 'revenue_evolution' => '0%',
+ 'idsite' => 3,
+ 'group' => '',
+ 'main_url' => 'http://piwik.net',
+ ),
+ );
+ $this->assertEquals($expectedSites, $dashboard->getSites(array(), $limit = 10));
+ }
+
+ public function test__construct_shouldActuallyFindSitesWhenSeaching()
+ {
+ $dashboard = new Dashboard('day', '2012-12-13', false);
+ $this->assertSame($this->numSitesToCreate, $dashboard->getNumSites());
+
+ $expectedSites = array (
+ array (
+ 'label' => 'Site 2',
+ 'nb_visits' => 0,
+ 'nb_pageviews' => 0,
+ 'revenue' => '$ 0',
+ 'visits_evolution' => '0%',
+ 'pageviews_evolution' => '0%',
+ 'revenue_evolution' => '0%',
+ 'idsite' => 2,
+ 'group' => '',
+ 'main_url' => 'http://piwik.net',
+ ),
+ );
+ $dashboard->search('site 2');
+ $this->assertEquals($expectedSites, $dashboard->getSites(array(), $limit = 10));
+ $this->assertSame(1, $dashboard->getNumSites());
+ }
+
+ public function test_getNumSites_shouldBeZeroIfNoSitesAreSet()
+ {
+ $this->assertSame(0, $this->dashboard->getNumSites());
+ }
+
+ public function test_getNumSites_shouldReturnTheNumberOfSetSites()
+ {
+ $this->setSitesTable(4);
+
+ $this->assertSame(4, $this->dashboard->getNumSites());
+ }
+
+ public function test_getSites_shouldReturnAnArrayOfSites()
+ {
+ $this->setSitesTable(8);
+
+ $expectedSites = $this->buildSitesArray(array(1, 2, 3, 4, 5, 6, 7, 8));
+
+ $this->assertEquals($expectedSites, $this->dashboard->getSites(array(), $limit = 20));
+ }
+
+ public function test_getSites_shouldApplyALimit()
+ {
+ $this->setSitesTable(8);
+
+ $expectedSites = $this->buildSitesArray(array(1, 2, 3, 4));
+
+ $this->assertEquals($expectedSites, $this->dashboard->getSites(array(), $limit = 4));
+ }
+
+ public function test_getSites_WithGroup_shouldApplyALimitAndKeepSitesWithinGroup()
+ {
+ $sites = $this->setSitesTable(20);
+
+ $this->setGroupForSiteId($sites, $siteId = 1, 'group1');
+ $this->setGroupForSiteId($sites, $siteId = 2, 'group2');
+ $this->setGroupForSiteId($sites, $siteId = 3, 'group1');
+ $this->setGroupForSiteId($sites, $siteId = 4, 'group4');
+ $this->setGroupForSiteId($sites, $siteId = 15, 'group1');
+ $this->setGroupForSiteId($sites, $siteId = 16, 'group1');
+ $this->setGroupForSiteId($sites, $siteId = 18, 'group1');
+ $this->setGroupForSiteId($sites, $siteId = 6, 'group4');
+ $this->dashboard->setSitesTable($sites);
+
+ $expectedSites = array (
+ array (
+ 'label' => 'group1',
+ 'nb_visits' => 50, // there are 5 matching sites having that group, we only return 4, still result is correct!
+ 'isGroup' => 1,
+ ), array (
+ 'label' => 'Site1',
+ 'nb_visits' => 10,
+ 'group' => 'group1',
+ ), array (
+ 'label' => 'Site3',
+ 'nb_visits' => 10,
+ 'group' => 'group1',
+ ), array (
+ 'label' => 'Site15',
+ 'nb_visits' => 10,
+ 'group' => 'group1',
+ ),
+ );
+
+ $this->assertEquals($expectedSites, $this->dashboard->getSites(array(), $limit = 4));
+ }
+
+ public function test_search_shouldUpdateTheNumberOfAvailableSites()
+ {
+ $this->setSitesTable(100);
+
+ $this->dashboard->search('site1');
+
+ // site1 + site1* matches
+ $this->assertSame(12, $this->dashboard->getNumSites());
+ }
+
+ public function test_search_shouldOnlyKeepMatchingSites()
+ {
+ $this->setSitesTable(100);
+
+ $this->dashboard->search('site1');
+
+ $expectedSites = $this->buildSitesArray(array(1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 100));
+
+ $this->assertEquals($expectedSites, $this->dashboard->getSites(array(), $limit = 20));
+ }
+
+ public function test_search_noSiteMatches()
+ {
+ $this->setSitesTable(100);
+
+ $this->dashboard->search('anYString');
+
+ $this->assertSame(0, $this->dashboard->getNumSites());
+ $this->assertEquals(array(), $this->dashboard->getSites(array(), $limit = 20));
+ }
+
+ public function test_search_WithGroup_shouldDoesSearchInGroupNameAndMatchesEvenSitesHavingThatGroupName()
+ {
+ $sites = $this->setSitesTable(20);
+
+ $this->setGroupForSiteId($sites, $siteId = 1, 'group1');
+ $this->setGroupForSiteId($sites, $siteId = 2, 'group2');
+ $this->setGroupForSiteId($sites, $siteId = 3, 'group1');
+ $this->setGroupForSiteId($sites, $siteId = 4, 'group4');
+ $this->setGroupForSiteId($sites, $siteId = 15, 'group1');
+ $this->setGroupForSiteId($sites, $siteId = 16, 'group1');
+ $this->setGroupForSiteId($sites, $siteId = 18, 'group1');
+ $this->setGroupForSiteId($sites, $siteId = 6, 'group4');
+
+ $this->dashboard->setSitesTable($sites);
+ $this->dashboard->search('group');
+
+ // groups within that site should be listed first.
+ $expectedSites = array (
+ array (
+ 'label' => 'group1',
+ 'nb_visits' => 50,
+ 'isGroup' => 1,
+ ),
+ array (
+ 'label' => 'Site1',
+ 'nb_visits' => 10,
+ 'group' => 'group1',
+ ),
+ array (
+ 'label' => 'Site3',
+ 'nb_visits' => 10,
+ 'group' => 'group1',
+ ),
+ array (
+ 'label' => 'Site15',
+ 'nb_visits' => 10,
+ 'group' => 'group1',
+ ),
+ array (
+ 'label' => 'Site16',
+ 'nb_visits' => 10,
+ 'group' => 'group1',
+ ),
+ array (
+ 'label' => 'Site18',
+ 'nb_visits' => 10,
+ 'group' => 'group1',
+ ),
+ array (
+ 'label' => 'group4',
+ 'nb_visits' => 20,
+ 'isGroup' => 1,
+ ),
+ array (
+ 'label' => 'Site4',
+ 'nb_visits' => 10,
+ 'group' => 'group4',
+ ),
+ array (
+ 'label' => 'Site6',
+ 'nb_visits' => 10,
+ 'group' => 'group4',
+ ),
+ array (
+ 'label' => 'group2',
+ 'nb_visits' => 10,
+ 'isGroup' => 1,
+ ),
+ array (
+ 'label' => 'Site2',
+ 'nb_visits' => 10,
+ 'group' => 'group2',
+ ),
+ );
+
+ // 3 groups + 8 sites having a group.
+ $this->assertSame(3 + 8, $this->dashboard->getNumSites());
+
+ $matchingSites = $this->dashboard->getSites(array(), $limit = 20);
+ $this->assertEquals($expectedSites, $matchingSites);
+
+ // test with limit should only return the first results
+ $matchingSites = $this->dashboard->getSites(array(), $limit = 8);
+ $this->assertEquals(array_slice($expectedSites, 0, 8), $matchingSites);
+ }
+
+ public function test_search_WithGroup_IfASiteMatchesButNotTheGroupName_ItShouldKeepTheGroupThough()
+ {
+ $sites = $this->setSitesTable(20);
+
+ $this->setGroupForSiteId($sites, $siteId = 1, 'group1');
+ $this->setGroupForSiteId($sites, $siteId = 2, 'group2');
+ $this->setGroupForSiteId($sites, $siteId = 3, 'group1');
+ $this->setGroupForSiteId($sites, $siteId = 20, 'group4');
+ $this->setGroupForSiteId($sites, $siteId = 15, 'group1');
+ $this->setGroupForSiteId($sites, $siteId = 16, 'group1');
+ $this->setGroupForSiteId($sites, $siteId = 18, 'group1');
+ $this->setGroupForSiteId($sites, $siteId = 6, 'group4');
+
+ $this->dashboard->setSitesTable($sites);
+ $this->dashboard->search('site2');
+
+ $expectedSites = array (
+ array (
+ 'label' => 'group4',
+ 'nb_visits' => 20, // another site belongs to that group which doesn't match that name yet still we need to sum the correct result.
+ 'isGroup' => 1,
+ ),
+ array (
+ 'label' => 'Site20',
+ 'nb_visits' => 10,
+ 'group' => 'group4',
+ ),
+ array (
+ 'label' => 'group2',
+ 'nb_visits' => 10,
+ 'isGroup' => 1,
+ ),
+ array (
+ 'label' => 'Site2',
+ 'nb_visits' => 10,
+ 'group' => 'group2',
+ ),
+ );
+
+ // 2 matching sites + their group
+ $this->assertSame(2 + 2, $this->dashboard->getNumSites());
+
+ $matchingSites = $this->dashboard->getSites(array(), $limit = 20);
+ $this->assertEquals($expectedSites, $matchingSites);
+ }
+
+ public function test_getLastDate_shouldReturnTheLastDate_IfAnyIsSet()
+ {
+ $this->setSitesTable(1);
+
+ $this->assertSame('2012-12-12', $this->dashboard->getLastDate());
+ }
+
+ public function test_getLastDate_shouldReturnAnEmptyString_IfNoLastDateIsSet()
+ {
+ $this->dashboard->setSitesTable(new DataTable());
+
+ $this->assertSame('', $this->dashboard->getLastDate());
+ }
+
+ private function setGroupForSiteId(DataTable $table, $siteId, $groupName)
+ {
+ $table->getRowFromLabel('Site' . $siteId)->setMetadata('group', $groupName);
+ }
+
+ private function setSitesTable($numSites)
+ {
+ $sites = new DataTable();
+ $sites->addRowsFromSimpleArray($this->buildSitesArray(range(1, $numSites)));
+ $sites->setMetadata('last_period_date', Period\Factory::build('day', '2012-12-12'));
+
+ $this->dashboard->setSitesTable($sites);
+
+ return $sites;
+ }
+
+ private function buildSitesArray($siteIds)
+ {
+ $sites = array();
+
+ foreach ($siteIds as $siteId) {
+ $sites[] = array('label' => 'Site' . $siteId, 'nb_visits' => 10);
+ }
+
+ return $sites;
+
+ }
+
+}
diff --git a/plugins/Overlay/lang/ar.json b/plugins/Overlay/lang/ar.json
new file mode 100644
index 0000000000..285932298f
--- /dev/null
+++ b/plugins/Overlay/lang/ar.json
@@ -0,0 +1,5 @@
+{
+ "Overlay": {
+ "Location": "المكان"
+ }
+} \ No newline at end of file
diff --git a/plugins/Overlay/lang/be.json b/plugins/Overlay/lang/be.json
new file mode 100644
index 0000000000..326e1e46d7
--- /dev/null
+++ b/plugins/Overlay/lang/be.json
@@ -0,0 +1,5 @@
+{
+ "Overlay": {
+ "Location": "Лакаця"
+ }
+} \ No newline at end of file
diff --git a/plugins/Overlay/lang/da.json b/plugins/Overlay/lang/da.json
index 89423a11e2..564b9b91e5 100644
--- a/plugins/Overlay/lang/da.json
+++ b/plugins/Overlay/lang/da.json
@@ -13,6 +13,7 @@
"OneClick": "1 klik",
"OpenFullScreen": "Vis fuldskærm (ingen sidebjælke)",
"Overlay": "Side overlejring",
+ "PluginDescription": "Se analyse-data som en overlejring det faktiske websted. Se hvor mange gange dine brugere har klikket på hvert link.",
"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.",
"RedirectUrlErrorUser": "Spørg administratoren om at tilføje domænet som en yderligere URL."
diff --git a/plugins/Overlay/lang/fa.json b/plugins/Overlay/lang/fa.json
index 815b6ebd99..e10e1473f7 100644
--- a/plugins/Overlay/lang/fa.json
+++ b/plugins/Overlay/lang/fa.json
@@ -6,7 +6,7 @@
"ErrorNotLoading": "صفحه از دسترس خارج شد و نمی تواند راه اندازی می شود.",
"ErrorNotLoadingLink": "اینجا کلیک کنید تا نکات بیشتری درباره عیب یابی بدانید",
"Link": "لینک",
- "Location": "منطقه",
+ "Location": "موقعیت",
"NoData": "داده ای برای این صفحه در طی بازه ی انتخاب شده وجود ندارد.",
"OneClick": "1 کلیک",
"OpenFullScreen": "به حالت تمام صفحه برو (بدون ستون کناری)",
diff --git a/plugins/Overlay/lang/fr.json b/plugins/Overlay/lang/fr.json
index d339f67f56..3d333ef6ba 100644
--- a/plugins/Overlay/lang/fr.json
+++ b/plugins/Overlay/lang/fr.json
@@ -13,6 +13,7 @@
"OneClick": "1 clic",
"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.",
"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.",
"RedirectUrlErrorUser": "Demandez à votre administrateur d'ajouter le domaine en tant qu'URL additionnelle."
diff --git a/plugins/Overlay/lang/he.json b/plugins/Overlay/lang/he.json
index ddea1e1770..62815343a6 100644
--- a/plugins/Overlay/lang/he.json
+++ b/plugins/Overlay/lang/he.json
@@ -1,6 +1,7 @@
{
"Overlay": {
"Clicks": "%s לחיצות",
+ "Location": "מיקום",
"OneClick": "לחיצה 1"
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/hi.json b/plugins/Overlay/lang/hi.json
index 9765dec7db..990bcaf9ed 100644
--- a/plugins/Overlay/lang/hi.json
+++ b/plugins/Overlay/lang/hi.json
@@ -8,7 +8,7 @@
"ErrorNotLoadingDetailsSSL": "आप https के ऊपर Piwik का उपयोग कर रहे हैं, सबसे संभावित कारण आपकी वेबसाइट एसएसएल समर्थन नहीं करती है. Http पर Piwik का उपयोग करने का प्रयास करें.",
"ErrorNotLoadingLink": "समस्या निवारण के लिए और अधिक सुझाव प्राप्त के लिए यहां क्लिक करें",
"Link": "लिंक",
- "Location": "स्थिति",
+ "Location": "स्थान",
"NoData": "चयनित अवधि के दौरान इस पृष्ठ के लिए कोई डाटा नहीं है.",
"OneClick": "1 क्लिक करें",
"OpenFullScreen": "पूर्ण स्क्रीन (कोई साइडबार नहीं ) के लिए जाओ",
diff --git a/plugins/Overlay/lang/hr.json b/plugins/Overlay/lang/hr.json
new file mode 100644
index 0000000000..317bcccfda
--- /dev/null
+++ b/plugins/Overlay/lang/hr.json
@@ -0,0 +1,5 @@
+{
+ "Overlay": {
+ "Location": "Lokacija"
+ }
+} \ No newline at end of file
diff --git a/plugins/Overlay/lang/hu.json b/plugins/Overlay/lang/hu.json
new file mode 100644
index 0000000000..a2f7058f9f
--- /dev/null
+++ b/plugins/Overlay/lang/hu.json
@@ -0,0 +1,5 @@
+{
+ "Overlay": {
+ "Location": "Hely"
+ }
+} \ No newline at end of file
diff --git a/plugins/Overlay/lang/is.json b/plugins/Overlay/lang/is.json
new file mode 100644
index 0000000000..1be38d5fd0
--- /dev/null
+++ b/plugins/Overlay/lang/is.json
@@ -0,0 +1,5 @@
+{
+ "Overlay": {
+ "Location": "Staðsetning"
+ }
+} \ No newline at end of file
diff --git a/plugins/Overlay/lang/ka.json b/plugins/Overlay/lang/ka.json
new file mode 100644
index 0000000000..06dd1c422a
--- /dev/null
+++ b/plugins/Overlay/lang/ka.json
@@ -0,0 +1,5 @@
+{
+ "Overlay": {
+ "Location": "მდებარეობა"
+ }
+} \ No newline at end of file
diff --git a/plugins/Overlay/lang/lt.json b/plugins/Overlay/lang/lt.json
new file mode 100644
index 0000000000..423410a4d4
--- /dev/null
+++ b/plugins/Overlay/lang/lt.json
@@ -0,0 +1,5 @@
+{
+ "Overlay": {
+ "Location": "Vietovė"
+ }
+} \ No newline at end of file
diff --git a/plugins/Overlay/lang/lv.json b/plugins/Overlay/lang/lv.json
new file mode 100644
index 0000000000..366bf3ee61
--- /dev/null
+++ b/plugins/Overlay/lang/lv.json
@@ -0,0 +1,5 @@
+{
+ "Overlay": {
+ "Location": "Lokācijas"
+ }
+} \ No newline at end of file
diff --git a/plugins/Overlay/lang/nn.json b/plugins/Overlay/lang/nn.json
new file mode 100644
index 0000000000..45670c0ede
--- /dev/null
+++ b/plugins/Overlay/lang/nn.json
@@ -0,0 +1,5 @@
+{
+ "Overlay": {
+ "Location": "Plass"
+ }
+} \ No newline at end of file
diff --git a/plugins/Overlay/lang/pl.json b/plugins/Overlay/lang/pl.json
index 65e61c1c48..c0b9d746aa 100644
--- a/plugins/Overlay/lang/pl.json
+++ b/plugins/Overlay/lang/pl.json
@@ -3,7 +3,7 @@
"Clicks": "%s kliknięć",
"Domain": "Domena",
"Link": "Link",
- "Location": "Lokalizacja",
+ "Location": "Położenie",
"OneClick": "1 kliknięcie",
"RedirectUrlErrorUser": "Zwrócić się do administratora, aby dodać domenę jako dodatkowy URL."
}
diff --git a/plugins/Overlay/lang/pt.json b/plugins/Overlay/lang/pt.json
new file mode 100644
index 0000000000..8858700b5a
--- /dev/null
+++ b/plugins/Overlay/lang/pt.json
@@ -0,0 +1,5 @@
+{
+ "Overlay": {
+ "Location": "Localização"
+ }
+} \ No newline at end of file
diff --git a/plugins/Overlay/lang/ru.json b/plugins/Overlay/lang/ru.json
index e60dd225f0..14e1780a95 100644
--- a/plugins/Overlay/lang/ru.json
+++ b/plugins/Overlay/lang/ru.json
@@ -8,6 +8,8 @@
"NoData": "Нет данных по этой странице за выбранный период.",
"OneClick": "1 клик",
"OpenFullScreen": "Перейти к полному экрану",
- "Overlay": "Глубина проникновения"
+ "Overlay": "Глубина проникновения",
+ "RedirectUrlErrorAdmin": "Можете добавить домен как дополнительный URL %sв настройках%s.",
+ "RedirectUrlErrorUser": "Попросите администратора добавить домен как дополнительный URL."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/sk.json b/plugins/Overlay/lang/sk.json
index 298af19638..b2d98be775 100644
--- a/plugins/Overlay/lang/sk.json
+++ b/plugins/Overlay/lang/sk.json
@@ -1,6 +1,7 @@
{
"Overlay": {
"Clicks": "%s kliknutia",
+ "Location": "Miesto",
"OpenFullScreen": "Prejsť na celú obrazovku (bez bočnej lišty)",
"Overlay": "Prekrytie stránky"
}
diff --git a/plugins/Overlay/lang/sl.json b/plugins/Overlay/lang/sl.json
new file mode 100644
index 0000000000..317bcccfda
--- /dev/null
+++ b/plugins/Overlay/lang/sl.json
@@ -0,0 +1,5 @@
+{
+ "Overlay": {
+ "Location": "Lokacija"
+ }
+} \ No newline at end of file
diff --git a/plugins/Overlay/lang/sq.json b/plugins/Overlay/lang/sq.json
new file mode 100644
index 0000000000..73a845802b
--- /dev/null
+++ b/plugins/Overlay/lang/sq.json
@@ -0,0 +1,5 @@
+{
+ "Overlay": {
+ "Location": "Vend"
+ }
+} \ No newline at end of file
diff --git a/plugins/Overlay/lang/th.json b/plugins/Overlay/lang/th.json
index b89aab8970..698c783639 100644
--- a/plugins/Overlay/lang/th.json
+++ b/plugins/Overlay/lang/th.json
@@ -3,6 +3,7 @@
"Clicks": "%s คลิก",
"Domain": "โดเมน",
"Link": "ลิงก์",
+ "Location": "ตำแหน่งที่ตั้ง",
"OneClick": "1 คลิก"
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/tr.json b/plugins/Overlay/lang/tr.json
new file mode 100644
index 0000000000..4191638f93
--- /dev/null
+++ b/plugins/Overlay/lang/tr.json
@@ -0,0 +1,5 @@
+{
+ "Overlay": {
+ "Location": "Konum"
+ }
+} \ No newline at end of file
diff --git a/plugins/Overlay/lang/uk.json b/plugins/Overlay/lang/uk.json
new file mode 100644
index 0000000000..c3a4786c00
--- /dev/null
+++ b/plugins/Overlay/lang/uk.json
@@ -0,0 +1,5 @@
+{
+ "Overlay": {
+ "Location": "Місцезнаходження"
+ }
+} \ No newline at end of file
diff --git a/plugins/Overlay/lang/zh-tw.json b/plugins/Overlay/lang/zh-tw.json
new file mode 100644
index 0000000000..0f8d13b4fe
--- /dev/null
+++ b/plugins/Overlay/lang/zh-tw.json
@@ -0,0 +1,5 @@
+{
+ "Overlay": {
+ "Location": "位置"
+ }
+} \ No newline at end of file
diff --git a/plugins/PrivacyManager/lang/da.json b/plugins/PrivacyManager/lang/da.json
index f98b24df4d..225d8fa38d 100644
--- a/plugins/PrivacyManager/lang/da.json
+++ b/plugins/PrivacyManager/lang/da.json
@@ -1,8 +1,8 @@
{
"PrivacyManager": {
"AnonymizeIpDescription": "Vælg \"Ja\", hvis Piwik ikke skal spore fuldt kvalificerede IP-adresser.",
- "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.",
"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.",
"AnonymizeIpMaskLengtDescription": "Vælg hvor mange bytes af de besøgendes IP-adresser der skal maskeres.",
"AnonymizeIpMaskLength": "%s bytes - f.eks %s",
"CannotLockSoDeleteLogActions": "log_action tabellen vil ikke blive slettet: giv LOCK TABELLER privilegium til '%s' MYSQL brugeren.",
diff --git a/plugins/PrivacyManager/lang/el.json b/plugins/PrivacyManager/lang/el.json
index 68f701daf5..2f5135b9d9 100644
--- a/plugins/PrivacyManager/lang/el.json
+++ b/plugins/PrivacyManager/lang/el.json
@@ -1,8 +1,8 @@
{
"PrivacyManager": {
"AnonymizeIpDescription": "Επιλέξτε «Ναι» αν θέλετε το Piwik να μην ανιχνεύει πλήρως ταυτοποιημένες διευθύνσεις IP.",
- "AnonymizeIpExtendedHelp": "Όταν οι χρήστες επισκέπτονται τον ιστοτόπο σας, το Piwik δε θα χρησιμοποιεί την πλήρη διεύθυνση IP (όπως το %s), αλλά αντίθετα θα το κάνει πρώτα ανώνυμο (σε %s). Η μετατροπή των διευθύνσεων IP σε ανώνυμες είναι μία από τις απαιτήσεις που ορίζει η νομοθεσία γύρω από την ιδιωτικότητα σε ορισμένες χώρες όπως η Γερμανία.",
"AnonymizeIpInlineHelp": "Αποκρύπτει το τελευταίο byte των διευθύνσεων IP των επισκεπτών σας για συμμόρφωση με την τοπική νομοθεσία περί Ιδιωτικού Απορρήτου.",
+ "AnonymizeIpExtendedHelp": "Όταν οι χρήστες επισκέπτονται τον ιστοτόπο σας, το Piwik δε θα χρησιμοποιεί την πλήρη διεύθυνση IP (όπως το %s), αλλά αντίθετα θα το κάνει πρώτα ανώνυμο (σε %s). Η μετατροπή των διευθύνσεων IP σε ανώνυμες είναι μία από τις απαιτήσεις που ορίζει η νομοθεσία γύρω από την ιδιωτικότητα σε ορισμένες χώρες όπως η Γερμανία.",
"AnonymizeIpMaskLengtDescription": "Επιλέξτε πόσα bytes από τις διευθύνσεις IPs των επισκεπτών πρέπει να κρύβονται.",
"AnonymizeIpMaskLength": "%s byte(s) - π.χ.. %s",
"CannotLockSoDeleteLogActions": "Ο πίκανας log_action δεν θα διαγραφεί: δώστε δικαιώματα LOCK TABLES στον χρήστη MYSQL «%s».",
diff --git a/plugins/PrivacyManager/lang/fr.json b/plugins/PrivacyManager/lang/fr.json
index 50b1969a4d..c4de588f37 100644
--- a/plugins/PrivacyManager/lang/fr.json
+++ b/plugins/PrivacyManager/lang/fr.json
@@ -1,8 +1,8 @@
{
"PrivacyManager": {
"AnonymizeIpDescription": "Sélectionnez \"Oui\" si vous voulez que Piwik ne trace pas les adresses IP complètes.",
- "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.",
"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.",
"AnonymizeIpMaskLengtDescription": "Sélectionnez combien de bytes de l'adresse IP du visiteur doivent être masqués.",
"AnonymizeIpMaskLength": "%s byte(s) - ex %s",
"CannotLockSoDeleteLogActions": "La table log_action ne sera pas purgée : veuillez accorder le privilège LOCK TABLES à l'utilisateur MYSQL '%s'.",
@@ -47,6 +47,7 @@
"LeastMonthsInput": "Veuillez spécifier un nombre de mois supérieur à %s",
"MenuPrivacySettings": "Vie privée",
"NextDelete": "Prochaine suppression programmée dans",
+ "PluginDescription": "Augmente le respect de la vie privée de vos utilisateurs et rend votre installation de Piwik conforme avec la législation locale.",
"PurgeNow": "Purger la base de données maintenant",
"PurgeNowConfirm": "Vous êtes sur le point de supprimer définitivement les données de votre base de données. Êtes vous sûr(e) de vouloir continuer?",
"PurgingData": "Purge des données...",
diff --git a/plugins/PrivacyManager/lang/ru.json b/plugins/PrivacyManager/lang/ru.json
index bc9d42a1c5..7e233ddaf3 100644
--- a/plugins/PrivacyManager/lang/ru.json
+++ b/plugins/PrivacyManager/lang/ru.json
@@ -49,6 +49,7 @@
"PurgeNow": "Очистить базу данных сейчас",
"PurgeNowConfirm": "Вы собираетесь навсегда удалить данные из вашей базы данных. Вы уверены, что хотите продолжить?",
"PurgingData": "Чистка данных...",
+ "RecommendedForPrivacy": "(рекомендуется для приватности)",
"ReportsDataSavedEstimate": "Размер базы данных",
"SaveSettingsBeforePurge": "Вы изменили настройки удаления данных. Пожалуйста, сохраните их, перед тем как начать чистку.",
"SeeAlsoOurOfficialGuidePrivacy": "Смотрите также официальное руководство: %sКонфидециальность данных в Piwik%s",
diff --git a/plugins/Provider/lang/cs.json b/plugins/Provider/lang/cs.json
index 1f3cab1153..56fe832964 100644
--- a/plugins/Provider/lang/cs.json
+++ b/plugins/Provider/lang/cs.json
@@ -3,7 +3,7 @@
"ColumnProvider": "Poskytovatel",
"PluginDescription": "Hlásí poskytovatele internetového připojení návštěvníků.",
"ProviderReportDocumentation": "Toto hlášení poskytuje informace o tom, jakého poskytovatele internetového připojení vaši návštěvníci při přístupu na stránky použili. Pokud kliknete na jméno poskytovatele, zobrazí se podrobnosti. %s Pokud Piwik nebyl schopen poskytovatele zjistit, je zobrazen jako IP.",
- "ProviderReportFooter": "Neznámý poskytovatel znamená, že IP adresu nebylo možné vyhledat.",
- "WidgetProviders": "Poskytovatelé"
+ "WidgetProviders": "Poskytovatelé",
+ "ProviderReportFooter": "Neznámý poskytovatel znamená, že IP adresu nebylo možné vyhledat."
}
} \ No newline at end of file
diff --git a/plugins/Provider/lang/da.json b/plugins/Provider/lang/da.json
index 96808b3409..e8fbdd8961 100644
--- a/plugins/Provider/lang/da.json
+++ b/plugins/Provider/lang/da.json
@@ -1,8 +1,9 @@
{
"Provider": {
"ColumnProvider": "Udbyder",
+ "PluginDescription": "Rapporterer den besøgendes internetudbyder.",
"ProviderReportDocumentation": "Rapporten viser hvilken Internet udbyder de besøgende bruger. Klik på en udbyders navn for flere oplysninger. %s Hvis Piwik ikke kan bestemme besøgendes udbyder, er den opført som IP.",
- "ProviderReportFooter": "Ukendt udbyder betyder at IP-adressen kunne ikke slås op.",
- "WidgetProviders": "Udbydere"
+ "WidgetProviders": "Udbydere",
+ "ProviderReportFooter": "Ukendt udbyder betyder at IP-adressen kunne ikke slås op."
}
} \ No newline at end of file
diff --git a/plugins/Provider/lang/de.json b/plugins/Provider/lang/de.json
index 0f11629152..0a04ea2b7b 100644
--- a/plugins/Provider/lang/de.json
+++ b/plugins/Provider/lang/de.json
@@ -3,7 +3,7 @@
"ColumnProvider": "Provider",
"PluginDescription": "Liefert den Internet Service Provider der Besucher.",
"ProviderReportDocumentation": "Dieser Bericht zeigt Ihnen, welche Internetanbieter die Besucher Ihrer Webseite nutzen. Sie können auf den Namen eines Anbieters klicken, um mehr Informationen dazu zu erhalten. %s Wenn Piwik den Internetanbieter eines Besuchers nicht feststellen kann, wird er unter IP gelistet.",
- "ProviderReportFooter": "Unbekannter Provider bedeutet die IP-Adresse konnte nicht aufgelöst werden.",
- "WidgetProviders": "Provider"
+ "WidgetProviders": "Provider",
+ "ProviderReportFooter": "Unbekannter Provider bedeutet die IP-Adresse konnte nicht aufgelöst werden."
}
} \ No newline at end of file
diff --git a/plugins/Provider/lang/el.json b/plugins/Provider/lang/el.json
index 11d91065f4..523b106f2d 100644
--- a/plugins/Provider/lang/el.json
+++ b/plugins/Provider/lang/el.json
@@ -3,7 +3,7 @@
"ColumnProvider": "Πάροχος",
"PluginDescription": "Αναφέρει τον πάροχο διαδικτύου των επισκεπτών σας.",
"ProviderReportDocumentation": "Αυτή η αναφορά εμφανίζει ποιος Παροχέας Υπηρεσιών Διαδικτύου (ISP) χρησιμοποιείτε από τους επισκέπτες σας για να επισκεφθούν τις ιστοσελίδες σας. Μπορείτε να πατήσετε σε ένα όνομα Παροχέα για περισσότερες λεπτομέρειες. %s Αν το Piwik δεν μπορεί να ανιχνεύσει το παροχέα του επισκέπτη, χαρακτηρίζεται ως IP.",
- "ProviderReportFooter": "Άγνωστος πάροχος σημαίνει ότι δεν ήταν δυνατή η εύρεση της διεύθυνσης IP.",
- "WidgetProviders": "Πάροχοι"
+ "WidgetProviders": "Πάροχοι",
+ "ProviderReportFooter": "Άγνωστος πάροχος σημαίνει ότι δεν ήταν δυνατή η εύρεση της διεύθυνσης IP."
}
} \ No newline at end of file
diff --git a/plugins/Provider/lang/fr.json b/plugins/Provider/lang/fr.json
index 91a7643ef4..3b89299e9b 100644
--- a/plugins/Provider/lang/fr.json
+++ b/plugins/Provider/lang/fr.json
@@ -1,8 +1,9 @@
{
"Provider": {
"ColumnProvider": "FAI",
+ "PluginDescription": "Rapporte le Fournisseur d'Accès Internet des visiteurs.",
"ProviderReportDocumentation": "Ce rapport affiche quel Fournisseur d'Accès à Internet vos visiteurs ont utilisé pour accéder à votre site web. Vous pouvez cliquer sur le nom d'un FAI pour plus de détails. %s Si Piwik ne peut déterminer le FAI d'un visiteur, il est listé en tant qu'IP.",
- "ProviderReportFooter": "Fournisseur d'accès inconnu signifie que l'adresse IP ne peut pas être déterminée",
- "WidgetProviders": "Fournisseurs d'accès à Internet"
+ "WidgetProviders": "Fournisseurs d'accès à Internet",
+ "ProviderReportFooter": "Fournisseur d'accès inconnu signifie que l'adresse IP ne peut pas être déterminée"
}
} \ No newline at end of file
diff --git a/plugins/Provider/lang/it.json b/plugins/Provider/lang/it.json
index 9f35f15344..7bda34b1f6 100644
--- a/plugins/Provider/lang/it.json
+++ b/plugins/Provider/lang/it.json
@@ -3,7 +3,7 @@
"ColumnProvider": "Provider",
"PluginDescription": "Restituisce gli Internet Service Provider dei visitatori.",
"ProviderReportDocumentation": "Questo reports mostra quali prvider Internet Service (ISP)i tuoi visitatori hanno utilizzato per accedere al sito web. È possibile fare clic su un nome per maggiori dettagli. %s Se Piwik non può determinare il provider di un visitatore, questo viene elencato come IP.",
- "ProviderReportFooter": "Provider sconosciuto significa che l'indirizzo IP non può essere ricercato",
- "WidgetProviders": "Providers"
+ "WidgetProviders": "Providers",
+ "ProviderReportFooter": "Provider sconosciuto significa che l'indirizzo IP non può essere ricercato"
}
} \ No newline at end of file
diff --git a/plugins/Provider/lang/ja.json b/plugins/Provider/lang/ja.json
index e8a33d9b84..88258feac2 100644
--- a/plugins/Provider/lang/ja.json
+++ b/plugins/Provider/lang/ja.json
@@ -2,7 +2,7 @@
"Provider": {
"ColumnProvider": "プロバイダ",
"ProviderReportDocumentation": "このリポートは、ウェブサイトにアクセスする訪問者が使っているインターネットサービスプロバイダを示しています。詳細については、プロバイダ名をクリックしてください。 %s Piwikが訪問者のプロバイダを判別できない場合は、IPとして表示されます。",
- "ProviderReportFooter": "未知のプロバイダーとは IP アドレスが検索できなかったことを意味します。",
- "WidgetProviders": "プロバイダ"
+ "WidgetProviders": "プロバイダ",
+ "ProviderReportFooter": "未知のプロバイダーとは IP アドレスが検索できなかったことを意味します。"
}
} \ No newline at end of file
diff --git a/plugins/Provider/lang/ru.json b/plugins/Provider/lang/ru.json
index ddd5099702..b4d19d7016 100644
--- a/plugins/Provider/lang/ru.json
+++ b/plugins/Provider/lang/ru.json
@@ -1,6 +1,7 @@
{
"Provider": {
"ColumnProvider": "Провайдер",
+ "PluginDescription": "Сообщает о поставщике интернет услуг (ISP) у посетителей.",
"ProviderReportDocumentation": "Этот отчет показывает, какие интернет-провайдеры у посетителей вашего сайта. Вы можете кликнуть на имя провайдера, чтобы посмотреть детали. %s Если Piwik не может определить провайдера, отображается просто IP.",
"WidgetProviders": "Провайдеры"
}
diff --git a/plugins/Provider/lang/sl.json b/plugins/Provider/lang/sl.json
index aecafe7656..c13e93cdc9 100644
--- a/plugins/Provider/lang/sl.json
+++ b/plugins/Provider/lang/sl.json
@@ -1,7 +1,7 @@
{
"Provider": {
"ColumnProvider": "Ponudnik",
- "ProviderReportFooter": "Neznan ponudnik pomeni, da IP številke ni bilo mogoče povezati s ponudnikom.",
- "WidgetProviders": "Ponudniki"
+ "WidgetProviders": "Ponudniki",
+ "ProviderReportFooter": "Neznan ponudnik pomeni, da IP številke ni bilo mogoče povezati s ponudnikom."
}
} \ No newline at end of file
diff --git a/plugins/Provider/lang/tl.json b/plugins/Provider/lang/tl.json
index ad86f5a743..f5fff2472a 100644
--- a/plugins/Provider/lang/tl.json
+++ b/plugins/Provider/lang/tl.json
@@ -2,7 +2,7 @@
"Provider": {
"ColumnProvider": "Tagapagtustos",
"ProviderReportDocumentation": "Ang ulat na itoy ang nagpapakita kung anong Internet Server Providers ang gamit ng iyung bisita upang ma-access ang website. Maari mong e-click ang pangalan ng provider para sa karagdagang detalye. %s kung ang Piwik ay hindi matukoy ang provider ng bisita. ito ay nakalista bilang IP.",
- "ProviderReportFooter": "Ang hindi kilalang provider ay hindi makikita ang IP address.",
- "WidgetProviders": "Mga Tagapagtustos"
+ "WidgetProviders": "Mga Tagapagtustos",
+ "ProviderReportFooter": "Ang hindi kilalang provider ay hindi makikita ang IP address."
}
} \ No newline at end of file
diff --git a/plugins/QueuedTracking b/plugins/QueuedTracking
-Subproject f918c2ba022cdf0b8eea940f78c266e5b65c7c4
+Subproject e1efadec47f293f1d52b795d5a1f5acea976d1f
diff --git a/plugins/Referrers/lang/bn.json b/plugins/Referrers/lang/bn.json
new file mode 100644
index 0000000000..4ce702a13a
--- /dev/null
+++ b/plugins/Referrers/lang/bn.json
@@ -0,0 +1,5 @@
+{
+ "Referrers": {
+ "ColumnWebsite": "ওয়েবসাইট"
+ }
+} \ No newline at end of file
diff --git a/plugins/Referrers/lang/bs.json b/plugins/Referrers/lang/bs.json
new file mode 100644
index 0000000000..a325a3d57a
--- /dev/null
+++ b/plugins/Referrers/lang/bs.json
@@ -0,0 +1,5 @@
+{
+ "Referrers": {
+ "ColumnWebsite": "Web stranica"
+ }
+} \ No newline at end of file
diff --git a/plugins/Referrers/lang/ca.json b/plugins/Referrers/lang/ca.json
index bc0fbab911..397a9c4407 100644
--- a/plugins/Referrers/lang/ca.json
+++ b/plugins/Referrers/lang/ca.json
@@ -36,7 +36,7 @@
"TypeSearchEngines": "Hi ha %s visites provinents dels motors de cerca",
"TypeWebsites": "Hi ha %s visites provinents d'altres llocs",
"UsingNDistinctUrls": "(utiltizant %s urls diferents)",
- "Websites": "Llocs web",
+ "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.",
"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",
diff --git a/plugins/Referrers/lang/cs.json b/plugins/Referrers/lang/cs.json
index fdfbf25364..f9640a6869 100644
--- a/plugins/Referrers/lang/cs.json
+++ b/plugins/Referrers/lang/cs.json
@@ -7,7 +7,7 @@
"ColumnCampaign": "Kampaň",
"ColumnSearchEngine": "Vyhledávací stroj",
"ColumnSocial": "Sociální síť",
- "ColumnWebsite": "Web",
+ "ColumnWebsite": "Web stránky",
"ColumnWebsitePage": "Web stránka",
"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.",
@@ -18,12 +18,12 @@
"DistinctWebsites": "jedinečná weby",
"EvolutionDocumentation": "Toto je přehled referrerů, které vedly návštěvníky na vaše webové stránky.",
"EvolutionDocumentationMoreInfo": "Pro více informací o rozdílných typech referrerů nahlédněte do dokumentace tabulky %s.",
- "Keywords": "Klíčových slov",
+ "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.",
"PluginDescription": "Hlásí data referreru: vyhledávače, klíčová slova, stránky, kampaně, sociální média, přímý vstup.",
"Referrer": "Referrer",
"ReferrerName": "Jméno referreru",
- "Referrers": "Odkazující stránky",
+ "Referrers": "Doporučení",
"ReferrersOverview": "Přehled referrerů",
"ReferrerTypes": "Typy referrerů",
"SearchEngines": "Vyhledávacích strojů",
@@ -43,7 +43,7 @@
"UsingNDistinctUrls": "(používá %s jedinečných url)",
"ViewAllReferrers": "Zobrazit všechny referrery",
"ViewReferrersBy": "Zobrazit referrery podle %s",
- "Websites": "Web",
+ "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.",
"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",
diff --git a/plugins/Referrers/lang/cy.json b/plugins/Referrers/lang/cy.json
new file mode 100644
index 0000000000..06170b72b3
--- /dev/null
+++ b/plugins/Referrers/lang/cy.json
@@ -0,0 +1,5 @@
+{
+ "Referrers": {
+ "ColumnWebsite": "Gwefan"
+ }
+} \ No newline at end of file
diff --git a/plugins/Referrers/lang/da.json b/plugins/Referrers/lang/da.json
index ca03b065fe..e48a828521 100644
--- a/plugins/Referrers/lang/da.json
+++ b/plugins/Referrers/lang/da.json
@@ -20,6 +20,7 @@
"EvolutionDocumentationMoreInfo": "Flere oplysninger om de forskellige henvisnings typer findes i dokumentationen af tabellen %s.",
"Keywords": "Søgeord",
"KeywordsReportDocumentation": "Rapport viser hvilke søgeord brugere søgte efter, før de blev henvist til hjemmesiden. %s Klik på en række i tabellen for at se fordelingen af søgemaskiner, der blev forespurgt om søgeordet.",
+ "PluginDescription": "Rapporter af henvisendedata: Søgemaskiner, søgeord, hjemmesider, kampagner, sociale medier, direkte indtastning.",
"Referrer": "Henviser",
"ReferrerName": "Henvisningsnavn",
"Referrers": "Henvisninger",
diff --git a/plugins/Referrers/lang/el.json b/plugins/Referrers/lang/el.json
index 22b6d20382..d6533c4c68 100644
--- a/plugins/Referrers/lang/el.json
+++ b/plugins/Referrers/lang/el.json
@@ -1,7 +1,7 @@
{
"Referrers": {
"AllReferrersReportDocumentation": "Αυτή η έκθεση δείχνει όλες τις συστάσεις σε μια ενιαία αναφορά, απαριθμώντας όλες τις ιστοσελίδες, τις λέξεις-κλειδιά αναζήτησης και τις καμπάνιες που χρησιμοποιούνται από τους επισκέπτες σας για να βρουν την ιστοσελίδα σας.",
- "Campaigns": "Εκστρατείες",
+ "Campaigns": "Καμπάνιες",
"CampaignsDocumentation": "Επισκέπτες που ήρθαν στην ιστοσελίδα ως αποτέλεσμα εκστρατείας. %s Δείτε την αναφορά %s για περισσότερες πληροφορίες.",
"CampaignsReportDocumentation": "Αυτή η αναφορά δείχνει ποιες εκστρατείες οδήγησαν επισκέπτες στην ιστοσελίδα. %s Για περισσότερες πληροφορίες για την καταγραφή εκστρατειών, διαβάστε την %sτεκμηρίωση εκστρατειών στο piwik.org%s",
"ColumnCampaign": "Εκστρατεία",
@@ -18,12 +18,12 @@
"DistinctWebsites": "διαχωρισμός σελίδων",
"EvolutionDocumentation": "Αυτή είναι μια επισκόπηση των αναφορέων που έστειλαν επισκέπτες στην ιστοσελίδα.",
"EvolutionDocumentationMoreInfo": "Για περισσότερες πληροφορίες για τους διάφορους τύπους αναφορέων, δείτε την τεκμηρίωση του πίνακα %s.",
- "Keywords": "Λέξεις-κλειδιά",
+ "Keywords": "Λέξεις κλειδιά",
"KeywordsReportDocumentation": "Αυτή η αναφορά δείχνει ποιες λέξεις-κλειδιά αναζήτησαν οι χρήστες πριν έρθουν στην ιστοσελίδα. %s Πατώντας σε σε μια γραμμή στον πίνακα, μπορείτε να δείτε την κατανομή των μηχανών αναζήτησης που ερωτήθηκαν για τη λέξη-κλειδί.",
"PluginDescription": "Αναφέρει δεδομένα σχετικά με τους αναφορείς: Μηχανές Αναζήτησης, Λέξεις Κλειδιά, Ιστοτόποι, Καμπάνιες, Κοινωνικά Δίκτυα, Απευθείας Είσοδοι.",
"Referrer": "Παραπομπός",
"ReferrerName": "Ονομασία Παραπομπού",
- "Referrers": "Αναφορείς",
+ "Referrers": "Παραπομπείς",
"ReferrersOverview": "Επισκόπηση Παραπομπών",
"ReferrerTypes": "Τύποι Αναφορών",
"SearchEngines": "Μηχανές αναζήτησης",
@@ -43,7 +43,7 @@
"UsingNDistinctUrls": "(χρησιμοποιώντας %s αποκλεισμένα urls)",
"ViewAllReferrers": "Δείτε όλες τις Παραπομπές",
"ViewReferrersBy": "Δείτε τις Παραπομπές ανά %s",
- "Websites": "Ιστοσελίδες",
+ "Websites": "Ιστοτόποι",
"WebsitesDocumentation": "Ο επισκέπτης ακολούθησε έναν σύνδεσμο σε μια άλλη ιστοσελίδα που οδηγούσε στην ιστοσελίδα σας. %s Δείτε την αναφορά %s για περισσότερες πληροφορίες.",
"WebsitesReportDocumentation": "Σε αυτόν τον πίνακα, μπορείτε να δείτε ποιες ιστοσελίδες ανέφεραν επισκέπτες στην ιστοσελίδα. %s Πατώντας σε σε μια γραμμή στον πίνακα, μπορείτε να δείτε ποιες διευθύνσεις είχαν συνδέσμους για την ιστοσελίδα.",
"WidgetExternalWebsites": "Λίστα εξωτερικών ιστοσελίδων",
diff --git a/plugins/Referrers/lang/fi.json b/plugins/Referrers/lang/fi.json
index db69f331d8..8131fe33a8 100644
--- a/plugins/Referrers/lang/fi.json
+++ b/plugins/Referrers/lang/fi.json
@@ -18,7 +18,7 @@
"DistinctWebsites": "yksilöllistä verkkosivua",
"EvolutionDocumentation": "Tämä on yleiskatsaus viittauksista, jotka toivat käyttäjiä sivuillesi.",
"EvolutionDocumentationMoreInfo": "Löydät lisätietoja erilaisista viittaustyypeistä taulun %s dokumentaatiosta.",
- "Keywords": "Hakusanat",
+ "Keywords": "Avainsanat",
"KeywordsReportDocumentation": "Tämä rapotti näyttää, millä hakusanoilla kävijät tulivat sivuillesi. %s Näet hakukoneiden määrän klikkaamalla hakusanaa.",
"Referrer": "Viittaukset",
"ReferrerName": "Viittauksen nimi",
@@ -41,7 +41,7 @@
"UsingNDistinctUrls": "(käytetään %s yksilöllistä osoitetta)",
"ViewAllReferrers": "Näytä kaikki viittaukset",
"ViewReferrersBy": "Näytä viittaukset %s mukaan",
- "Websites": "Verkkosivut",
+ "Websites": "Sivustot",
"WebsitesDocumentation": "Kävijä tuli sivullesi seuraamalla linkkiä toiselta sivulta. %s Katso %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",
diff --git a/plugins/Referrers/lang/fr.json b/plugins/Referrers/lang/fr.json
index aeeac4703f..ff7aa07f75 100644
--- a/plugins/Referrers/lang/fr.json
+++ b/plugins/Referrers/lang/fr.json
@@ -7,7 +7,7 @@
"ColumnCampaign": "Campagne",
"ColumnSearchEngine": "Moteur de recherche",
"ColumnSocial": "Réseaux sociaux",
- "ColumnWebsite": "Site Web",
+ "ColumnWebsite": "Site",
"ColumnWebsitePage": "Page du site",
"DirectEntry": "Entrées directes",
"DirectEntryDocumentation": "Un visiteur a entré directement l'URL du site web dans son navigateur et a commencé à parcourir votre site web - il est entré directement sur le site web.",
@@ -20,10 +20,12 @@
"EvolutionDocumentationMoreInfo": "Pour plus d'informations sur les différents types de référents, consultez la documentation du tableau %s.",
"Keywords": "Mots-clés",
"KeywordsReportDocumentation": "Ce rapport affiche quels mots-clés les utilisateurs recherchaient avant d'être conduit sur votre site web. %s En cliquant sur une ligne vous pouvez visualiser la distribution des moteurs de recherche qui ont été utilisés pour le mot-clé.",
+ "PluginDescription": "Rapporte des données sur les Référants : Moteurs de recherche, mots clefs, Sites web, Campagnes, Réseaux sociaux et entrées directes.",
"Referrer": "Réfèrent",
"ReferrerName": "Nom du référent",
"Referrers": "Référents",
"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.",
"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.",
@@ -41,7 +43,7 @@
"UsingNDistinctUrls": "(utilisant %s urls distinctes)",
"ViewAllReferrers": "Afficher tous les référents",
"ViewReferrersBy": "Afficher les référents par %s",
- "Websites": "Sites Internet",
+ "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.",
"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",
diff --git a/plugins/Referrers/lang/gl.json b/plugins/Referrers/lang/gl.json
index 6e67acb2a1..f8a3da43f1 100644
--- a/plugins/Referrers/lang/gl.json
+++ b/plugins/Referrers/lang/gl.json
@@ -1,6 +1,7 @@
{
"Referrers": {
"Campaigns": "Campañas",
+ "ColumnWebsite": "Web",
"DirectEntry": "Entrada directa",
"Keywords": "Palabras clave",
"SearchEngines": "Motores de busca",
@@ -11,7 +12,7 @@
"TypeDirectEntries": "%s entradas directas",
"TypeSearchEngines": "%s desde motores de busca",
"TypeWebsites": "%s desde outras webs",
- "Websites": "Páxinas web",
+ "Websites": "Sitios",
"WidgetExternalWebsites": "Lista de webs externas"
}
} \ No newline at end of file
diff --git a/plugins/Referrers/lang/he.json b/plugins/Referrers/lang/he.json
index 993a65a3d5..344768e53b 100644
--- a/plugins/Referrers/lang/he.json
+++ b/plugins/Referrers/lang/he.json
@@ -12,6 +12,6 @@
"SearchEngines": "מנועי חיפוש",
"Socials": "רשתות חברתיות",
"SubmenuWebsites": "אתרי אינטרנט ורשתות חברתיות",
- "Websites": "אתרי אינטרנט"
+ "Websites": "אתרים"
}
} \ No newline at end of file
diff --git a/plugins/Referrers/lang/hr.json b/plugins/Referrers/lang/hr.json
new file mode 100644
index 0000000000..a325a3d57a
--- /dev/null
+++ b/plugins/Referrers/lang/hr.json
@@ -0,0 +1,5 @@
+{
+ "Referrers": {
+ "ColumnWebsite": "Web stranica"
+ }
+} \ No newline at end of file
diff --git a/plugins/Referrers/lang/it.json b/plugins/Referrers/lang/it.json
index 4bcf0bcf31..455e665912 100644
--- a/plugins/Referrers/lang/it.json
+++ b/plugins/Referrers/lang/it.json
@@ -7,7 +7,7 @@
"ColumnCampaign": "Campagna",
"ColumnSearchEngine": "Motore di ricerca",
"ColumnSocial": "Social network",
- "ColumnWebsite": "Sito web",
+ "ColumnWebsite": "Sito:",
"ColumnWebsitePage": "Pagina",
"DirectEntry": "Ingressi Diretti",
"DirectEntryDocumentation": "Un visitatore ha inserito l'URL nel proprio browser e ha iniziato la navigazione sul tuo sito web - è entrato direttamente al sito.",
@@ -18,12 +18,12 @@
"DistinctWebsites": "Siti web",
"EvolutionDocumentation": "Questa è una panoramica dei referenti che hanno portato i visitatori sul tuo sito web.",
"EvolutionDocumentationMoreInfo": "Per ulteriori informazioni sui diversi tipi referenti, consulta la documentazione della%s tabella.",
- "Keywords": "Parole chiave",
+ "Keywords": "Keywords",
"KeywordsReportDocumentation": "Questo report mostra le parole chiave che gli utenti hanno ricercato prima prima di venire indirizzati sul tuo sito web. %s Cliccando su una riga della tabella, è possibile vedere la distribuzione dei motori di ricerca che sono stati interrogati per la parola chiave.",
"PluginDescription": "Restituisce i dati dei Referrer: Motori di Ricerca, Keywords, Siti, Campagne, Social media, Ingressi diretti.",
"Referrer": "Referente",
"ReferrerName": "Nome Referente",
- "Referrers": "Referenti",
+ "Referrers": "Provenienze",
"ReferrersOverview": "Panoramica Referenti",
"ReferrerTypes": "Tipi di Referer",
"SearchEngines": "Motori di ricerca",
diff --git a/plugins/Referrers/lang/ja.json b/plugins/Referrers/lang/ja.json
index 29b7374b8e..94e9828ba0 100644
--- a/plugins/Referrers/lang/ja.json
+++ b/plugins/Referrers/lang/ja.json
@@ -22,7 +22,7 @@
"KeywordsReportDocumentation": "このリポートは、ユーザーがウェブサイトをビジットするのに使用した検索したキーワードを示します。 %s テーブル内の行をクリックすると、キーワードに対して照会された検索エンジンの分布を見ることができます。",
"Referrer": "参照元",
"ReferrerName": "参照元の名称",
- "Referrers": "参照元",
+ "Referrers": "リファラー",
"ReferrersOverview": "参照元概観",
"SearchEngines": "検索エンジン",
"SearchEnginesDocumentation": "検索エンジンを参照してウェブサイトに来たビジター。詳細のリポートは %s こちら %s",
diff --git a/plugins/Referrers/lang/nl.json b/plugins/Referrers/lang/nl.json
index 47f630f3df..4a88aac39c 100644
--- a/plugins/Referrers/lang/nl.json
+++ b/plugins/Referrers/lang/nl.json
@@ -17,11 +17,11 @@
"DistinctWebsites": "verschillende websites",
"EvolutionDocumentation": "Dit is een overzicht van de referers (verwijzingen) waarmee bezoekers op uw website zijn gekomen.",
"EvolutionDocumentationMoreInfo": "Voor meer informatie over de verschillende soorten verwijzingen, zie de documentatie van de %s tabel.",
- "Keywords": "Zoektermen",
+ "Keywords": "Sleutelwoorden",
"KeywordsReportDocumentation": "Dit rapport toont de sleutelwoorden waarop men zocht en waarbij men werd doorverwezen naar uw website. %s Door op een rij in de tabel te klikken kunt u de verdeling van de zoekmachines zien die op deze sleutelwoorden naar uw website hebben doorverwezen.",
"Referrer": "Referer",
"ReferrerName": "Verwijzer Naam",
- "Referrers": "Herkomst",
+ "Referrers": "Referrers",
"ReferrersOverview": "Referer Overzicht",
"SearchEngines": "Zoekmachines",
"SearchEnginesDocumentation": "Een bezoeker is doorverwezen naar uw website via een zoekmachine. %s Bekijk het %s rapport voor meer details.",
diff --git a/plugins/Referrers/lang/nn.json b/plugins/Referrers/lang/nn.json
index 922082eb09..1fa50a16eb 100644
--- a/plugins/Referrers/lang/nn.json
+++ b/plugins/Referrers/lang/nn.json
@@ -21,7 +21,7 @@
"TypeDirectEntries": "%s direkte vitjarar",
"TypeSearchEngines": "%s frå søkjemotorer",
"TypeWebsites": "%s frå nettstader",
- "Websites": "Nettstader",
+ "Websites": "Nettstadar",
"WidgetExternalWebsites": "Liste over eksterne nettsider"
}
} \ No newline at end of file
diff --git a/plugins/Referrers/lang/pl.json b/plugins/Referrers/lang/pl.json
index a8f3ac70e6..e0880c508b 100644
--- a/plugins/Referrers/lang/pl.json
+++ b/plugins/Referrers/lang/pl.json
@@ -3,7 +3,7 @@
"Campaigns": "Kampanie reklamowe",
"ColumnCampaign": "Kampania",
"ColumnSearchEngine": "Wyszukiwarka",
- "ColumnWebsite": "Strona",
+ "ColumnWebsite": "Strona WWW",
"ColumnWebsitePage": "Pojedyncza strona",
"DirectEntry": "wejścia bezpośrednie",
"Distinct": "Wyróżnione odsyłacze według ich typu",
@@ -23,7 +23,7 @@
"TypeSearchEngines": "%s z wyszukiwarek",
"TypeWebsites": "%s ze stron",
"UsingNDistinctUrls": "(używając %s wyróżnionych adresów url)",
- "Websites": "Strony",
+ "Websites": "Serwisy internetowe",
"WidgetExternalWebsites": "Lista zewnętrznych serwisów internetowych"
}
} \ No newline at end of file
diff --git a/plugins/Referrers/lang/pt-br.json b/plugins/Referrers/lang/pt-br.json
index e4e323ffd4..a83747e247 100644
--- a/plugins/Referrers/lang/pt-br.json
+++ b/plugins/Referrers/lang/pt-br.json
@@ -18,7 +18,7 @@
"DistinctWebsites": "Websites distintos",
"EvolutionDocumentation": "Esta é uma visão geral dos referrers que conduziram os visitantes no seu site.",
"EvolutionDocumentationMoreInfo": "Para mais informações sobre os tipos encaminhadores diferentes, consulte a documentação da tabela %s.",
- "Keywords": "Palavras Chaves",
+ "Keywords": "Palavras-chave",
"KeywordsReportDocumentation": "Este relatório mostra quais palavras-chave os usuários estavam procurando antes de eles serem encaminhados para o seu site. %s Ao clicar em uma linha na tabela, você pode ver a distribuição dos motores de busca, que foram consultados para a palavra-chave.",
"Referrer": "Encaminhador",
"ReferrerName": "Nome do encaminhador",
diff --git a/plugins/Referrers/lang/ro.json b/plugins/Referrers/lang/ro.json
index e3e0b4e60d..bd6b9f538f 100644
--- a/plugins/Referrers/lang/ro.json
+++ b/plugins/Referrers/lang/ro.json
@@ -7,7 +7,7 @@
"ColumnCampaign": "Campanie",
"ColumnSearchEngine": "Motor de căutare",
"ColumnSocial": "Reţea socială",
- "ColumnWebsite": "Site web",
+ "ColumnWebsite": "Website",
"ColumnWebsitePage": "Pagina Site Web",
"DirectEntry": "Intrare directă",
"DirectEntryDocumentation": "Un vizitator a intrat pe URL-ul din browser-ul său și a început sa navigheze pe site-ul tau - a introdus websitul direct .",
@@ -18,11 +18,11 @@
"DistinctWebsites": "situri web distincte",
"EvolutionDocumentation": "Aceasta este o imagine de ansamblu a referenților care au condus vizitatorii spre site-ul dumneavoastră.",
"EvolutionDocumentationMoreInfo": "Pentru mai multe informații despre diferitele tipuri de referali, consultați documentația de masa %s.",
- "Keywords": "Cuvinte-cheie",
+ "Keywords": "Cuvinte cheie",
"KeywordsReportDocumentation": "Acest raport arată cuvintele cheie cu care utilizatorii au fost căutați pentru înainte de sa fie menționati la site-ul dumneavoastră. %s Făcând clic pe un rând din tabel, puteți vedea distribuția de motoare de căutare care au fost interogate pentru cuvântul cheie.",
"Referrer": "referal",
"ReferrerName": "Nume referal",
- "Referrers": "Referinte",
+ "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.",
diff --git a/plugins/Referrers/lang/sk.json b/plugins/Referrers/lang/sk.json
index 787ca27887..1a0f162e21 100644
--- a/plugins/Referrers/lang/sk.json
+++ b/plugins/Referrers/lang/sk.json
@@ -3,7 +3,7 @@
"Campaigns": "Kampane",
"ColumnCampaign": "Kampaň",
"ColumnSearchEngine": "Vyhľadávač",
- "ColumnWebsite": "Portál",
+ "ColumnWebsite": "Webová stránka",
"ColumnWebsitePage": "Stránka portálu",
"DirectEntry": "Priamy vstup",
"Distinct": "Rozlíšiť odkazy podľa typu odkazu",
@@ -22,7 +22,7 @@
"TypeSearchEngines": "%s z vyhľadávačov",
"TypeWebsites": "%s zo stránok",
"UsingNDistinctUrls": "(pomocou %s rôznych adries URL)",
- "Websites": "Webstránky",
+ "Websites": "Stránky",
"WidgetExternalWebsites": "Zoznam externých stránok"
}
} \ No newline at end of file
diff --git a/plugins/Referrers/lang/sq.json b/plugins/Referrers/lang/sq.json
index c794b02232..4b1f8dd0e4 100644
--- a/plugins/Referrers/lang/sq.json
+++ b/plugins/Referrers/lang/sq.json
@@ -32,7 +32,7 @@
"TypeSearchEngines": "%s prej motorësh kërkimi",
"TypeWebsites": "%s prej \"site\"-esh web",
"UsingNDistinctUrls": "(duke përdorur url të dallueshme %s)",
- "Websites": "\"Site\"-e Web",
+ "Websites": "\"Site\"-e web",
"WebsitesDocumentation": "Vizitori ndoqi një lidhje në një site tjetër web e cila të shpinte te site-i juaj. Për më tepër hollësira, %s shihni %s raportin.",
"WebsitesReportDocumentation": "Në këtë tabelë, mund të shihni cilët site-e web sollën vizitorë te site-i juaj. %s Duke klikuar mbi një rresht të tabelës, mund të shihni se te cilat URL gjendeshin lidhjet për te site-i juaj web.",
"WidgetExternalWebsites": "Listë e \"site\"-eve Web të jashtëm"
diff --git a/plugins/Referrers/lang/sv.json b/plugins/Referrers/lang/sv.json
index 14ecd29b35..32b8289462 100644
--- a/plugins/Referrers/lang/sv.json
+++ b/plugins/Referrers/lang/sv.json
@@ -18,11 +18,11 @@
"DistinctWebsites": "distinkta webbplatser",
"EvolutionDocumentation": "Detta är en översikt av hänvisningsadresserna som ledde besökarna till din webbplats.",
"EvolutionDocumentationMoreInfo": "Mer information om de olika hänvisningsadressernas typer finns i dokumentationen för %s tabell.",
- "Keywords": "Sökord",
+ "Keywords": "Nyckelord",
"KeywordsReportDocumentation": "Rapporten visar vilka sökord som användarna sökte efter innan de hänvisades till din webbplats. %s Genom att klicka på en rad i tabellen kan du se fördelningen av sökmotorer som användes för sökordet.",
"Referrer": "Hänvisningar",
"ReferrerName": "Hänvisningsadress Namn",
- "Referrers": "Trafikkällor",
+ "Referrers": "Hänvisningar",
"ReferrersOverview": "Översikt för hänvisningar",
"SearchEngines": "Sökmotorer",
"SearchEnginesDocumentation": "En besökare hänvisades till din webbplats genom en sökmotor. %s se %s rapport för mer detaljer.",
@@ -41,7 +41,7 @@
"UsingNDistinctUrls": "(använder %s distinkta urler)",
"ViewAllReferrers": "Visa alla hänvisningar",
"ViewReferrersBy": "Visa hänvisningar efter %s",
- "Websites": "Webbplatser",
+ "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.",
"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",
diff --git a/plugins/Referrers/lang/ta.json b/plugins/Referrers/lang/ta.json
new file mode 100644
index 0000000000..4c824d1858
--- /dev/null
+++ b/plugins/Referrers/lang/ta.json
@@ -0,0 +1,5 @@
+{
+ "Referrers": {
+ "ColumnWebsite": "இணையப்பக்கம்"
+ }
+} \ No newline at end of file
diff --git a/plugins/Referrers/lang/te.json b/plugins/Referrers/lang/te.json
index 4a9f2080d6..9e98dad77f 100644
--- a/plugins/Referrers/lang/te.json
+++ b/plugins/Referrers/lang/te.json
@@ -3,7 +3,7 @@
"Campaigns": "ప్రచారాలు",
"ColumnCampaign": "ప్రచారం",
"ColumnSearchEngine": "శోధనయంత్రం",
- "ColumnWebsite": "జాలగూడు",
+ "ColumnWebsite": "వెబ్‌సైటు",
"ColumnWebsitePage": "జాలగూడు పుట",
"DirectEntry": "నేరు సందర్శన",
"Keywords": "కీపదాలు",
diff --git a/plugins/Referrers/lang/tr.json b/plugins/Referrers/lang/tr.json
index 47a83f6f39..522523b58b 100644
--- a/plugins/Referrers/lang/tr.json
+++ b/plugins/Referrers/lang/tr.json
@@ -4,13 +4,16 @@
"ColumnCampaign": "Kampanya",
"ColumnSearchEngine": "Arama Motoru",
"ColumnSocial": "Sosyal medya",
+ "ColumnWebsite": "Web sayfası",
"DirectEntry": "Doğrudan Giriş",
"DirectEntryDocumentation": "Ziyaretçiniz web adresini yazarak siteye doğrudan giriş yapmış.",
"DistinctCampaigns": "farklı kampanyalar",
"Keywords": "Anahtar Kelimeler",
+ "Referrers": "Yönlendirmeler",
"SubmenuSearchEngines": "Arama Motorları ve Anahtar Kelimeler",
"SubmenuWebsites": "Websiteleri ve Sosyal Platform",
"TypeCampaigns": "%s kampanyalarından",
+ "Websites": "Websiteler",
"WidgetExternalWebsites": "Yönlendiren Siteler"
}
} \ No newline at end of file
diff --git a/plugins/Referrers/lang/uk.json b/plugins/Referrers/lang/uk.json
index 505d15b7c7..9cf0a1fabe 100644
--- a/plugins/Referrers/lang/uk.json
+++ b/plugins/Referrers/lang/uk.json
@@ -22,7 +22,7 @@
"TypeSearchEngines": "%s з пошукових систем",
"TypeWebsites": "%s з веб-сайтів",
"UsingNDistinctUrls": "(використовуючи %s унікальні URL)",
- "Websites": "Веб-сайти",
+ "Websites": "Сайти",
"WidgetExternalWebsites": "Список зовнішніх веб-сайтів"
}
} \ No newline at end of file
diff --git a/plugins/Referrers/lang/vi.json b/plugins/Referrers/lang/vi.json
index 32abfac68a..d558ea90d7 100644
--- a/plugins/Referrers/lang/vi.json
+++ b/plugins/Referrers/lang/vi.json
@@ -7,7 +7,7 @@
"ColumnCampaign": "Chiến dịch",
"ColumnSearchEngine": "Công cụ tìm kiếm",
"ColumnSocial": "Mạng xã hội",
- "ColumnWebsite": "Địa chỉ trang web",
+ "ColumnWebsite": "Website",
"ColumnWebsitePage": "Trang web",
"DirectEntry": "Nhập trực tiếp",
"DirectEntryDocumentation": "Một du khách đã nhập vào URL trong trình duyệt của mình và bắt đầu trình duyệt trên trang web của bạn - người đó đã vào trang web một cách trực tiếp.",
@@ -22,7 +22,7 @@
"KeywordsReportDocumentation": "Báo cáo này cho thấy những từ khóa các người dùng đã tìm kiếm trước khi họ được giới thiệu đến 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 sự phân bố của công cụ tìm kiếm đã được truy vấn cho từ khoá.",
"Referrer": "Người được giới thiệu",
"ReferrerName": "Tên người được giới thiệu",
- "Referrers": "Các người được giới thiệu",
+ "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.",
@@ -41,7 +41,7 @@
"UsingNDistinctUrls": "(sử dụng %s URL riêng biệt)",
"ViewAllReferrers": "Xem tất cả các Referrer",
"ViewReferrersBy": "Xem các Referrer bằng %s",
- "Websites": "Các Website",
+ "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.",
"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",
diff --git a/plugins/Resolution/lang/da.json b/plugins/Resolution/lang/da.json
index cab3e10731..7999ce71da 100644
--- a/plugins/Resolution/lang/da.json
+++ b/plugins/Resolution/lang/da.json
@@ -3,6 +3,7 @@
"ColumnConfiguration": "Konfiguration",
"ColumnResolution": "Opløsning",
"Configurations": "Indstillinger",
+ "PluginDescription": "Rapporter de besøgendes skærmopløsninger.",
"Resolutions": "Opløsninger",
"WidgetGlobalVisitors": "Besøgendes konfiguration",
"WidgetGlobalVisitorsDocumentation": "Rapporten viser de mest almindelige samlede konfigurationer, som de besøgende havde. En konfiguration er en kombination af et styresystem, en browsertype og en skærmopløsning.",
diff --git a/plugins/Resolution/lang/fr.json b/plugins/Resolution/lang/fr.json
index fc933f2519..87eb92dc02 100644
--- a/plugins/Resolution/lang/fr.json
+++ b/plugins/Resolution/lang/fr.json
@@ -3,6 +3,7 @@
"ColumnConfiguration": "Configuration",
"ColumnResolution": "Résolution",
"Configurations": "Configurations",
+ "PluginDescription": "Rapporte les résolutions d'écran de vos visiteurs.",
"Resolutions": "Résolutions",
"WidgetGlobalVisitors": "Configuration globale des visiteurs",
"WidgetGlobalVisitorsDocumentation": "Ce rapport montre les configurations globales les plus communes de vos visiteurs. Une configuration est la combinaison d'un système d'exploitation, d'un type de navigateur et d'une résolution d'écran.",
diff --git a/plugins/Resolution/lang/hr.json b/plugins/Resolution/lang/hr.json
index a1b2c845ef..a79504006f 100644
--- a/plugins/Resolution/lang/hr.json
+++ b/plugins/Resolution/lang/hr.json
@@ -1,7 +1,10 @@
{
"Resolution": {
- "ColumnConfiguration": "KOnfiguracija",
+ "ColumnConfiguration": "Konfiguracija",
"ColumnResolution": "Rezolucija",
- "Configurations": "Konfiguracija"
+ "Configurations": "Konfiguracije",
+ "Resolutions": "Rezolucije",
+ "WidgetGlobalVisitors": "Konfiguracija posjetitelja",
+ "WidgetResolutions": "Rezolucija zaslona"
}
} \ No newline at end of file
diff --git a/plugins/Resolution/lang/ru.json b/plugins/Resolution/lang/ru.json
index 8581b68f31..1ea1242709 100644
--- a/plugins/Resolution/lang/ru.json
+++ b/plugins/Resolution/lang/ru.json
@@ -3,6 +3,7 @@
"ColumnConfiguration": "Конфигурация",
"ColumnResolution": "Разрешение",
"Configurations": "По конфигурации",
+ "PluginDescription": "Сообщает о разрешениии экранов у посетителей.",
"Resolutions": "По разрешению мониторов",
"WidgetGlobalVisitors": "Глобальная конфигурация",
"WidgetGlobalVisitorsDocumentation": "Этот отчет показывает общую информацию по наиболее популяоным конфигурациям системы ваших посетителей. Конфигурация - это комбинация операционной системы, браузера и разрешения экрана.",
diff --git a/plugins/ScheduledReports/lang/cs.json b/plugins/ScheduledReports/lang/cs.json
index 1e5a78f490..afd69809f2 100644
--- a/plugins/ScheduledReports/lang/cs.json
+++ b/plugins/ScheduledReports/lang/cs.json
@@ -17,12 +17,12 @@
"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í",
"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",
"OClock": "hodin",
"Pagination": "Stránka %s z %s",
- "PersonalEmailReports": "Osobní emailová hlášení",
"PiwikReports": "Hlášení Piwiku",
"PleaseFindAttachedFile": "Prosím najděte v přiloženém souboru %1$s hlášení pro %2$s",
"PleaseFindBelow": "Najděte níže vaše %1$s hlášení pro %2$s.",
diff --git a/plugins/ScheduledReports/lang/da.json b/plugins/ScheduledReports/lang/da.json
index 70a05a3385..15388ebfda 100644
--- a/plugins/ScheduledReports/lang/da.json
+++ b/plugins/ScheduledReports/lang/da.json
@@ -17,6 +17,7 @@
"EmailSchedule": "E-mail tidsplan",
"EvolutionGraph": "Vis historiske grafer for top %s værdier",
"FrontPage": "Forside",
+ "PersonalEmailReports": "Personlige E-mail rapporter",
"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",
diff --git a/plugins/ScheduledReports/lang/de.json b/plugins/ScheduledReports/lang/de.json
index d83e20b22c..61395f9c1f 100644
--- a/plugins/ScheduledReports/lang/de.json
+++ b/plugins/ScheduledReports/lang/de.json
@@ -17,12 +17,12 @@
"EmailSchedule": "E-Mail-Zeitplan",
"EvolutionGraph": "Zeige historischen Graph für die Top %s Werte",
"FrontPage": "Titelseite",
+ "PersonalEmailReports": "Persönliche Email-Berichte",
"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.",
"OClock": "Uhr",
"Pagination": "Seite %s von %s",
- "PersonalEmailReports": "Persönliche Email-Berichte",
"PiwikReports": "Piwik-Berichte",
"PleaseFindAttachedFile": "Sie finden in der angehängten Datei Ihren Bericht (Intervall: %1$s) für %2$s.",
"PleaseFindBelow": "Unterhalb befindet sich der Bericht (Intervall: %1$s) für %2$s.",
diff --git a/plugins/ScheduledReports/lang/el.json b/plugins/ScheduledReports/lang/el.json
index b5cfb81247..060ed9da6f 100644
--- a/plugins/ScheduledReports/lang/el.json
+++ b/plugins/ScheduledReports/lang/el.json
@@ -17,12 +17,12 @@
"EmailSchedule": "Προγραμματισμός Ηλεκτρονικής Αλληλογραφίας",
"EvolutionGraph": "Προβολή Ιστορικών Διαγραμμάτων για τις κορυφαίες %s τιμές",
"FrontPage": "Εξώφυλλο",
+ "PersonalEmailReports": "Προσωπικές Αναφορές με E-mail",
"MonthlyScheduleHelp": "Μηνιαίος προγραμματισμός: η αναφορά θα αποσταλεί την πρώτη μέρα κάθε μήνα.",
"MustBeLoggedIn": "Πρέπει να έχετε συνδεθεί για να δημιουργήσετε και να προγραμματίσετε προσαρμοσμένες αναφορές.",
"NoRecipients": "Αυτή η αναφορά δεν έχει παραλήπτες",
"OClock": "η ώρα",
"Pagination": "Σελίδα %s από %s",
- "PersonalEmailReports": "Προσωπικές Αναφορές με E-mail",
"PiwikReports": "Αναφορές Piwik",
"PleaseFindAttachedFile": "Βρείτε στο συνημμένο αρχείο την αναφορά %1$s για %2$s.",
"PleaseFindBelow": "Βρείτε παρακάτω την αναφορά %1$s για τη %2$s.",
diff --git a/plugins/ScheduledReports/lang/fr.json b/plugins/ScheduledReports/lang/fr.json
index fdcfa5608d..23b4dd1b6e 100644
--- a/plugins/ScheduledReports/lang/fr.json
+++ b/plugins/ScheduledReports/lang/fr.json
@@ -17,6 +17,7 @@
"EmailSchedule": "Planification courriel",
"EvolutionGraph": "Afficher les graphiques historiques pour les plus hautes %s valeurs",
"FrontPage": "Première page",
+ "PersonalEmailReports": "Rapport Courriel Personnalisé",
"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",
@@ -25,6 +26,7 @@
"PiwikReports": "Rapports Piwik",
"PleaseFindAttachedFile": "Veuillez trouver en pièce jointe votre rapport %1$s pour %2$s.",
"PleaseFindBelow": "Veuillez trouver ci-dessous votre %1$s rapport pour %2$s.",
+ "PluginDescription": "Créez des rapports personnalisés et planifiez de les envoyer par courriel quotidiennement, hebdomadairement ou mensuellement à une ou plusieurs personnes. Plusieurs formats de rapports sont supportés (html, pdf, csv, images).",
"ReportFormat": "Format du rapport",
"ReportHour": "Envoyer le rapport à",
"ReportIncludeNWebsites": "Le rapport incluera les métriques principales pour tous les sites web qui ont au moins une visite (depuis les %s sites web actuellement disponibles)",
diff --git a/plugins/ScheduledReports/lang/it.json b/plugins/ScheduledReports/lang/it.json
index 0414d3ab31..8f55eaa6b2 100644
--- a/plugins/ScheduledReports/lang/it.json
+++ b/plugins/ScheduledReports/lang/it.json
@@ -17,12 +17,12 @@
"EmailSchedule": "Pianifica Email",
"EvolutionGraph": "Mostra Grafici Storici per i %s valori top",
"FrontPage": "Prima pagina",
+ "PersonalEmailReports": "Reports Personali per Email",
"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",
"OClock": ".",
"Pagination": "Pagina %s di %s",
- "PersonalEmailReports": "Reports Personali per Email",
"PiwikReports": "Report di Piwik",
"PleaseFindAttachedFile": "Potete trovare nel file allegato %1$s il report per %2$s.",
"PleaseFindBelow": "Di seguito trovi il tuo report %1$s per il %2$s.",
diff --git a/plugins/ScheduledReports/lang/nl.json b/plugins/ScheduledReports/lang/nl.json
index 19073f343d..56e913ffd3 100644
--- a/plugins/ScheduledReports/lang/nl.json
+++ b/plugins/ScheduledReports/lang/nl.json
@@ -17,12 +17,12 @@
"EmailSchedule": "E-mail tijdsschema",
"EvolutionGraph": "Toon historische grafieken voor de top %s waarden",
"FrontPage": "Voorpagina",
+ "PersonalEmailReports": "Persoonlijke E-mail Rapporten",
"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",
"OClock": "uur",
"Pagination": "Pagina %s van %s",
- "PersonalEmailReports": "Persoonlijke E-mail Rapporten",
"PiwikReports": "Piwik rapporten",
"PleaseFindAttachedFile": "In de bijlage treft u uw %1$s rapport voor %2$s.",
"PleaseFindBelow": "Hieronder treft u uw %1$s rapport voor %2$s.",
diff --git a/plugins/ScheduledReports/lang/ru.json b/plugins/ScheduledReports/lang/ru.json
index 3a89125ea3..acabadbdd8 100644
--- a/plugins/ScheduledReports/lang/ru.json
+++ b/plugins/ScheduledReports/lang/ru.json
@@ -16,21 +16,23 @@
"EmailSchedule": "Расписание e-mail рассылки",
"EvolutionGraph": "Показать историю изменения графика для первых %s значений.",
"FrontPage": "Первая страница",
+ "PersonalEmailReports": "Персональные Email-отчёты",
"MonthlyScheduleHelp": "Ежемесячное расписание: отчеты будут рассылаться каждый первый день месяца.",
"MustBeLoggedIn": "Вы должны быть авторизованы для создания и редактирования расписания отчетов.",
"NoRecipients": "У этого отчета нет получателей",
"OClock": "часов",
"Pagination": "Страница %s из %s",
- "PersonalEmailReports": "Персональные Email-отчёты",
"PiwikReports": "Отчеты Веб-аналитики",
"PleaseFindAttachedFile": "К этому письму прикреплен файл %1$s, являющийся отчетом для %2$s.",
"PleaseFindBelow": "Пожалуйста, ниже вашего %1$s отчет за %2$s.",
+ "PluginDescription": "Создаёт пользовательские отчёты и планирует их отправку по почте ежедневно, еженедельно или ежемесячно для одного или нескольких людей. Поддерживает некоторые форматы отчётов (html, pdf, csv, изображения).",
"ReportFormat": "Формат отчета",
"ReportHour": "Отправлять отчёт в",
"ReportIncludeNWebsites": "Отчет будет содержать основные показатели для всех сайтов, у которых было хотя бы одно посещение (всего сейчас доступно %s сайтов).",
"ReportSent": "Отправить отчет",
"ReportsIncluded": "Данные, включенные в отчет",
"ReportType": "Отправить отчет с помощью",
+ "ReportUpdated": "Отчёт обновлён",
"Segment_Help": "Вы можете выбрать существующий пользовательский сегмент для применения к данным для этого отчёта. Вы можете создавать и редактировать пользовательские сегменты на панели инструментов %s(нажмите здесь, чтобы открыть)%s, далее нажмите на \"%s\", затем \"%s\".",
"SendReportNow": "Отправить отчет сейчас",
"SendReportTo": "Получатели",
diff --git a/plugins/SecurityInfo b/plugins/SecurityInfo
-Subproject 101aa27943576a3d666ddad24710af2e4c46306
+Subproject 69e464289e11518dc127f4e152cb9257c86d60a
diff --git a/plugins/SegmentEditor/lang/cs.json b/plugins/SegmentEditor/lang/cs.json
index 1aaf4356ea..851af5b921 100644
--- a/plugins/SegmentEditor/lang/cs.json
+++ b/plugins/SegmentEditor/lang/cs.json
@@ -1,7 +1,6 @@
{
"SegmentEditor": {
"AddANDorORCondition": "Přidat podmínku %s",
- "AddingSegmentForAllWebsitesDisabled": "Přidávání segmentů pro všechny stránky bylo zakázáno.",
"AddNewSegment": "Přidat nový segment",
"AreYouSureDeleteSegment": "Opravdu chcete odstranit tento segment?",
"AutoArchivePreProcessed": "Segmentovaná hlášení jsou předzpracována rychleji (vyžadují cron)",
@@ -23,8 +22,9 @@
"ThisSegmentIsVisibleTo": "Tento segment je viditelný",
"VisibleToAllUsers": "Všem uživatelům",
"VisibleToMe": "Mně",
- "YouDontHaveAccessToCreateSegments": "Pro vytváření a úpravu segmentů nemáte požadovanou přístupovou úroveň.",
"YouMayChangeSetting": "Jinak můžete nastavení změnit v souboru %s, nebo můžete upravit tento segment a zvolit %s.",
- "YouMustBeLoggedInToCreateSegments": "Pro vytváření a úpravu vlastních segmentů návštěvníků musíte být přihlášen."
+ "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."
}
} \ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/da.json b/plugins/SegmentEditor/lang/da.json
index 7de6fabcc1..7d35c3b7cb 100644
--- a/plugins/SegmentEditor/lang/da.json
+++ b/plugins/SegmentEditor/lang/da.json
@@ -1,7 +1,6 @@
{
"SegmentEditor": {
"AddANDorORCondition": "Tilføj %s betingelse",
- "AddingSegmentForAllWebsitesDisabled": "Tilføjelse af segmenter for alle websteder er blevet deaktiveret.",
"AddNewSegment": "Tilføj nyt segment",
"AreYouSureDeleteSegment": "Er du sikker på, at du vil slette dette segment?",
"AutoArchivePreProcessed": "Segmenterede rapporter behandles på forhånd (er hurtigere, kræver archive.php cron)",
@@ -23,8 +22,9 @@
"ThisSegmentIsVisibleTo": "Segmentet er synligt for:",
"VisibleToAllUsers": "Alle brugere",
"VisibleToMe": "mig",
- "YouDontHaveAccessToCreateSegments": "Du har ikke det nødvendige adgangsniveau til at oprette og redigere segmenter.",
"YouMayChangeSetting": "Alternativt kan du ændre indstillingen i konfigurationsfilen (%s), eller redigere dette segment og vælg '%s'.",
- "YouMustBeLoggedInToCreateSegments": "Du skal være logget ind for at oprette og anvende brugerdefinerede besøgssegmenter."
+ "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."
}
} \ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/de.json b/plugins/SegmentEditor/lang/de.json
index 939edb01a7..e841c0dfc0 100644
--- a/plugins/SegmentEditor/lang/de.json
+++ b/plugins/SegmentEditor/lang/de.json
@@ -1,7 +1,6 @@
{
"SegmentEditor": {
"AddANDorORCondition": "%s Bedingung hinzufügen",
- "AddingSegmentForAllWebsitesDisabled": "Das Hinzufügen von Segmenten wurde für alle Webseiten deaktiviert.",
"AddNewSegment": "Neues Segment hinzufügen",
"AreYouSureDeleteSegment": "Möchten Sie dieses Segment wirklich löschen?",
"AutoArchivePreProcessed": "Segmentierte Berichte werden im Voraus verarbeitet (schneller, benötigt archive.php Cron)",
@@ -23,8 +22,9 @@
"ThisSegmentIsVisibleTo": "Dieses Segment ist sichtbar für:",
"VisibleToAllUsers": "alle Benutzer",
"VisibleToMe": "mich",
- "YouDontHaveAccessToCreateSegments": "Sie haben nicht die benötigten Berechtigungen um Segmente anzulegen und zu bearbeiten.",
"YouMayChangeSetting": "Alternativ können Sie die Einstellung in der Konfigurationsdatei (%s) ändern, oder ändern Sie dieses Segment und wählen '%s'.",
- "YouMustBeLoggedInToCreateSegments": "Sie müssen sich anmelden um eigene Besuchersegmente anzulegen oder zu bearbeiten."
+ "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 Webseiten deaktiviert."
}
} \ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/el.json b/plugins/SegmentEditor/lang/el.json
index bb705a0e49..4a1c3b021f 100644
--- a/plugins/SegmentEditor/lang/el.json
+++ b/plugins/SegmentEditor/lang/el.json
@@ -1,7 +1,6 @@
{
"SegmentEditor": {
"AddANDorORCondition": "Προσθήκη της %s συνθήκης",
- "AddingSegmentForAllWebsitesDisabled": "Η προσθήκη τμημάτων έχει απενεργοποιηθεί για όλους τους ιστοτόπους.",
"AddNewSegment": "Προσθήκη νέου τμήματος",
"AreYouSureDeleteSegment": "Είστε σίγουροι για τη διαγραφή του τμήματος;",
"AutoArchivePreProcessed": "οι αναφορές τμημάτων προεπεξεργάζονται (γρηγορότερα, απαιτείται το archive.php με cron)",
@@ -23,8 +22,9 @@
"ThisSegmentIsVisibleTo": "Το τμήμα αυτό είναι ορατό σε:",
"VisibleToAllUsers": "όλους τους χρήστες",
"VisibleToMe": "εμένα",
- "YouDontHaveAccessToCreateSegments": "Δεν διαθέτετε την απαιτούμενη πρόσβαση ασφαλείας για να δημιουργείτε και να τροποποιείτε τμήματα.",
"YouMayChangeSetting": "Εναλλακτικά, μπορείτε να αλλάξετε τη ρύθμιση στο αρχείο ρυθμίσεων (%s), ή να τροποποιήσετε το Τμήμα αυτό και να επιλέξετε '%s'.",
- "YouMustBeLoggedInToCreateSegments": "Θα πρέπει να έχετε κάνει είσοδο για να δημιουργήσετε και να επεξεργαστείτε προσαρμοσμένα τμήματα επισκεπτών."
+ "YouMustBeLoggedInToCreateSegments": "Θα πρέπει να έχετε κάνει είσοδο για να δημιουργήσετε και να επεξεργαστείτε προσαρμοσμένα τμήματα επισκεπτών.",
+ "YouDontHaveAccessToCreateSegments": "Δεν διαθέτετε την απαιτούμενη πρόσβαση ασφαλείας για να δημιουργείτε και να τροποποιείτε τμήματα.",
+ "AddingSegmentForAllWebsitesDisabled": "Η προσθήκη τμημάτων έχει απενεργοποιηθεί για όλους τους ιστοτόπους."
}
} \ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/fr.json b/plugins/SegmentEditor/lang/fr.json
index 76c2ea7435..3b105c94f7 100644
--- a/plugins/SegmentEditor/lang/fr.json
+++ b/plugins/SegmentEditor/lang/fr.json
@@ -1,7 +1,6 @@
{
"SegmentEditor": {
"AddANDorORCondition": "Ajouter la condition %s",
- "AddingSegmentForAllWebsitesDisabled": "Ajouter des segments pour tous les sites a été désactivé.",
"AddNewSegment": "Ajouter un nouveau segment",
"AreYouSureDeleteSegment": "Êtes vous sûr(e) de vouloir supprimer ce segment?",
"AutoArchivePreProcessed": "les rapports segmentés sont pré-traités (plus rapide, requiert un cron sur archive.php)",
@@ -23,8 +22,9 @@
"ThisSegmentIsVisibleTo": "Ce segment est visible pour :",
"VisibleToAllUsers": "tous les utilisateurs",
"VisibleToMe": "moi",
- "YouDontHaveAccessToCreateSegments": "Vous n'avez pas les permissions requises pour créer et modifier des segments.",
"YouMayChangeSetting": "Vous pouvez ou changer le paramètre depuis le fichier de configuration (%s) ou bien modifier ce segment et choisir '%s'.",
- "YouMustBeLoggedInToCreateSegments": "Vous devez être identifié(e) pour créer et modifier des segments de visiteurs personnalisés."
+ "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é."
}
} \ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/it.json b/plugins/SegmentEditor/lang/it.json
index e400308d25..c17d191a3f 100644
--- a/plugins/SegmentEditor/lang/it.json
+++ b/plugins/SegmentEditor/lang/it.json
@@ -1,7 +1,6 @@
{
"SegmentEditor": {
"AddANDorORCondition": "Aggiungi %s condizione",
- "AddingSegmentForAllWebsitesDisabled": "L'aggiunta di segmenti per tutti i siti è stata disabilitata.",
"AddNewSegment": "Aggiungi un nuovo segmento",
"AreYouSureDeleteSegment": "Sei sicuro di voler eliminare questo segmento?",
"AutoArchivePreProcessed": "i reports segmentati sono pre-elaborati (più veloce, richiede archive.php cron)",
@@ -23,8 +22,9 @@
"ThisSegmentIsVisibleTo": "Questo segmento è visibile a:",
"VisibleToAllUsers": "tutti gli utenti",
"VisibleToMe": "me",
- "YouDontHaveAccessToCreateSegments": "Non hai un livello d'accesso adeguato per creare e modificare i segmenti.",
"YouMayChangeSetting": "In alternativa, puoi cambiare le impostazioni nel file di configurazione (%s) o modificare questo Segmento e scegliere '%s'.",
- "YouMustBeLoggedInToCreateSegments": "Devi avere effettuato l'accesso per creare e modificare i segmenti personalizzati dei visitatori."
+ "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."
}
} \ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/ja.json b/plugins/SegmentEditor/lang/ja.json
index 2f51c382bd..8c65a9c7cf 100644
--- a/plugins/SegmentEditor/lang/ja.json
+++ b/plugins/SegmentEditor/lang/ja.json
@@ -1,7 +1,6 @@
{
"SegmentEditor": {
"AddANDorORCondition": "%s の条件を追加",
- "AddingSegmentForAllWebsitesDisabled": "全ウェブサイトに対するセグメントは追加できませんでした。",
"AddNewSegment": "新しいセグメントを追加",
"AreYouSureDeleteSegment": "このセグメントを削除してもよろしいですか?",
"AutoArchivePreProcessed": "セグメントレポートの事前処理(archive.php の cron 設定が必要)",
@@ -23,8 +22,9 @@
"ThisSegmentIsVisibleTo": "このセグメント設定の表示:",
"VisibleToAllUsers": "すべてのユーザー",
"VisibleToMe": "自分",
- "YouDontHaveAccessToCreateSegments": "セグメントの作成および編集に必要なレベルのアクセス権限を持っていません。",
"YouMayChangeSetting": "別の方法としては設定ファイル (%s) で設定を変更するか、このセグメント '%s' を選択し編集することができます。",
- "YouMustBeLoggedInToCreateSegments": "ビジターのカスタムセグメントの作成と編集にはログインが必要です。"
+ "YouMustBeLoggedInToCreateSegments": "ビジターのカスタムセグメントの作成と編集にはログインが必要です。",
+ "YouDontHaveAccessToCreateSegments": "セグメントの作成および編集に必要なレベルのアクセス権限を持っていません。",
+ "AddingSegmentForAllWebsitesDisabled": "全ウェブサイトに対するセグメントは追加できませんでした。"
}
} \ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/nl.json b/plugins/SegmentEditor/lang/nl.json
index 41c17a6cc2..95b8632e45 100644
--- a/plugins/SegmentEditor/lang/nl.json
+++ b/plugins/SegmentEditor/lang/nl.json
@@ -1,7 +1,6 @@
{
"SegmentEditor": {
"AddANDorORCondition": "Voeg %s voorwaarde toe",
- "AddingSegmentForAllWebsitesDisabled": "Het toevoegen van segmenten voor alle websites is uitgeschakeld.",
"AddNewSegment": "Voeg nieuw segment toe",
"AreYouSureDeleteSegment": "Weet je zeker dat je dit segment wilt verwijderen?",
"AutoArchivePreProcessed": "gesegmenteerde rapporten worden voor verwerkt (sneller, vereist archive.php cron)",
@@ -23,8 +22,9 @@
"ThisSegmentIsVisibleTo": "Dit segment is zichtbaar voor:",
"VisibleToAllUsers": "alle gebruikers",
"VisibleToMe": "mij",
- "YouDontHaveAccessToCreateSegments": "U heeft niet het benodigde toegangsniveau om segmenten te maken en bewerken.",
"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'.",
- "YouMustBeLoggedInToCreateSegments": "Je moet ingelogd zijn om Bezoekers segmenten te bewerken of aan te maken."
+ "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."
}
} \ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/ro.json b/plugins/SegmentEditor/lang/ro.json
index 56a24a6311..b59f7357ef 100644
--- a/plugins/SegmentEditor/lang/ro.json
+++ b/plugins/SegmentEditor/lang/ro.json
@@ -22,8 +22,8 @@
"ThisSegmentIsVisibleTo": "Acest segment este vizibil către:",
"VisibleToAllUsers": "tuturor utilizatorilor",
"VisibleToMe": "mie",
- "YouDontHaveAccessToCreateSegments": "Nu ai nivelul de acces necesar pentru a crea și edita segmente.",
"YouMayChangeSetting": "Alternativ, puteți schimba setările în fișierul de configurare (%s), sau pentru a edita acest segment și alegeți '%s'.",
- "YouMustBeLoggedInToCreateSegments": "Trebuie să fii logat pentru a crea și edita segmente de vizitatori personalizate."
+ "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."
}
} \ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/sr.json b/plugins/SegmentEditor/lang/sr.json
index 8c4d977c5b..5e01349360 100644
--- a/plugins/SegmentEditor/lang/sr.json
+++ b/plugins/SegmentEditor/lang/sr.json
@@ -22,8 +22,8 @@
"ThisSegmentIsVisibleTo": "Ovaj segment je vidljiv:",
"VisibleToAllUsers": "svi korisnici",
"VisibleToMe": "meni",
- "YouDontHaveAccessToCreateSegments": "Nemate odgovarajući nivo pristupa da biste kreirali i menjali segmente.",
"YouMayChangeSetting": "Takođe možete promeniti podešavanja i u datoteci %s ili izmenom segmenta i izborom '%s'.",
- "YouMustBeLoggedInToCreateSegments": "Morate biti prijavljeni kako biste mogli da kreirate i menjate segmente."
+ "YouMustBeLoggedInToCreateSegments": "Morate biti prijavljeni kako biste mogli da kreirate i menjate segmente.",
+ "YouDontHaveAccessToCreateSegments": "Nemate odgovarajući nivo pristupa da biste kreirali i menjali segmente."
}
} \ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/sv.json b/plugins/SegmentEditor/lang/sv.json
index 38ec1e31fc..d88071b374 100644
--- a/plugins/SegmentEditor/lang/sv.json
+++ b/plugins/SegmentEditor/lang/sv.json
@@ -22,8 +22,8 @@
"ThisSegmentIsVisibleTo": "Det här segmentet är synligt för:",
"VisibleToAllUsers": "alla användare",
"VisibleToMe": "jag",
- "YouDontHaveAccessToCreateSegments": "Du har inte rättigheter för att skapa och redigera segment.",
"YouMayChangeSetting": "Alternativt kan du ändra inställningarna i konfigurationsfilen (%s), eller redigera detta Segment och välj '%s'.",
- "YouMustBeLoggedInToCreateSegments": "Du måste vara inloggad för att skapa och redigera besökssegment."
+ "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."
}
} \ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/tl.json b/plugins/SegmentEditor/lang/tl.json
index 23f03e9673..2919911036 100644
--- a/plugins/SegmentEditor/lang/tl.json
+++ b/plugins/SegmentEditor/lang/tl.json
@@ -1,7 +1,6 @@
{
"SegmentEditor": {
"AddANDorORCondition": "Magdagdag kundisyon %s",
- "AddingSegmentForAllWebsitesDisabled": "Ang pagdagdag ng bahagi para sa lahat ng website ay hindi na pinagana.",
"AddNewSegment": "Magdagdag ng bagong segment",
"AreYouSureDeleteSegment": "Sigurado ka bang gusto mong tanggalin ang bahaging ito?",
"AutoArchivePreProcessed": "Ang kaputol na ulat ay naka pre-processed (ang mas mabilis ay nangangailangan ng cron).",
@@ -21,8 +20,9 @@
"ThisSegmentIsVisibleTo": "Ang segment na ito ay makikita sa:",
"VisibleToAllUsers": "lahat ng mga user",
"VisibleToMe": "ako",
- "YouDontHaveAccessToCreateSegments": "Wala kang mga kinakailangang access level upang lumikha at mag edit ng mga segment.",
"YouMayChangeSetting": "Maaari mo ring baguhin ang settings sa config file (%s) o i-edit ang mga Segment at piliin ang '%s'.",
- "YouMustBeLoggedInToCreateSegments": "Kailangan mong mag log-in upang gumawa at mag-edit ng custom visitor segments."
+ "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."
}
} \ No newline at end of file
diff --git a/plugins/SitesManager/SitesManager.php b/plugins/SitesManager/SitesManager.php
index 8e45c733c4..a00fc0cbe8 100644
--- a/plugins/SitesManager/SitesManager.php
+++ b/plugins/SitesManager/SitesManager.php
@@ -264,6 +264,7 @@ class SitesManager extends \Piwik\Plugin
$translationKeys[] = "General_Actions";
$translationKeys[] = "General_Search";
$translationKeys[] = "General_Pagination";
+ $translationKeys[] = "General_ClickToSearch";
$translationKeys[] = "General_PaginationWithoutTotal";
$translationKeys[] = "Actions_SubmenuSitesearch";
$translationKeys[] = "SitesManager_OnlyOneSiteAtTime";
diff --git a/plugins/SitesManager/lang/am.json b/plugins/SitesManager/lang/am.json
index 773d364b14..2127c00b2f 100644
--- a/plugins/SitesManager/lang/am.json
+++ b/plugins/SitesManager/lang/am.json
@@ -10,7 +10,7 @@
"MainDescription": "የድር ማመዛዘኛ ሪፖርት ድር ጣቢያ ያስፈልጋቸዋል! ጨምር፣ አልቅ፣ ድር ጣቢያ ሰርዝ እና በገፅህ ላይ ለማስገባት የፈለግከውን የጃቫ ስክሪፕት አሳይ",
"NoWebsites": "ለታስተዳድረው የምትችለው ምንም አይነት ድር ጣቢያ የለም",
"ShowTrackingTag": "የዱካ መከተያ መለያ አሳይ",
- "Sites": "ድር ጣቢያ",
+ "Sites": "ድር ጣቢያዎች",
"Timezone": "የሰዓት ሰቅ",
"Urls": "ዩ አር ኤሎች",
"WebsitesManagement": "የድር ጣቢያ ምነጃ"
diff --git a/plugins/SitesManager/lang/bs.json b/plugins/SitesManager/lang/bs.json
index 0319095c88..b9998042b1 100644
--- a/plugins/SitesManager/lang/bs.json
+++ b/plugins/SitesManager/lang/bs.json
@@ -1,5 +1,6 @@
{
"SitesManager": {
- "Currency": "Valuta"
+ "Currency": "Valuta",
+ "Urls": "Veza"
}
} \ No newline at end of file
diff --git a/plugins/SitesManager/lang/cs.json b/plugins/SitesManager/lang/cs.json
index cf937b35d0..93b2927ae6 100644
--- a/plugins/SitesManager/lang/cs.json
+++ b/plugins/SitesManager/lang/cs.json
@@ -62,7 +62,7 @@
"SelectDefaultCurrency": "Můžete zvolit výchozí měnu pro nové weby",
"SelectDefaultTimezone": "Můžete zvolit výchozí časovou zónu pro nové weby",
"ShowTrackingTag": "zobrazit zaznamenávací tagy",
- "Sites": "Weby",
+ "Sites": "Stránky",
"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.",
"SuperUserAccessCan": "eUživatel se super uživatelským přístupem může také %sspecifikovat globální nastavení%s pro nové webové stránky.",
"Timezone": "Časová zóna",
diff --git a/plugins/SitesManager/lang/da.json b/plugins/SitesManager/lang/da.json
index f10d778526..665295c1a5 100644
--- a/plugins/SitesManager/lang/da.json
+++ b/plugins/SitesManager/lang/da.json
@@ -4,7 +4,7 @@
"AdvancedTimezoneSupportNotFound": "PHP understøtter ikke avancerede tidszoner (understøttes i PHP> = 5.2). Du kan stadig vælge en manuel UTC offset.",
"AliasUrlHelp": "Det anbefales, men er ikke nødvendigt at angive de forskellige netadresser, en på hver linje, som besøgende kan komme ind på hjemmesiden. Alias netadresser for et netsted, vises ikke i Henvisning> Hjemmesider rapport. Bemærk, at det ikke er nødvendigt at specificere netadresser med og uden 'www' da Piwik automatisk finder begge.",
"ChangingYourTimezoneWillOnlyAffectDataForward": "Ændring af tidszonen kun påvirke fremtidige data og vil ikke blive anvendt med tilbagevirkende kraft.",
- "ChooseCityInSameTimezoneAsYou": " Vælg en by i samme tidszone som dig.",
+ "ChooseCityInSameTimezoneAsYou": "Vælg en by i samme tidszone som dig.",
"Currency": "Valuta",
"CurrencySymbolWillBeUsedForGoals": "Valuta symbol vises ved siden af mål indtægter.",
"DefaultCurrencyForNewWebsites": "Standard valuta for nye hjemmesider",
@@ -48,7 +48,8 @@
"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.",
- "PiwikWillAutomaticallyExcludeCommonSessionParameters": " Piwik vil automatisk udelukke den fælles session parametre (%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.",
"SearchCategoryLabel": "Kategoriparameter",
"SearchCategoryParametersDesc": "Du kan indtaste en kommasepareret liste af søgeparametre, der angiver søgekategorien.",
@@ -59,7 +60,7 @@
"SearchUseDefault": "Brug %sstandard%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.",
+ "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.",
diff --git a/plugins/SitesManager/lang/de.json b/plugins/SitesManager/lang/de.json
index 922a0afec3..5b9c43ae30 100644
--- a/plugins/SitesManager/lang/de.json
+++ b/plugins/SitesManager/lang/de.json
@@ -64,6 +64,9 @@
"ShowTrackingTag": "Tracking-Code anzeigen",
"Sites": "Webseiten",
"SiteSearchUse": "Piwik kann auswerten, wonach Besucher in der internen Suche der Webseite suchen.",
+ "SiteWithoutDataTitle": "Bisher wurden keine Daten aufgezeichnet",
+ "SiteWithoutDataDescription": "Für diese Webseite wurden bisher noch keine Analysedaten aufgezeichnet.",
+ "SiteWithoutDataSetupTracking": "Bitte den %1$sJavaScript Tracking Code%2$s auf Ihrer Webseite einrichten und die Seite neu laden.",
"SuperUserAccessCan": "Ein Nutzer mit Hauptadministrator-Berechtigung kann ebenfalls %sglobale Einstellungen%s für neue Webseiten vornehmen.",
"Timezone": "Zeitzone",
"TrackingSiteSearch": "Die interne Suche auswerten",
diff --git a/plugins/SitesManager/lang/el.json b/plugins/SitesManager/lang/el.json
index bd7825aa64..377308b6ee 100644
--- a/plugins/SitesManager/lang/el.json
+++ b/plugins/SitesManager/lang/el.json
@@ -62,8 +62,11 @@
"SelectDefaultCurrency": "Μπορείτε να επιλέξετε το νόμισμα το οποίο θα είναι προεπιλογή για τις νέες ιστοσελίδες.",
"SelectDefaultTimezone": "Μπορείτε να επιλέξετε τη ζώνη ώρας η οποία θα είναι προεπιλογή για τις νέες ιστοσελίδες.",
"ShowTrackingTag": "προβολή ετικέτας παρακολούθησης",
- "Sites": "Ιστοσελίδες",
+ "Sites": "Ιστοτόποι",
"SiteSearchUse": "Μπορείτε να χρησιμοποιήσετε το Piwik για να παρακολουθείτε και να έχετε αναφορές για το τι ψάχνουν οι επισκέπτες στην εσωτερική μηχανή αναζήτησης της ιστοσελίδας σας.",
+ "SiteWithoutDataTitle": "Δεν έχουν καταγραφεί ακόμη δεδομένα",
+ "SiteWithoutDataDescription": "Δεν έχουν ακόμη καταγραφεί δεδομένα αναλυτικών για τον ιστοτόπο αυτόν ακόμη.",
+ "SiteWithoutDataSetupTracking": "Παρακαλούμε εισάγετε τον %1$sκώδικα παρακολούθησης JavaScript%2$s στον ιστοτόπο σας και ανανεώστε την ιστοσελίδα.",
"SuperUserAccessCan": "Ένας χρήστης με δικαίωμα Υπερ-Χρήστη μπορεί επίσης να %sπροσαρμόζει τις γενικές ρυθμίσεις%s για νέους ιστοτόπους.",
"Timezone": "Ζώνη ώρας",
"TrackingSiteSearch": "Καταγραφή Εσωτερικής Αναζήτησης Ιστοσελίδας",
diff --git a/plugins/SitesManager/lang/fi.json b/plugins/SitesManager/lang/fi.json
index 681251bcd0..0dd331e8eb 100644
--- a/plugins/SitesManager/lang/fi.json
+++ b/plugins/SitesManager/lang/fi.json
@@ -61,7 +61,7 @@
"SelectDefaultCurrency": "Voit valita oletusvaluutan uusille verkkosivuille.",
"SelectDefaultTimezone": "Voit valita oletusaikavyöhykkeen uusille verkkosivuille.",
"ShowTrackingTag": "näytä seurantakoodi",
- "Sites": "Sivut",
+ "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.",
"Timezone": "Aikavyöhyke",
diff --git a/plugins/SitesManager/lang/fr.json b/plugins/SitesManager/lang/fr.json
index f0c3c4a604..6447c3ee1f 100644
--- a/plugins/SitesManager/lang/fr.json
+++ b/plugins/SitesManager/lang/fr.json
@@ -49,6 +49,7 @@
"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.",
"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.",
"SearchCategoryLabel": "Paramètres de catégories",
"SearchCategoryParametersDesc": "Vous pouvez entrer une liste de paramètres de requête servant à spécifier la catégorie de recherche séparés par des virgules.",
@@ -61,8 +62,11 @@
"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.",
"ShowTrackingTag": "Afficher le code",
- "Sites": "Sites",
+ "Sites": "Sites web",
"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.",
"Timezone": "Fuseau horaire",
"TrackingSiteSearch": "Suivi de la recherche interne sur le site",
diff --git a/plugins/SitesManager/lang/hr.json b/plugins/SitesManager/lang/hr.json
index cc4fdb9442..b446997725 100644
--- a/plugins/SitesManager/lang/hr.json
+++ b/plugins/SitesManager/lang/hr.json
@@ -1,6 +1,8 @@
{
"SitesManager": {
"Currency": "Valuta",
+ "DefaultCurrencyForNewWebsites": "Pretpostavljena valuta za nove stranice",
+ "DefaultTimezoneForNewWebsites": "Pretpostavljena vremenska zona za nove stranice",
"Timezone": "Vremenska zona"
}
} \ No newline at end of file
diff --git a/plugins/SitesManager/lang/is.json b/plugins/SitesManager/lang/is.json
index f5e7f1b285..ac14b7d0d2 100644
--- a/plugins/SitesManager/lang/is.json
+++ b/plugins/SitesManager/lang/is.json
@@ -7,6 +7,7 @@
"Sites": "Vefir",
"Timezone": "Tímabelti",
"TrackingTags": "Eltir merkimiða fyrir %s",
+ "Urls": "URL",
"WebsitesManagement": "Stjórnun Vefja"
}
} \ No newline at end of file
diff --git a/plugins/SitesManager/lang/it.json b/plugins/SitesManager/lang/it.json
index 93076f149b..591078ecc6 100644
--- a/plugins/SitesManager/lang/it.json
+++ b/plugins/SitesManager/lang/it.json
@@ -62,7 +62,7 @@
"SelectDefaultCurrency": "È possibile selezionare la valuta da impostare di default per i nuovi siti web.",
"SelectDefaultTimezone": "Puoi selezionare il fuso orario da caricare di default per i nuovi siti.",
"ShowTrackingTag": "Vedi codice Tracking",
- "Sites": "Siti",
+ "Sites": "Siti web",
"SiteSearchUse": "È possibile utilizzare Piwik per monitorare e creare reports su ciò che i visitatori stanno cercando nel motore di ricerca interno del tuo sito web.",
"SuperUserAccessCan": "Un utente con accesso Super User può anche %sspecificare le impostazioni globali%s per i nuovi siti.",
"Timezone": "Fuso orario",
diff --git a/plugins/SitesManager/lang/ro.json b/plugins/SitesManager/lang/ro.json
index a6be40f03b..7ebe9f0be2 100644
--- a/plugins/SitesManager/lang/ro.json
+++ b/plugins/SitesManager/lang/ro.json
@@ -61,7 +61,7 @@
"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": "Situri",
+ "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.",
"Timezone": "Fus orar",
diff --git a/plugins/SitesManager/lang/ru.json b/plugins/SitesManager/lang/ru.json
index 34ae13a68e..d266cb457e 100644
--- a/plugins/SitesManager/lang/ru.json
+++ b/plugins/SitesManager/lang/ru.json
@@ -49,6 +49,7 @@
"OnlyOneSiteAtTime": "Вы можете только редактировать один сайт в одно и то же время. Пожалуйста, сохраните или отмените ваши текущие изменения к сайту %s.",
"PiwikOffersEcommerceAnalytics": "Эта опция может быть использована для аналитики интернет-магазинов и электронных заказов. Больше информации – здесь: %s Аналитика эл. коммерции%s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Веб-аналитика будет автоматически изымать необходимые параметры сессии (%s).",
+ "PluginDescription": "Управление вебсайтами позволяет добавлять и редактировать их.",
"SearchCategoryDesc": "Piwik также может отслеживать категорию поиска для каждого слова, которое ищут на вашем сайте в поиске.",
"SearchCategoryLabel": "Параметр категорий",
"SearchCategoryParametersDesc": "Вы можете ввести разделенные запятыми список параметров, которые бы определяли категорию поиска.",
diff --git a/plugins/SitesManager/lang/sv.json b/plugins/SitesManager/lang/sv.json
index 1a6d4703fa..291209607a 100644
--- a/plugins/SitesManager/lang/sv.json
+++ b/plugins/SitesManager/lang/sv.json
@@ -61,7 +61,7 @@
"SelectDefaultCurrency": "Du kan välja standardvaluta för nya webbplatser.",
"SelectDefaultTimezone": "Du kan välja standard tidszon för nya webbplatser.",
"ShowTrackingTag": "Visa spårningskod",
- "Sites": "Webbplatser",
+ "Sites": "Webbsidor",
"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.",
"SuperUserAccessCan": "En användare med Superbehörighet kan också %s specificera globala inställningar%s för nya webbsidor.",
"Timezone": "Tidszon",
diff --git a/plugins/SitesManager/lang/tr.json b/plugins/SitesManager/lang/tr.json
index 170eedbb91..2fe091411f 100644
--- a/plugins/SitesManager/lang/tr.json
+++ b/plugins/SitesManager/lang/tr.json
@@ -26,6 +26,7 @@
"ShowTrackingTag": "Takip kodunu göster",
"Sites": "Websiteler",
"Timezone": "Saat dilimi",
+ "Urls": "URL",
"UTCTimeIs": "UTC zamani '%s'",
"WebsitesManagement": "Website Yönetimleri",
"YourCurrentIpAddressIs": "Şuan ki IP numaranız %s"
diff --git a/plugins/SitesManager/lang/vi.json b/plugins/SitesManager/lang/vi.json
index 2d20de9db9..59516d369e 100644
--- a/plugins/SitesManager/lang/vi.json
+++ b/plugins/SitesManager/lang/vi.json
@@ -61,7 +61,7 @@
"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.",
"ShowTrackingTag": "Xem mã theo dõi",
- "Sites": "Các Website",
+ "Sites": "Websites",
"SiteSearchUse": "Bạn có thể sử dụng Piwik để theo dõi và báo cáo những gì khách truy cập đang tìm kiếm trong công cụ tìm kiếm nội bộ thuộc trang web của bạn.",
"Timezone": "Múi giờ",
"TrackingSiteSearch": "Theo dõi việc tìm kiếm trang web nội bộ",
diff --git a/plugins/SitesManager/stylesheets/SitesManager.less b/plugins/SitesManager/stylesheets/SitesManager.less
index f710c3e9dc..40efc13e44 100644
--- a/plugins/SitesManager/stylesheets/SitesManager.less
+++ b/plugins/SitesManager/stylesheets/SitesManager.less
@@ -16,17 +16,29 @@
}
.SitesManager {
+ .wideColumn {
+ min-width: 250px;
+ }
.bottomButtonBar {
- margin-top: 5px
+ margin-top: 9px
}
.visible {
visibility: visible;
}
- .hidden {
+ .hide_only {
visibility: hidden;
}
+ .search_ico {
+
+ cursor: pointer;
+ display: block;
+ left: 205px;
+ margin: -32px 0 17px -21px;
+ position: relative;
+ }
+
.sitesButtonBar {
width:100%;
text-align: center;
@@ -38,6 +50,7 @@
.addRowSite {
font-size: 14px;
+ margin-top: 8px;
}
}
@@ -45,7 +58,7 @@
text-align: center;
display: inline-block;
min-width: 400px;
- margin-top: 7px;
+ margin-top: 10px;
.counter {
margin-left: 10px;
@@ -58,6 +71,12 @@
display: inline-block;
text-align: right;
float: right;
+
+ input {
+ padding-right: 29px;
+ width: 205px;
+ margin-bottom: 7px;
+ }
}
}
diff --git a/plugins/SitesManager/templates/loading.html b/plugins/SitesManager/templates/loading.html
index 55195fd2bf..9f2440787f 100644
--- a/plugins/SitesManager/templates/loading.html
+++ b/plugins/SitesManager/templates/loading.html
@@ -1,4 +1,4 @@
-<div ng-class="{'hidden': !loading && !adminSites.isLoading}">
+<div ng-class="{'hide_only': !loading && !adminSites.isLoading}">
<div class="loadingPiwik">
<img src="plugins/Morpheus/images/loading-blue.gif" alt="{{ 'General_LoadingData'|translate }}" />
{{ 'General_LoadingData'|translate }}
diff --git a/plugins/SitesManager/templates/sites-list/add-site-link.html b/plugins/SitesManager/templates/sites-list/add-site-link.html
index 225da15d5d..b29bb8552f 100644
--- a/plugins/SitesManager/templates/sites-list/add-site-link.html
+++ b/plugins/SitesManager/templates/sites-list/add-site-link.html
@@ -6,7 +6,7 @@
</div>
<div class="paging">
<a class="submit prev"
- ng-class="{'visible': adminSites.hasPrev, 'hidden': !adminSites.hasPrev}"
+ ng-class="{'visible': adminSites.hasPrev, 'hide_only': !adminSites.hasPrev}"
ng-click="adminSites.previousPage()">
<span style="cursor:pointer;">&#171; {{ 'General_Previous'|translate }}</span>
</a>
@@ -19,14 +19,16 @@
</span>
</span>
<a class="submit next"
- ng-class="{'visible': adminSites.hasNext, 'hidden': !adminSites.hasNext}"
+ ng-class="{'visible': adminSites.hasNext, 'hide_only': !adminSites.hasNext}"
ng-click="adminSites.nextPage()">
<span style="cursor:pointer;" class="pointer">{{ 'General_Next'|translate }} &#187;</span>
</a>
</div>
- <div class="search">
+ <div class="search" ng-show="adminSites.hasPrev || adminSites.hasNext || adminSites.searchTerm">
<input ng-model="adminSites.search" piwik-onenter="adminSites.searchSite(adminSites.search)"
placeholder="{{ 'Actions_SubmenuSitesearch' | translate }}" type="text">
- <a class="submit" ng-click="adminSites.searchSite(adminSites.search)">{{ 'General_Search'|translate }}</a>
+ <img ng-click="adminSites.searchSite(adminSites.search)" title="{{ 'General_ClickToSearch' | translate }}"
+ class="search_ico"
+ src="plugins/Morpheus/images/search_ico.png"/>
</div>
</div>
diff --git a/plugins/SitesManager/templates/sites-list/sites-list.html b/plugins/SitesManager/templates/sites-list/sites-list.html
index cae686dd5f..833cd53bbd 100644
--- a/plugins/SitesManager/templates/sites-list/sites-list.html
+++ b/plugins/SitesManager/templates/sites-list/sites-list.html
@@ -6,7 +6,7 @@
<thead>
<tr>
<th>{{ 'General_Id'|translate }}</th>
- <th>{{ 'General_Name'|translate }}</th>
+ <th class="wideColumn">{{ 'General_Name'|translate }}</th>
<th>{{ 'SitesManager_Urls'|translate }}</th>
<th>{{ 'SitesManager_ExcludedIps'|translate }}</th>
<th>{{ 'SitesManager_ExcludedParameters'|translate }}</th>
diff --git a/plugins/TasksTimetable b/plugins/TasksTimetable
-Subproject 15197bb051c3c2281d34365d96cc761e621cef9
+Subproject 42d203f7eaa268dcdab08feb119f8dc9ec453e0
diff --git a/plugins/TestRunner/Runner/Remote.php b/plugins/TestRunner/Runner/Remote.php
index 97296efd05..c2de32236a 100644
--- a/plugins/TestRunner/Runner/Remote.php
+++ b/plugins/TestRunner/Runner/Remote.php
@@ -33,6 +33,7 @@ class Remote
$this->ssh->exec('git fetch --all');
$this->ssh->exec('git checkout ' . trim($gitHash));
$this->ssh->exec('git submodule update --recursive --force');
+ $this->ssh->exec('sudo composer.phar self-update');
$this->ssh->exec('composer.phar install');
}
diff --git a/plugins/TestRunner/TravisYml/TravisYmlView.php b/plugins/TestRunner/TravisYml/TravisYmlView.php
index de18c4dc32..9c4a6a8462 100644
--- a/plugins/TestRunner/TravisYml/TravisYmlView.php
+++ b/plugins/TestRunner/TravisYml/TravisYmlView.php
@@ -29,7 +29,8 @@ class TravisYmlView extends View
'install',
'before_script',
'after_script',
- 'after_success'
+ 'after_success',
+ 'sudo'
);
/**
diff --git a/plugins/TestRunner/templates/travis.yml.twig b/plugins/TestRunner/templates/travis.yml.twig
index eb46330fd4..3f8c221f5d 100644
--- a/plugins/TestRunner/templates/travis.yml.twig
+++ b/plugins/TestRunner/templates/travis.yml.twig
@@ -61,6 +61,8 @@ matrix:
{{ existingMatrix|trim|raw }}
{% endif %}
+sudo: required
+
script: {{ travisShScriptLocation }}
before_install:
diff --git a/plugins/Transitions/lang/fr.json b/plugins/Transitions/lang/fr.json
index 5d7120c15d..e0028e3265 100644
--- a/plugins/Transitions/lang/fr.json
+++ b/plugins/Transitions/lang/fr.json
@@ -16,6 +16,7 @@
"NoDataForAction": "Il n'y a aucune données pour %s",
"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)",
"ToFollowingPages": "Vers des pages internes",
"ToFollowingPagesInline": "%s vers des pages internes",
diff --git a/plugins/TreemapVisualization b/plugins/TreemapVisualization
-Subproject e4b9b76940934b1a0b2a2e266659af756aa6987
+Subproject c48a0ee6ff30109cad5ff9512c5609669d5591b
diff --git a/plugins/UserCountry/Columns/Base.php b/plugins/UserCountry/Columns/Base.php
index d0a3b58118..d599043aba 100644
--- a/plugins/UserCountry/Columns/Base.php
+++ b/plugins/UserCountry/Columns/Base.php
@@ -68,7 +68,7 @@ abstract class Base extends VisitDimension
protected function getUserInfo(Request $request, Visitor $visitor)
{
$ipAddress = $this->getIpAddress($visitor->getVisitorColumn('location_ip'), $request);
- $language = $visitor->getVisitorColumn('location_browser_lang');
+ $language = $request->getBrowserLanguage();
$userInfo = array('lang' => $language, 'ip' => $ipAddress);
diff --git a/plugins/UserCountry/lang/am.json b/plugins/UserCountry/lang/am.json
index 529fc896cb..342a20c1b0 100644
--- a/plugins/UserCountry/lang/am.json
+++ b/plugins/UserCountry/lang/am.json
@@ -4,6 +4,7 @@
"continent_afr": "Africa",
"continent_amn": "North America",
"continent_ams": "South and Central America",
+ "continent_ant": "Antarctica",
"continent_asi": "Asia",
"continent_eur": "Europe",
"continent_oce": "Oceania",
diff --git a/plugins/UserCountry/lang/bn.json b/plugins/UserCountry/lang/bn.json
index 0a33898cd3..cea9ad35c5 100644
--- a/plugins/UserCountry/lang/bn.json
+++ b/plugins/UserCountry/lang/bn.json
@@ -1,5 +1,6 @@
{
"UserCountry": {
+ "continent_ant": "এন্টার্কটিকা",
"country_ac": "অ্যাসসেনশন আইল্যান্ড",
"country_ad": "এ্যান্ডোরা",
"country_ae": "সংযুক্ত আরব আমিরাত",
@@ -204,6 +205,7 @@
"country_sc": "সিসিলি",
"country_sd": "সুদান",
"country_se": "সুইডেন",
+ "country_sf": "ফিন্ল্যাণ্ড",
"country_sg": "সিঙ্গাপুর",
"country_sh": "সেন্ট হেলেনা",
"country_si": "স্লোভানিয়া",
@@ -239,6 +241,7 @@
"country_tz": "তাঞ্জানিয়া",
"country_ua": "ইউক্রেইন",
"country_ug": "উগান্ডা",
+ "country_uk": "গ্রেটবৃটেন",
"country_um": "যুক্তরাষ্ট্রের ক্ষুদ্র ও পার্শ্ববর্তী দ্বীপপুঞ্জ",
"country_us": "মার্কিন যুক্তরাষ্ট্র",
"country_uy": "উরুগোয়ে",
diff --git a/plugins/UserCountry/lang/bs.json b/plugins/UserCountry/lang/bs.json
index 912cca7132..78c2dba63b 100644
--- a/plugins/UserCountry/lang/bs.json
+++ b/plugins/UserCountry/lang/bs.json
@@ -1,5 +1,6 @@
{
"UserCountry": {
+ "continent_ant": "Antarktika",
"country_ac": "Ostrvo Asension",
"country_ad": "Andora",
"country_ae": "Ujedinjeni Arapski Emirati",
@@ -172,7 +173,7 @@
"country_nl": "Holandija",
"country_no": "Norveška",
"country_np": "Nepal",
- "country_nr": "Nauru",
+ "country_nr": "nauru",
"country_nu": "Niue",
"country_nz": "Novi Zeland",
"country_om": "Oman",
@@ -201,6 +202,7 @@
"country_sc": "Sejšeli",
"country_sd": "Sudan",
"country_se": "Švedska",
+ "country_sf": "Finska",
"country_sg": "Singapur",
"country_sh": "Sveta Jelena",
"country_si": "Slovenija",
@@ -227,7 +229,7 @@
"country_tl": "Timor Leste",
"country_tm": "Turkmenistan",
"country_tn": "Tunis",
- "country_to": "Tonga",
+ "country_to": "tonga",
"country_tr": "Turska",
"country_tt": "Trinidad i Tobago",
"country_tv": "Tuvalu",
@@ -235,6 +237,7 @@
"country_tz": "Tanzanija",
"country_ua": "Ukrajina",
"country_ug": "Uganda",
+ "country_uk": "Velika Britanija",
"country_um": "Manja Udaljena Ostrva SAD",
"country_us": "Sjedinjene Američke Države",
"country_uy": "Urugvaj",
diff --git a/plugins/UserCountry/lang/ca.json b/plugins/UserCountry/lang/ca.json
index 4984f8b847..56fd785cf0 100644
--- a/plugins/UserCountry/lang/ca.json
+++ b/plugins/UserCountry/lang/ca.json
@@ -108,7 +108,7 @@
"country_fr": "França",
"country_fx": "França, Metropolitana",
"country_ga": "Gabon",
- "country_gb": "Gran Bretanya",
+ "country_gb": "Regne Unit",
"country_gd": "Grenada",
"country_ge": "Geòrgia",
"country_gf": "Guaiana Francesa",
@@ -339,7 +339,7 @@
"ISPDatabase": "Base de dades de ISP",
"IWantToDownloadFreeGeoIP": "Vull utilitzar la base de dades GeoIP gratuïta...",
"Latitude": "Latitud",
- "Location": "Localització",
+ "Location": "Ubicació",
"LocationDatabase": "Base de dades de Localització",
"LocationDatabaseHint": "Una base de dades de localització és una base de dades de països, regions o ciutats.",
"LocationProvider": "Proveïdor de localitzacions",
diff --git a/plugins/UserCountry/lang/cs.json b/plugins/UserCountry/lang/cs.json
index ec8c6fa57e..e93ee62a53 100644
--- a/plugins/UserCountry/lang/cs.json
+++ b/plugins/UserCountry/lang/cs.json
@@ -15,7 +15,7 @@
"continent_amc": "Střední Amerika",
"continent_amn": "Jižní Amerika",
"continent_ams": "Severní a střední Amerika",
- "continent_ant": "Antarktida",
+ "continent_ant": "Antarctica",
"continent_asi": "Asie",
"continent_eur": "Evropa",
"continent_oce": "Oceanie",
@@ -202,7 +202,7 @@
"country_nl": "Netherlands",
"country_no": "Norway",
"country_np": "Nepal",
- "country_nr": "Nauru",
+ "country_nr": "nauru",
"country_nt": "Neutral Zone",
"country_nu": "Niue",
"country_nz": "New Zealand",
@@ -263,7 +263,7 @@
"country_tl": "East Timor",
"country_tm": "Turkmenistan",
"country_tn": "Tunisia",
- "country_to": "Tonga",
+ "country_to": "tonga",
"country_tp": "East Timor",
"country_tr": "Turkey",
"country_tt": "Trinidad and Tobago",
@@ -272,7 +272,7 @@
"country_tz": "Tanzania, United Republic of",
"country_ua": "Ukraine",
"country_ug": "Uganda",
- "country_uk": "United Kingdom",
+ "country_uk": "Great Britain",
"country_um": "United States Minor Outlying Islands",
"country_us": "United States",
"country_uy": "Uruguay",
@@ -344,7 +344,7 @@
"ISPDatabase": "Databáze ISP",
"IWantToDownloadFreeGeoIP": "Chci stáhnout volnou GeoIP databázi...",
"Latitude": "Zeměpisná šířka",
- "Location": "Místo",
+ "Location": "Umístění",
"LocationDatabase": "Databáze umístění",
"LocationDatabaseHint": "Databáze umístění je databáze zemí, regionů, nebo měst.",
"LocationProvider": "Poskytovatel umístění",
diff --git a/plugins/UserCountry/lang/cy.json b/plugins/UserCountry/lang/cy.json
index b19a8562c7..dcbd2ca8a0 100644
--- a/plugins/UserCountry/lang/cy.json
+++ b/plugins/UserCountry/lang/cy.json
@@ -1,5 +1,6 @@
{
"UserCountry": {
+ "continent_ant": "Antarctica",
"country_ac": "Ynys Ascension",
"country_ad": "Andorra",
"country_ae": "Emiraethau Arabaidd Unedig",
@@ -174,7 +175,7 @@
"country_nl": "Yr Iseldiroedd",
"country_no": "Norwy",
"country_np": "Nepal",
- "country_nr": "Nawrw",
+ "country_nr": "Nawrŵeg",
"country_nu": "Niue",
"country_nz": "Seland Newydd",
"country_om": "Oman",
@@ -203,6 +204,7 @@
"country_sc": "Seychelles",
"country_sd": "Y Swdan",
"country_se": "Sweden",
+ "country_sf": "Y Ffindir",
"country_sg": "Singapore",
"country_sh": "Saint Helena",
"country_si": "Slofenia",
@@ -230,7 +232,7 @@
"country_tl": "Timor-Leste",
"country_tm": "Tyrcmenistan",
"country_tn": "Tiwnisia",
- "country_to": "Tonga",
+ "country_to": "Tongeg",
"country_tr": "Twrci",
"country_tt": "Trinidad a Thobago",
"country_tv": "Twfalw",
@@ -238,6 +240,7 @@
"country_tz": "Tansanïa",
"country_ua": "Wcráin",
"country_ug": "Uganda",
+ "country_uk": "Prydain Fawr",
"country_um": "Mân Ynysoedd Pellenig yr Unol Daleithiau",
"country_us": "Yr Unol Daleithiau",
"country_uy": "Uruguay",
diff --git a/plugins/UserCountry/lang/da.json b/plugins/UserCountry/lang/da.json
index 8cfa2313a1..751492a87e 100644
--- a/plugins/UserCountry/lang/da.json
+++ b/plugins/UserCountry/lang/da.json
@@ -356,6 +356,7 @@
"PeclGeoIPNoDBDir": "PECL-modulet søger efter databaser i %1$s, men denne mappe eksisterer ikke. Opret mappen og tilføj GeoIP databasen. Alternativt kan du indstille %2$s til den rigtige mappe i din php.ini fil.",
"PeclGeoLiteError": "GeoIP database i %1$s hedder %2$s. Desværre kan PECL modulet ikke genkende den med dette navn. Omdøb den til %3$s.",
"PiwikNotManagingGeoIPDBs": "Piwik styrer pt. ikke nogle GeoIP databaser.",
+ "PluginDescription": "Rapporter placeringen af besøgende: land, region, by og geografiske koordinater (længde\/bredde).",
"Region": "Region",
"SetupAutomaticUpdatesOfGeoIP": "Konfigurer automatiske opdateringer af GeoIP databaser",
"SubmenuLocations": "Steder",
diff --git a/plugins/UserCountry/lang/el.json b/plugins/UserCountry/lang/el.json
index 2290f03932..401941144c 100644
--- a/plugins/UserCountry/lang/el.json
+++ b/plugins/UserCountry/lang/el.json
@@ -109,7 +109,7 @@
"country_fr": "Γαλλία",
"country_fx": "Μητροπολιτική Γαλλία",
"country_ga": "Γκαμπόν",
- "country_gb": "Μεγάλη Βρετανία",
+ "country_gb": "Ηνωμένο Βασίλειο",
"country_gd": "Γρενάδα",
"country_ge": "Γεωργία",
"country_gf": "Γαλλική Γουιάνα",
diff --git a/plugins/UserCountry/lang/et.json b/plugins/UserCountry/lang/et.json
index d86c3ff326..48a7f38813 100644
--- a/plugins/UserCountry/lang/et.json
+++ b/plugins/UserCountry/lang/et.json
@@ -7,7 +7,7 @@
"continent_amc": "Kesk-Ameerika",
"continent_amn": "Põhja-Ameerika",
"continent_ams": "Lõuna- ja Kesk-Ameerika",
- "continent_ant": "Antarktika",
+ "continent_ant": "Antartika",
"continent_asi": "Aasia",
"continent_eur": "Euroopa",
"continent_oce": "Okeaania",
@@ -194,7 +194,7 @@
"country_nl": "Holland",
"country_no": "Norra",
"country_np": "Nepaal",
- "country_nr": "Nauuru",
+ "country_nr": "nauru",
"country_nt": "Neutraalne ala",
"country_nu": "Niue",
"country_nz": "Uus-Meremaa",
@@ -255,7 +255,7 @@
"country_tl": "Ida-Timor",
"country_tm": "Türkmenistan",
"country_tn": "Tuneesia",
- "country_to": "Tonga",
+ "country_to": "tonga",
"country_tp": "Ida Timor",
"country_tr": "Türgi",
"country_tt": "Trinidad ja Tobago",
@@ -264,7 +264,7 @@
"country_tz": "Tanzania, Ühendatud Rahvavabariik",
"country_ua": "Ukraina",
"country_ug": "Uganda",
- "country_uk": "Ühendkuningriik",
+ "country_uk": "Suurbritannia",
"country_um": "USA Kariibi mere saared",
"country_us": "Ameerika Ühendriigid",
"country_uy": "Uruguai",
diff --git a/plugins/UserCountry/lang/eu.json b/plugins/UserCountry/lang/eu.json
index 2829412ada..fa0d887da4 100644
--- a/plugins/UserCountry/lang/eu.json
+++ b/plugins/UserCountry/lang/eu.json
@@ -4,6 +4,7 @@
"continent_afr": "Afrika",
"continent_amn": "Iparramerika",
"continent_ams": "Hegoamerika eta ertamerika",
+ "continent_ant": "Antartika",
"continent_asi": "Asia",
"continent_eur": "Europa",
"continent_oce": "Ozeania",
@@ -93,7 +94,7 @@
"country_fr": "Frantzia",
"country_fx": "Frantzia, Metropolia",
"country_ga": "Gabon",
- "country_gb": "Britainia Handia",
+ "country_gb": "Erresuma Batua",
"country_gd": "Grenada",
"country_ge": "Georgia",
"country_gf": "Guyana Frantsesa",
diff --git a/plugins/UserCountry/lang/fa.json b/plugins/UserCountry/lang/fa.json
index b1538dac7a..43d478b435 100644
--- a/plugins/UserCountry/lang/fa.json
+++ b/plugins/UserCountry/lang/fa.json
@@ -10,7 +10,7 @@
"continent_amc": "آمریکای مرکزی",
"continent_amn": "آمریکای شمالی",
"continent_ams": "آمریکای جنوبی",
- "continent_ant": "آنتراکتیکا",
+ "continent_ant": "آنتراکتیکا -قطب",
"continent_asi": "آسیا",
"continent_eur": "اروپا",
"continent_oce": "اقیانوسیه",
@@ -96,7 +96,7 @@
"country_es": "اسپانیا",
"country_et": "اتیوپی",
"country_eu": "اتحادیه اروپا",
- "country_fi": "فنلاند",
+ "country_fi": "فلاند",
"country_fj": "فی جی",
"country_fk": "جزایر فالکلند (مالویناس)",
"country_fm": "میکرونزی، ایالات فدرال",
@@ -197,7 +197,7 @@
"country_nl": "هلند",
"country_no": "نروژ",
"country_np": "نپال",
- "country_nr": "نائورو",
+ "country_nr": "نائورویی",
"country_nt": "خنثی منطقه",
"country_nu": "نیوئه",
"country_nz": "نیوزیلند",
@@ -258,7 +258,7 @@
"country_tl": "تیمور لیسته",
"country_tm": "ترکمنستان",
"country_tn": "تانزانیا",
- "country_to": "تونگا",
+ "country_to": "تونگایی",
"country_tp": "تیمور شرقی",
"country_tr": "ترکیه",
"country_tt": "ترینیداد و توباگو",
diff --git a/plugins/UserCountry/lang/fi.json b/plugins/UserCountry/lang/fi.json
index 4b0e11ab47..fecd719651 100644
--- a/plugins/UserCountry/lang/fi.json
+++ b/plugins/UserCountry/lang/fi.json
@@ -15,7 +15,7 @@
"continent_amc": "Keski-Amerikka",
"continent_amn": "Pohjois-Amerikka",
"continent_ams": "Etelä- ja Keski-Amerikka",
- "continent_ant": "Etelänapamanner",
+ "continent_ant": "Antarctica",
"continent_asi": "Aasia",
"continent_eur": "Eurooppa",
"continent_oce": "Oseania",
@@ -202,7 +202,7 @@
"country_nl": "Alankomaat",
"country_no": "Norja",
"country_np": "Nepal",
- "country_nr": "Nauru",
+ "country_nr": "naurun kieli",
"country_nt": "Neutraali alue",
"country_nu": "Niue",
"country_nz": "Uusi-Seelanti",
@@ -263,7 +263,7 @@
"country_tl": "East Timor",
"country_tm": "Turkmenistan",
"country_tn": "Tunisia",
- "country_to": "Tonga",
+ "country_to": "tonga",
"country_tp": "Itä-Timor",
"country_tr": "Turkki",
"country_tt": "Trinidad ja Tobago",
diff --git a/plugins/UserCountry/lang/fr.json b/plugins/UserCountry/lang/fr.json
index 6ebdd279c1..a205a5733c 100644
--- a/plugins/UserCountry/lang/fr.json
+++ b/plugins/UserCountry/lang/fr.json
@@ -109,7 +109,7 @@
"country_fr": "France",
"country_fx": "France métropolitaine",
"country_ga": "Gabon",
- "country_gb": "Grande Bretagne",
+ "country_gb": "Royaume-Uni",
"country_gd": "Grenade",
"country_ge": "Géorgie",
"country_gf": "Guyane Française",
@@ -356,6 +356,7 @@
"PeclGeoIPNoDBDir": "Le module PECL s'attend à trouver les bases de données dans %1$s, mais ce répertoire n'existe pas. Veuillez le créer et ajoutez-y les bases de données GéoIP. Autrement vous pouvez paramétrer %2$s pour corriger le répertoire dans votre fichier php.ini.",
"PeclGeoLiteError": "Votre base de données GeoIP dans %1$s est nommée %2$s. Malheureusement, le module PECL ne la reconnaitra pas avec ce nom. Veuillez la renommer %3$s.",
"PiwikNotManagingGeoIPDBs": "Piwik ne gère actuellement aucune base de données GeoIP.",
+ "PluginDescription": "Rapports sur l'emplacement de vos visiteurs: pays, région, ville et coordonnées géographiques (latitude\/longitude).",
"Region": "Région",
"SetupAutomaticUpdatesOfGeoIP": "Configurer les mises à jour automatiques des bases de données GeoIP",
"SubmenuLocations": "Provenances géographiques",
diff --git a/plugins/UserCountry/lang/gl.json b/plugins/UserCountry/lang/gl.json
index 2136c511aa..eef7d5796c 100644
--- a/plugins/UserCountry/lang/gl.json
+++ b/plugins/UserCountry/lang/gl.json
@@ -4,6 +4,7 @@
"continent_afr": "África",
"continent_amn": "América do Norte",
"continent_ams": "América do Sur e Central",
+ "continent_ant": "Antártida",
"continent_asi": "Asia",
"continent_eur": "Europa",
"continent_oce": "Oceanía",
@@ -90,7 +91,7 @@
"country_fo": "Islas Feroe",
"country_fr": "Francia",
"country_ga": "Gabón",
- "country_gb": "Gran Bretaña",
+ "country_gb": "Reino Unido",
"country_gd": "Granada",
"country_ge": "Xeorxia",
"country_gf": "Guayana Francesa",
@@ -212,6 +213,7 @@
"country_sc": "Seychelles",
"country_sd": "Sudán",
"country_se": "Suiza",
+ "country_sf": "Finlandia",
"country_sg": "Singapur",
"country_sh": "Santa Helena",
"country_si": "Eslovenia",
@@ -240,7 +242,7 @@
"country_tl": "Timor Leste",
"country_tm": "Turkmenistán",
"country_tn": "Túnez",
- "country_to": "Tonga",
+ "country_to": "tonganés",
"country_tp": "Timor Oriental",
"country_tr": "Turquía",
"country_tt": "Trinidade e Tobago",
diff --git a/plugins/UserCountry/lang/he.json b/plugins/UserCountry/lang/he.json
index b12787fb5c..17b67f2846 100644
--- a/plugins/UserCountry/lang/he.json
+++ b/plugins/UserCountry/lang/he.json
@@ -7,7 +7,7 @@
"continent_amc": "מרכז אמריקה",
"continent_amn": "צפון אמריקה",
"continent_ams": "דרום אמריקה",
- "continent_ant": "אנטרטיקה",
+ "continent_ant": "אנטארקטיקה",
"continent_asi": "אסיה",
"continent_eur": "אירופה",
"continent_oce": "אוקייניה",
@@ -194,7 +194,7 @@
"country_nl": "הולנד",
"country_no": "נורווגיה",
"country_np": "נפאל",
- "country_nr": "נאורו",
+ "country_nr": "נאורית",
"country_nt": "אזור נטרלי",
"country_nu": "ניווה",
"country_nz": "ניו זילנד",
@@ -255,7 +255,7 @@
"country_tl": "מזרח טימור",
"country_tm": "טורקמניסטן",
"country_tn": "תוניסיה",
- "country_to": "טונגה",
+ "country_to": "טונגאית",
"country_tp": "מזרח טימור",
"country_tr": "טורקיה",
"country_tt": "טרינידד וטובגו",
diff --git a/plugins/UserCountry/lang/hi.json b/plugins/UserCountry/lang/hi.json
index 501058f4f1..e4ef90009d 100644
--- a/plugins/UserCountry/lang/hi.json
+++ b/plugins/UserCountry/lang/hi.json
@@ -14,7 +14,7 @@
"continent_amc": "मध्य अमेरिका",
"continent_amn": "उत्तरी अमेरिका",
"continent_ams": "दक्षिण अमेरिका",
- "continent_ant": "अंटार्टिका",
+ "continent_ant": "अंटार्कटिका",
"continent_asi": "एशिया",
"continent_eur": "यूरोप",
"continent_oce": "ओशिनिया",
@@ -66,7 +66,7 @@
"country_cc": "कोकोस द्वीप",
"country_cd": "कोंगो जनतांत्रिक गणतंत्र",
"country_cf": "सेंट्रल अफ्रीकन रिपब्लिक",
- "country_cg": "कांगो",
+ "country_cg": "कोंगो",
"country_ch": "स्विस",
"country_ci": "आईवरी कोस्ट",
"country_ck": "कुक द्वीपसमूह",
@@ -99,7 +99,7 @@
"country_es": "स्पेन",
"country_et": "इथियोपिया",
"country_eu": "यूरोपीय संघ",
- "country_fi": "फिनलैंड",
+ "country_fi": "फ़िनलैंड",
"country_fj": "फिजी",
"country_fk": "फ़ॉकलैंड द्वीप",
"country_fm": "माइक्रोनेशिया",
@@ -107,7 +107,7 @@
"country_fr": "फ्रांस",
"country_fx": "फ्रांस महानगर",
"country_ga": "गैबॉन",
- "country_gb": "ब्रितन",
+ "country_gb": "यूनाइटेड किंगडम",
"country_gd": "ग्रेनेडा",
"country_ge": "जॉर्जिया",
"country_gf": "फ़्रांसीसी गिआना",
@@ -200,7 +200,7 @@
"country_nl": "नीदरलैण्ड",
"country_no": "नॉर्वे",
"country_np": "नेपाल",
- "country_nr": "नाउरु",
+ "country_nr": "नाउरू",
"country_nt": "तटस्थ क्षेत्र",
"country_nu": "नीयू",
"country_nz": "न्यूज़ीलैंड",
@@ -240,7 +240,7 @@
"country_sl": "सियरालेओन",
"country_sm": "सैन मेरीनो",
"country_sn": "सेनेगल",
- "country_so": "सोमालिया",
+ "country_so": "सोमाली",
"country_sr": "सुरिनाम",
"country_ss": "दक्षिण सूडान",
"country_st": "साउ-तोम-प्रिंसिप",
diff --git a/plugins/UserCountry/lang/hr.json b/plugins/UserCountry/lang/hr.json
index d1d0d906ec..4ffe8d6975 100644
--- a/plugins/UserCountry/lang/hr.json
+++ b/plugins/UserCountry/lang/hr.json
@@ -1,7 +1,19 @@
{
"UserCountry": {
+ "City": "Grad",
+ "CityAndCountry": "%1$s, %2$s",
"Continent": "Kontinent",
+ "continent_afr": "Afrika",
+ "continent_amc": "Centralna Amerika",
+ "continent_amn": "Sjeverna Amerika",
+ "continent_ams": "Južna Amerika",
+ "continent_ant": "Antarktik",
+ "continent_asi": "Azija",
+ "continent_eur": "Evropa",
+ "continent_oce": "Oceanija",
"Country": "Država",
+ "country_a1": "Anonimni Proxy",
+ "country_a2": "Satelitski pružatelj usluga",
"country_ac": "Otok Ascension",
"country_ad": "Andora",
"country_ae": "Ujedinjeni Arapski Emirati",
@@ -12,6 +24,7 @@
"country_am": "Armenija",
"country_an": "Nizozemski Antili",
"country_ao": "Angola",
+ "country_ap": "Azija\/Pacifik",
"country_aq": "Antarktik",
"country_ar": "Argentina",
"country_as": "Američka Samoa",
@@ -77,6 +90,7 @@
"country_er": "Eritreja",
"country_es": "Španjolska",
"country_et": "Etiopija",
+ "country_eu": "Evropska unija",
"country_fi": "Finska",
"country_fj": "Fidži",
"country_fk": "Falklandski Otoci",
@@ -177,7 +191,7 @@
"country_nl": "Nizozemska",
"country_no": "Norveška",
"country_np": "Nepal",
- "country_nr": "Nauru",
+ "country_nr": "nauru",
"country_nu": "Niue",
"country_nz": "Novi Zeland",
"country_om": "Oman",
@@ -206,6 +220,7 @@
"country_sc": "Sejšeli",
"country_sd": "Sudan",
"country_se": "Švedska",
+ "country_sf": "Finska",
"country_sg": "Singapur",
"country_sh": "Sveta Helena",
"country_si": "Slovenija",
@@ -228,12 +243,14 @@
"country_tf": "Francuski Južni Teritoriji",
"country_tg": "Togo",
"country_th": "Tajland",
+ "country_ti": "Tibet",
"country_tj": "Tadžikistan",
"country_tk": "Tokelau",
"country_tl": "Istočni Timor",
"country_tm": "Turkmenistan",
"country_tn": "Tunis",
- "country_to": "Tonga",
+ "country_to": "tonga",
+ "country_tp": "Istočni Timor",
"country_tr": "Turska",
"country_tt": "Trinidad i Tobago",
"country_tv": "Tuvalu",
@@ -241,6 +258,7 @@
"country_tz": "Tanzanija",
"country_ua": "Ukrajina",
"country_ug": "Uganda",
+ "country_uk": "Velika Britanija",
"country_um": "Ujedinjene Države Manjih Pacifičkih Otoka",
"country_us": "Sjedinjene Države",
"country_uy": "Urugvaj",
@@ -256,8 +274,10 @@
"country_ws": "Samoa",
"country_ye": "Jemen",
"country_yt": "Majote",
+ "country_yu": "Jugoslavija",
"country_za": "Južnoafrička Republika",
"country_zm": "Zambija",
+ "country_zr": "Zair",
"country_zw": "Zimbabve",
"Location": "Lokacija",
"SubmenuLocations": "Lokacije"
diff --git a/plugins/UserCountry/lang/hu.json b/plugins/UserCountry/lang/hu.json
index d8090f7b9c..e1c7f3f418 100644
--- a/plugins/UserCountry/lang/hu.json
+++ b/plugins/UserCountry/lang/hu.json
@@ -5,7 +5,7 @@
"continent_amc": "Közép-Amerika",
"continent_amn": "Észak-Amerika",
"continent_ams": "Dél- és Közép-Amerika",
- "continent_ant": "Antarktisz",
+ "continent_ant": "Északi-sark",
"continent_asi": "Ázsia",
"continent_eur": "Európa",
"continent_oce": "Óceánia",
@@ -261,7 +261,7 @@
"country_tz": "Tanzánia",
"country_ua": "Ukrajna",
"country_ug": "Uganda",
- "country_uk": "Egyesült Királyság",
+ "country_uk": "Nagy-Britannia",
"country_um": "Egyesült Államok külső szigetei",
"country_us": "Amerikai Egyesült Államok",
"country_uy": "Uruguay",
diff --git a/plugins/UserCountry/lang/id.json b/plugins/UserCountry/lang/id.json
index acffd6df46..a5a0349b47 100644
--- a/plugins/UserCountry/lang/id.json
+++ b/plugins/UserCountry/lang/id.json
@@ -67,7 +67,7 @@
"country_cc": "Kepulauan Cocos (Keeling)",
"country_cd": "Republik Demokratik Kongo",
"country_cf": "Republik Afrika Tengah",
- "country_cg": "Republik Kongo",
+ "country_cg": "Kongo",
"country_ch": "Konfederasi Swiss",
"country_ci": "Pantai Gading",
"country_ck": "Kepulauan Cook",
@@ -100,7 +100,7 @@
"country_es": "Kerajaan Spanyol",
"country_et": "Republik Demokratik Federal Ethiopia",
"country_eu": "Uni Eropa",
- "country_fi": "Republik Finlandia",
+ "country_fi": "Finlandia",
"country_fj": "Republik Kepulauan Fiji",
"country_fk": "Kepulauan Falkland (Malvinas)",
"country_fm": "Negara Federal Mikronesia",
@@ -241,7 +241,7 @@
"country_sl": "Sierra Leone",
"country_sm": "San Marino",
"country_sn": "Senegal",
- "country_so": "Somalia",
+ "country_so": "Somali",
"country_sr": "Suriname",
"country_ss": "Sudan Selatan",
"country_st": "São Tomé dan Príncipe",
diff --git a/plugins/UserCountry/lang/is.json b/plugins/UserCountry/lang/is.json
index 2284ff6293..b00dc96be7 100644
--- a/plugins/UserCountry/lang/is.json
+++ b/plugins/UserCountry/lang/is.json
@@ -5,7 +5,7 @@
"continent_amc": "Mið Ameríka",
"continent_amn": "Norður Ameríka",
"continent_ams": "Suður Ameríka",
- "continent_ant": "Suðurskautið",
+ "continent_ant": "Suðurskautslandið",
"continent_asi": "Asía",
"continent_eur": "Evrópa",
"continent_oce": "Eyjaálfa",
@@ -190,7 +190,7 @@
"country_nl": "Holland",
"country_no": "Noregur",
"country_np": "Nepal",
- "country_nr": "Nárú",
+ "country_nr": "nárúska",
"country_nu": "Niue",
"country_nz": "Nýja-Sjáland",
"country_o1": "Annað land",
@@ -249,7 +249,7 @@
"country_tl": "Austur-Tímor",
"country_tm": "Túrkmenistan",
"country_tn": "Túnis",
- "country_to": "Tonga",
+ "country_to": "Tongverska (Tongaeyjar)",
"country_tp": "Austur-Tímor",
"country_tr": "Tyrkland",
"country_tt": "Trínidad og Tóbagó",
diff --git a/plugins/UserCountry/lang/it.json b/plugins/UserCountry/lang/it.json
index 7a001637c9..e92f24ce7e 100644
--- a/plugins/UserCountry/lang/it.json
+++ b/plugins/UserCountry/lang/it.json
@@ -15,7 +15,7 @@
"continent_amc": "America Centrale",
"continent_amn": "America del Nord",
"continent_ams": "America Centro-Meridionale",
- "continent_ant": "Antartica",
+ "continent_ant": "Antartide",
"continent_asi": "Asia",
"continent_eur": "Europa",
"continent_oce": "Oceania",
@@ -268,7 +268,6 @@
"country_tr": "Turchia",
"country_tt": "Trinidad e Tobago",
"country_tv": "Tuvalu",
- "country_tw": "Repubblica di Cina",
"country_tz": "Tanzania",
"country_ua": "Ucraina",
"country_ug": "Uganda",
@@ -344,7 +343,7 @@
"ISPDatabase": "Database ISP",
"IWantToDownloadFreeGeoIP": "Voglio scaricare il database gratuito GeoIP...",
"Latitude": "Latitudine",
- "Location": "Località",
+ "Location": "Posizione",
"LocationDatabase": "Database Località",
"LocationDatabaseHint": "Un database località è un database di nazioni, regioni o città.",
"LocationProvider": "Localizzatore di Posizione",
diff --git a/plugins/UserCountry/lang/ja.json b/plugins/UserCountry/lang/ja.json
index 19489834b0..831e7a0088 100644
--- a/plugins/UserCountry/lang/ja.json
+++ b/plugins/UserCountry/lang/ja.json
@@ -15,7 +15,7 @@
"continent_amc": "中央アメリカ",
"continent_amn": "北アメリカ",
"continent_ams": "南アメリカ",
- "continent_ant": "南極",
+ "continent_ant": "南極大陸",
"continent_asi": "アジア",
"continent_eur": "ヨーロッパ",
"continent_oce": "オセアニア",
@@ -109,7 +109,7 @@
"country_fr": "フランス",
"country_fx": "フランス(本国)",
"country_ga": "ガボン",
- "country_gb": "グレートブリテン島(英)",
+ "country_gb": "イギリス",
"country_gd": "グレナダ",
"country_ge": "グルジア",
"country_gf": "フランス領ギアナ",
@@ -202,7 +202,7 @@
"country_nl": "オランダ",
"country_no": "ノルウェー",
"country_np": "ネパール",
- "country_nr": "ナウル",
+ "country_nr": "ナウル語",
"country_nt": "中立地帯",
"country_nu": "ニウエ(ニュージーランド)",
"country_nz": "ニュージーランド",
@@ -263,7 +263,7 @@
"country_tl": "東ティモール(インドネシア領)",
"country_tm": "トルクメニスタン",
"country_tn": "チュニジア",
- "country_to": "トンガ",
+ "country_to": "トンガ語",
"country_tp": "東ティモール(旧ドメイン)",
"country_tr": "トルコ",
"country_tt": "トリニダードトバゴ",
@@ -343,7 +343,7 @@
"ISPDatabase": "ISP データベース",
"IWantToDownloadFreeGeoIP": "私は無償の GeoIP データベースをダウンロードします。",
"Latitude": "緯度",
- "Location": "場所",
+ "Location": "位置情報",
"LocationDatabase": "ロケーションデータベース",
"LocationDatabaseHint": "位置情報データベースは、国、地域、都市データベースのいづれかです。",
"LocationProvider": "ロケーションプロバイダ",
diff --git a/plugins/UserCountry/lang/ko.json b/plugins/UserCountry/lang/ko.json
index 1f428aeff7..bf00fe7224 100644
--- a/plugins/UserCountry/lang/ko.json
+++ b/plugins/UserCountry/lang/ko.json
@@ -67,7 +67,7 @@
"country_cc": "코코스 아일랜드",
"country_cd": "콩고 민주 공화국",
"country_cf": "중앙 아프리카",
- "country_cg": "콩고",
+ "country_cg": "콩고어",
"country_ch": "스위스",
"country_ci": "코트디부아르",
"country_ck": "쿡 아일랜드",
@@ -108,7 +108,7 @@
"country_fr": "프랑스",
"country_fx": "프랑스, 메트로폴리탄",
"country_ga": "가봉",
- "country_gb": "대영제국",
+ "country_gb": "영국",
"country_gd": "그레나다",
"country_ge": "그루지아",
"country_gf": "가이아나 프랑스령",
@@ -201,7 +201,7 @@
"country_nl": "네덜란드",
"country_no": "노르웨이",
"country_np": "네팔",
- "country_nr": "나우루",
+ "country_nr": "나우루어",
"country_nt": "중성대",
"country_nu": "니우에",
"country_nz": "뉴질랜드",
@@ -241,7 +241,7 @@
"country_sl": "시에라리온",
"country_sm": "산마리노",
"country_sn": "세네갈",
- "country_so": "소말리아",
+ "country_so": "소말리어",
"country_sr": "수리남",
"country_ss": "남부 수단",
"country_st": "상투메프린시페",
@@ -262,7 +262,7 @@
"country_tl": "동티모르",
"country_tm": "투르크메니스탄",
"country_tn": "튀니지아",
- "country_to": "통가",
+ "country_to": "통가어",
"country_tp": "동티모르",
"country_tr": "터키",
"country_tt": "트리니다드 토바고",
diff --git a/plugins/UserCountry/lang/lt.json b/plugins/UserCountry/lang/lt.json
index 08ecb0bfef..1698b1d666 100644
--- a/plugins/UserCountry/lang/lt.json
+++ b/plugins/UserCountry/lang/lt.json
@@ -5,7 +5,7 @@
"continent_amc": "Centrinė Amerika",
"continent_amn": "Šiaurės Amerika",
"continent_ams": "Pietų ir Centrinė Amerika",
- "continent_ant": "Antarktida",
+ "continent_ant": "Antarctica",
"continent_asi": "Azija",
"continent_eur": "Europa",
"continent_oce": "Okeanija",
@@ -192,7 +192,7 @@
"country_nl": "Netherlands",
"country_no": "Norway",
"country_np": "Nepal",
- "country_nr": "Nauru",
+ "country_nr": "naurų",
"country_nt": "Neutral Zone",
"country_nu": "Niue",
"country_nz": "New Zealand",
@@ -223,7 +223,7 @@
"country_sc": "Seychelles",
"country_sd": "Sudan",
"country_se": "Sweden",
- "country_sf": "Finland",
+ "country_sf": "Suomija",
"country_sg": "Singapore",
"country_sh": "Saint Helena",
"country_si": "Slovenia",
@@ -252,7 +252,7 @@
"country_tl": "East Timor",
"country_tm": "Turkmenistan",
"country_tn": "Tunisia",
- "country_to": "Tonga",
+ "country_to": "tonga",
"country_tp": "East Timor",
"country_tr": "Turkey",
"country_tt": "Trinidad and Tobago",
@@ -261,7 +261,7 @@
"country_tz": "Tanzania, United Republic of",
"country_ua": "Ukraine",
"country_ug": "Uganda",
- "country_uk": "Jungtinė Karalystė",
+ "country_uk": "Didžioji Britanija",
"country_um": "United States Minor Outlying Islands",
"country_us": "Jungtinės Valstijos",
"country_uy": "Uruguay",
diff --git a/plugins/UserCountry/lang/nb.json b/plugins/UserCountry/lang/nb.json
index cf1cb595f9..7f80609ada 100644
--- a/plugins/UserCountry/lang/nb.json
+++ b/plugins/UserCountry/lang/nb.json
@@ -10,7 +10,7 @@
"continent_amc": "Mellom-Amerika",
"continent_amn": "Nord-Amerika",
"continent_ams": "Sør- og Sentral-Ameria",
- "continent_ant": "Antarktis",
+ "continent_ant": "Antarktika",
"continent_asi": "Asia",
"continent_eur": "Europa",
"continent_oce": "Australia",
@@ -194,7 +194,7 @@
"country_nl": "Nederland",
"country_no": "Norge",
"country_np": "Nepal",
- "country_nr": "Nauru",
+ "country_nr": "nauru",
"country_nt": "Den nøytrale sona",
"country_nu": "Niue",
"country_nz": "New Zealand",
@@ -255,7 +255,7 @@
"country_tl": "Øst-Timor",
"country_tm": "Turkmenistan",
"country_tn": "Tunisia",
- "country_to": "Tonga",
+ "country_to": "tongansk",
"country_tp": "Øst-Timor",
"country_tr": "Tyrkia",
"country_tt": "Trinidad og Tobago",
@@ -264,7 +264,7 @@
"country_tz": "Tanzania, Forbundsrepublikken",
"country_ua": "Ukraina",
"country_ug": "Uganda",
- "country_uk": "England",
+ "country_uk": "Storbritannia",
"country_um": "Mindre utenforliggende øyer til USA",
"country_us": "USA",
"country_uy": "Uruguay",
@@ -297,7 +297,7 @@
"HowToInstallGeoIPDatabases": "Hvordan får jeg GeoIP databasene?",
"ISPDatabase": "ISP-database",
"Latitude": "Breddegrad",
- "Location": "Lokasjon",
+ "Location": "Sted",
"Longitude": "Lengdegrad",
"Organization": "Organisasjon",
"Region": "Region",
diff --git a/plugins/UserCountry/lang/nl.json b/plugins/UserCountry/lang/nl.json
index 67d57bf999..3ac3a5174d 100644
--- a/plugins/UserCountry/lang/nl.json
+++ b/plugins/UserCountry/lang/nl.json
@@ -11,7 +11,7 @@
"continent_amc": "Centraal-Amerika",
"continent_amn": "Noord-Amerika",
"continent_ams": "Zuid en Centraal-Amerika",
- "continent_ant": "Antarctica",
+ "continent_ant": "Antartica",
"continent_asi": "Azië",
"continent_eur": "Europa",
"continent_oce": "Oceanië",
diff --git a/plugins/UserCountry/lang/nn.json b/plugins/UserCountry/lang/nn.json
index 42a3559ab4..1b65b3b1e5 100644
--- a/plugins/UserCountry/lang/nn.json
+++ b/plugins/UserCountry/lang/nn.json
@@ -192,7 +192,7 @@
"country_nl": "Nederland",
"country_no": "Noreg",
"country_np": "Nepal",
- "country_nr": "Nauru",
+ "country_nr": "nauru",
"country_nt": "Nøytral sone",
"country_nu": "Niue",
"country_nz": "New Zealand",
@@ -253,7 +253,7 @@
"country_tl": "Aust Timor",
"country_tm": "Turkmenistan",
"country_tn": "Tunisia",
- "country_to": "Tonga",
+ "country_to": "tonga (Tonga-øyane)",
"country_tp": "East Timor",
"country_tr": "Tyrkia",
"country_tt": "Trinidad and Tobago",
diff --git a/plugins/UserCountry/lang/pl.json b/plugins/UserCountry/lang/pl.json
index e4012cd14b..199315a436 100644
--- a/plugins/UserCountry/lang/pl.json
+++ b/plugins/UserCountry/lang/pl.json
@@ -105,7 +105,7 @@
"country_fr": "Francja",
"country_fx": "Francja metropolitarna",
"country_ga": "Gabon",
- "country_gb": "Wielka Brytania",
+ "country_gb": "Zjednoczone Królestwo",
"country_gd": "Grenada",
"country_ge": "Gruzja",
"country_gf": "Gujana Francuska",
@@ -198,7 +198,7 @@
"country_nl": "Niderlandy",
"country_no": "Norwegia",
"country_np": "Nepal",
- "country_nr": "Nauru",
+ "country_nr": "nauru",
"country_nt": "Strefa neutralna",
"country_nu": "Niue",
"country_nz": "Nowa Zelandia",
@@ -259,7 +259,7 @@
"country_tl": "Timor Wschodni",
"country_tm": "Turkmenistan",
"country_tn": "Tunezja",
- "country_to": "Tonga",
+ "country_to": "tonga",
"country_tp": "Timor Wschodni",
"country_tr": "Turcja",
"country_tt": "Trynidad i Tobago",
diff --git a/plugins/UserCountry/lang/pt-br.json b/plugins/UserCountry/lang/pt-br.json
index 78f8a24631..96daa56afc 100644
--- a/plugins/UserCountry/lang/pt-br.json
+++ b/plugins/UserCountry/lang/pt-br.json
@@ -15,7 +15,7 @@
"continent_amc": "América Central",
"continent_amn": "América do Norte",
"continent_ams": "América do Sul e Central",
- "continent_ant": "Antártica",
+ "continent_ant": "Antártida",
"continent_asi": "Ásia",
"continent_eur": "Europa",
"continent_oce": "Oceania",
@@ -109,7 +109,7 @@
"country_fr": "França",
"country_fx": "França, região Metropolitana",
"country_ga": "Gabão",
- "country_gb": "Grã Bretanha",
+ "country_gb": "Reino Unido",
"country_gd": "Granada",
"country_ge": "Geórgia",
"country_gf": "Guiana Francesa",
diff --git a/plugins/UserCountry/lang/pt.json b/plugins/UserCountry/lang/pt.json
index a5be6fcd3f..835e7fcdbc 100644
--- a/plugins/UserCountry/lang/pt.json
+++ b/plugins/UserCountry/lang/pt.json
@@ -5,7 +5,7 @@
"continent_amc": "América Central",
"continent_amn": "América do Norte",
"continent_ams": "América do Sul e Central",
- "continent_ant": "Antártica",
+ "continent_ant": "Antárctica",
"continent_asi": "Ásia",
"continent_eur": "Europa",
"continent_oce": "Oceânia",
@@ -99,7 +99,7 @@
"country_fr": "França",
"country_fx": "França Metropolitana",
"country_ga": "Gabão",
- "country_gb": "Grã Bretanha",
+ "country_gb": "Reino Unido",
"country_gd": "Grenada",
"country_ge": "Geórgia",
"country_gf": "Guiana Francesa",
@@ -192,7 +192,7 @@
"country_nl": "Holanda",
"country_no": "Noruega",
"country_np": "Nepal",
- "country_nr": "Nauru",
+ "country_nr": "nauruano",
"country_nt": "Zona Neutra",
"country_nu": "Niue",
"country_nz": "Nova Zelândia",
diff --git a/plugins/UserCountry/lang/ro.json b/plugins/UserCountry/lang/ro.json
index 184e413275..b3078ca2bd 100644
--- a/plugins/UserCountry/lang/ro.json
+++ b/plugins/UserCountry/lang/ro.json
@@ -109,7 +109,7 @@
"country_fr": "France",
"country_fx": "France, Metropolitan",
"country_ga": "Gabon",
- "country_gb": "Great Britain",
+ "country_gb": "United Kingdom",
"country_gd": "Grenada",
"country_ge": "Georgia",
"country_gf": "French Guyana",
@@ -344,7 +344,7 @@
"ISPDatabase": "Baza de date provideri internet",
"IWantToDownloadFreeGeoIP": "Vreau să descarc gratuit baza de date GeoIP ...",
"Latitude": "Latitudine",
- "Location": "Locaţie",
+ "Location": "Localitate",
"LocationDatabase": "Locatie baza de date",
"LocationDatabaseHint": "O locatie bază de date este fie o țară, regiune sau oraș baza de date.",
"LocationProvider": "Locație Provider",
diff --git a/plugins/UserCountry/lang/ru.json b/plugins/UserCountry/lang/ru.json
index 470ed8c0fc..b0648ba080 100644
--- a/plugins/UserCountry/lang/ru.json
+++ b/plugins/UserCountry/lang/ru.json
@@ -311,6 +311,7 @@
"GeoIpLocationProviderDesc_ServerBased1": "Определение локации основано на модуле GeoIP, который был установлен на ваш HTTP-сервер. Это работает быстрее и точнее, но %1$sможет быть использовано только при отслеживании посетителей, которые пользуются обычными браузерами.%2$s",
"GeoIpLocationProviderDesc_ServerBased2": "Если вам нужно импортировать лог-файлы или сделать что-то, требующее наличие IP адресов, используйте %1$s встраиваемый PECL GeoIP (рекомендуется)%2$s или %3$s встраиваемый PHP GeoIP %4$s.",
"GeoIpLocationProviderDesc_ServerBasedAnonWarn": "Подсказка: анонимизация IP не оказывает на эффект на получение локации пользователей таким способом. Перед тем, как использовать его с анонимизацией IP, убедитесь, что это не противоречит законодательству вашей страны.",
+ "GeoIpLocationProviderNotRecomnended": "Геолокация работает, но вы не используете один из рекомендованных провайдеров.",
"GeoIPNoServerVars": "Piwik не может найти GeoIP %s переменные.",
"GeoIPPeclCustomDirNotSet": "PHP ini опция %s не установлена.",
"GeoIPServerVarsFound": "Piwik нашёл следующие переменные GeoIP: %s",
@@ -350,12 +351,14 @@
"PeclGeoIPNoDBDir": "PECL модуль обращается к базам в %1$s, но это директория не существует. Пожалуйста, создайте ее и добавьте в нее базу данных GeoIP. Или вы можете установить %2$s в правильную директорию в вашем php.ini файле.",
"PeclGeoLiteError": "Ваша БД GeoIP в %1$s названа %2$s. К сожалению, PECL модуь не сможет распознать такое имя. Пожалуйста, переименуйте это в %3$s.",
"PiwikNotManagingGeoIPDBs": "Piwik в настоящее время не работает с базами GeoIP.",
+ "PluginDescription": "Сообщает местонахождение посетителей: страна, регион, город и географические координаты (широта\/долгота).",
"Region": "Регион",
"SetupAutomaticUpdatesOfGeoIP": "Настроить автоматическое обновление GeoIP баз",
"SubmenuLocations": "Локации",
"TestIPLocatorFailed": "Piwik попытался определить местонахождение известного IP-адреса (%1$s), но ваш сервер вернул значение: %2$s. Если способ определения локации был настроен верно, он бы вернул значение: %3$s.",
"ThisUrlIsNotAValidGeoIPDB": "Загруженный файл не является корректной GeoIP базой. Пожалуйста, перепроверьте ссылку или загрузите файл вручную.",
"ToGeolocateOldVisits": "Для того чтобы получить информацию о местоположении для предыдущих посетителей, воспользуйтесь скриптом, о котором написано %1$sтут%2$s.",
+ "UnsupportedArchiveType": "Встретился неподдерживаемый тип архива %1$s.",
"UpdaterHasNotBeenRun": "Обновления никогда не производились.",
"UpdaterScheduledForNextRun": "Это запланированный запуск команды core:archive при следующем выполнении cron-задачи.",
"WidgetLocation": "Местонахождение посетителя"
diff --git a/plugins/UserCountry/lang/sk.json b/plugins/UserCountry/lang/sk.json
index 0a7de811f8..1b2428a4ae 100644
--- a/plugins/UserCountry/lang/sk.json
+++ b/plugins/UserCountry/lang/sk.json
@@ -5,6 +5,7 @@
"continent_afr": "Afrika",
"continent_amn": "Severná Amerika",
"continent_ams": "Stredná a Južná Amerika",
+ "continent_ant": "Antarktída",
"continent_asi": "Ázia",
"continent_eur": "Európa",
"continent_oce": "Oceánia",
@@ -94,7 +95,7 @@
"country_fr": "Francúzsko",
"country_fx": "Metropolitné Francúzsko",
"country_ga": "Gabon",
- "country_gb": "Veľká Británia",
+ "country_gb": "Spojené Kráľovstvo",
"country_gd": "Grenada",
"country_ge": "Gruzínsko",
"country_gf": "Francúzska Guyana",
@@ -187,7 +188,7 @@
"country_nl": "Holandsko",
"country_no": "Nórsko",
"country_np": "Nepál",
- "country_nr": "Nauru",
+ "country_nr": "nauru",
"country_nt": "Neutrálna zóna",
"country_nu": "Niue",
"country_nz": "Nový Zéland",
@@ -246,7 +247,7 @@
"country_tl": "Východný Timor",
"country_tm": "Turkménsko",
"country_tn": "Tunis",
- "country_to": "Tonga",
+ "country_to": "tonžtina",
"country_tp": "Východný Timor",
"country_tr": "Turecko",
"country_tt": "Trinidad a Tobago",
diff --git a/plugins/UserCountry/lang/sl.json b/plugins/UserCountry/lang/sl.json
index 291eef1a8a..9f8fabdf86 100644
--- a/plugins/UserCountry/lang/sl.json
+++ b/plugins/UserCountry/lang/sl.json
@@ -7,7 +7,7 @@
"continent_amc": "Sredjna Amerika",
"continent_amn": "Severna Amerika",
"continent_ams": "Južna Amerika",
- "continent_ant": "Antartika",
+ "continent_ant": "Antarktika",
"continent_asi": "Azija",
"continent_eur": "Evropa",
"continent_oce": "Oceanija",
@@ -97,7 +97,7 @@
"country_fo": "Ferski otoki",
"country_fr": "Francija",
"country_ga": "Gabon",
- "country_gb": "Velika Britanija",
+ "country_gb": "Združeno kraljestvo",
"country_gd": "Grenada",
"country_ge": "Gruzija",
"country_gf": "Francoska Gvajana",
diff --git a/plugins/UserCountry/lang/sq.json b/plugins/UserCountry/lang/sq.json
index 66c61bbdd7..6f44eae44f 100644
--- a/plugins/UserCountry/lang/sq.json
+++ b/plugins/UserCountry/lang/sq.json
@@ -262,7 +262,7 @@
"country_tz": "Republika e Bashkuar e Tanzanisë",
"country_ua": "Ukrainë",
"country_ug": "Ugandë",
- "country_uk": "Mbretëri e Bashkuar",
+ "country_uk": "Britani e Madhe",
"country_um": "Ishujt e Vegjël të Përtejmë të Shteteve të Bashkuara",
"country_us": "Shtetet e Bashkuara",
"country_uy": "Uruguai",
diff --git a/plugins/UserCountry/lang/sr.json b/plugins/UserCountry/lang/sr.json
index beacb866f1..8485e07108 100644
--- a/plugins/UserCountry/lang/sr.json
+++ b/plugins/UserCountry/lang/sr.json
@@ -15,7 +15,7 @@
"continent_amc": "Centralna Amerika",
"continent_amn": "Severna Amerika",
"continent_ams": "Južna Amerika",
- "continent_ant": "Antarktika",
+ "continent_ant": "Antarktik",
"continent_asi": "Azija",
"continent_eur": "Evropa",
"continent_oce": "Okeanija",
@@ -109,7 +109,7 @@
"country_fr": "Francuska",
"country_fx": "Francuska, Metropolitan",
"country_ga": "Gabon",
- "country_gb": "Velika Britanija",
+ "country_gb": "Ujedinjeno Kraljevstvo",
"country_gd": "Grenada",
"country_ge": "Gruzija",
"country_gf": "Francuska Gvajana",
diff --git a/plugins/UserCountry/lang/ta.json b/plugins/UserCountry/lang/ta.json
index e7716447c1..e9689cd81b 100644
--- a/plugins/UserCountry/lang/ta.json
+++ b/plugins/UserCountry/lang/ta.json
@@ -1,5 +1,7 @@
{
"UserCountry": {
+ "continent_ant": "அன்டார்டிகா",
+ "continent_asi": "ஆசியா",
"country_ac": "அஷன்ஷியன் தீவு",
"country_ad": "அன்டோரா",
"country_ae": "ஐக்கிய அரபு கூட்டாட்சி",
@@ -178,6 +180,7 @@
"country_nr": "நௌரு",
"country_nu": "நியூ",
"country_nz": "நியூசிலாந்து",
+ "country_o1": "ஏனைய நாடுகள்",
"country_om": "ஓமான்",
"country_pa": "பனாமா",
"country_pe": "பெரு",
@@ -204,6 +207,7 @@
"country_sc": "செஷெல்ஸ்",
"country_sd": "சூடான்",
"country_se": "ஸ்வீடன்",
+ "country_sf": "பின்லாந்து",
"country_sg": "சிங்கப்பூர்",
"country_sh": "செயின்ட் ஹெலெனா",
"country_si": "ஸ்லோவேனியா",
@@ -226,6 +230,7 @@
"country_tf": "ஃப்ரென்ச் தெற்கு மாஹாணங்கள்",
"country_tg": "டோகோ",
"country_th": "தாய்லாந்து",
+ "country_ti": "திபத்",
"country_tj": "தாஜிகிஸ்தான்",
"country_tk": "டோகேலோ",
"country_tl": "கிழக்கு திமோர்",
@@ -239,6 +244,7 @@
"country_tz": "டான்சானியா",
"country_ua": "உக்ரைன்",
"country_ug": "உகாண்டா",
+ "country_uk": "பிரிடிஷ் கூட்டரசு",
"country_um": "யுனைட்டட் ஸ்டேட்ஸும் சிறிய அவுட்லைன் தீவுகளும்",
"country_us": "ஐக்கிய அமெரிக்க குடியரசு",
"country_uy": "உருகுவே",
@@ -256,6 +262,9 @@
"country_yt": "மயோத்",
"country_za": "தென் ஆப்ரிக்கா",
"country_zm": "சாம்பியா",
- "country_zw": "ஜிம்பாப்வே"
+ "country_zw": "ஜிம்பாப்வே",
+ "FromDifferentCities": "வேறுபட்ட நகரங்கள்",
+ "Location": "இடம்",
+ "WidgetLocation": "வருகையாளர் இடம்"
}
} \ No newline at end of file
diff --git a/plugins/UserCountry/lang/te.json b/plugins/UserCountry/lang/te.json
index 7f56ed271b..71b2643c80 100644
--- a/plugins/UserCountry/lang/te.json
+++ b/plugins/UserCountry/lang/te.json
@@ -216,7 +216,7 @@
"country_sc": "సీషెల్స్",
"country_sd": "సూడాన్",
"country_se": "స్వీడన్",
- "country_sf": "ఫిన్లాండ్",
+ "country_sf": "ఫిన్‌లాండ్",
"country_sg": "సింగపూర్",
"country_sh": "సెంట్ హెలినా",
"country_si": "స్లొవేనియా",
@@ -253,6 +253,7 @@
"country_tz": "టాంజానియా",
"country_ua": "ఉక్రెయిన్",
"country_ug": "ఉగాండా",
+ "country_uk": "బ్రిటన్",
"country_um": "సంయుక్త రాజ్య అమెరికా యునైటెడ్ స్టేట్స్ మైనర్ బయట ఉన్న దీవులు",
"country_us": "అమెరికా సంయుక్త రాష్ట్రాలు",
"country_uy": "ఉరూగ్వే",
diff --git a/plugins/UserCountry/lang/th.json b/plugins/UserCountry/lang/th.json
index 9f733cfc94..f91e79ffe6 100644
--- a/plugins/UserCountry/lang/th.json
+++ b/plugins/UserCountry/lang/th.json
@@ -5,6 +5,7 @@
"continent_afr": "อัฟริกา",
"continent_amn": "อเมริกาเหนือ",
"continent_ams": "อเมริกาใต้และกลาง",
+ "continent_ant": "แอนตาร์กติกา",
"continent_asi": "เอเชีย",
"continent_eur": "ยุโรป",
"continent_oce": "โอเชียเนีย",
diff --git a/plugins/UserCountry/lang/tl.json b/plugins/UserCountry/lang/tl.json
index 44dc7b3fdb..3586f79dab 100644
--- a/plugins/UserCountry/lang/tl.json
+++ b/plugins/UserCountry/lang/tl.json
@@ -266,7 +266,7 @@
"country_tr": "Turkey",
"country_tt": "Trinidad at Tobago",
"country_tv": "Tuvalu",
- "country_tw": "Taiwan probinsya ng China",
+ "country_tw": "Taiwan",
"country_tz": "Tanzania Sama-samang republika ng",
"country_ua": "Ukraina",
"country_ug": "Uganda",
diff --git a/plugins/UserCountry/lang/tr.json b/plugins/UserCountry/lang/tr.json
index e8c018e0cb..c149c9fcce 100644
--- a/plugins/UserCountry/lang/tr.json
+++ b/plugins/UserCountry/lang/tr.json
@@ -22,7 +22,7 @@
"country_an": "Hollanda Antilleri",
"country_ao": "Angola",
"country_ap": "Asya\/Pasifik Bölgesi",
- "country_aq": "Antarktika",
+ "country_aq": "Antaktika",
"country_ar": "Arjantin",
"country_as": "Amerikan Samoası",
"country_at": "Avusturya",
@@ -96,7 +96,7 @@
"country_fo": "Faroe Adaları",
"country_fr": "Fransa",
"country_ga": "Gabon",
- "country_gb": "Büyük Britanya",
+ "country_gb": "Birleşik Krallık",
"country_gd": "Grenada",
"country_ge": "Gürcistan",
"country_gf": "Fransız Guyanası",
@@ -189,7 +189,7 @@
"country_nl": "Hollanda",
"country_no": "Norveç",
"country_np": "Nepal",
- "country_nr": "Nauru",
+ "country_nr": "Nauru Dili",
"country_nu": "Niue",
"country_nz": "Yeni Zelanda",
"country_o1": "Diğer Ükle",
diff --git a/plugins/UserCountry/lang/uk.json b/plugins/UserCountry/lang/uk.json
index 91f14b8a19..929aba3e98 100644
--- a/plugins/UserCountry/lang/uk.json
+++ b/plugins/UserCountry/lang/uk.json
@@ -5,7 +5,7 @@
"continent_amc": "Центральна Америка",
"continent_amn": "Північна америка",
"continent_ams": "Південна та Центральна Америка",
- "continent_ant": "Антанктика",
+ "continent_ant": "Антарктида",
"continent_asi": "Азія",
"continent_eur": "Європа",
"continent_oce": "Океанія",
@@ -191,7 +191,7 @@
"country_nl": "Нідерланди",
"country_no": "Норвегія",
"country_np": "Непал",
- "country_nr": "Науру",
+ "country_nr": "науру",
"country_nt": "Нейтральна зона",
"country_nu": "Ніуе",
"country_nz": "Нова Зеландія",
@@ -260,7 +260,7 @@
"country_tz": "Танзанія",
"country_ua": "Україна",
"country_ug": "Уганда",
- "country_uk": "Велика Британія",
+ "country_uk": "Великобританія (острів)",
"country_um": "Зовнішні малі острови (США)",
"country_us": "Сполучені Штати Америки",
"country_uy": "Уругвай",
diff --git a/plugins/UserCountry/lang/vi.json b/plugins/UserCountry/lang/vi.json
index 5f805f814f..09a5515d63 100644
--- a/plugins/UserCountry/lang/vi.json
+++ b/plugins/UserCountry/lang/vi.json
@@ -33,7 +33,7 @@
"country_an": "Tây Ấn Hà Lan",
"country_ao": "Ăng-gô-la",
"country_ap": "Khu vực Châu Á \/ Thái Bình Dương",
- "country_aq": "Nam Cực",
+ "country_aq": "Nam cực",
"country_ar": "Ác-hen-ti-na",
"country_as": "Đảo Somoa thuộc Mỹ",
"country_at": "Áo",
@@ -109,7 +109,7 @@
"country_fr": "Pháp",
"country_fx": "Nước pháp, dân thủ đô",
"country_ga": "Ga-bông",
- "country_gb": "Vương quốc Anh",
+ "country_gb": "Anh Quốc",
"country_gd": "Grê-na-đa",
"country_ge": "Gru-di-a",
"country_gf": "Quiana thuộc Pháp",
@@ -202,7 +202,7 @@
"country_nl": "Hà Lan",
"country_no": "Na Uy",
"country_np": "Nê-pan",
- "country_nr": "Nauru",
+ "country_nr": "Tiếng Nauru",
"country_nt": "Khu trung lập",
"country_nu": "Niue",
"country_nz": "Niu Di-lân",
diff --git a/plugins/UserCountry/lang/zh-cn.json b/plugins/UserCountry/lang/zh-cn.json
index 024fcbcacc..9592e007e6 100644
--- a/plugins/UserCountry/lang/zh-cn.json
+++ b/plugins/UserCountry/lang/zh-cn.json
@@ -68,7 +68,7 @@
"country_cc": "可可斯群岛",
"country_cd": "刚果民主主义共和国",
"country_cf": "中非共和国",
- "country_cg": "刚果共和国",
+ "country_cg": "刚果文",
"country_ch": "瑞士",
"country_ci": "科特迪瓦",
"country_ck": "库克群岛",
@@ -101,7 +101,7 @@
"country_es": "西班牙",
"country_et": "衣索比亚",
"country_eu": "歐盟",
- "country_fi": "芬兰",
+ "country_fi": "芬蘭",
"country_fj": "斐济",
"country_fk": "福克兰群岛 (马尔维纳斯群岛)",
"country_fm": "密克罗尼西亚联邦",
@@ -109,7 +109,7 @@
"country_fr": "法国",
"country_fx": "法屬美特羅波利坦",
"country_ga": "加彭",
- "country_gb": "大不列顛",
+ "country_gb": "英国",
"country_gd": "格瑞纳达",
"country_ge": "乔治亚",
"country_gf": "法属圭亚那",
@@ -202,7 +202,7 @@
"country_nl": "荷兰",
"country_no": "挪威",
"country_np": "尼泊尔",
- "country_nr": "诺鲁",
+ "country_nr": "瑙鲁文",
"country_nt": "中立區",
"country_nu": "纽埃岛",
"country_nz": "纽西兰",
@@ -242,7 +242,7 @@
"country_sl": "狮子山共和国",
"country_sm": "圣马力诺",
"country_sn": "塞内加尔",
- "country_so": "索马利亚",
+ "country_so": "索马里文",
"country_sr": "苏利南",
"country_ss": "南苏丹",
"country_st": "圣多美普林西比",
@@ -263,7 +263,7 @@
"country_tl": "東帝汶",
"country_tm": "土库曼",
"country_tn": "突尼西亚",
- "country_to": "东加王国",
+ "country_to": "汤加文",
"country_tp": "东帝汶",
"country_tr": "土耳其",
"country_tt": "千里达托贝哥",
diff --git a/plugins/UserCountry/lang/zh-tw.json b/plugins/UserCountry/lang/zh-tw.json
index 62b50c6e36..6fd8b80a04 100644
--- a/plugins/UserCountry/lang/zh-tw.json
+++ b/plugins/UserCountry/lang/zh-tw.json
@@ -4,6 +4,7 @@
"continent_afr": "非洲",
"continent_amn": "北美洲",
"continent_ams": "中南美洲",
+ "continent_ant": "南極洲",
"continent_asi": "亞洲",
"continent_eur": "歐洲",
"continent_oce": "大洋洲",
@@ -93,7 +94,7 @@
"country_fr": "法國",
"country_fx": "法屬美特羅波利坦",
"country_ga": "加彭",
- "country_gb": "大不列顛",
+ "country_gb": "英國",
"country_gd": "格瑞納達",
"country_ge": "喬治亞",
"country_gf": "法屬圭亞那",
@@ -186,7 +187,7 @@
"country_nl": "荷蘭",
"country_no": "挪威",
"country_np": "尼泊爾",
- "country_nr": "諾魯",
+ "country_nr": "瑙鲁文",
"country_nt": "中立區",
"country_nu": "紐埃島",
"country_nz": "紐西蘭",
diff --git a/plugins/UserCountryMap/lang/da.json b/plugins/UserCountryMap/lang/da.json
index 4c4699c776..a25558cdc9 100644
--- a/plugins/UserCountryMap/lang/da.json
+++ b/plugins/UserCountryMap/lang/da.json
@@ -20,8 +20,8 @@
"ShowingVisits": "Geografisk placeret besøg af sidste",
"Unlocated": "<b>%s<\/b> besøg %p fra %c kunne ikke placeres geografisk.",
"VisitorMap": "Besøgerkort",
- "WithUnknownCity": "%s med ukendt by",
+ "WorldWide": "Hele verden",
"WithUnknownRegion": "%s med ukendt region",
- "WorldWide": "Hele verden"
+ "WithUnknownCity": "%s med ukendt by"
}
} \ No newline at end of file
diff --git a/plugins/UserCountryMap/lang/el.json b/plugins/UserCountryMap/lang/el.json
index 2a9f7b350c..b021cb400d 100644
--- a/plugins/UserCountryMap/lang/el.json
+++ b/plugins/UserCountryMap/lang/el.json
@@ -20,8 +20,8 @@
"ShowingVisits": "Επισκέψεις με γεωτοποθεσία από τις τελευταίες",
"Unlocated": "<b>%s<\/b> %p από τις επισκέψεις από %c δεν ήταν δυνατόν να χαρακτηριστούν με γεωτοποθεσία.",
"VisitorMap": "Χάρτης Επισκεπτών",
- "WithUnknownCity": "%s με άγνωστη πόλη",
+ "WorldWide": "Παγκοσμίως",
"WithUnknownRegion": "%s με άγνωστη περιοχή",
- "WorldWide": "Παγκοσμίως"
+ "WithUnknownCity": "%s με άγνωστη πόλη"
}
} \ No newline at end of file
diff --git a/plugins/UserCountryMap/lang/ru.json b/plugins/UserCountryMap/lang/ru.json
index df1290b536..2879729748 100644
--- a/plugins/UserCountryMap/lang/ru.json
+++ b/plugins/UserCountryMap/lang/ru.json
@@ -17,6 +17,8 @@
"Seconds": "секунд",
"SecondsAgo": "%s секунд назад",
"VisitorMap": "Карта посещений",
- "WorldWide": "Весь мир"
+ "WorldWide": "Весь мир",
+ "WithUnknownRegion": "%s с неизвестным регионом",
+ "WithUnknownCity": "%s с неизвестным городом"
}
} \ No newline at end of file
diff --git a/plugins/UserLanguage/lang/da.json b/plugins/UserLanguage/lang/da.json
index fb0dce7faf..7fa68e5a96 100644
--- a/plugins/UserLanguage/lang/da.json
+++ b/plugins/UserLanguage/lang/da.json
@@ -185,6 +185,7 @@
"Language_za": "Zhuang",
"Language_zh": "Kinesisk",
"Language_zu": "Zulu",
- "LanguageCode": "Sprogkode"
+ "LanguageCode": "Sprogkode",
+ "PluginDescription": "Rapporter sproget, som anvendes af de besøgendes browsere."
}
} \ No newline at end of file
diff --git a/plugins/UserLanguage/lang/el.json b/plugins/UserLanguage/lang/el.json
index b802d1546b..d8384ed474 100644
--- a/plugins/UserLanguage/lang/el.json
+++ b/plugins/UserLanguage/lang/el.json
@@ -38,7 +38,7 @@
"Language_dz": "Ντζόνγκχα",
"Language_ee": "Γι",
"Language_el": "Ελληνικά",
- "Language_en": "Αγγλικά",
+ "Language_en": "Ελληνικά",
"Language_eo": "Εσπεράντο",
"Language_es": "Ισπανικά",
"Language_et": "Εσθονικά",
@@ -111,7 +111,7 @@
"Language_ms": "Μαλάι",
"Language_mt": "Μαλτεζικά",
"Language_my": "Βιρμανικά",
- "Language_na": "Ναούρου",
+ "Language_na": "Ναούρού",
"Language_nb": "Νορβηγικά Μποκμάλ",
"Language_nd": "Ντεμπέλε Βορρά",
"Language_ne": "Νεπάλι",
diff --git a/plugins/UserLanguage/lang/fr.json b/plugins/UserLanguage/lang/fr.json
index 4ce253f215..5586907080 100644
--- a/plugins/UserLanguage/lang/fr.json
+++ b/plugins/UserLanguage/lang/fr.json
@@ -38,7 +38,7 @@
"Language_dz": "Dzongkha",
"Language_ee": "Ewe",
"Language_el": "Grecque",
- "Language_en": "Anglais",
+ "Language_en": "French",
"Language_eo": "Espéranto",
"Language_es": "Espagnol",
"Language_et": "Estonien",
@@ -111,7 +111,7 @@
"Language_ms": "Malais",
"Language_mt": "Maltais",
"Language_my": "Birman",
- "Language_na": "Nauruan",
+ "Language_na": "Nauru",
"Language_nb": "Bokmål",
"Language_nd": "Sindebele",
"Language_ne": "Népalais",
@@ -164,7 +164,7 @@
"Language_tk": "Turkmène",
"Language_tl": "Tagalog",
"Language_tn": "Tswana",
- "Language_to": "Tonguien",
+ "Language_to": "Tonga",
"Language_tr": "Turc",
"Language_ts": "Tsonga",
"Language_tt": "Tatar",
@@ -185,6 +185,7 @@
"Language_za": "Chuang",
"Language_zh": "Chinois",
"Language_zu": "Zoulou",
- "LanguageCode": "Code langue"
+ "LanguageCode": "Code langue",
+ "PluginDescription": "Affiche la langue configurée au sein du navigateur de vos visiteurs."
}
} \ No newline at end of file
diff --git a/plugins/UserLanguage/lang/hr.json b/plugins/UserLanguage/lang/hr.json
index 1c5d7a9d54..1eb935ad66 100644
--- a/plugins/UserLanguage/lang/hr.json
+++ b/plugins/UserLanguage/lang/hr.json
@@ -1,5 +1,6 @@
{
"UserLanguage": {
+ "BrowserLanguage": "Jezik preglednika",
"Language_aa": "afarski",
"Language_ab": "abhaski",
"Language_ae": "avestan",
@@ -37,7 +38,7 @@
"Language_dz": "dzongkha",
"Language_ee": "ewe",
"Language_el": "grčki",
- "Language_en": "engleski",
+ "Language_en": "Hrvatski",
"Language_eo": "esperanto",
"Language_es": "španjolski",
"Language_et": "estonijski",
@@ -183,6 +184,8 @@
"Language_yo": "joruba",
"Language_za": "zhuang",
"Language_zh": "kineski",
- "Language_zu": "zulu"
+ "Language_zu": "zulu",
+ "LanguageCode": "Oznaka jezika",
+ "PluginDescription": "Bilježi jezik na koji je podešen preglednik posjetitelja."
}
} \ No newline at end of file
diff --git a/plugins/UserLanguage/lang/nl.json b/plugins/UserLanguage/lang/nl.json
index 708e3b034f..83468e882b 100644
--- a/plugins/UserLanguage/lang/nl.json
+++ b/plugins/UserLanguage/lang/nl.json
@@ -38,7 +38,7 @@
"Language_dz": "Dzongkha",
"Language_ee": "Ewe",
"Language_el": "Grieks",
- "Language_en": "Engels",
+ "Language_en": "Nederlands",
"Language_eo": "Esperanto",
"Language_es": "Spaans",
"Language_et": "Estlands",
@@ -185,6 +185,7 @@
"Language_za": "Zhuang",
"Language_zh": "Chinees",
"Language_zu": "Zulu",
- "LanguageCode": "Taal code"
+ "LanguageCode": "Taal code",
+ "PluginDescription": "Toont de taal die gebruikt wordt door browsers van uw bezoekers."
}
} \ No newline at end of file
diff --git a/plugins/UserLanguage/lang/pl.json b/plugins/UserLanguage/lang/pl.json
index 8ff635e825..f6517ddf00 100644
--- a/plugins/UserLanguage/lang/pl.json
+++ b/plugins/UserLanguage/lang/pl.json
@@ -38,7 +38,7 @@
"Language_dz": "dzongkha",
"Language_ee": "ewe",
"Language_el": "grecki",
- "Language_en": "angielski",
+ "Language_en": "Polski",
"Language_eo": "esperanto",
"Language_es": "hiszpański",
"Language_et": "estoński",
@@ -185,6 +185,7 @@
"Language_za": "czuang",
"Language_zh": "chiński",
"Language_zu": "zulu",
- "LanguageCode": "Kod języka"
+ "LanguageCode": "Kod języka",
+ "PluginDescription": "Raportuj języki używane przez przeglądarki odwiedzających."
}
} \ No newline at end of file
diff --git a/plugins/UserLanguage/lang/ru.json b/plugins/UserLanguage/lang/ru.json
index 7362daece6..cc8c89d7b3 100644
--- a/plugins/UserLanguage/lang/ru.json
+++ b/plugins/UserLanguage/lang/ru.json
@@ -185,6 +185,7 @@
"Language_za": "чжуань",
"Language_zh": "китайский",
"Language_zu": "зулу",
- "LanguageCode": "Код языка"
+ "LanguageCode": "Код языка",
+ "PluginDescription": "Сообщает о языках, используемых у посетителей в браузере"
}
} \ No newline at end of file
diff --git a/plugins/UserLanguage/lang/sk.json b/plugins/UserLanguage/lang/sk.json
index eeefdc8545..2f2eb1ed06 100644
--- a/plugins/UserLanguage/lang/sk.json
+++ b/plugins/UserLanguage/lang/sk.json
@@ -1,5 +1,6 @@
{
"UserLanguage": {
+ "BrowserLanguage": "Jazyk prehliadača",
"Language_aa": "afarčina",
"Language_ab": "abcházština",
"Language_ae": "avestčina",
@@ -37,7 +38,7 @@
"Language_dz": "dzongkä",
"Language_ee": "eweština",
"Language_el": "gréčtina",
- "Language_en": "angličtina",
+ "Language_en": "Slovensky",
"Language_eo": "esperanto",
"Language_es": "španielčina",
"Language_et": "estónčina",
@@ -184,6 +185,7 @@
"Language_za": "čuangčina",
"Language_zh": "čínština",
"Language_zu": "zuluština",
- "LanguageCode": "Kód jazyka"
+ "LanguageCode": "Kód jazyka",
+ "PluginDescription": "Informuje o jazyku použitom v prehliadači návštevníka."
}
} \ No newline at end of file
diff --git a/plugins/UserLanguage/lang/ta.json b/plugins/UserLanguage/lang/ta.json
index 4ecd3d9fb9..a57948cd5c 100644
--- a/plugins/UserLanguage/lang/ta.json
+++ b/plugins/UserLanguage/lang/ta.json
@@ -1,5 +1,6 @@
{
"UserLanguage": {
+ "BrowserLanguage": "உலாவி மொழி",
"Language_aa": "அஃபார்",
"Language_ab": "அப்காஜியான்",
"Language_ae": "அவெஸ்தான்",
@@ -37,7 +38,7 @@
"Language_dz": "பூடானி",
"Language_ee": "ஈஓயே",
"Language_el": "கிரேக்கம்",
- "Language_en": "ஆங்கிலம்",
+ "Language_en": "தமிழ்",
"Language_eo": "எஸ்பரேன்டோ",
"Language_es": "ஸ்பேனிஷ்",
"Language_et": "எஸ்டோனியன்",
@@ -110,7 +111,7 @@
"Language_ms": "மலாய்",
"Language_mt": "மால்டிஸ்",
"Language_my": "பர்மிஸ்",
- "Language_na": "நவ்ரூ",
+ "Language_na": "நௌரு",
"Language_nb": "நார்வே பொக்மால்",
"Language_nd": "வடக்கு தெபெலே",
"Language_ne": "நேபாளி",
@@ -183,6 +184,8 @@
"Language_yo": "யோருப்பா",
"Language_za": "ஜுவாங்",
"Language_zh": "சீனம்",
- "Language_zu": "ஜூலூ"
+ "Language_zu": "ஜூலூ",
+ "LanguageCode": "மொழி குறியீடு",
+ "PluginDescription": "வருகையாளர் உலாவியின் மொழிகளை பற்றிய அறிக்கை"
}
} \ No newline at end of file
diff --git a/plugins/UserLanguage/lang/zh-tw.json b/plugins/UserLanguage/lang/zh-tw.json
index 4006c31d9d..db0b629b77 100644
--- a/plugins/UserLanguage/lang/zh-tw.json
+++ b/plugins/UserLanguage/lang/zh-tw.json
@@ -2,7 +2,7 @@
"UserLanguage": {
"BrowserLanguage": "瀏覽器語系",
"Language_aa": "阿法文",
- "Language_ab": "阿布哈西亚文",
+ "Language_ab": "阿布哈茲語",
"Language_ae": "阿维斯塔文",
"Language_af": "南非荷兰文",
"Language_ak": "阿肯文",
@@ -38,7 +38,7 @@
"Language_dz": "不丹文",
"Language_ee": "埃维文",
"Language_el": "希腊文",
- "Language_en": "英文",
+ "Language_en": "繁體中文",
"Language_eo": "世界文",
"Language_es": "西班牙文",
"Language_et": "爱沙尼亚文",
@@ -164,7 +164,7 @@
"Language_tk": "土库曼文",
"Language_tl": "塔加洛语",
"Language_tn": "塞茨瓦纳文",
- "Language_to": "汤加文",
+ "Language_to": "東加王國",
"Language_tr": "土耳其文",
"Language_ts": "宗加文",
"Language_tt": "塔塔尔文",
@@ -185,6 +185,7 @@
"Language_za": "壮语",
"Language_zh": "中文",
"Language_zu": "祖鲁文",
- "LanguageCode": "語系代碼"
+ "LanguageCode": "語系代碼",
+ "PluginDescription": "回報訪客使用的瀏覽器語系"
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/UserPreferences.php b/plugins/UsersManager/UserPreferences.php
index 86b61b97fe..c5d544011e 100644
--- a/plugins/UsersManager/UserPreferences.php
+++ b/plugins/UsersManager/UserPreferences.php
@@ -9,6 +9,7 @@
namespace Piwik\Plugins\UsersManager;
use Piwik\Config;
+use Piwik\Period\PeriodValidator;
use Piwik\Piwik;
use Piwik\Plugins\SitesManager\API as APISitesManager;
use Piwik\Plugins\UsersManager\API as APIUsersManager;
@@ -16,6 +17,16 @@ use Piwik\Plugins\UsersManager\API as APIUsersManager;
class UserPreferences
{
/**
+ * @var APIUsersManager
+ */
+ private $api;
+
+ public function __construct()
+ {
+ $this->api = APIUsersManager::getInstance();
+ }
+
+ /**
* Returns default site ID that Piwik should load.
*
* _Note: This value is a Piwik setting set by each user._
@@ -51,7 +62,7 @@ class UserPreferences
public function getDefaultReport()
{
// User preference: default website ID to load
- $defaultReport = APIUsersManager::getInstance()->getUserPreference(Piwik::getCurrentUserLogin(), APIUsersManager::PREFERENCE_DEFAULT_REPORT);
+ $defaultReport = $this->api->getUserPreference(Piwik::getCurrentUserLogin(), APIUsersManager::PREFERENCE_DEFAULT_REPORT);
if (!is_numeric($defaultReport)) {
return $defaultReport;
@@ -74,8 +85,45 @@ class UserPreferences
*/
public function getDefaultDate()
{
+ list($defaultDate, $defaultPeriod) = $this->getDefaultDateAndPeriod();
+
+ return $defaultDate;
+ }
+
+ /**
+ * Returns default period type for Piwik reports.
+ *
+ * @param string $defaultDate the default date string from which the default period will be guessed
+ * @return string `'day'`, `'week'`, `'month'`, `'year'` or `'range'`
+ * @api
+ */
+ public function getDefaultPeriod($defaultDate = null)
+ {
+ list($defaultDate, $defaultPeriod) = $this->getDefaultDateAndPeriod($defaultDate);
+
+ return $defaultPeriod;
+ }
+
+ private function getDefaultDateAndPeriod($defaultDate = null)
+ {
+ if (! $defaultDate) {
+ $defaultDate = $this->getDefaultDateWithoutValidation();
+ }
+ $defaultPeriod = $this->getDefaultPeriodWithoutValidation($defaultDate);
+
+ $periodValidator = new PeriodValidator();
+ if (! $periodValidator->isPeriodAllowedForUI($defaultPeriod)) {
+ $defaultDate = $this->getSystemDefaultDate();
+ $defaultPeriod = $this->getSystemDefaultPeriod();
+ }
+
+ return array($defaultDate, $defaultPeriod);
+ }
+
+ public function getDefaultDateWithoutValidation()
+ {
// NOTE: a change in this function might mean a change in plugins/UsersManager/javascripts/usersSettings.js as well
- $userSettingsDate = APIUsersManager::getInstance()->getUserPreference(Piwik::getCurrentUserLogin(), APIUsersManager::PREFERENCE_DEFAULT_REPORT_DATE);
+ $userSettingsDate = $this->api->getUserPreference(Piwik::getCurrentUserLogin(), APIUsersManager::PREFERENCE_DEFAULT_REPORT_DATE);
if ($userSettingsDate == 'yesterday') {
return $userSettingsDate;
}
@@ -89,17 +137,10 @@ class UserPreferences
return 'today';
}
- /**
- * Returns default period type for Piwik reports.
- *
- * @param $defaultDate string the default date string from which the default period will be guessed
- * @return string `'day'`, `'week'`, `'month'`, `'year'` or `'range'`
- * @api
- */
- public function getDefaultPeriod($defaultDate)
+ public function getDefaultPeriodWithoutValidation($defaultDate = null)
{
if (empty($defaultDate)) {
- $defaultDate = APIUsersManager::getInstance()->getUserPreference(Piwik::getCurrentUserLogin(), APIUsersManager::PREFERENCE_DEFAULT_REPORT_DATE);
+ $defaultDate = $this->api->getUserPreference(Piwik::getCurrentUserLogin(), APIUsersManager::PREFERENCE_DEFAULT_REPORT_DATE);
}
if (empty($defaultDate)) {
@@ -119,9 +160,13 @@ class UserPreferences
return $defaultDate;
}
+ private function getSystemDefaultDate()
+ {
+ return Config::getInstance()->General['default_day'];
+ }
+
private function getSystemDefaultPeriod()
{
return Config::getInstance()->General['default_period'];
}
-
-} \ No newline at end of file
+}
diff --git a/plugins/UsersManager/lang/bs.json b/plugins/UsersManager/lang/bs.json
new file mode 100644
index 0000000000..4a38b04e15
--- /dev/null
+++ b/plugins/UsersManager/lang/bs.json
@@ -0,0 +1,6 @@
+{
+ "UsersManager": {
+ "PrivAdmin": "Administracija",
+ "PrivView": "Vidi"
+ }
+} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/cs.json b/plugins/UsersManager/lang/cs.json
index 1fcb208143..0513644957 100644
--- a/plugins/UsersManager/lang/cs.json
+++ b/plugins/UsersManager/lang/cs.json
@@ -40,16 +40,16 @@
"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.",
"ManageAccess": "Správa přístupu",
"MenuAnonymousUserSettings": "Nastavení anonymního uživatele",
- "MenuPersonal": "Osobní",
"MenuUsers": "Uživatelé",
"MenuUserSettings": "Nastavení uživatele",
+ "MenuPersonal": "Osobní",
+ "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é.",
- "PersonalSettings": "Osobní nastavení",
"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.",
"PrivAdmin": "Administrátor",
"PrivNone": "Žádné oprávnění",
- "PrivView": "Zobrazení",
+ "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",
diff --git a/plugins/UsersManager/lang/da.json b/plugins/UsersManager/lang/da.json
index 0ddf0561a8..428a8998fa 100644
--- a/plugins/UsersManager/lang/da.json
+++ b/plugins/UsersManager/lang/da.json
@@ -42,9 +42,11 @@
"MenuAnonymousUserSettings": "Anonym bruger indstilling",
"MenuUsers": "Brugere",
"MenuUserSettings": "Bruger indstillinger",
+ "MenuPersonal": "Persoonlig",
+ "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.",
- "PersonalSettings": "Personlige indstillinger",
+ "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",
diff --git a/plugins/UsersManager/lang/de.json b/plugins/UsersManager/lang/de.json
index 23342e479a..0767034c7c 100644
--- a/plugins/UsersManager/lang/de.json
+++ b/plugins/UsersManager/lang/de.json
@@ -40,12 +40,12 @@
"MainDescription": "Hier kann Zugriff auf bestimmte Webseiten innerhalb von Piwik erteilt werden. Es ist auch möglich, Zugriff für alle Webseiten auf einmal zu erlauben.",
"ManageAccess": "Zugriffsverwaltung",
"MenuAnonymousUserSettings": "Gast-Besucher (\"anonymous\") Einstellungen",
- "MenuPersonal": "Persönlich",
"MenuUsers": "Benutzer",
"MenuUserSettings": "Benutzereinstellungen",
+ "MenuPersonal": "Persönlich",
+ "PersonalSettings": "Persönliche Einstellungen",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Hinweis: Sie können die Einstellungen in diesem Bereich nicht ändern, weil Sie keine Webseite eingerichtet haben, die vom anonymen Benutzer angezeigt werden kann.",
"NoUsersExist": "Bisher keine Benutzer vorhanden.",
- "PersonalSettings": "Persönliche Einstellungen",
"PluginDescription": "Benutzermanagement lässt Sie neue Benutzer hinzufügen, bestehende ändern und die Rechte für die Ansicht oder die Administration von Webseiten definieren.",
"PrivAdmin": "Administrator",
"PrivNone": "Kein Zugriff",
diff --git a/plugins/UsersManager/lang/el.json b/plugins/UsersManager/lang/el.json
index f0f06742e8..6773ef71ee 100644
--- a/plugins/UsersManager/lang/el.json
+++ b/plugins/UsersManager/lang/el.json
@@ -40,12 +40,12 @@
"MainDescription": "Ρυθμίστε ποιοι χρήστες θα έχουν πρόσβαση σε ποιες ιστοσελίδες. Μπορείτε επίσης να ρυθμίσετε τα δικαιώματα για όλες τις ιστοσελίδες με μία κίνηση.",
"ManageAccess": "Διαχείριση πρόσβασης",
"MenuAnonymousUserSettings": "Ρυθμίσεις ανώνυμου χρήστη",
- "MenuPersonal": "Προσωπικό",
"MenuUsers": "Χρήστες",
"MenuUserSettings": "Ρυθμίσεις χρήστη",
+ "MenuPersonal": "Προσωπικό",
+ "PersonalSettings": "Προσωπικές ρυθμίσεις",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Σημείωση: Δεν μπορείτε να αλλάξετε τις ρυθμίσεις σε αυτό τον τομέα γιατί δεν έχετε κάποια ιστοσελίδα που μπορείτε να έχετε πρόσβαση ως ανώνυμος χρήστης.",
"NoUsersExist": "Δεν υπάρχουν ακόμη χρήστες.",
- "PersonalSettings": "Προσωπικές ρυθμίσεις",
"PluginDescription": "Η Διαχείριση Χρηστών επιτρέπει την προσθήκη νέων χρηστών, την επεξεργασία υπάρχοντων και τον ορισμό αδειών πρόσβασης για ανάγνωση ή διαχείριση των ιστοτόπων.",
"PrivAdmin": "Διαχείριση",
"PrivNone": "Χωρίς πρόσβαση",
diff --git a/plugins/UsersManager/lang/et.json b/plugins/UsersManager/lang/et.json
index a4aa088241..56b94db5b0 100644
--- a/plugins/UsersManager/lang/et.json
+++ b/plugins/UsersManager/lang/et.json
@@ -20,13 +20,13 @@
"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": "Kasutajad",
+ "MenuUsers": "Kasutajaid",
"MenuUserSettings": "Kasutaja seaded",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Märkus: Sa ei saa antud sätteid muuta, kuna puuduvad veebilehed, millele oleks anonüümne ligipääs Piwikus lubatud.",
"NoUsersExist": "Hetkel puuduvad teised kasutajad.",
"PrivAdmin": "Haldaja",
"PrivNone": "Ligipääs puudub",
- "PrivView": "Vaataja",
+ "PrivView": "Vaata",
"ReportDateToLoadByDefault": "Vaikimisi laetav raporti kuupäev",
"ReportToLoadByDefault": "Vaikimisi laetav raport",
"SuperUserAccessManagement": "Halda peakasutaja ligipääse",
diff --git a/plugins/UsersManager/lang/fi.json b/plugins/UsersManager/lang/fi.json
index a40f04854a..d5a2c941df 100644
--- a/plugins/UsersManager/lang/fi.json
+++ b/plugins/UsersManager/lang/fi.json
@@ -45,7 +45,7 @@
"NoUsersExist": "Yhtään käyttäjää ei ole vielä olemassa.",
"PrivAdmin": "Hallinnointioikeus",
"PrivNone": "Ei käyttöoikeutta",
- "PrivView": "Katsomisoikeus",
+ "PrivView": "Näkymä",
"ReportDateToLoadByDefault": "Raportin oletuspäiväys",
"ReportToLoadByDefault": "Oletuksena ladattava raportti",
"SuperUserAccessManagement": "Hallinnoi Superkäyttäjäoikeuksia",
diff --git a/plugins/UsersManager/lang/fr.json b/plugins/UsersManager/lang/fr.json
index 30e5e9ba00..340f205ec7 100644
--- a/plugins/UsersManager/lang/fr.json
+++ b/plugins/UsersManager/lang/fr.json
@@ -40,15 +40,16 @@
"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",
- "MenuPersonal": "Personnel",
"MenuUsers": "Utilisateurs",
"MenuUserSettings": "Paramètres utilisateurs",
+ "MenuPersonal": "Personnel",
+ "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.",
- "PersonalSettings": "Paramètres Personnels",
+ "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.",
"PrivAdmin": "Administration",
"PrivNone": "Pas d'accès",
- "PrivView": "Consultation",
+ "PrivView": "Vue",
"ReportDateToLoadByDefault": "Date du rapport à charger par défaut",
"ReportToLoadByDefault": "Rapport à charger par défaut",
"SuperUserAccessManagement": "Gérer l'accès Super Utilisateur",
diff --git a/plugins/UsersManager/lang/hi.json b/plugins/UsersManager/lang/hi.json
new file mode 100644
index 0000000000..e0f9af17a2
--- /dev/null
+++ b/plugins/UsersManager/lang/hi.json
@@ -0,0 +1,5 @@
+{
+ "UsersManager": {
+ "PrivView": "देखना"
+ }
+} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/it.json b/plugins/UsersManager/lang/it.json
index 227b284faf..a1dfccedd7 100644
--- a/plugins/UsersManager/lang/it.json
+++ b/plugins/UsersManager/lang/it.json
@@ -40,16 +40,16 @@
"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.",
"ManageAccess": "Amministra l'accesso",
"MenuAnonymousUserSettings": "Impostazioni utente anonimo",
- "MenuPersonal": "Personale",
"MenuUsers": "Utenti",
"MenuUserSettings": "Impostazioni utente",
+ "MenuPersonal": "Personale",
+ "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.",
- "PersonalSettings": "Impostazioni personali",
"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.",
"PrivAdmin": "Amministra Piwik",
"PrivNone": "Nessun privilegio",
- "PrivView": "Visualizza statistiche",
+ "PrivView": "Vista",
"ReportDateToLoadByDefault": "Data report da caricare di default",
"ReportToLoadByDefault": "Report da caricare di default",
"SuperUserAccessManagement": "Gestisci l'accesso Super User",
diff --git a/plugins/UsersManager/lang/ja.json b/plugins/UsersManager/lang/ja.json
index cf2d82c586..04f8dd638e 100644
--- a/plugins/UsersManager/lang/ja.json
+++ b/plugins/UsersManager/lang/ja.json
@@ -45,7 +45,7 @@
"NoUsersExist": "まだユーザーがいません。",
"PrivAdmin": "管理",
"PrivNone": "権限なし",
- "PrivView": "表示",
+ "PrivView": "ビュー",
"ReportDateToLoadByDefault": "デフォルトで読み込むリポートの日付",
"ReportToLoadByDefault": "デフォルトで読み込むリポート",
"SuperUserAccessManagement": "スーパーユーザーアクセス権の管理",
diff --git a/plugins/UsersManager/lang/lv.json b/plugins/UsersManager/lang/lv.json
index 05b563013b..782a6bd555 100644
--- a/plugins/UsersManager/lang/lv.json
+++ b/plugins/UsersManager/lang/lv.json
@@ -31,7 +31,7 @@
"MenuUserSettings": "Lietotāju iestatījumi",
"PrivAdmin": "Administrēt",
"PrivNone": "Nav pieejas",
- "PrivView": "Skatīt",
+ "PrivView": "Skatījums",
"ReportDateToLoadByDefault": "Atskaites datums, kuru ielādēt pēc noklusējuma",
"ReportToLoadByDefault": "Atskaite, kuru ielādēt pēc noklusējuma",
"TheLoginScreen": "Pieteikšanās skats",
diff --git a/plugins/UsersManager/lang/nb.json b/plugins/UsersManager/lang/nb.json
index 065c72723f..da7c616817 100644
--- a/plugins/UsersManager/lang/nb.json
+++ b/plugins/UsersManager/lang/nb.json
@@ -27,11 +27,11 @@
"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",
- "MenuPersonal": "Personlig",
"MenuUsers": "Brukere",
"MenuUserSettings": "Brukerinnstillinger",
- "NoUsersExist": "Det er ingen brukere enda.",
+ "MenuPersonal": "Personlig",
"PersonalSettings": "Personlige innstillinger",
+ "NoUsersExist": "Det er ingen brukere enda.",
"PrivAdmin": "Admin",
"PrivNone": "Ingen tilgang",
"PrivView": "Vis",
diff --git a/plugins/UsersManager/lang/nl.json b/plugins/UsersManager/lang/nl.json
index 31a9ba4551..e2205af394 100644
--- a/plugins/UsersManager/lang/nl.json
+++ b/plugins/UsersManager/lang/nl.json
@@ -31,14 +31,14 @@
"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",
- "MenuPersonal": "Persoonlijk",
"MenuUsers": "Gebruikers",
"MenuUserSettings": "Gebruikers instellingen",
- "NoUsersExist": "Er zijn nog geen gebruikers.",
+ "MenuPersonal": "Persoonlijk",
"PersonalSettings": "Persoonlijke instellingen",
+ "NoUsersExist": "Er zijn nog geen gebruikers.",
"PrivAdmin": "Admin",
"PrivNone": "Geen toegang",
- "PrivView": "Kijken",
+ "PrivView": "Bekijk",
"ReportDateToLoadByDefault": "Standaard rapport datum bij laden pagina.",
"ReportToLoadByDefault": "Standaard rapport bij laden pagina.",
"SuperUserAccessManagement": "Beheer Super Gebruiker toegang",
diff --git a/plugins/UsersManager/lang/nn.json b/plugins/UsersManager/lang/nn.json
index 956aeaaaea..bf3f5c7ec7 100644
--- a/plugins/UsersManager/lang/nn.json
+++ b/plugins/UsersManager/lang/nn.json
@@ -26,7 +26,7 @@
"MenuUserSettings": "Brukarinnstillingar",
"PrivAdmin": "Administrator",
"PrivNone": "Inga tilgang",
- "PrivView": "Les",
+ "PrivView": "Vis",
"TheLoginScreen": "Innloggingsskjermen",
"TypeYourPasswordAgain": "Skriv ditt nye passord på nytt.",
"User": "Brukar",
diff --git a/plugins/UsersManager/lang/pt-br.json b/plugins/UsersManager/lang/pt-br.json
index 37e8fcc235..ac9d8cea7f 100644
--- a/plugins/UsersManager/lang/pt-br.json
+++ b/plugins/UsersManager/lang/pt-br.json
@@ -39,7 +39,7 @@
"NoUsersExist": "Não há usúarios ainda.",
"PrivAdmin": "Administrador",
"PrivNone": "Sem acesso",
- "PrivView": "Ver",
+ "PrivView": "Visualização",
"ReportDateToLoadByDefault": "Relate data para carregar por padrão",
"ReportToLoadByDefault": "Relate para carregar por padrão",
"SuperUserAccessManagement": "Gerenciar o acesso do Super Usuário",
diff --git a/plugins/UsersManager/lang/ru.json b/plugins/UsersManager/lang/ru.json
index eab670fbdc..bf59ffa8ce 100644
--- a/plugins/UsersManager/lang/ru.json
+++ b/plugins/UsersManager/lang/ru.json
@@ -40,12 +40,12 @@
"MainDescription": "Укажите, какие пользователи имеют доступ к Piwik на вашем сайте. Также Вы можете задать права доступа на все сайты.",
"ManageAccess": "Управление правами доступа",
"MenuAnonymousUserSettings": "Настройки анонимности",
- "MenuPersonal": "Персональное",
"MenuUsers": "Пользователи",
"MenuUserSettings": "Мои настройки",
+ "MenuPersonal": "Персональное",
+ "PersonalSettings": "Персональные настройки",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Подсказка: Вы не можете сменить эти настройки, потому что у вас нет ни одного веб-сайта, к которому бы имел доступ анонимный пользователь.",
"NoUsersExist": "Пока нет пользователей.",
- "PersonalSettings": "Персональные настройки",
"PrivAdmin": "Админ",
"PrivNone": "Нет доступа",
"PrivView": "Просмотр",
diff --git a/plugins/UsersManager/lang/sk.json b/plugins/UsersManager/lang/sk.json
index 1aa6750083..c1662f23f9 100644
--- a/plugins/UsersManager/lang/sk.json
+++ b/plugins/UsersManager/lang/sk.json
@@ -23,7 +23,7 @@
"MenuUserSettings": "Užívateľské nastavenia",
"PrivAdmin": "Admin",
"PrivNone": "Bez prístupu",
- "PrivView": "Prezeranie",
+ "PrivView": "Zobrazenie",
"TypeYourPasswordAgain": "Zadajte nové heslo znovu.",
"User": "Používatelia",
"UsersManagement": "Správa používateľov",
diff --git a/plugins/UsersManager/lang/sl.json b/plugins/UsersManager/lang/sl.json
index 50ce44a942..9151bf5d86 100644
--- a/plugins/UsersManager/lang/sl.json
+++ b/plugins/UsersManager/lang/sl.json
@@ -20,7 +20,7 @@
"MenuUserSettings": "Nastavitve uporabnikov",
"PrivAdmin": "Admin",
"PrivNone": "Ni dostopa",
- "PrivView": "Pogled",
+ "PrivView": "Ogled",
"ReportDateToLoadByDefault": "Privzet časovni obseg",
"ReportToLoadByDefault": "Privzeto prikaži",
"TheLoginScreen": "Obrazec za vpis",
diff --git a/plugins/UsersManager/lang/sq.json b/plugins/UsersManager/lang/sq.json
index a161f5fb1a..80824a0f8a 100644
--- a/plugins/UsersManager/lang/sq.json
+++ b/plugins/UsersManager/lang/sq.json
@@ -31,7 +31,7 @@
"MenuUserSettings": "Rregullime përdoruesi",
"PrivAdmin": "Admin",
"PrivNone": "Pa hyrje",
- "PrivView": "Parje",
+ "PrivView": "Pamje",
"ReportDateToLoadByDefault": "Datë raporti që duhet ngarkuar si parazgjedhje",
"ReportToLoadByDefault": "Raport që duhet ngarkuar si parazgjedhje",
"TheLoginScreen": "Skena e hyrjes",
diff --git a/plugins/UsersManager/lang/ta.json b/plugins/UsersManager/lang/ta.json
new file mode 100644
index 0000000000..a5d165cfb8
--- /dev/null
+++ b/plugins/UsersManager/lang/ta.json
@@ -0,0 +1,6 @@
+{
+ "UsersManager": {
+ "MenuUsers": "பாவனையாளர்கள்",
+ "PrivView": "பார்க்க"
+ }
+} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/th.json b/plugins/UsersManager/lang/th.json
index 1df57f7f60..10033d8bc8 100644
--- a/plugins/UsersManager/lang/th.json
+++ b/plugins/UsersManager/lang/th.json
@@ -29,7 +29,7 @@
"MenuUserSettings": "ตั้งค่าผู้ใช้",
"PrivAdmin": "จัดการ",
"PrivNone": "ไม่เข้าใช้งาน",
- "PrivView": "เข้าชม",
+ "PrivView": "มุมมอง",
"ReportDateToLoadByDefault": "รายงานวันที่โหลด โดยค่าเริ่มต้น",
"ReportToLoadByDefault": "รายงานเพื่อโหลดตามค่าเริ่มต้น",
"TheLoginScreen": "หน้าจอการเข้าสู่ระบบ",
diff --git a/plugins/UsersManager/lang/zh-cn.json b/plugins/UsersManager/lang/zh-cn.json
index 0904521df5..2fbd74e8da 100644
--- a/plugins/UsersManager/lang/zh-cn.json
+++ b/plugins/UsersManager/lang/zh-cn.json
@@ -36,7 +36,7 @@
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "说明: 不能在这里修改设置,因为没有任何公开的网站。",
"PrivAdmin": "管理员权限",
"PrivNone": "无查看权限",
- "PrivView": "有查看权限",
+ "PrivView": "查看",
"ReportDateToLoadByDefault": "默认加载的报表日期",
"ReportToLoadByDefault": "默认加载的报表",
"TheLoginScreen": "登录界面",
diff --git a/plugins/UsersManager/tests/Integration/UserPreferencesTest.php b/plugins/UsersManager/tests/Integration/UserPreferencesTest.php
index 34a8aeabbc..7c0daaaae2 100644
--- a/plugins/UsersManager/tests/Integration/UserPreferencesTest.php
+++ b/plugins/UsersManager/tests/Integration/UserPreferencesTest.php
@@ -8,6 +8,7 @@
namespace Piwik\Plugins\UsersManager\tests;
+use Piwik\Config;
use Piwik\Piwik;
use Piwik\Plugins\UsersManager\UserPreferences;
use Piwik\Plugins\UsersManager\API as APIUsersManager;
@@ -89,6 +90,42 @@ class UserPreferencesTest extends IntegrationTestCase
$this->assertEquals(1, $this->userPreferences->getDefaultWebsiteId());
}
+ public function test_getDefaultPeriod_ShouldReturnDayIfToday()
+ {
+ $this->setDefaultDate('today');
+ $this->assertEquals('day', $this->userPreferences->getDefaultPeriod());
+ }
+
+ public function test_getDefaultPeriod_ShouldReturnDayIfYesterday()
+ {
+ $this->setDefaultDate('yesterday');
+ $this->assertEquals('day', $this->userPreferences->getDefaultPeriod());
+ }
+
+ public function test_getDefaultDate()
+ {
+ $this->setDefaultDate('today');
+ $this->assertEquals('today', $this->userPreferences->getDefaultDate());
+ }
+
+ public function test_getDefaultPeriod_ShouldOnlyReturnAllowedPeriods()
+ {
+ // Only allow for week period
+ Config::getInstance()->General['enabled_periods_UI'] = 'week';
+ Config::getInstance()->General['default_period'] = 'week';
+ $this->setDefaultDate('today');
+ $this->assertEquals('week', $this->userPreferences->getDefaultPeriod());
+ }
+
+ public function test_getDefaultDate_ShouldOnlyReturnDateInAllowedPeriods()
+ {
+ // Only allow for week period
+ Config::getInstance()->General['enabled_periods_UI'] = 'day';
+ Config::getInstance()->General['default_period'] = 'day';
+ $this->setDefaultDate('last7');
+ $this->assertEquals('yesterday', $this->userPreferences->getDefaultDate());
+ }
+
private function setSuperUser()
{
$pseudoMockAccess = new FakeAccess();
@@ -110,9 +147,19 @@ class UserPreferencesTest extends IntegrationTestCase
private function setDefaultReport($defaultReport)
{
- APIUsersManager::getInstance()->setUserPreference(Piwik::getCurrentUserLogin(),
+ APIUsersManager::getInstance()->setUserPreference(
+ Piwik::getCurrentUserLogin(),
APIUsersManager::PREFERENCE_DEFAULT_REPORT,
- $defaultReport);
+ $defaultReport
+ );
}
+ private function setDefaultDate($date)
+ {
+ APIUsersManager::getInstance()->setUserPreference(
+ Piwik::getCurrentUserLogin(),
+ APIUsersManager::PREFERENCE_DEFAULT_REPORT_DATE,
+ $date
+ );
+ }
}
diff --git a/plugins/VisitFrequency/lang/cs.json b/plugins/VisitFrequency/lang/cs.json
index e864f8a7c4..a33726371a 100644
--- a/plugins/VisitFrequency/lang/cs.json
+++ b/plugins/VisitFrequency/lang/cs.json
@@ -7,10 +7,10 @@
"ColumnBounceRateForReturningVisits": "Frekvence odchodů pro opakované návštěvy",
"ColumnMaxActionsInReturningVisit": "Maximum akcí v jedné vracející se návštěvě",
"ColumnNbReturningVisitsConverted": "Počet zkonvertovaných vracejících se návštěv",
- "ColumnReturningUsers": "Vracející se uživatelé",
"ColumnReturningVisits": "Opětovných návštěv",
"ColumnSumVisitLengthReturning": "Celkový čas strávený vracejícími se návštěvníky (v sekundách)",
"ColumnUniqueReturningVisitors": "Unikátní vracející se návštěvníci",
+ "ColumnReturningUsers": "Vracející se uživatelé",
"PluginDescription": "Hlásí měření prvního času pro nové a vracející se návštěvníky.",
"ReturnActions": "%s akcí za opakovanou návštěvu",
"ReturnAverageVisitDuration": "%s průměrná dělka návštěvy pro navracející se návštěvníky",
diff --git a/plugins/VisitFrequency/lang/da.json b/plugins/VisitFrequency/lang/da.json
index dc6413323a..e53427da9d 100644
--- a/plugins/VisitFrequency/lang/da.json
+++ b/plugins/VisitFrequency/lang/da.json
@@ -7,10 +7,11 @@
"ColumnBounceRateForReturningVisits": "Afvisningsprocent for tilbagevendende besøg",
"ColumnMaxActionsInReturningVisit": "Maks. handlinger i et tilbagevendende besøg",
"ColumnNbReturningVisitsConverted": "Antal konverterede tilbagevendende besøg",
- "ColumnReturningUsers": "Tilbagevendende brugere",
"ColumnReturningVisits": "Tilbagevendende besøg",
"ColumnSumVisitLengthReturning": "Samlet tidsforbrug for tilbagevendende besøgende (i sekunder)",
"ColumnUniqueReturningVisitors": "Unikke tilbagevendende besøgende",
+ "ColumnReturningUsers": "Tilbagevendende brugere",
+ "PluginDescription": "Rapporter målinger om førstegangs nye besøgende og tilbagevendende besøgende.",
"ReturnActions": "%s handlinger af tilbagevendende besøg",
"ReturnAverageVisitDuration": "%s gns. Besøgsvarighed for tilbagevendende besøgende",
"ReturnAvgActions": "%s gns. handlinger pr. tilbagevendende besøg",
diff --git a/plugins/VisitFrequency/lang/de.json b/plugins/VisitFrequency/lang/de.json
index f321051420..cc99a0c6db 100644
--- a/plugins/VisitFrequency/lang/de.json
+++ b/plugins/VisitFrequency/lang/de.json
@@ -7,10 +7,10 @@
"ColumnBounceRateForReturningVisits": "Absprungsrate bei wiederkehrenden Besuchen",
"ColumnMaxActionsInReturningVisit": "Maximale Aktionen eines wiederkehrenden Besuchs",
"ColumnNbReturningVisitsConverted": "Anzahl wiederkehrende Besuche mit Konversion",
- "ColumnReturningUsers": "Wiederkehrende Benutzer",
"ColumnReturningVisits": "Wiederkehrende Besuche",
"ColumnSumVisitLengthReturning": "Gesamte Aufenthaltszeit bei wiederkehrenden Besuchen (in Sekunden)",
"ColumnUniqueReturningVisitors": "Eindeutige wiederkehrende Besucher",
+ "ColumnReturningUsers": "Wiederkehrende Benutzer",
"PluginDescription": "Liefert Metriken über erstmalige und wiederkehrende Besucher.",
"ReturnActions": "%s Aktionen von wiederkehrenden Besuchen",
"ReturnAverageVisitDuration": "%s durchschnittliche Aufenthaltszeit bei wiederkehrenden Besuchen",
diff --git a/plugins/VisitFrequency/lang/el.json b/plugins/VisitFrequency/lang/el.json
index bdd9c7d8d1..7ee2c599f0 100644
--- a/plugins/VisitFrequency/lang/el.json
+++ b/plugins/VisitFrequency/lang/el.json
@@ -7,10 +7,10 @@
"ColumnBounceRateForReturningVisits": "Βαθμός Απομάκρυνσης για Επιστρεφόμενες Επισκέψεις",
"ColumnMaxActionsInReturningVisit": "Μέγιστος αριθμός Δραστηριοτήτων σε μια επιστρεφόμενη επίσκεψη",
"ColumnNbReturningVisitsConverted": "Αριθμός μετατρεπόμενων επιστρεφόμενων επισκέψεων",
- "ColumnReturningUsers": "Επιστρέφοντες Χρήστες",
"ColumnReturningVisits": "Επιστρεφόμενες επισκέψεις",
"ColumnSumVisitLengthReturning": "Συνολικός δαπανηθείς χρόνος από επιστρεφόμενους επισκέπτες (σε δευτερόλεπτα)",
"ColumnUniqueReturningVisitors": "Μοναδικοί επιστρεφόμενοι επισκέπτες",
+ "ColumnReturningUsers": "Επιστρέφοντες Χρήστες",
"PluginDescription": "Αναφέρει μετρικές σχετικά με τους νέους επισκέπτες και αυτούς που ξαναέρχονται.",
"ReturnActions": "%s δραστηριότητες από τις επιστρεφόμενες επισκέψεις",
"ReturnAverageVisitDuration": "%s μέση διάρκεια επισκέψεων για επιστρεφόμενους Επισκέπτες",
diff --git a/plugins/VisitFrequency/lang/fr.json b/plugins/VisitFrequency/lang/fr.json
index f22ff040fc..aebc3e3169 100644
--- a/plugins/VisitFrequency/lang/fr.json
+++ b/plugins/VisitFrequency/lang/fr.json
@@ -7,10 +7,11 @@
"ColumnBounceRateForReturningVisits": "Pourcentage de rebond pour les visites retour",
"ColumnMaxActionsInReturningVisit": "Actions maximum dans une visite de retour",
"ColumnNbReturningVisitsConverted": "Nombre de visites converties de retour",
- "ColumnReturningUsers": "Visiteurs connus",
"ColumnReturningVisits": "Visites retour",
"ColumnSumVisitLengthReturning": "Le temps total passé par les visiteurs de retour (en secondes)",
"ColumnUniqueReturningVisitors": "Visiteurs uniques de retour",
+ "ColumnReturningUsers": "Visiteurs connus",
+ "PluginDescription": "Fournit des métriques à propos de vos nouveaux visiteurs et de vos visiteurs connus.",
"ReturnActions": "%s actions de visites de visiteurs connus",
"ReturnAverageVisitDuration": "%s durée moyenne de la visite des visiteurs connus",
"ReturnAvgActions": "%s actions par visiteur connu",
diff --git a/plugins/VisitFrequency/lang/it.json b/plugins/VisitFrequency/lang/it.json
index cf9509e84f..80df2f2f40 100644
--- a/plugins/VisitFrequency/lang/it.json
+++ b/plugins/VisitFrequency/lang/it.json
@@ -7,10 +7,10 @@
"ColumnBounceRateForReturningVisits": "Percentuale dei rimbalzi per le visite ricorrenti",
"ColumnMaxActionsInReturningVisit": "Numero massimo di azioni in una visita di ritorno",
"ColumnNbReturningVisitsConverted": "Numero di visite di ritorno convertite",
- "ColumnReturningUsers": "Utenti di ritorno",
"ColumnReturningVisits": "Visite ricorrenti",
"ColumnSumVisitLengthReturning": "Tempo complessivo speso dai visitatori di ritorno (in secondi)",
"ColumnUniqueReturningVisitors": "Visitatori unici di ritorno",
+ "ColumnReturningUsers": "Utenti di ritorno",
"PluginDescription": "Restituisce le metriche riguardanti i nuovi visitatori e quelli di ritorno.",
"ReturnActions": "%s pagine visualizzate dalle visite ricorrenti",
"ReturnAverageVisitDuration": "%s durata visita per visitatori di ritorno",
diff --git a/plugins/VisitFrequency/lang/nl.json b/plugins/VisitFrequency/lang/nl.json
index f5ba82c28f..7928e0f576 100644
--- a/plugins/VisitFrequency/lang/nl.json
+++ b/plugins/VisitFrequency/lang/nl.json
@@ -7,10 +7,10 @@
"ColumnBounceRateForReturningVisits": "Bounce Rate voor terugkerende bezoeken",
"ColumnMaxActionsInReturningVisit": "Hoogste aantal acties in een terugkeer bezoek",
"ColumnNbReturningVisitsConverted": "Aantal conversies terugkerende bezoekers",
- "ColumnReturningUsers": "Terugkerende Gebruikers",
"ColumnReturningVisits": "Terugkerende bezoeken",
"ColumnSumVisitLengthReturning": "Totale tijd besteed door de terugkerende bezoeker (in seconden)",
"ColumnUniqueReturningVisitors": "Unieke terugkerende bezoekers",
+ "ColumnReturningUsers": "Terugkerende Gebruikers",
"ReturnActions": "%s acties tijdens terugkerende bezoeken",
"ReturnAverageVisitDuration": "%s gemiddelde duur bezoek voor terugkerende bezoekers",
"ReturnAvgActions": "%s acties per terugkerend bezoek",
diff --git a/plugins/VisitFrequency/lang/pl.json b/plugins/VisitFrequency/lang/pl.json
index 5a84ab7b7c..c8b8aadc05 100644
--- a/plugins/VisitFrequency/lang/pl.json
+++ b/plugins/VisitFrequency/lang/pl.json
@@ -3,10 +3,11 @@
"ColumnActionsByReturningVisits": "Aktywność w trakcie powtórnych odwiedzin",
"ColumnAverageVisitDurationForReturningVisitors": "Średni czas odwiedzin dla powtórnych wizyt (w sekundach)",
"ColumnAvgActionsPerReturningVisit": "Średnia ilość działań przypadająca na powtórne odwiedziny",
+ "ColumnBounceCountForReturningVisits": "Ilość rezygnacji dla powtórnych odwiedzin",
"ColumnBounceRateForReturningVisits": "Współczynnik rezygnacji dla powtórnych odwiedzin",
- "ColumnReturningUsers": "Powracający Użytkownicy",
"ColumnReturningVisits": "Powtórne odwiedziny",
"ColumnSumVisitLengthReturning": "Całkowity czas spędzony przez powracających użytkowników (w sekundach)",
+ "ColumnReturningUsers": "Powracający Użytkownicy",
"ReturnActions": "%s działań przypadających na powtórne odwiedziny",
"ReturnAverageVisitDuration": "%s średni czas trwania odwiedzin przy powtórnych odsłonach",
"ReturnAvgActions": "%s działań przypadających na powtórne odwiedziny",
diff --git a/plugins/VisitFrequency/lang/ru.json b/plugins/VisitFrequency/lang/ru.json
index 9a6e453a9e..dc2857b997 100644
--- a/plugins/VisitFrequency/lang/ru.json
+++ b/plugins/VisitFrequency/lang/ru.json
@@ -7,10 +7,10 @@
"ColumnBounceRateForReturningVisits": "Для отскочивих среди повторных посетителей",
"ColumnMaxActionsInReturningVisit": "Максимум действий за одно вернувшееся посещение",
"ColumnNbReturningVisitsConverted": "Число конверсии вернувшихся посетителей",
- "ColumnReturningUsers": "Вернувшиеся пользователи",
"ColumnReturningVisits": "Повторные посещения",
"ColumnSumVisitLengthReturning": "Общее время, проведенное вернувшимися посетителями (в секундах)",
"ColumnUniqueReturningVisitors": "Уникальные вернувшиеся посетители",
+ "ColumnReturningUsers": "Вернувшиеся пользователи",
"ReturnActions": "%s действий за повторные посещения",
"ReturnAverageVisitDuration": "%s средняя продолжительность посещения возвратившимся пользователями",
"ReturnAvgActions": "%s действий за повторное посещение",
diff --git a/plugins/VisitFrequency/templates/_sparklines.twig b/plugins/VisitFrequency/templates/_sparklines.twig
index e5639e2e36..c6c123c5e2 100644
--- a/plugins/VisitFrequency/templates/_sparklines.twig
+++ b/plugins/VisitFrequency/templates/_sparklines.twig
@@ -1,6 +1,9 @@
-<div class="row">
+{% if not isWidget %}
+<div class="row">
<div class="col-md-6">
+{% endif %}
+
<div class="sparkline">
{{ sparkline(urlSparklineNbVisitsReturning) }}
{{ 'VisitFrequency_ReturnVisits'|translate("<strong>"~nbVisitsReturning~"</strong>")|raw }}
@@ -13,8 +16,12 @@
{{ sparkline(urlSparklineActionsPerVisitReturning) }}
{{ 'VisitFrequency_ReturnAvgActions'|translate("<strong>"~nbActionsPerVisitReturning~"</strong>")|raw }}
</div>
+
+ {% if not isWidget %}
</div>
<div class="col-md-6">
+ {% endif %}
+
<div class="sparkline">
{{ sparkline(urlSparklineAvgVisitDurationReturning) }}
{% set avgVisitDurationReturning=avgVisitDurationReturning|sumtime %}
@@ -25,5 +32,8 @@
{{ 'VisitFrequency_ReturnBounceRate'|translate("<strong>"~bounceRateReturning~"</strong>")|raw }}
</div>
{% include "_sparklineFooter.twig" %}
+
+{% if not isWidget %}
</div>
</div>
+{% endif %}
diff --git a/plugins/VisitTime/lang/fr.json b/plugins/VisitTime/lang/fr.json
index 43ffa41e28..6b5e0768bd 100644
--- a/plugins/VisitTime/lang/fr.json
+++ b/plugins/VisitTime/lang/fr.json
@@ -5,6 +5,7 @@
"DayOfWeek": "Jour de la semaine",
"LocalTime": "Visites par heure locale",
"NHour": "%sh",
+ "PluginDescription": "Fournit des informations sur l'heure locale et de serveur à laquelle vos visiteurs on visité votre site web ou app.",
"ServerTime": "Visites par heure du serveur",
"SubmenuTimes": "Horaires",
"VisitsByDayOfWeek": "Visites par Jour de la Semaine",
diff --git a/plugins/VisitTime/lang/ru.json b/plugins/VisitTime/lang/ru.json
index 15fa02ff9f..be8e2e0e7c 100644
--- a/plugins/VisitTime/lang/ru.json
+++ b/plugins/VisitTime/lang/ru.json
@@ -5,6 +5,7 @@
"DayOfWeek": "День недели",
"LocalTime": "Посещений по местному времени",
"NHour": "%s ч.",
+ "PluginDescription": "Сообщает местное время и время на сервере когда посетители смотрели вебсайт или приложение.",
"ServerTime": "Посещений по времени на сервере",
"SubmenuTimes": "По времени",
"VisitsByDayOfWeek": "Посещения по дням недели",
diff --git a/plugins/VisitorGenerator b/plugins/VisitorGenerator
-Subproject a1626b4be23dc2acb22bbe6816818fb47ddd2d9
+Subproject 6aa7eeeeadc4bdad7f6a5862a4b6773c6235c9d
diff --git a/plugins/VisitorInterest/lang/fr.json b/plugins/VisitorInterest/lang/fr.json
index 72b02ad895..4cdb6edc56 100644
--- a/plugins/VisitorInterest/lang/fr.json
+++ b/plugins/VisitorInterest/lang/fr.json
@@ -8,6 +8,7 @@
"NPages": "%s pages",
"OneMinute": "1 min",
"OnePage": "1 page",
+ "PluginDescription": "Fournit des détails sur les intérêts des visiteurs: nombre de pages vues, temps passé sur le site web, jours depuis la dernière visite et plus.",
"PlusXMin": "%s min",
"VisitNum": "Numéro de la visite",
"VisitsByDaysSinceLast": "Visites par jours depuis la dernière visite",
diff --git a/plugins/VisitsSummary/lang/da.json b/plugins/VisitsSummary/lang/da.json
index 08c5a3d537..4b1e207328 100644
--- a/plugins/VisitsSummary/lang/da.json
+++ b/plugins/VisitsSummary/lang/da.json
@@ -17,6 +17,7 @@
"NbUniquePageviewsDescription": "%s unikke sidevisninger",
"NbUniqueVisitors": "%s unikke besøgende",
"NbVisitsBounced": "%s har forladt hjemmesiden efter én sidevisning",
+ "PluginDescription": "Rapporter generelle analyse målinger: besøg, unikke besøgende, antal handlinger, afvisningsrate, osv",
"VisitsSummary": "Besøg resumé",
"VisitsSummaryDocumentation": "Oversigt over besøgsudviklingen.",
"WidgetLastVisits": "Seneste besøg",
diff --git a/plugins/VisitsSummary/lang/fr.json b/plugins/VisitsSummary/lang/fr.json
index a21bc59d30..8c0a6eef6c 100644
--- a/plugins/VisitsSummary/lang/fr.json
+++ b/plugins/VisitsSummary/lang/fr.json
@@ -17,6 +17,7 @@
"NbUniquePageviewsDescription": "%s pages vues uniques",
"NbUniqueVisitors": "%s visiteurs uniques",
"NbVisitsBounced": "%s visiteurs ont survolé (quitté le site après une page)",
+ "PluginDescription": "Fournit des métriques d'analyse générales : visites, visiteurs uniques, nombre d'actions, taux de rebond, etc.",
"VisitsSummary": "Récapitulatif des visites",
"VisitsSummaryDocumentation": "Ceci est un aperçu de l'évolution de la visite.",
"WidgetLastVisits": "Graphique des dernières visites",
diff --git a/plugins/VisitsSummary/templates/_sparklines.twig b/plugins/VisitsSummary/templates/_sparklines.twig
index dbef25aba5..94682a928c 100644
--- a/plugins/VisitsSummary/templates/_sparklines.twig
+++ b/plugins/VisitsSummary/templates/_sparklines.twig
@@ -1,6 +1,8 @@
+{% if not isWidget %}
<div class="row">
-
<div class="col-md-6">
+{% endif %}
+
<div class="sparkline">
{{ sparkline(urlSparklineNbVisits)|raw }}
{{ 'General_NVisits'|translate("<strong>"~nbVisits~"</strong>")|raw }}{% if displayUniqueVisitors %},
@@ -33,9 +35,12 @@
{{ 'VisitsSummary_AverageGenerationTime'|translate("<strong>"~averageGenerationTime~"</strong>")|raw }}
</div>
{% endif %}
- </div>
+{% if not isWidget %}
+ </div>
<div class="col-md-6">
+{% endif %}
+
{% if showActionsPluginReports|default(false) %}
{% if showOnlyActions %}
<div class="sparkline">
@@ -73,9 +78,11 @@
</div>
{{ postEvent('Template.VisitsSummaryOverviewSparklines') }}
- </div>
+{% if not isWidget %}
+ </div>
</div>
+{% endif %}
{% include "_sparklineFooter.twig" %}
diff --git a/plugins/Widgetize/lang/da.json b/plugins/Widgetize/lang/da.json
index 7e8063407c..6f7f46e5e0 100644
--- a/plugins/Widgetize/lang/da.json
+++ b/plugins/Widgetize/lang/da.json
@@ -1,6 +1,7 @@
{
"Widgetize": {
"OpenInNewWindow": "Åben i et nyt vindue",
+ "PluginDescription": "Viser alle Piwik rapport på webstedet eller app med et simpel indlejrings HTML-tag.",
"TopLinkTooltip": "Eksporter Piwik rapporter som moduler og indlejre dit kontrolpanel i din applikation som en iframe."
}
} \ No newline at end of file
diff --git a/plugins/Widgetize/lang/fr.json b/plugins/Widgetize/lang/fr.json
index a0da4cabaf..4b98bc4dcd 100644
--- a/plugins/Widgetize/lang/fr.json
+++ b/plugins/Widgetize/lang/fr.json
@@ -1,6 +1,7 @@
{
"Widgetize": {
"OpenInNewWindow": "Ouvrir dans une nouvelle fenêtre",
+ "PluginDescription": "Affichez n'importe quel rapport Piwik sur votre site web avec une simple balise HTML.",
"TopLinkTooltip": "Exporter les rapports Piwik en tant que gadget et incorporer le tableau de bord dans votre application en tant qu'iframe."
}
} \ No newline at end of file
diff --git a/plugins/Widgetize/lang/nl.json b/plugins/Widgetize/lang/nl.json
index 09a8aa58e2..f083910ed8 100644
--- a/plugins/Widgetize/lang/nl.json
+++ b/plugins/Widgetize/lang/nl.json
@@ -1,5 +1,7 @@
{
"Widgetize": {
- "OpenInNewWindow": "Open in een nieuw venster"
+ "OpenInNewWindow": "Open in een nieuw venster",
+ "PluginDescription": "Toon elk Piwik rapport in je website of app eenvoudig met een Embed HTML tag.",
+ "TopLinkTooltip": "Export Piwik Rapporten als Widgets en voeg het dashboard toe in je app als een iframe."
}
} \ No newline at end of file
diff --git a/plugins/Widgetize/lang/ru.json b/plugins/Widgetize/lang/ru.json
index 1d694abafe..20bab5067f 100644
--- a/plugins/Widgetize/lang/ru.json
+++ b/plugins/Widgetize/lang/ru.json
@@ -1,6 +1,7 @@
{
"Widgetize": {
"OpenInNewWindow": "Открыть в новом окне",
+ "PluginDescription": "Показать отчёт Piwik на вебсайте или в приложении с помощью простого встраиваемого HTML тега.",
"TopLinkTooltip": "Экспортируйте аналитику Piwik в виде виджетов и установите их на своем сайте или веб-сервисе как iframe."
}
} \ No newline at end of file
diff --git a/plugins/ZenMode/lang/cs.json b/plugins/ZenMode/lang/cs.json
index 9acda86d4e..4dd1ffd097 100644
--- a/plugins/ZenMode/lang/cs.json
+++ b/plugins/ZenMode/lang/cs.json
@@ -1,9 +1,9 @@
{
"ZenMode": {
- "Activated": "Zen režim aktivován",
+ "SearchForAnything": "Hledat cokoliv",
+ "QuickAccessTitle": "Hledat hlášení, webové stránky nebo položky menu",
"HowToSearch": "Pokud chcete najít hlášení nebo položky menu, použijte vyhledávací pole v pravé horní části, nebo stiskněte 'alt+f'.",
"HowToToggleZenMode": "Pokud chcete přepnout zen režim, použijte šipku v pravé horní oblasti, nebo stiskněte 'alt+z'.",
- "QuickAccessTitle": "Hledat hlášení, webové stránky nebo položky menu",
- "SearchForAnything": "Hledat cokoliv"
+ "Activated": "Zen režim aktivován"
}
} \ No newline at end of file
diff --git a/plugins/ZenMode/lang/da.json b/plugins/ZenMode/lang/da.json
index 407e3567f5..8275461eaf 100644
--- a/plugins/ZenMode/lang/da.json
+++ b/plugins/ZenMode/lang/da.json
@@ -1,9 +1,9 @@
{
"ZenMode": {
- "Activated": "Zen-tilstand aktiveret",
+ "SearchForAnything": "Søg efter alt",
+ "QuickAccessTitle": "Søg efter menupunkter, rapporter og hjemmesider",
"HowToSearch": "For at søge efter menupunkter, rapporter eller hjemmesider bruge søgefeltet øverst til højre, eller tryk på 'alt+f'.",
"HowToToggleZenMode": "Forlad eller kom i Zen-tilstand ved at klikke på pilen øverst til højre, eller tryk på 'alt+z'.",
- "QuickAccessTitle": "Søg efter menupunkter, rapporter og hjemmesider",
- "SearchForAnything": "Søg efter alt"
+ "Activated": "Zen-tilstand aktiveret"
}
} \ No newline at end of file
diff --git a/plugins/ZenMode/lang/de.json b/plugins/ZenMode/lang/de.json
index 29ee98a894..92e42baef8 100644
--- a/plugins/ZenMode/lang/de.json
+++ b/plugins/ZenMode/lang/de.json
@@ -1,9 +1,9 @@
{
"ZenMode": {
- "Activated": "Zen Modus aktiviert",
+ "SearchForAnything": "Nach etwas suchen",
+ "QuickAccessTitle": "Nach Menüeinträgen, Berichte oder Webseiten suchen",
"HowToSearch": "Um nach Menüeinträgen, Berichten oder Webseiten zu suchen, das Suchfeld oben benutzen oder Alt+f drücken.",
"HowToToggleZenMode": "Auf den oberen rechten Pfeil klicken um den Zen Modus zu verlassen oder Alt+t drücken.",
- "QuickAccessTitle": "Nach Menüeinträgen, Berichte oder Webseiten suchen",
- "SearchForAnything": "Nach etwas suchen"
+ "Activated": "Zen Modus aktiviert"
}
} \ No newline at end of file
diff --git a/plugins/ZenMode/lang/el.json b/plugins/ZenMode/lang/el.json
index f86a7268e8..6df8eff584 100644
--- a/plugins/ZenMode/lang/el.json
+++ b/plugins/ZenMode/lang/el.json
@@ -1,9 +1,9 @@
{
"ZenMode": {
- "Activated": "Η κατάσταση Zen ενεργοποιήθηκε",
+ "SearchForAnything": "Αναζήτηση για όλα",
+ "QuickAccessTitle": "Αναζήτηση για καταχωρήσεις μενού, αναφορές και ιστοτόπους",
"HowToSearch": "Για να αναζητήσετε σε καταχωρήσεις μενού, αναφορές ή ιστοτόπους χρησιμοποιείστε το πλαίσιο αναζήτηση πάνω δεξιά ή πατήστε 'Alt+F'.",
"HowToToggleZenMode": "Για να βγείτε ή μεταβείτε σε κατάσταση Zen, πατήστε στο βέλος πάνω δεξιά ή πατήστε 'Alt+Z'.",
- "QuickAccessTitle": "Αναζήτηση για καταχωρήσεις μενού, αναφορές και ιστοτόπους",
- "SearchForAnything": "Αναζήτηση για όλα"
+ "Activated": "Η κατάσταση Zen ενεργοποιήθηκε"
}
} \ No newline at end of file
diff --git a/plugins/ZenMode/lang/fr.json b/plugins/ZenMode/lang/fr.json
index 1120ce61ef..c921042167 100644
--- a/plugins/ZenMode/lang/fr.json
+++ b/plugins/ZenMode/lang/fr.json
@@ -1,9 +1,9 @@
{
"ZenMode": {
- "Activated": "Mode zen activé",
+ "SearchForAnything": "Rechercher tout",
+ "QuickAccessTitle": "Rechercher des éléments du menu, rapports et sites web",
"HowToSearch": "Pour rechercher des éléments du menu, rapports ou sites web utilisez la barre de recherche en haut à droite ou pressez 'alt+f'.",
"HowToToggleZenMode": "Pour quitter ou entrer en mode zen cliquez sur la flèche dans le coin supérieur droit ou pressez 'alt+z'.",
- "QuickAccessTitle": "Rechercher des éléments du menu, rapports et sites web",
- "SearchForAnything": "Rechercher tout"
+ "Activated": "Mode zen activé"
}
} \ No newline at end of file
diff --git a/plugins/ZenMode/lang/it.json b/plugins/ZenMode/lang/it.json
index f67d60ea3e..d276ee1b4a 100644
--- a/plugins/ZenMode/lang/it.json
+++ b/plugins/ZenMode/lang/it.json
@@ -1,9 +1,9 @@
{
"ZenMode": {
- "Activated": "Modalità Zen attivata",
+ "SearchForAnything": "Cerca tutto",
+ "QuickAccessTitle": "Ricerca elementi di menù, report e siti web",
"HowToSearch": "Per ricercare elementi di menù, report o siti web utilizza la casella di ricerca in alto a destra o premi 'alt+f'.",
"HowToToggleZenMode": "Per lasciare la modalità Zen o entrarvi, clicca sulla freccia in alto a destra o premi 'alt+z'.",
- "QuickAccessTitle": "Ricerca elementi di menù, report e siti web",
- "SearchForAnything": "Cerca tutto"
+ "Activated": "Modalità Zen attivata"
}
} \ No newline at end of file
diff --git a/plugins/ZenMode/lang/ja.json b/plugins/ZenMode/lang/ja.json
index 53daf5eacf..3bc49cdb1e 100644
--- a/plugins/ZenMode/lang/ja.json
+++ b/plugins/ZenMode/lang/ja.json
@@ -1,9 +1,9 @@
{
"ZenMode": {
- "Activated": "禅モードを有効化",
+ "SearchForAnything": "なんでも検索",
+ "QuickAccessTitle": "メニューエントリー、レポート、ウェブサイトを検索",
"HowToSearch": "メニュー項目やレポート、ウェブサイトをお探しの場合、右上の検索ボックスをご利用になるか、キーボードの 'alt+f' を押してください。",
"HowToToggleZenMode": "禅モードを切り替えるには、右上の矢印をクリックするか、キーボードの 'alt+z' を押してください。",
- "QuickAccessTitle": "メニューエントリー、レポート、ウェブサイトを検索",
- "SearchForAnything": "なんでも検索"
+ "Activated": "禅モードを有効化"
}
} \ No newline at end of file
diff --git a/plugins/ZenMode/lang/nl.json b/plugins/ZenMode/lang/nl.json
index 115eea6320..88f0f8801b 100644
--- a/plugins/ZenMode/lang/nl.json
+++ b/plugins/ZenMode/lang/nl.json
@@ -1,9 +1,9 @@
{
"ZenMode": {
- "Activated": "Zen-modus geactiveerd",
+ "SearchForAnything": "Zoeken op alles",
+ "QuickAccessTitle": "Zoeken op menu-items, rapporten en websites",
"HowToSearch": "Om te zoeken op menu-items, rapporten of websites gebruik het zoekvak rechtsboven of druk op 'alt+f'.",
"HowToToggleZenMode": "Om de zen-modus te betreden of verlaten klik op pijl rechtsboven of druk 'alt+z'.",
- "QuickAccessTitle": "Zoeken op menu-items, rapporten en websites",
- "SearchForAnything": "Zoeken op alles"
+ "Activated": "Zen-modus geactiveerd"
}
} \ No newline at end of file
diff --git a/plugins/ZenMode/lang/pl.json b/plugins/ZenMode/lang/pl.json
index 1cbe77e2b4..d638e2b004 100644
--- a/plugins/ZenMode/lang/pl.json
+++ b/plugins/ZenMode/lang/pl.json
@@ -1,8 +1,8 @@
{
"ZenMode": {
- "Activated": "Tryb Zen został aktywowany",
- "HowToToggleZenMode": "Aby wyjść albo wejść do trybu Zen należy kliknąć strzałkę w górnym prawym rogu albo wcisnąć 'alt+z'.",
+ "SearchForAnything": "Szukaj czegokolwiek",
"QuickAccessTitle": "Szukaj wpisów w menu, raportów i stron.",
- "SearchForAnything": "Szukaj czegokolwiek"
+ "HowToToggleZenMode": "Aby wyjść albo wejść do trybu Zen należy kliknąć strzałkę w górnym prawym rogu albo wcisnąć 'alt+z'.",
+ "Activated": "Tryb Zen został aktywowany"
}
} \ No newline at end of file
diff --git a/plugins/ZenMode/lang/ru.json b/plugins/ZenMode/lang/ru.json
index 176bba72b3..68799e808c 100644
--- a/plugins/ZenMode/lang/ru.json
+++ b/plugins/ZenMode/lang/ru.json
@@ -1,9 +1,9 @@
{
"ZenMode": {
- "Activated": "Активирован Дзен режим",
+ "SearchForAnything": "Поиск везде",
+ "QuickAccessTitle": "Поиск по пунктам меню, отчетам и сайтам",
"HowToSearch": "Для поиска элементов меню, отчетов и веб-сайтов используйте окно поиска в правом верхнем углу или нажмите \"alt+f\"",
"HowToToggleZenMode": "Чтобы выйти или войти в Дзен режим нажмите на стрелку в правом верхнем углу или нажмите \"alt+z\".",
- "QuickAccessTitle": "Поиск по пунктам меню, отчетам и сайтам",
- "SearchForAnything": "Поиск везде"
+ "Activated": "Активирован Дзен режим"
}
} \ No newline at end of file
diff --git a/plugins/ZenMode/lang/sr.json b/plugins/ZenMode/lang/sr.json
index 630556cf27..0a28199a89 100644
--- a/plugins/ZenMode/lang/sr.json
+++ b/plugins/ZenMode/lang/sr.json
@@ -1,9 +1,9 @@
{
"ZenMode": {
- "Activated": "Zen mod aktiviran",
+ "SearchForAnything": "Pretraži sve",
+ "QuickAccessTitle": "Pretraživanje stavki menija, izveštaja i sajtova",
"HowToSearch": "Ukoliko želite da pretražujete stavke menija, izveštaje ili sajtove, upotrebite polje za pretraživanje u gornjem desnom uglu ili pritisnite Alt + f.",
"HowToToggleZenMode": "Ukoliko želite da napustite ili ponovo aktivirate zen mod, kliknite na strelicu u gornjem desnom uglu ili pritisnite Alt + z.",
- "QuickAccessTitle": "Pretraživanje stavki menija, izveštaja i sajtova",
- "SearchForAnything": "Pretraži sve"
+ "Activated": "Zen mod aktiviran"
}
} \ No newline at end of file
diff --git a/plugins/ZenMode/lang/sv.json b/plugins/ZenMode/lang/sv.json
index 6e33bd304f..d42ff6428e 100644
--- a/plugins/ZenMode/lang/sv.json
+++ b/plugins/ZenMode/lang/sv.json
@@ -1,9 +1,9 @@
{
"ZenMode": {
- "Activated": "Zen mode aktiverat",
+ "SearchForAnything": "Sök efter vad som helst",
+ "QuickAccessTitle": "Sök efter meny-poster, rapporter och webbplatser",
"HowToSearch": "För att söka efter meny-poster, rapporter eller webbplatser - använd sökfältet uppe till höger eller tryck 'alt+f'.",
"HowToToggleZenMode": "För att gå i\/ur zen mode, klicka på pilen uppe till höger eller tryck 'alt+z'.",
- "QuickAccessTitle": "Sök efter meny-poster, rapporter och webbplatser",
- "SearchForAnything": "Sök efter vad som helst"
+ "Activated": "Zen mode aktiverat"
}
} \ No newline at end of file
diff --git a/plugins/ZenMode/lang/ta.json b/plugins/ZenMode/lang/ta.json
new file mode 100644
index 0000000000..c9c6a76d75
--- /dev/null
+++ b/plugins/ZenMode/lang/ta.json
@@ -0,0 +1,6 @@
+{
+ "ZenMode": {
+ "SearchForAnything": "எதைபற்றியும் தேடு",
+ "Activated": "ஜென் நிலை செயற்பாட்டில் உள்ளது"
+ }
+} \ No newline at end of file
diff --git a/plugins/ZenMode/lang/tl.json b/plugins/ZenMode/lang/tl.json
index 0363430b80..7f738608d1 100644
--- a/plugins/ZenMode/lang/tl.json
+++ b/plugins/ZenMode/lang/tl.json
@@ -1,9 +1,9 @@
{
"ZenMode": {
- "Activated": "Ang Zen mode ay na activate",
+ "SearchForAnything": "Paghahanap sa kahit ano",
+ "QuickAccessTitle": "Maghanap ng mga entry ng menu mga ulat at mga website.",
"HowToSearch": "Para maghanap ng items sa menu ulat o websites gamitin ang search box sa kanang tuktok o pindutin ang 'alt+f'.",
"HowToToggleZenMode": "Upang umalis o ipasok ang Zen mode i-click ang arrow sa kanang tuktok o pindutin ang 'alt + z'.",
- "QuickAccessTitle": "Maghanap ng mga entry ng menu mga ulat at mga website.",
- "SearchForAnything": "Paghahanap sa kahit ano"
+ "Activated": "Ang Zen mode ay na activate"
}
} \ No newline at end of file
diff --git a/tests/PHPUnit/Framework/Mock/FakeLogger.php b/tests/PHPUnit/Framework/Mock/FakeLogger.php
new file mode 100644
index 0000000000..8bdd66388c
--- /dev/null
+++ b/tests/PHPUnit/Framework/Mock/FakeLogger.php
@@ -0,0 +1,19 @@
+<?php
+
+namespace Piwik\Tests\Framework\Mock;
+
+use Psr\Log\AbstractLogger;
+use Psr\Log\LoggerInterface;
+
+class FakeLogger extends AbstractLogger implements LoggerInterface
+{
+ /**
+ * @var string
+ */
+ public $output = '';
+
+ public function log($level, $message, array $context = array())
+ {
+ $this->output .= $message . PHP_EOL;
+ }
+}
diff --git a/tests/PHPUnit/Integration/Archive/DataTableFactoryTest.php b/tests/PHPUnit/Integration/Archive/DataTableFactoryTest.php
new file mode 100644
index 0000000000..9645685c34
--- /dev/null
+++ b/tests/PHPUnit/Integration/Archive/DataTableFactoryTest.php
@@ -0,0 +1,360 @@
+<?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\Archive;
+
+use Piwik\Access;
+use Piwik\Archive;
+use Piwik\ArchiveProcessor;
+use Piwik\DataTable;
+use Piwik\DataTable\DataTableInterface;
+use Piwik\DataTable\Row;
+use Piwik\Db;
+use Piwik\Period;
+use Piwik\Segment;
+use Piwik\Site;
+use Piwik\Tests\Framework\Fixture;
+use Piwik\Tests\Framework\Mock\FakeAccess;
+use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
+use Piwik\Period\Factory as PeriodFactory;
+use Piwik\Archive\DataTableFactory;
+
+/**
+ * @group DataTableFactoryTest
+ * @group DataTableFactoryjj
+ * @group Archive
+ * @group Core
+ */
+class DataTableFactoryTest extends IntegrationTestCase
+{
+ private $site1 = 3;
+ private $site2 = 4;
+ private $date1range = '2012-12-12,2012-12-12';
+ private $date2range = '2012-12-13,2012-12-13';
+
+ private $date1 = '2012-12-12';
+ private $date2 = '2012-12-13';
+
+ private $defaultRow = array(
+ 'nb_visits' => 97
+ );
+
+ public function setUp()
+ {
+ parent::setUp();
+
+ // setup the access layer
+ $pseudoMockAccess = new FakeAccess;
+ FakeAccess::$superUser = true;
+ Access::setSingletonInstance($pseudoMockAccess);
+
+ for ($i = 0; $i < $this->site2; $i++) {
+ Fixture::createWebsite('2015-01-01 00:00:00');
+ }
+ }
+
+ public function test_makeMerged_numeric_noIndices_shouldContainDefaultRow_IfNoDataGiven()
+ {
+ $indices = $this->getResultIndices($period = false, $site = false);
+ $factory = $this->createFactory($indices);
+
+ $table = $factory->makeMerged($index = array(), $indices);
+
+ $this->assertTableIsDataTableSimpleInstance($table);
+ $this->assertRowCountEquals(1, $table);
+ $this->assertRowEquals($this->defaultRow, $this->site1, $table->getFirstRow());
+ $this->assertTableMetadataEquals($this->date1, $table);
+ }
+
+ public function test_makeMerged_numeric_noIndices_shouldContainOnlyOneRowWithTheData_IfAnyDataIsSet()
+ {
+ $indices = $this->getResultIndices($period = false, $site = false);
+ $factory = $this->createFactory($indices);
+
+ $index = array('nb_visits' => 10, 'nb_pageviews' => 21);
+
+ $dataTable = $factory->makeMerged($index, $indices);
+
+ $this->assertTableIsDataTableSimpleInstance($dataTable);
+ $this->assertRowCountEquals(1, $dataTable);
+ $this->assertRowEquals($index, $this->site1, $dataTable->getFirstRow());
+ $this->assertTableMetadataEquals($this->date1, $dataTable);
+ }
+
+ public function test_makeMerged_numeric_periodIndices_shouldGenerateAMapOfTables_AndUseDefaultRow_IfNoData()
+ {
+ $indices = $this->getResultIndices($period = true, $site = false);
+ $factory = $this->createFactory($indices);
+
+ $index = array(
+ $this->date1range => array(),
+ $this->date2range => array(),
+ );
+
+ $map = $factory->makeMerged($index, $indices);
+
+ $this->assertTrue($map instanceof DataTable\Map);
+ $this->assertRowCountEquals(2, $map);
+
+ foreach ($map->getDataTables() as $label => $table) {
+ $this->assertTrue(in_array($label, array($this->date1, $this->date2)));
+ $this->assertTableIsDataTableSimpleInstance($table);
+ $this->assertRowCountEquals(1, $table);
+ $this->assertRowEquals($this->defaultRow, $this->site1, $table->getFirstRow());
+ $this->assertTableMetadataEquals($label, $table);
+ }
+ }
+
+ public function test_makeMerged_numeric_periodIndices_shouldGenerateAMapOfTables_WithData()
+ {
+ $indices = $this->getResultIndices($period = true, $site = false);
+ $factory = $this->createFactory($indices);
+
+ $row1 = array('nb_visits' => 37, 'nb_pageviews' => 10);
+ $row2 = array('nb_visits' => 34, 'nb_hits' => 21);
+
+ $index = array(
+ $this->date1range => $row1,
+ $this->date2range => $row2,
+ );
+
+ $map = $factory->makeMerged($index, $indices);
+
+ $this->assertTrue($map instanceof DataTable\Map);
+ $this->assertRowCountEquals(2, $map);
+
+ foreach ($map->getDataTables() as $label => $table) {
+ $this->assertTableIsDataTableSimpleInstance($table);
+ $this->assertRowCountEquals(1, $table);
+ $this->assertTableMetadataEquals($label, $table);
+ }
+
+ $this->assertRowEquals($row1, $this->site1, $map->getTable($this->date1)->getFirstRow());
+ $this->assertRowEquals($row2, $this->site1, $map->getTable($this->date2)->getFirstRow());
+ }
+
+ public function test_makeMerged_numeric_periodIndices_shouldSetAKeyName()
+ {
+ $indices = $this->getResultIndices($period = true, $site = false);
+ $factory = $this->createFactory($indices);
+
+ $index = array(
+ $this->date1range => array(),
+ $this->date2range => array(),
+ );
+
+ $map = $factory->makeMerged($index, $indices);
+
+ $this->assertSame('date', $map->getKeyName());
+ }
+
+ public function test_makeMerged_numeric_siteIndices_shouldUseDefaultRow_IfNoData()
+ {
+ $indices = $this->getResultIndices($period = false, $site = true);
+ $factory = $this->createFactory($indices);
+
+ $index = array(
+ $this->site1 => array(),
+ $this->site2 => array(),
+ );
+
+ $table = $factory->makeMerged($index, $indices);
+
+ $this->assertTableIsDataTableInstance($table);
+ $this->assertRowCountEquals(2, $table);
+
+ $this->assertRowEquals($this->defaultRow, $this->site1, $table->getRowFromId(0));
+ $this->assertRowEquals($this->defaultRow, $this->site2, $table->getRowFromId(1));
+ $this->assertTableMetadataEquals($this->date1, $table);
+ }
+
+ public function test_makeMerged_numeric_siteIndices_shouldGenerateAMapOfTables_WithData()
+ {
+ $indices = $this->getResultIndices($period = false, $site = true);
+ $factory = $this->createFactory($indices);
+
+ $row1 = array('nb_visits' => 37, 'nb_pageviews' => 10);
+ $row2 = array('nb_visits' => 34, 'nb_hits' => 21);
+
+ $index = array(
+ $this->site1 => $row1,
+ $this->site2 => $row2,
+ );
+
+ $table = $factory->makeMerged($index, $indices);
+
+ $this->assertTableIsDataTableInstance($table);
+ $this->assertRowCountEquals(2, $table);
+
+ $this->assertRowEquals($row1, $this->site1, $table->getRowFromId(0));
+ $this->assertRowEquals($row2, $this->site2, $table->getRowFromId(1));
+ $this->assertTableMetadataEquals($this->date1, $table);
+ }
+
+ public function test_makeMerged_numeric_siteAndPeriodIndices_shouldUseDefaultRow_IfNoData()
+ {
+ $indices = $this->getResultIndices($period = true, $site = true);
+ $factory = $this->createFactory($indices);
+
+ $index = array(
+ $this->site1 => array(
+ $this->date1range => array(),
+ $this->date2range => array()
+ ),
+ $this->site2 => array(
+ $this->date1range => array(),
+ $this->date2range => array()
+ ),
+ );
+
+ $map = $factory->makeMerged($index, $indices);
+
+ $this->assertTrue($map instanceof DataTable\Map);
+ $this->assertRowCountEquals(2, $map);
+ $this->assertSame('date', $map->getKeyName());
+
+ foreach ($map->getDataTables() as $label => $table) {
+ $this->assertTrue(in_array($label, array($this->date1, $this->date2)));
+ $this->assertTableIsDataTableInstance($table);
+ $this->assertRowCountEquals(2, $table);
+ $this->assertTableMetadataEquals($label, $table);
+ }
+
+ $this->assertRowEquals($this->defaultRow, $this->site1, $map->getTable($this->date1)->getRowFromId(0));
+ $this->assertRowEquals($this->defaultRow, $this->site2, $map->getTable($this->date1)->getRowFromId(1));
+ $this->assertRowEquals($this->defaultRow, $this->site1, $map->getTable($this->date2)->getRowFromId(0));
+ $this->assertRowEquals($this->defaultRow, $this->site2, $map->getTable($this->date2)->getRowFromId(1));
+ }
+
+ public function test_makeMerged_numeric_siteAndPeriodIndices_shouldGenerateAMapOfTables_WithData()
+ {
+ $indices = $this->getResultIndices($period = true, $site = true);
+ $factory = $this->createFactory($indices);
+
+ $row1 = array('nb_visits' => 37, 'nb_pageviews' => 10);
+ $row2 = array('nb_visits' => 34, 'nb_hits' => 21);
+ $row3 = array('nb_visits' => 23);
+
+ $index = array(
+ $this->site1 => array(
+ $this->date1range => $row1,
+ $this->date2range => array()
+ ),
+ $this->site2 => array(
+ $this->date1range => $row2,
+ $this->date2range => $row3
+ ),
+ );
+
+ $map = $factory->makeMerged($index, $indices);
+
+ $this->assertTrue($map instanceof DataTable\Map);
+ $this->assertRowCountEquals(2, $map);
+
+ foreach ($map->getDataTables() as $label => $table) {
+ $this->assertTrue(in_array($label, array($this->date1, $this->date2)));
+ $this->assertTableIsDataTableInstance($table);
+ $this->assertRowCountEquals(2, $table);
+ $this->assertTableMetadataEquals($label, $table);
+ }
+
+ $this->assertRowEquals($row1, $this->site1, $map->getTable($this->date1)->getRowFromId(0));
+ $this->assertRowEquals($row2, $this->site2, $map->getTable($this->date1)->getRowFromId(1));
+ $this->assertRowEquals($this->defaultRow, $this->site1, $map->getTable($this->date2)->getRowFromId(0));
+ $this->assertRowEquals($row3, $this->site2, $map->getTable($this->date2)->getRowFromId(1));
+ }
+
+ /**
+ * @expectedException \Exception
+ * @expectedExceptionMessage supposed to work with non-numeric data types but it is not tested
+ */
+ public function test_makeMerged_shouldThrowAnException_IfANonNumericDataTypeIsGiven()
+ {
+ $dataType = 'blob';
+ $dataNames = array('nb_visits');
+
+ $factory = new DataTableFactory($dataNames, $dataType, array($this->site1), $periods = array(), $this->defaultRow);
+ $factory->makeMerged(array(), array());
+ }
+
+ private function assertTableMetadataEquals($expectedPeriod, DataTable $dataTable)
+ {
+ $period = $dataTable->getMetadata(DataTableFactory::TABLE_METADATA_PERIOD_INDEX);
+
+ $this->assertFalse($dataTable->getMetadata(DataTableFactory::TABLE_METADATA_SITE_INDEX));
+ $this->assertTrue($period instanceof Period);
+ $this->assertSame($expectedPeriod, $period->toString());
+ }
+
+ private function assertRowCountEquals($expectedCount, $tableOrMap)
+ {
+ if ($tableOrMap instanceof DataTable\Map) {
+ $this->assertSame($expectedCount, $tableOrMap->getRowsCount());
+ } elseif ($tableOrMap instanceof DataTable) {
+ $this->assertSame($expectedCount, $tableOrMap->getRowsCountRecursive());
+ } else {
+ throw new \Exception('wrong argument passed to assertRowCountEquals()');
+ }
+ }
+
+ private function assertRowEquals($expectedColumns, $expectedSiteIdInMetadata, Row $row)
+ {
+ $this->assertEquals($expectedColumns, $row->getColumns());
+ $this->assertEquals(array('idsite' => $expectedSiteIdInMetadata), $row->getMetadata());
+ }
+
+ private function assertTableIsDataTableInstance($table)
+ {
+ $this->assertTrue($table instanceof DataTable);
+ $this->assertFalse($table instanceof DataTable\Simple);
+ }
+
+ private function assertTableIsDataTableSimpleInstance($table)
+ {
+ $this->assertTrue($table instanceof DataTable\Simple);
+ }
+
+ private function createFactory($resultIndices)
+ {
+ $periods = array(
+ $this->date1range => PeriodFactory::build('day', $this->date1),
+ $this->date2range => PeriodFactory::build('day', $this->date2),
+ );
+ $dataType = 'numeric';
+ $siteIds = array($this->site1, $this->site2);
+ $dataNames = array('nb_visits', 'nb_pageviews');
+ $defaultRow = $this->defaultRow;
+
+ if (!array_key_exists(DataTableFactory::TABLE_METADATA_PERIOD_INDEX, $resultIndices)) {
+ $periods = array($periods[$this->date1range]);
+ }
+
+ if (!array_key_exists(DataTableFactory::TABLE_METADATA_SITE_INDEX, $resultIndices)) {
+ $siteIds = array($siteIds[0]);
+ }
+
+ return new DataTableFactory($dataNames, $dataType, $siteIds, $periods, $defaultRow);
+ }
+
+ private function getResultIndices($periodIndex = false, $siteIndex = false)
+ {
+ $indices = array();
+
+ if ($siteIndex) {
+ $indices[DataTableFactory::TABLE_METADATA_SITE_INDEX] = 'idSite';
+ }
+
+ if ($periodIndex) {
+ $indices[DataTableFactory::TABLE_METADATA_PERIOD_INDEX] = 'date';
+ }
+
+ return $indices;
+ }
+
+
+}
diff --git a/tests/PHPUnit/Integration/CronArchiveTest.php b/tests/PHPUnit/Integration/CronArchiveTest.php
index c90e64a846..86a4403e3d 100644
--- a/tests/PHPUnit/Integration/CronArchiveTest.php
+++ b/tests/PHPUnit/Integration/CronArchiveTest.php
@@ -14,21 +14,9 @@ use Piwik\Date;
use Piwik\Db;
use Piwik\Plugins\CoreAdminHome\tests\Framework\Mock\API;
use Piwik\Tests\Framework\Fixture;
+use Piwik\Tests\Framework\Mock\FakeLogger;
use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
-
-class TestCronArchive extends CronArchive
-{
-
- protected function checkPiwikUrlIsValid()
- {
-
- }
-
- protected function initPiwikHost($piwikUrl = false)
- {
-
- }
-}
+use Piwik\Plugins\SegmentEditor\API as SegmentAPI;
/**
* @group Archiver
@@ -36,16 +24,11 @@ class TestCronArchive extends CronArchive
*/
class CronArchiveTest extends IntegrationTestCase
{
- public function setUp()
+ public function test_getColumnNamesFromTable()
{
- parent::setUp();
-
Fixture::createWebsite('2014-12-12 00:01:02');
Fixture::createWebsite('2014-12-12 00:01:02');
- }
- public function test_getColumnNamesFromTable()
- {
$ar = new ArchiveInvalidator();
$ar->rememberToInvalidateArchivedReportsLater(1, Date::factory('2014-04-05'));
$ar->rememberToInvalidateArchivedReportsLater(2, Date::factory('2014-04-05'));
@@ -53,11 +36,9 @@ class CronArchiveTest extends IntegrationTestCase
$api = API::getInstance();
- ob_start();
$cronarchive = new TestCronArchive(Fixture::getRootUrl() . 'tests/PHPUnit/proxy/index.php');
$cronarchive->setApiToInvalidateArchivedReport($api);
$cronarchive->init();
- ob_end_clean();
$expectedInvalidations = array(
array(array(1,2), '2014-04-05'),
@@ -66,4 +47,77 @@ class CronArchiveTest extends IntegrationTestCase
$this->assertEquals($expectedInvalidations, $api->getInvalidatedReports());
}
+
+ public function test_output()
+ {
+ Fixture::createWebsite('2014-12-12 00:01:02');
+ SegmentAPI::getInstance()->add('foo', 'actions>=2', 1, true, true);
+
+ $logger = new FakeLogger();
+
+ $archiver = new CronArchive(Fixture::getRootUrl() . 'tests/PHPUnit/proxy/index.php', null, $logger);
+ $archiver->shouldArchiveAllSites = true;
+ $archiver->shouldArchiveAllPeriodsSince = true;
+ $archiver->init();
+ $archiver->run();
+
+ $expected = <<<LOG
+---------------------------
+INIT
+Piwik is installed at: %s
+Running Piwik %s as Super User
+---------------------------
+NOTES
+- If you execute this script at least once per hour (or more often) in a crontab, you may disable 'Browser trigger archiving' in Piwik UI > Settings > General Settings.
+ See the doc at: http://piwik.org/docs/setup-auto-archiving/
+- Reports for today will be processed at most every %s seconds. You can change this value in Piwik UI > Settings > General Settings.
+- Reports for the current week/month/year will be refreshed at most every %s seconds.
+- Will process all 1 websites
+---------------------------
+START
+Starting Piwik reports archiving...
+Will pre-process for website id = 1, day period, 1 segments
+- pre-processing all visits
+- pre-processing segment 1/1 actions>=2
+Archived website id = 1, period = day, 0 visits in last %s days, 0 visits today, Time elapsed: %s
+Will pre-process for website id = 1, week period, 1 segments
+- pre-processing all visits
+- pre-processing segment 1/1 actions>=2
+Archived website id = 1, period = week, 0 visits in last %s weeks, 0 visits this week, Time elapsed: %s
+Will pre-process for website id = 1, month period, 1 segments
+- pre-processing all visits
+- pre-processing segment 1/1 actions>=2
+Archived website id = 1, period = month, 0 visits in last %s months, 0 visits this month, Time elapsed: %s
+Will pre-process for website id = 1, year period, 1 segments
+- pre-processing all visits
+- pre-processing segment 1/1 actions>=2
+Archived website id = 1, period = year, 0 visits in last %s years, 0 visits this year, Time elapsed: %s
+Archived website id = 1, %s API requests, Time elapsed: %s [1/1 done]
+Done archiving!
+---------------------------
+SUMMARY
+Total visits for today across archived websites: 0
+Archived today's reports for 1 websites
+Archived week/month/year for 1 websites
+Skipped 0 websites: no new visit since the last script execution
+Skipped 0 websites day archiving: existing daily reports are less than 150 seconds old
+Skipped 0 websites week/month/year archiving: existing periods reports are less than 3600 seconds old
+Total API requests: %s
+done: 1/1 100%, 0 vtoday, 1 wtoday, 1 wperiods, %s req, %s ms, no error
+Time elapsed: %s
+
+LOG;
+ $this->assertStringMatchesFormat($expected, $logger->output);
+ }
+}
+
+class TestCronArchive extends CronArchive
+{
+ protected function checkPiwikUrlIsValid()
+ {
+ }
+
+ protected function initPiwikHost($piwikUrl = false)
+ {
+ }
}
diff --git a/tests/PHPUnit/Integration/ReportTest.php b/tests/PHPUnit/Integration/ReportTest.php
index 21e8a52542..8e535be0f2 100644
--- a/tests/PHPUnit/Integration/ReportTest.php
+++ b/tests/PHPUnit/Integration/ReportTest.php
@@ -340,7 +340,11 @@ class ReportTest extends IntegrationTestCase
'nb_visits' => 'General_ColumnNbVisitsDocumentation',
'nb_uniq_visitors' => 'General_ColumnNbUniqVisitorsDocumentation',
'nb_actions' => 'General_ColumnNbActionsDocumentation',
- 'nb_users' => 'General_ColumnNbUsersDocumentation'
+ 'nb_users' => 'General_ColumnNbUsersDocumentation',
+ 'nb_actions_per_visit' => 'General_ColumnActionsPerVisitDocumentation',
+ 'avg_time_on_site' => 'General_ColumnAvgTimeOnSiteDocumentation',
+ 'bounce_rate' => 'General_ColumnBounceRateDocumentation',
+ 'conversion_rate' => 'General_ColumnConversionRateDocumentation',
),
'processedMetrics' => array(
'nb_actions_per_visit' => 'General_ColumnActionsPerVisit',
@@ -377,6 +381,8 @@ class ReportTest extends IntegrationTestCase
'metricsDocumentation' => array(
'nb_actions' => 'General_ColumnNbActionsDocumentation',
'nb_visits' => 'General_ColumnNbVisitsDocumentation',
+ 'conversion_rate' => 'General_ColumnConversionRateDocumentation',
+ 'bounce_rate' => 'General_ColumnBounceRateDocumentation',
),
'processedMetrics' => array(
'conversion_rate' => 'General_ColumnConversionRate',
diff --git a/tests/PHPUnit/System/BackwardsCompatibility1XTest.php b/tests/PHPUnit/System/BackwardsCompatibility1XTest.php
index 42d247f924..08027d6fde 100644
--- a/tests/PHPUnit/System/BackwardsCompatibility1XTest.php
+++ b/tests/PHPUnit/System/BackwardsCompatibility1XTest.php
@@ -106,7 +106,8 @@ class BackwardsCompatibility1XTest extends SystemTestCase
// those reports generate a different segment as a different raw value was stored that time
'DevicesDetection.getOsVersions',
'UserSettings.getOS',
- 'UserSettings.getBrowserType'
+ 'UserSettings.getBrowserType',
+ 'Goals.get'
);
$apiNotToCall = array(
diff --git a/tests/PHPUnit/System/CliMultiTest.php b/tests/PHPUnit/System/CliMultiTest.php
index 1537cd9dec..d105823626 100644
--- a/tests/PHPUnit/System/CliMultiTest.php
+++ b/tests/PHPUnit/System/CliMultiTest.php
@@ -6,6 +6,7 @@
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
+use Piwik\Archiver\Request;
use Piwik\CliMulti;
use Piwik\Version;
use Piwik\Tests\Framework\TestCase\SystemTestCase;
@@ -196,6 +197,19 @@ class CliMultiTest extends SystemTestCase
$this->assertFileNotExists($tmpDir . 'toberemoved.output');
}
+ public function test_shouldSupportRequestObjects()
+ {
+ $wasCalled = false;
+ $request = new Request('url');
+ $request->before(function () use (&$wasCalled) {
+ $wasCalled = true;
+ });
+
+ $this->cliMulti->request(array($request));
+
+ $this->assertTrue($wasCalled, 'The request "before" handler was not called');
+ }
+
private function assertRequestReturnsValidResponses($urls, $expectedResponseIds)
{
$actualResponse = $this->cliMulti->request($urls);
diff --git a/tests/PHPUnit/System/PeriodIsRangeDateIsLastNMetadataAndNormalAPITest.php b/tests/PHPUnit/System/PeriodIsRangeDateIsLastNMetadataAndNormalAPITest.php
index 8c4ec84d98..74d1de4a83 100755
--- a/tests/PHPUnit/System/PeriodIsRangeDateIsLastNMetadataAndNormalAPITest.php
+++ b/tests/PHPUnit/System/PeriodIsRangeDateIsLastNMetadataAndNormalAPITest.php
@@ -66,9 +66,15 @@ class PeriodIsRangeDateIsLastNMetadataAndNormalAPITest extends SystemTestCase
$result = array();
foreach ($segments as $segment) {
+ $testSuffix = '';
+ if (!empty($segment) && false !== strpos($segment, 'pageUrl')) {
+ $testSuffix .= '_pagesegment';
+ }
+
foreach ($dates as $date) {
$result[] = array($apiToCall, array('idSite' => $idSite, 'date' => $date,
'periods' => array('range'), 'segment' => $segment,
+ 'testSuffix' => $testSuffix,
'otherRequestParameters' => array(
'lastMinutes' => 60 * 24 * 2,
'visitorId' => $visitorId // testing getLastVisitsForVisitor requires a visitor ID
diff --git a/tests/PHPUnit/System/TrackerTest.php b/tests/PHPUnit/System/TrackerTest.php
index 48d3a4e54d..5d38c74d51 100644
--- a/tests/PHPUnit/System/TrackerTest.php
+++ b/tests/PHPUnit/System/TrackerTest.php
@@ -12,6 +12,7 @@ use Piwik\Common;
use Piwik\Config;
use Piwik\Db;
use Piwik\Option;
+use Piwik\Plugins\UserCountry\LocationProvider;
use Piwik\Scheduler\Schedule\Schedule;
use Piwik\Scheduler\Task;
use Piwik\Scheduler\Timetable;
@@ -147,6 +148,23 @@ class TrackerTest extends IntegrationTestCase
$this->assertEquals(0, count($this->getConversionItems()));
}
+ public function test_trackingWithLangParameter_ForwardsLangParameter_ToDefaultLocationProvider()
+ {
+ LocationProvider::setCurrentProvider(LocationProvider\DefaultProvider::ID);
+
+ $urlToTest = "?idsite=1&rec=1&action_name=test&lang=fr-be";
+ $response = $this->sendTrackingRequestByCurl($urlToTest);
+ Fixture::checkResponse($response);
+
+ $logVisitTable = Common::prefixTable('log_visit');
+
+ $visitCount = Db::fetchOne("SELECT COUNT(*) FROM $logVisitTable");
+ $this->assertEquals(1, $visitCount);
+
+ $visitCountry = Db::fetchOne("SELECT location_country FROM $logVisitTable");
+ $this->assertEquals('be', $visitCountry);
+ }
+
public function test_scheduledTasks_CanBeRunThroughTracker_WithoutIncludingOutputInTrackerOutput()
{
$this->setScheduledTasksToRunInTracker();
diff --git a/tests/PHPUnit/System/expected/test_BackwardsCompatibility1XTest__Goals.get_day.xml b/tests/PHPUnit/System/expected/test_BackwardsCompatibility1XTest__Goals.get_day.xml
new file mode 100644
index 0000000000..d206c1dee1
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_BackwardsCompatibility1XTest__Goals.get_day.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>43</revenue>
+ <conversion_rate>100%</conversion_rate>
+ <nb_conversions_new_visit>0</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>0</nb_visits_converted_new_visit>
+ <revenue_new_visit>0</revenue_new_visit>
+ <conversion_rate_new_visit>0%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_BackwardsCompatibility1XTest__MultiSites.getAll_day.xml b/tests/PHPUnit/System/expected/test_BackwardsCompatibility1XTest__MultiSites.getAll_day.xml
index 01a5e25002..5218ad3961 100644
--- a/tests/PHPUnit/System/expected/test_BackwardsCompatibility1XTest__MultiSites.getAll_day.xml
+++ b/tests/PHPUnit/System/expected/test_BackwardsCompatibility1XTest__MultiSites.getAll_day.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
<row>
+ <label>new name</label>
<nb_visits>2</nb_visits>
<nb_actions>8</nb_actions>
<nb_pageviews>4</nb_pageviews>
<revenue>43</revenue>
- <label>new name</label>
<visits_evolution>100%</visits_evolution>
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>100%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://site.com</main_url>
- <idsite>1</idsite>
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getMetrics_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getMetrics_month.xml
new file mode 100644
index 0000000000..7ada36be0d
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getMetrics_month.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_conversions>33</nb_conversions>
+ <nb_visits_converted>33</nb_visits_converted>
+ <revenue>165</revenue>
+ <conversion_rate>89.19%</conversion_rate>
+</result> \ No newline at end of file
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 7ada36be0d..13474931ed 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>33</nb_visits_converted>
<revenue>165</revenue>
<conversion_rate>89.19%</conversion_rate>
+ <nb_conversions_new_visit>30</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>30</nb_visits_converted_new_visit>
+ <revenue_new_visit>150</revenue_new_visit>
+ <conversion_rate_new_visit>88.24%</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>
+ <conversion_rate_returning_visit>100%</conversion_rate_returning_visit>
</result> \ No newline at end of file
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 74524d2848..5f6148c689 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml
@@ -10,9 +10,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>100%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
<label>Piwik test two</label>
@@ -24,8 +24,8 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://example-site-two.com</main_url>
- <idsite>2</idsite>
</row>
</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 84d1611e02..4ab55e378e 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
@@ -13,9 +13,9 @@
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>100%</revenue_evolution>
<nb_conversions_evolution>100%</nb_conversions_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
<label>Piwik test two</label>
@@ -29,9 +29,9 @@
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
<nb_conversions_evolution>0%</nb_conversions_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://example-site-two.com</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="2012-09">
@@ -47,195 +47,195 @@
<pageviews_evolution>-73.7%</pageviews_evolution>
<revenue_evolution>-97%</revenue_evolution>
<nb_conversions_evolution>-97%</nb_conversions_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
+ <label>Piwik test two</label>
<nb_visits>0</nb_visits>
<nb_actions>0</nb_actions>
<nb_pageviews>0</nb_pageviews>
<revenue>0</revenue>
<nb_conversions>0</nb_conversions>
- <label>Piwik test two</label>
<visits_evolution>-100%</visits_evolution>
<actions_evolution>-100%</actions_evolution>
<pageviews_evolution>-100%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
<nb_conversions_evolution>0%</nb_conversions_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://example-site-two.com</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="2012-10">
<row>
+ <label>Piwik test</label>
<nb_visits>0</nb_visits>
<nb_actions>0</nb_actions>
<nb_pageviews>0</nb_pageviews>
<revenue>0</revenue>
<nb_conversions>0</nb_conversions>
- <label>Piwik test</label>
<visits_evolution>-100%</visits_evolution>
<actions_evolution>-100%</actions_evolution>
<pageviews_evolution>-100%</pageviews_evolution>
<revenue_evolution>-100%</revenue_evolution>
<nb_conversions_evolution>-100%</nb_conversions_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
+ <label>Piwik test two</label>
<nb_visits>0</nb_visits>
<nb_actions>0</nb_actions>
<nb_pageviews>0</nb_pageviews>
<revenue>0</revenue>
<nb_conversions>0</nb_conversions>
- <label>Piwik test two</label>
<visits_evolution>0%</visits_evolution>
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
<nb_conversions_evolution>0%</nb_conversions_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://example-site-two.com</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="2012-11">
<row>
+ <label>Piwik test</label>
<nb_visits>0</nb_visits>
<nb_actions>0</nb_actions>
<nb_pageviews>0</nb_pageviews>
<revenue>0</revenue>
<nb_conversions>0</nb_conversions>
- <label>Piwik test</label>
<visits_evolution>0%</visits_evolution>
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
<nb_conversions_evolution>0%</nb_conversions_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
+ <label>Piwik test two</label>
<nb_visits>0</nb_visits>
<nb_actions>0</nb_actions>
<nb_pageviews>0</nb_pageviews>
<revenue>0</revenue>
<nb_conversions>0</nb_conversions>
- <label>Piwik test two</label>
<visits_evolution>0%</visits_evolution>
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
<nb_conversions_evolution>0%</nb_conversions_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://example-site-two.com</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="2012-12">
<row>
+ <label>Piwik test</label>
<nb_visits>0</nb_visits>
<nb_actions>0</nb_actions>
<nb_pageviews>0</nb_pageviews>
<revenue>0</revenue>
<nb_conversions>0</nb_conversions>
- <label>Piwik test</label>
<visits_evolution>0%</visits_evolution>
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
<nb_conversions_evolution>0%</nb_conversions_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
+ <label>Piwik test two</label>
<nb_visits>0</nb_visits>
<nb_actions>0</nb_actions>
<nb_pageviews>0</nb_pageviews>
<revenue>0</revenue>
<nb_conversions>0</nb_conversions>
- <label>Piwik test two</label>
<visits_evolution>0%</visits_evolution>
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
<nb_conversions_evolution>0%</nb_conversions_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://example-site-two.com</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="2013-01">
<row>
+ <label>Piwik test</label>
<nb_visits>0</nb_visits>
<nb_actions>0</nb_actions>
<nb_pageviews>0</nb_pageviews>
<revenue>0</revenue>
<nb_conversions>0</nb_conversions>
- <label>Piwik test</label>
<visits_evolution>0%</visits_evolution>
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
<nb_conversions_evolution>0%</nb_conversions_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
+ <label>Piwik test two</label>
<nb_visits>0</nb_visits>
<nb_actions>0</nb_actions>
<nb_pageviews>0</nb_pageviews>
<revenue>0</revenue>
<nb_conversions>0</nb_conversions>
- <label>Piwik test two</label>
<visits_evolution>0%</visits_evolution>
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
<nb_conversions_evolution>0%</nb_conversions_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://example-site-two.com</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="2013-02">
<row>
+ <label>Piwik test</label>
<nb_visits>0</nb_visits>
<nb_actions>0</nb_actions>
<nb_pageviews>0</nb_pageviews>
<revenue>0</revenue>
<nb_conversions>0</nb_conversions>
- <label>Piwik test</label>
<visits_evolution>0%</visits_evolution>
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
<nb_conversions_evolution>0%</nb_conversions_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
+ <label>Piwik test two</label>
<nb_visits>0</nb_visits>
<nb_actions>0</nb_actions>
<nb_pageviews>0</nb_pageviews>
<revenue>0</revenue>
<nb_conversions>0</nb_conversions>
- <label>Piwik test two</label>
<visits_evolution>0%</visits_evolution>
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
<nb_conversions_evolution>0%</nb_conversions_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://example-site-two.com</main_url>
- <idsite>2</idsite>
</row>
</result>
</results> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_sortByProcessedMetric_constantRowsCountShouldKeepEmptyRows__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_sortByProcessedMetric_constantRowsCountShouldKeepEmptyRows__API.getProcessedReport_day.xml
index 573f3d5580..a5d5b6ff17 100644
--- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_sortByProcessedMetric_constantRowsCountShouldKeepEmptyRows__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_sortByProcessedMetric_constantRowsCountShouldKeepEmptyRows__API.getProcessedReport_day.xml
@@ -20,6 +20,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Goals.getConversionRate_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Goals.getConversionRate_day.xml
index 01cf6797a0..57e19c2819 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Goals.getConversionRate_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Goals.getConversionRate_day.xml
@@ -1,2 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
-<result>100%</result> \ No newline at end of file
+<result>
+ <conversion_rate>100%</conversion_rate>
+ <conversion_rate_new_visit>100%</conversion_rate_new_visit>
+ <conversion_rate_returning_visit>100%</conversion_rate_returning_visit>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Goals.getMetrics_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Goals.getMetrics_day.xml
new file mode 100644
index 0000000000..24662c288c
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Goals.getMetrics_day.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>43</revenue>
+ <conversion_rate>100%</conversion_rate>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Goals.get_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Goals.get_day.xml
index 24662c288c..05d799d99b 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Goals.get_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Goals.get_day.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>2</nb_visits_converted>
<revenue>43</revenue>
<conversion_rate>100%</conversion_rate>
+ <nb_conversions_new_visit>1</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit>
+ <revenue_new_visit>42</revenue_new_visit>
+ <conversion_rate_new_visit>100%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>1</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>1</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>1</revenue_returning_visit>
+ <conversion_rate_returning_visit>100%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__MultiSites.getAll_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__MultiSites.getAll_day.xml
index 0ecae3aea1..5218ad3961 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__MultiSites.getAll_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__MultiSites.getAll_day.xml
@@ -10,8 +10,8 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>100%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://site.com</main_url>
- <idsite>1</idsite>
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_csv__API.get_month.csv b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_csv__API.get_month.csv
index ccf95a9d55..02f34e8e00 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_csv__API.get_month.csv
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_csv__API.get_month.csv
Binary files differ
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Goals.getMetrics_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Goals.getMetrics_day.xml
new file mode 100644
index 0000000000..24662c288c
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Goals.getMetrics_day.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>43</revenue>
+ <conversion_rate>100%</conversion_rate>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Goals.get_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Goals.get_day.xml
index 24662c288c..05d799d99b 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Goals.get_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Goals.get_day.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>2</nb_visits_converted>
<revenue>43</revenue>
<conversion_rate>100%</conversion_rate>
+ <nb_conversions_new_visit>1</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit>
+ <revenue_new_visit>42</revenue_new_visit>
+ <conversion_rate_new_visit>100%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>1</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>1</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>1</revenue_returning_visit>
+ <conversion_rate_returning_visit>100%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_CustomVariables.getCustomVariables_firstSite_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_SiteSearch_CustomVariables.getCustomVariables_firstSite_lastN__API.getProcessedReport_day.xml
index 48dfee4e72..d851d2b981 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_CustomVariables.getCustomVariables_firstSite_lastN__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_CustomVariables.getCustomVariables_firstSite_lastN__API.getProcessedReport_day.xml
@@ -20,6 +20,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_CustomVariables.getCustomVariables_firstSite_lastN__API.getProcessedReport_month.xml b/tests/PHPUnit/System/expected/test_SiteSearch_CustomVariables.getCustomVariables_firstSite_lastN__API.getProcessedReport_month.xml
index b1d887f466..09f25d025f 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_CustomVariables.getCustomVariables_firstSite_lastN__API.getProcessedReport_month.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_CustomVariables.getCustomVariables_firstSite_lastN__API.getProcessedReport_month.xml
@@ -18,6 +18,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_MultiSites.getAll_firstSite_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_MultiSites.getAll_firstSite_lastN__API.getProcessedReport_day.xml
index 885d4243f4..bf674444b7 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_MultiSites.getAll_firstSite_lastN__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_MultiSites.getAll_firstSite_lastN__API.getProcessedReport_day.xml
@@ -207,56 +207,56 @@
<reportMetadata>
<result prettyDate="Sunday 3 January 2010">
<row>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result prettyDate="Monday 4 January 2010">
<row>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
+ <idsite>2</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>2</idsite>
</row>
</result>
<result prettyDate="Tuesday 5 January 2010">
<row>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result prettyDate="Wednesday 6 January 2010">
<row>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result prettyDate="Thursday 7 January 2010">
<row>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result prettyDate="Friday 8 January 2010">
<row>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result prettyDate="Saturday 9 January 2010">
<row>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
</reportMetadata>
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_NotLastNPeriods__Goals.get_day.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_NotLastNPeriods__Goals.get_day.xml
index 129e48b7e9..81cdb9f555 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_NotLastNPeriods__Goals.get_day.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_NotLastNPeriods__Goals.get_day.xml
@@ -5,6 +5,10 @@
<nb_visits_converted>2</nb_visits_converted>
<revenue>10</revenue>
<conversion_rate>100%</conversion_rate>
+ <nb_conversions_new_visit>2</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>2</nb_visits_converted_new_visit>
+ <revenue_new_visit>10</revenue_new_visit>
+ <conversion_rate_new_visit>100%</conversion_rate_new_visit>
</result>
<result idSite="2" />
</results> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_NotLastNPeriods__Goals.get_month.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_NotLastNPeriods__Goals.get_month.xml
index 7268853bb5..614d85d722 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_NotLastNPeriods__Goals.get_month.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_NotLastNPeriods__Goals.get_month.xml
@@ -5,11 +5,23 @@
<nb_visits_converted>10</nb_visits_converted>
<revenue>50</revenue>
<conversion_rate>90.91%</conversion_rate>
+ <nb_conversions_new_visit>2</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>2</nb_visits_converted_new_visit>
+ <revenue_new_visit>10</revenue_new_visit>
+ <conversion_rate_new_visit>100%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>12</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>8</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>40</revenue_returning_visit>
+ <conversion_rate_returning_visit>88.89%</conversion_rate_returning_visit>
</result>
<result idSite="2">
<nb_conversions>1</nb_conversions>
<nb_visits_converted>1</nb_visits_converted>
<revenue>0</revenue>
<conversion_rate>100%</conversion_rate>
+ <nb_conversions_new_visit>1</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit>
+ <revenue_new_visit>0</revenue_new_visit>
+ <conversion_rate_new_visit>100%</conversion_rate_new_visit>
</result>
</results> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_day.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_day.xml
index 365dd2ff8d..2efd1eaab3 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_day.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_day.xml
@@ -11,9 +11,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>100%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result date="2010-01-04">
@@ -27,9 +27,9 @@
<actions_evolution>-50%</actions_evolution>
<pageviews_evolution>-50%</pageviews_evolution>
<revenue_evolution>-100%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
<label>Site 2</label>
@@ -41,9 +41,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="2010-01-05">
@@ -57,9 +57,9 @@
<actions_evolution>400%</actions_evolution>
<pageviews_evolution>400%</pageviews_evolution>
<revenue_evolution>100%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result date="2010-01-06">
@@ -73,9 +73,9 @@
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result date="2010-01-07">
@@ -89,9 +89,9 @@
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result date="2010-01-08">
@@ -105,9 +105,9 @@
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result date="2010-01-09">
@@ -121,9 +121,9 @@
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
</results> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_month.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_month.xml
index cf37606414..a06b60b001 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_month.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_month.xml
@@ -11,9 +11,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>100%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
<label>Site 2</label>
@@ -25,9 +25,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="2010-02" />
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_week.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_week.xml
index 59f331588b..b3df616c47 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_week.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_week.xml
@@ -11,9 +11,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>100%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result date="From 2010-01-04 to 2010-01-10">
@@ -27,9 +27,9 @@
<actions_evolution>1450%</actions_evolution>
<pageviews_evolution>1450%</pageviews_evolution>
<revenue_evolution>200%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
<label>Site 2</label>
@@ -41,9 +41,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="From 2010-01-11 to 2010-01-17">
@@ -57,9 +57,9 @@
<actions_evolution>-67.7%</actions_evolution>
<pageviews_evolution>-67.7%</pageviews_evolution>
<revenue_evolution>-66.7%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result date="From 2010-01-18 to 2010-01-24" />
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_year.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_year.xml
index b58279dbc5..aad34392f8 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_year.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions__MultiSites.getAll_year.xml
@@ -11,9 +11,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>100%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
<label>Site 2</label>
@@ -25,9 +25,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="2011" />
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_day.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_day.xml
index 365dd2ff8d..2efd1eaab3 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_day.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_day.xml
@@ -11,9 +11,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>100%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result date="2010-01-04">
@@ -27,9 +27,9 @@
<actions_evolution>-50%</actions_evolution>
<pageviews_evolution>-50%</pageviews_evolution>
<revenue_evolution>-100%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
<label>Site 2</label>
@@ -41,9 +41,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="2010-01-05">
@@ -57,9 +57,9 @@
<actions_evolution>400%</actions_evolution>
<pageviews_evolution>400%</pageviews_evolution>
<revenue_evolution>100%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result date="2010-01-06">
@@ -73,9 +73,9 @@
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result date="2010-01-07">
@@ -89,9 +89,9 @@
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result date="2010-01-08">
@@ -105,9 +105,9 @@
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result date="2010-01-09">
@@ -121,9 +121,9 @@
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
</results> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_month.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_month.xml
index cf37606414..a06b60b001 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_month.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_month.xml
@@ -11,9 +11,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>100%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
<label>Site 2</label>
@@ -25,9 +25,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="2010-02" />
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_week.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_week.xml
index 59f331588b..b3df616c47 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_week.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_week.xml
@@ -11,9 +11,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>100%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result date="From 2010-01-04 to 2010-01-10">
@@ -27,9 +27,9 @@
<actions_evolution>1450%</actions_evolution>
<pageviews_evolution>1450%</pageviews_evolution>
<revenue_evolution>200%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
<label>Site 2</label>
@@ -41,9 +41,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="From 2010-01-11 to 2010-01-17">
@@ -57,9 +57,9 @@
<actions_evolution>-67.7%</actions_evolution>
<pageviews_evolution>-67.7%</pageviews_evolution>
<revenue_evolution>-66.7%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
<result date="From 2010-01-18 to 2010-01-24" />
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_year.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_year.xml
index b58279dbc5..aad34392f8 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_year.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Conversions_idSiteOne___MultiSites.getAll_year.xml
@@ -11,9 +11,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>100%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
<label>Site 2</label>
@@ -25,9 +25,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="2011" />
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_NotLastNPeriods__Goals.get_day.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_NotLastNPeriods__Goals.get_day.xml
index 12226c72f5..2af205614b 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_NotLastNPeriods__Goals.get_day.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_NotLastNPeriods__Goals.get_day.xml
@@ -5,6 +5,10 @@
<nb_visits_converted>0</nb_visits_converted>
<revenue>0</revenue>
<conversion_rate>0%</conversion_rate>
+ <nb_conversions_new_visit>0</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>0</nb_visits_converted_new_visit>
+ <revenue_new_visit>0</revenue_new_visit>
+ <conversion_rate_new_visit>0%</conversion_rate_new_visit>
</result>
<result idSite="2" />
</results> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_NotLastNPeriods__Goals.get_month.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_NotLastNPeriods__Goals.get_month.xml
index 6a88282877..b43beb9631 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_NotLastNPeriods__Goals.get_month.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_NotLastNPeriods__Goals.get_month.xml
@@ -5,11 +5,23 @@
<nb_visits_converted>0</nb_visits_converted>
<revenue>0</revenue>
<conversion_rate>0%</conversion_rate>
+ <nb_conversions_new_visit>0</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>0</nb_visits_converted_new_visit>
+ <revenue_new_visit>0</revenue_new_visit>
+ <conversion_rate_new_visit>0%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
</result>
<result idSite="2">
<nb_conversions>0</nb_conversions>
<nb_visits_converted>0</nb_visits_converted>
<revenue>0</revenue>
<conversion_rate>0%</conversion_rate>
+ <nb_conversions_new_visit>0</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>0</nb_visits_converted_new_visit>
+ <revenue_new_visit>0</revenue_new_visit>
+ <conversion_rate_new_visit>0%</conversion_rate_new_visit>
</result>
</results> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Referrers.getWebsites_firstSite_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Referrers.getWebsites_firstSite_lastN__API.getProcessedReport_day.xml
index 49c645a098..fb730875c9 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Referrers.getWebsites_firstSite_lastN__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Referrers.getWebsites_firstSite_lastN__API.getProcessedReport_day.xml
@@ -20,6 +20,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
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 db63e6a966..abcda7ca41 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
@@ -220,13 +220,13 @@ No data available
Country
label,nb_visits,nb_actions,nb_actions_per_visit,avg_time_on_site,bounce_rate,revenue
-Unknown,9,41,4.6,00:13:21,11%,$ 0
-France,2,2,1,00:00:00,100%,$ 0
+Unknown,8,40,5,00:15:01,0%,$ 0
+France,3,3,1,00:00:00,100%,$ 0
Continent
label,nb_visits,nb_actions,nb_actions_per_visit,avg_time_on_site,bounce_rate,revenue
-Unknown,9,41,4.6,00:13:21,11%,$ 0
-Europe,2,2,1,00:00:00,100%,$ 0
+Unknown,8,40,5,00:15:01,0%,$ 0
+Europe,3,3,1,00:00:00,100%,$ 0
Region
label,nb_visits,nb_actions,nb_actions_per_visit,avg_time_on_site,bounce_rate,revenue
@@ -313,26 +313,26 @@ label,nb_visits,nb_actions,conversion_rate,nb_actions_per_visit,avg_time_on_site
Unknown,8,40,0%,5,00:15:01,0%
Desktop,3,3,0%,1,00:00:00,100%
-Device brand
-label,nb_visits,nb_actions,conversion_rate,nb_actions_per_visit,avg_time_on_site,bounce_rate
-Unknown,11,43,0%,3.9,00:10:55,27%
-
Visitor Browser
label,nb_visits,nb_actions,conversion_rate,nb_actions_per_visit,avg_time_on_site,bounce_rate
Unknown,8,40,0%,5,00:15:01,0%
Firefox,2,2,0%,1,00:00:00,100%
Opera,1,1,0%,1,00:00:00,100%
-Browser version
+Device brand
label,nb_visits,nb_actions,conversion_rate,nb_actions_per_visit,avg_time_on_site,bounce_rate
-Unknown,8,40,0%,5,00:15:01,0%
-Firefox 3.6,2,2,0%,1,00:00:00,100%
-Opera 9.63,1,1,0%,1,00:00:00,100%
+Unknown,11,43,0%,3.9,00:10:55,27%
Device model
label,nb_visits,nb_actions,conversion_rate,nb_actions_per_visit,avg_time_on_site,bounce_rate
Unknown,11,43,0%,3.9,00:10:55,27%
+Browser version
+label,nb_visits,nb_actions,conversion_rate,nb_actions_per_visit,avg_time_on_site,bounce_rate
+Unknown,8,40,0%,5,00:15:01,0%
+Firefox 3.6,2,2,0%,1,00:00:00,100%
+Opera 9.63,1,1,0%,1,00:00:00,100%
+
Operating System families
label,nb_visits,nb_actions,conversion_rate,nb_actions_per_visit,avg_time_on_site,bounce_rate
Unknown,8,40,0%,5,00:15:01,0%
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 5e42f00bd2..1144a32df2 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
@@ -275,18 +275,13 @@
</a>
</li>
<li>
- <a href="#DevicesDetection_getBrand" style="text-decoration:none; color: rgb(13,13,13);">
- Device brand
- </a>
- </li>
- <li>
<a href="#DevicesDetection_getBrowsers" style="text-decoration:none; color: rgb(13,13,13);">
Visitor Browser
</a>
</li>
<li>
- <a href="#DevicesDetection_getBrowserVersions" style="text-decoration:none; color: rgb(13,13,13);">
- Browser version
+ <a href="#DevicesDetection_getBrand" style="text-decoration:none; color: rgb(13,13,13);">
+ Device brand
</a>
</li>
<li>
@@ -295,6 +290,11 @@
</a>
</li>
<li>
+ <a href="#DevicesDetection_getBrowserVersions" style="text-decoration:none; color: rgb(13,13,13);">
+ Browser version
+ </a>
+ </li>
+ <li>
<a href="#DevicesDetection_getOsFamilies" style="text-decoration:none; color: rgb(13,13,13);">
Operating System families
</a>
@@ -3499,19 +3499,19 @@
&nbsp;
Unknown </td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 9
+ 8
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 41
+ 40
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 4.6
+ 5
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 00:13:21
+ 00:15:01
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 11%
+ 0%
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
$ 0
@@ -3524,10 +3524,10 @@
&nbsp;
France </td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 2
+ 3
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 2
+ 3
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
1
@@ -3584,19 +3584,19 @@
<td style="font-size: 13px; border-right: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
Unknown </td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 9
+ 8
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 41
+ 40
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 4.6
+ 5
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 00:13:21
+ 00:15:01
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 11%
+ 0%
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
$ 0
@@ -3607,10 +3607,10 @@
<td style="font-size: 13px; border-right: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
Europe </td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 2
+ 3
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 2
+ 3
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
1
@@ -4520,8 +4520,8 @@
<a style="text-decoration:none; color: rgb(13,13,13); font-size: 9pt;" href="#reportTop">
Back to top
</a>
-<h2 id="DevicesDetection_getBrand" style="color: rgb(13,13,13); font-size: 24pt; font-weight:normal;">
- Device brand
+<h2 id="DevicesDetection_getBrowsers" style="color: rgb(13,13,13); font-size: 24pt; font-weight:normal;">
+ Visitor Browser
</h2>
@@ -4529,7 +4529,7 @@
<table style="border-collapse:collapse; margin-left: 5px;">
<thead style="background-color: rgb(255,255,255); color: rgb(13,13,13); font-size: 11pt; text-transform: uppercase; line-height:2.5em;">
<th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
- &nbsp;Device brand&nbsp;&nbsp;
+ &nbsp;Browser&nbsp;&nbsp;
</th>
<th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
&nbsp;Visits&nbsp;&nbsp;
@@ -4554,23 +4554,73 @@
<tr style="background-color: rgb(242,242,242);line-height: 22px;">
<td style="font-size: 13px; border-right: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- <img src='plugins/DevicesDetection/images/brand/Unknown.ico'>
+ <img src='plugins/DevicesDetection/images/browsers/UNK.gif'>
&nbsp;
Unknown </td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 11
+ 8
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 43
+ 40
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 3.9
+ 5
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 00:10:55
+ 00:15:01
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 27%
+ 0%
+ </td>
+ <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
+ 0%
+ </td>
+ </tr>
+
+ <tr style=";line-height: 22px;">
+ <td style="font-size: 13px; border-right: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
+ <img src='plugins/DevicesDetection/images/browsers/FF.gif'>
+ &nbsp;
+ Firefox </td>
+ <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
+ 2
+ </td>
+ <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
+ 2
+ </td>
+ <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
+ 1
+ </td>
+ <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
+ 00:00:00
+ </td>
+ <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
+ 100%
+ </td>
+ <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
+ 0%
+ </td>
+ </tr>
+
+ <tr style="background-color: rgb(242,242,242);line-height: 22px;">
+ <td style="font-size: 13px; border-right: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
+ <img src='plugins/DevicesDetection/images/browsers/OP.gif'>
+ &nbsp;
+ Opera </td>
+ <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
+ 1
+ </td>
+ <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
+ 1
+ </td>
+ <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
+ 1
+ </td>
+ <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
+ 00:00:00
+ </td>
+ <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
+ 100%
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
0%
@@ -4582,8 +4632,8 @@
<a style="text-decoration:none; color: rgb(13,13,13); font-size: 9pt;" href="#reportTop">
Back to top
</a>
-<h2 id="DevicesDetection_getBrowsers" style="color: rgb(13,13,13); font-size: 24pt; font-weight:normal;">
- Visitor Browser
+<h2 id="DevicesDetection_getBrand" style="color: rgb(13,13,13); font-size: 24pt; font-weight:normal;">
+ Device brand
</h2>
@@ -4591,7 +4641,7 @@
<table style="border-collapse:collapse; margin-left: 5px;">
<thead style="background-color: rgb(255,255,255); color: rgb(13,13,13); font-size: 11pt; text-transform: uppercase; line-height:2.5em;">
<th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
- &nbsp;Browser&nbsp;&nbsp;
+ &nbsp;Device brand&nbsp;&nbsp;
</th>
<th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
&nbsp;Visits&nbsp;&nbsp;
@@ -4616,73 +4666,83 @@
<tr style="background-color: rgb(242,242,242);line-height: 22px;">
<td style="font-size: 13px; border-right: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- <img src='plugins/DevicesDetection/images/browsers/UNK.gif'>
+ <img src='plugins/DevicesDetection/images/brand/Unknown.ico'>
&nbsp;
Unknown </td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 8
- </td>
- <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 40
- </td>
- <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 5
- </td>
- <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 00:15:01
- </td>
- <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 0%
- </td>
- <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 0%
- </td>
- </tr>
-
- <tr style=";line-height: 22px;">
- <td style="font-size: 13px; border-right: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- <img src='plugins/DevicesDetection/images/browsers/FF.gif'>
- &nbsp;
- Firefox </td>
- <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 2
+ 11
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 2
+ 43
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 1
+ 3.9
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 00:00:00
+ 00:10:55
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 100%
+ 27%
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
0%
</td>
</tr>
-
+ </tbody>
+ </table>
+ <br/>
+ <a style="text-decoration:none; color: rgb(13,13,13); font-size: 9pt;" href="#reportTop">
+ Back to top
+ </a>
+<h2 id="DevicesDetection_getModel" style="color: rgb(13,13,13); font-size: 24pt; font-weight:normal;">
+ Device model
+</h2>
+
+
+
+ <table style="border-collapse:collapse; margin-left: 5px;">
+ <thead style="background-color: rgb(255,255,255); color: rgb(13,13,13); font-size: 11pt; text-transform: uppercase; line-height:2.5em;">
+ <th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
+ &nbsp;Device model&nbsp;&nbsp;
+ </th>
+ <th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
+ &nbsp;Visits&nbsp;&nbsp;
+ </th>
+ <th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
+ &nbsp;Actions&nbsp;&nbsp;
+ </th>
+ <th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
+ &nbsp;Actions per Visit&nbsp;&nbsp;
+ </th>
+ <th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
+ &nbsp;Avg. Time on Website&nbsp;&nbsp;
+ </th>
+ <th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
+ &nbsp;Bounce Rate&nbsp;&nbsp;
+ </th>
+ <th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
+ &nbsp;Conversion Rate&nbsp;&nbsp;
+ </th>
+ </thead>
+ <tbody>
+
<tr style="background-color: rgb(242,242,242);line-height: 22px;">
<td style="font-size: 13px; border-right: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- <img src='plugins/DevicesDetection/images/browsers/OP.gif'>
- &nbsp;
- Opera </td>
+ Unknown </td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 1
+ 11
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 1
+ 43
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 1
+ 3.9
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 00:00:00
+ 00:10:55
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 100%
+ 27%
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
0%
@@ -4806,66 +4866,6 @@
<a style="text-decoration:none; color: rgb(13,13,13); font-size: 9pt;" href="#reportTop">
Back to top
</a>
-<h2 id="DevicesDetection_getModel" style="color: rgb(13,13,13); font-size: 24pt; font-weight:normal;">
- Device model
-</h2>
-
-
-
- <table style="border-collapse:collapse; margin-left: 5px;">
- <thead style="background-color: rgb(255,255,255); color: rgb(13,13,13); font-size: 11pt; text-transform: uppercase; line-height:2.5em;">
- <th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
- &nbsp;Device model&nbsp;&nbsp;
- </th>
- <th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
- &nbsp;Visits&nbsp;&nbsp;
- </th>
- <th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
- &nbsp;Actions&nbsp;&nbsp;
- </th>
- <th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
- &nbsp;Actions per Visit&nbsp;&nbsp;
- </th>
- <th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
- &nbsp;Avg. Time on Website&nbsp;&nbsp;
- </th>
- <th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
- &nbsp;Bounce Rate&nbsp;&nbsp;
- </th>
- <th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
- &nbsp;Conversion Rate&nbsp;&nbsp;
- </th>
- </thead>
- <tbody>
-
- <tr style="background-color: rgb(242,242,242);line-height: 22px;">
- <td style="font-size: 13px; border-right: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- Unknown </td>
- <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 11
- </td>
- <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 43
- </td>
- <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 3.9
- </td>
- <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 00:10:55
- </td>
- <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 27%
- </td>
- <td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 0%
- </td>
- </tr>
- </tbody>
- </table>
- <br/>
- <a style="text-decoration:none; color: rgb(13,13,13); font-size: 9pt;" href="#reportTop">
- Back to top
- </a>
<h2 id="DevicesDetection_getOsFamilies" style="color: rgb(13,13,13); font-size: 24pt; font-weight:normal;">
Operating System families
</h2>
diff --git a/tests/PHPUnit/System/expected/test_UserId_VisitorId_segmentUserId__Goals.get_day.xml b/tests/PHPUnit/System/expected/test_UserId_VisitorId_segmentUserId__Goals.get_day.xml
index b7555aa8c6..c61ad5dc70 100644
--- a/tests/PHPUnit/System/expected/test_UserId_VisitorId_segmentUserId__Goals.get_day.xml
+++ b/tests/PHPUnit/System/expected/test_UserId_VisitorId_segmentUserId__Goals.get_day.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>1</nb_visits_converted>
<revenue>0</revenue>
<conversion_rate>50%</conversion_rate>
+ <nb_conversions_new_visit>1</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit>
+ <revenue_new_visit>0</revenue_new_visit>
+ <conversion_rate_new_visit>50%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getMetadata_day.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getMetadata_day.xml
index c495e00070..813c7c3279 100644
--- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getMetadata_day.xml
+++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getMetadata_day.xml
@@ -16,6 +16,10 @@
<nb_visits>If a visitor comes to your website for the first time or if he visits a page more than 30 minutes after his last page view, this will be recorded as a new visit.</nb_visits>
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getProcessedReport_day.xml
index 3d396ecdb8..1b05d735d9 100644
--- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getProcessedReport_day.xml
@@ -18,6 +18,10 @@
<nb_visits>If a visitor comes to your website for the first time or if he visits a page more than 30 minutes after his last page view, this will be recorded as a new visit.</nb_visits>
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml
index f99993804a..73239e0964 100644
--- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml
+++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml
@@ -114,6 +114,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -149,6 +153,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -178,6 +186,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -206,6 +218,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -255,6 +271,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -283,6 +303,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -311,6 +335,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1044,6 +1072,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1080,6 +1112,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1108,6 +1144,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1144,6 +1184,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1180,6 +1224,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1216,6 +1264,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1252,6 +1304,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1505,6 +1561,10 @@
<nb_visits>If a visitor comes to your website for the first time or if he visits a page more than 30 minutes after his last page view, this will be recorded as a new visit.</nb_visits>
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1538,6 +1598,10 @@
<nb_visits>If a visitor comes to your website for the first time or if he visits a page more than 30 minutes after his last page view, this will be recorded as a new visit.</nb_visits>
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1571,6 +1635,10 @@
<nb_visits>If a visitor comes to your website for the first time or if he visits a page more than 30 minutes after his last page view, this will be recorded as a new visit.</nb_visits>
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1604,6 +1672,10 @@
<nb_visits>If a visitor comes to your website for the first time or if he visits a page more than 30 minutes after his last page view, this will be recorded as a new visit.</nb_visits>
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1639,6 +1711,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1767,6 +1843,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1795,6 +1875,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1808,11 +1892,10 @@
</row>
<row>
<category>Visitor Devices</category>
- <name>Visitor Browser</name>
+ <name>Device brand</name>
<module>DevicesDetection</module>
- <action>getBrowsers</action>
- <dimension>Browser</dimension>
- <documentation>This report contains information about what kind of browser your visitors were using. Each browser version is listed separately.</documentation>
+ <action>getBrand</action>
+ <dimension>Device brand</dimension>
<metrics>
<nb_visits>Visits</nb_visits>
<nb_uniq_visitors>Unique visitors</nb_uniq_visitors>
@@ -1824,6 +1907,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1831,16 +1918,17 @@
<bounce_rate>Bounce Rate</bounce_rate>
<conversion_rate>Conversion Rate</conversion_rate>
</processedMetrics>
- <imageGraphUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getBrowsers&amp;period=day&amp;date=2009-01-04</imageGraphUrl>
- <imageGraphEvolutionUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getBrowsers&amp;period=day&amp;date=2008-12-06,2009-01-04</imageGraphEvolutionUrl>
- <uniqueId>DevicesDetection_getBrowsers</uniqueId>
+ <imageGraphUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getBrand&amp;period=day&amp;date=2009-01-04</imageGraphUrl>
+ <imageGraphEvolutionUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getBrand&amp;period=day&amp;date=2008-12-06,2009-01-04</imageGraphEvolutionUrl>
+ <uniqueId>DevicesDetection_getBrand</uniqueId>
</row>
<row>
<category>Visitor Devices</category>
- <name>Device brand</name>
+ <name>Visitor Browser</name>
<module>DevicesDetection</module>
- <action>getBrand</action>
- <dimension>Device brand</dimension>
+ <action>getBrowsers</action>
+ <dimension>Browser</dimension>
+ <documentation>This report contains information about what kind of browser your visitors were using. Each browser version is listed separately.</documentation>
<metrics>
<nb_visits>Visits</nb_visits>
<nb_uniq_visitors>Unique visitors</nb_uniq_visitors>
@@ -1852,6 +1940,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1859,16 +1951,16 @@
<bounce_rate>Bounce Rate</bounce_rate>
<conversion_rate>Conversion Rate</conversion_rate>
</processedMetrics>
- <imageGraphUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getBrand&amp;period=day&amp;date=2009-01-04</imageGraphUrl>
- <imageGraphEvolutionUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getBrand&amp;period=day&amp;date=2008-12-06,2009-01-04</imageGraphEvolutionUrl>
- <uniqueId>DevicesDetection_getBrand</uniqueId>
+ <imageGraphUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getBrowsers&amp;period=day&amp;date=2009-01-04</imageGraphUrl>
+ <imageGraphEvolutionUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getBrowsers&amp;period=day&amp;date=2008-12-06,2009-01-04</imageGraphEvolutionUrl>
+ <uniqueId>DevicesDetection_getBrowsers</uniqueId>
</row>
<row>
<category>Visitor Devices</category>
- <name>Device model</name>
+ <name>Browser version</name>
<module>DevicesDetection</module>
- <action>getModel</action>
- <dimension>Device model</dimension>
+ <action>getBrowserVersions</action>
+ <dimension>Browser version</dimension>
<metrics>
<nb_visits>Visits</nb_visits>
<nb_uniq_visitors>Unique visitors</nb_uniq_visitors>
@@ -1880,6 +1972,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1887,16 +1983,16 @@
<bounce_rate>Bounce Rate</bounce_rate>
<conversion_rate>Conversion Rate</conversion_rate>
</processedMetrics>
- <imageGraphUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getModel&amp;period=day&amp;date=2009-01-04</imageGraphUrl>
- <imageGraphEvolutionUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getModel&amp;period=day&amp;date=2008-12-06,2009-01-04</imageGraphEvolutionUrl>
- <uniqueId>DevicesDetection_getModel</uniqueId>
+ <imageGraphUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getBrowserVersions&amp;period=day&amp;date=2009-01-04</imageGraphUrl>
+ <imageGraphEvolutionUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getBrowserVersions&amp;period=day&amp;date=2008-12-06,2009-01-04</imageGraphEvolutionUrl>
+ <uniqueId>DevicesDetection_getBrowserVersions</uniqueId>
</row>
<row>
<category>Visitor Devices</category>
- <name>Browser version</name>
+ <name>Device model</name>
<module>DevicesDetection</module>
- <action>getBrowserVersions</action>
- <dimension>Browser version</dimension>
+ <action>getModel</action>
+ <dimension>Device model</dimension>
<metrics>
<nb_visits>Visits</nb_visits>
<nb_uniq_visitors>Unique visitors</nb_uniq_visitors>
@@ -1908,6 +2004,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1915,9 +2015,9 @@
<bounce_rate>Bounce Rate</bounce_rate>
<conversion_rate>Conversion Rate</conversion_rate>
</processedMetrics>
- <imageGraphUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getBrowserVersions&amp;period=day&amp;date=2009-01-04</imageGraphUrl>
- <imageGraphEvolutionUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getBrowserVersions&amp;period=day&amp;date=2008-12-06,2009-01-04</imageGraphEvolutionUrl>
- <uniqueId>DevicesDetection_getBrowserVersions</uniqueId>
+ <imageGraphUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getModel&amp;period=day&amp;date=2009-01-04</imageGraphUrl>
+ <imageGraphEvolutionUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=DevicesDetection&amp;apiAction=getModel&amp;period=day&amp;date=2008-12-06,2009-01-04</imageGraphEvolutionUrl>
+ <uniqueId>DevicesDetection_getModel</uniqueId>
</row>
<row>
<category>Visitor Devices</category>
@@ -1936,6 +2036,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1964,6 +2068,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
@@ -1993,6 +2101,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.get_day.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.get_day.xml
index 57438262e4..375235eaa5 100644
--- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.get_day.xml
+++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.get_day.xml
@@ -18,6 +18,15 @@
<nb_conversions>1</nb_conversions>
<nb_visits_converted>1</nb_visits_converted>
<revenue>42.26</revenue>
+ <conversion_rate>100%</conversion_rate>
+ <nb_conversions_new_visit>1</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit>
+ <revenue_new_visit>42.26</revenue_new_visit>
+ <conversion_rate_new_visit>100%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
<nb_pageviews>1</nb_pageviews>
<nb_uniq_pageviews>1</nb_uniq_pageviews>
<nb_downloads>0</nb_downloads>
@@ -26,7 +35,6 @@
<nb_uniq_outlinks>0</nb_uniq_outlinks>
<nb_searches>0</nb_searches>
<nb_keywords>0</nb_keywords>
- <conversion_rate>100%</conversion_rate>
<bounce_rate>100%</bounce_rate>
<nb_actions_per_visit>1</nb_actions_per_visit>
<avg_time_on_site>1086</avg_time_on_site>
diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata_showRawMetrics__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata_showRawMetrics__API.getProcessedReport_day.xml
index c751366bfd..75bcc851e2 100644
--- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata_showRawMetrics__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata_showRawMetrics__API.getProcessedReport_day.xml
@@ -18,6 +18,10 @@
<nb_visits>If a visitor comes to your website for the first time or if he visits a page more than 30 minutes after his last page view, this will be recorded as a new visit.</nb_visits>
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata_year__API.getProcessedReport_year.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata_year__API.getProcessedReport_year.xml
index f371029f1b..4dc81bddda 100644
--- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata_year__API.getProcessedReport_year.xml
+++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata_year__API.getProcessedReport_year.xml
@@ -17,6 +17,10 @@
<nb_visits>Si un visiteur se rend sur votre site web pour la première fois ou s'il visite une page plus de 30 minutes après sa dernière page, il sera enregistré en tant que nouvelle visite.</nb_visits>
<nb_uniq_visitors>Nombre de visiteurs uniques visitant votre site web. Chaque utilisateur n'est compté qu'une seule fois, même s'il visite le site plusieurs fois dans la journée.</nb_uniq_visitors>
<nb_actions>Nombre d'actions effectuées par vos visiteurs. Les actions peuvent être des visites de pages, téléchargements, liens sortants.</nb_actions>
+ <nb_actions_per_visit>Nombre moyen d'actions (affichages de page, téléchargements ou liens sortants) qui ont été effectuées durant les visites.</nb_actions_per_visit>
+ <avg_time_on_site>Durée moyenne d'une visite</avg_time_on_site>
+ <bounce_rate>Pourcentage de visites qui ont eu un affichage unique de page. Cela signifie que le visiteur a quitté le site directement depuis la page d'entrée.</bounce_rate>
+ <conversion_rate>Pourcentage de visites qui ont déclenché une conversion en Objectif.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions par visite</nb_actions_per_visit>
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalAbandonedCart__Goals.get_day.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalAbandonedCart__Goals.get_day.xml
index b82a3a8c27..72c57859f3 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalAbandonedCart__Goals.get_day.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalAbandonedCart__Goals.get_day.xml
@@ -6,4 +6,16 @@
<items>8</items>
<avg_order_revenue>2510.11</avg_order_revenue>
<conversion_rate>66.67%</conversion_rate>
+ <nb_conversions_new_visit>0</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>0</nb_visits_converted_new_visit>
+ <revenue_new_visit>0</revenue_new_visit>
+ <items_new_visit>0</items_new_visit>
+ <avg_order_revenue_new_visit>0</avg_order_revenue_new_visit>
+ <conversion_rate_new_visit>0%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>2</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>2</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>5020.22</revenue_returning_visit>
+ <items_returning_visit>8</items_returning_visit>
+ <avg_order_revenue_returning_visit>2510.11</avg_order_revenue_returning_visit>
+ <conversion_rate_returning_visit>100%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalAbandonedCart__Goals.get_week.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalAbandonedCart__Goals.get_week.xml
index e69257b0fa..b174b63a6f 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalAbandonedCart__Goals.get_week.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalAbandonedCart__Goals.get_week.xml
@@ -6,4 +6,16 @@
<items>12</items>
<avg_order_revenue>2510.11</avg_order_revenue>
<conversion_rate>60%</conversion_rate>
+ <nb_conversions_new_visit>0</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>0</nb_visits_converted_new_visit>
+ <revenue_new_visit>0</revenue_new_visit>
+ <items_new_visit>0</items_new_visit>
+ <avg_order_revenue_new_visit>0</avg_order_revenue_new_visit>
+ <conversion_rate_new_visit>0%</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>7530.33</revenue_returning_visit>
+ <items_returning_visit>12</items_returning_visit>
+ <avg_order_revenue_returning_visit>2510.11</avg_order_revenue_returning_visit>
+ <conversion_rate_returning_visit>75%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalMatchTitle__Goals.get_day.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalMatchTitle__Goals.get_day.xml
index 1245b5cd8f..bbfbfc601c 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalMatchTitle__Goals.get_day.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalMatchTitle__Goals.get_day.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>1</nb_visits_converted>
<revenue>10</revenue>
<conversion_rate>33.33%</conversion_rate>
+ <nb_conversions_new_visit>1</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit>
+ <revenue_new_visit>10</revenue_new_visit>
+ <conversion_rate_new_visit>100%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalMatchTitle__Goals.get_week.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalMatchTitle__Goals.get_week.xml
index b5daa8ba92..9c1f47244a 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalMatchTitle__Goals.get_week.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalMatchTitle__Goals.get_week.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>1</nb_visits_converted>
<revenue>10</revenue>
<conversion_rate>20%</conversion_rate>
+ <nb_conversions_new_visit>1</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit>
+ <revenue_new_visit>10</revenue_new_visit>
+ <conversion_rate_new_visit>100%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOrder__Goals.get_day.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOrder__Goals.get_day.xml
index b1c28a0a8d..028c95e947 100755
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOrder__Goals.get_day.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOrder__Goals.get_day.xml
@@ -10,4 +10,24 @@
<items>10</items>
<avg_order_revenue>1555.56</avg_order_revenue>
<conversion_rate>33.33%</conversion_rate>
+ <nb_conversions_new_visit>0</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>0</nb_visits_converted_new_visit>
+ <revenue_new_visit>0</revenue_new_visit>
+ <revenue_subtotal_new_visit>0</revenue_subtotal_new_visit>
+ <revenue_tax_new_visit>0</revenue_tax_new_visit>
+ <revenue_shipping_new_visit>0</revenue_shipping_new_visit>
+ <revenue_discount_new_visit>0</revenue_discount_new_visit>
+ <items_new_visit>0</items_new_visit>
+ <avg_order_revenue_new_visit>0</avg_order_revenue_new_visit>
+ <conversion_rate_new_visit>0%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>2</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>1</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>3111.11</revenue_returning_visit>
+ <revenue_subtotal_returning_visit>2500</revenue_subtotal_returning_visit>
+ <revenue_tax_returning_visit>511</revenue_tax_returning_visit>
+ <revenue_shipping_returning_visit>100.11</revenue_shipping_returning_visit>
+ <revenue_discount_returning_visit>666</revenue_discount_returning_visit>
+ <items_returning_visit>10</items_returning_visit>
+ <avg_order_revenue_returning_visit>1555.56</avg_order_revenue_returning_visit>
+ <conversion_rate_returning_visit>50%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOrder__Goals.get_week.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOrder__Goals.get_week.xml
index 92abb4962b..2f03fafa05 100755
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOrder__Goals.get_week.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOrder__Goals.get_week.xml
@@ -10,4 +10,24 @@
<items>12</items>
<avg_order_revenue>3337.78</avg_order_revenue>
<conversion_rate>40%</conversion_rate>
+ <nb_conversions_new_visit>0</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>0</nb_visits_converted_new_visit>
+ <revenue_new_visit>0</revenue_new_visit>
+ <revenue_subtotal_new_visit>0</revenue_subtotal_new_visit>
+ <revenue_tax_new_visit>0</revenue_tax_new_visit>
+ <revenue_shipping_new_visit>0</revenue_shipping_new_visit>
+ <revenue_discount_new_visit>0</revenue_discount_new_visit>
+ <items_new_visit>0</items_new_visit>
+ <avg_order_revenue_new_visit>0</avg_order_revenue_new_visit>
+ <conversion_rate_new_visit>0%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>4</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>2</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>13351.11</revenue_returning_visit>
+ <revenue_subtotal_returning_visit>2700</revenue_subtotal_returning_visit>
+ <revenue_tax_returning_visit>531</revenue_tax_returning_visit>
+ <revenue_shipping_returning_visit>120.11</revenue_shipping_returning_visit>
+ <revenue_discount_returning_visit>686</revenue_discount_returning_visit>
+ <items_returning_visit>12</items_returning_visit>
+ <avg_order_revenue_returning_visit>3337.78</avg_order_revenue_returning_visit>
+ <conversion_rate_returning_visit>50%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOverall__Goals.get_day.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOverall__Goals.get_day.xml
index 837cc2b4c6..08432554ee 100755
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOverall__Goals.get_day.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOverall__Goals.get_day.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>2</nb_visits_converted>
<revenue>3121.11</revenue>
<conversion_rate>66.67%</conversion_rate>
+ <nb_conversions_new_visit>1</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit>
+ <revenue_new_visit>10</revenue_new_visit>
+ <conversion_rate_new_visit>100%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>2</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>1</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>3111.11</revenue_returning_visit>
+ <conversion_rate_returning_visit>50%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOverall__Goals.get_week.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOverall__Goals.get_week.xml
index c9cd54530d..6c6dacbd81 100755
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOverall__Goals.get_week.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_GoalOverall__Goals.get_week.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>4</nb_visits_converted>
<revenue>13361.11</revenue>
<conversion_rate>80%</conversion_rate>
+ <nb_conversions_new_visit>1</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit>
+ <revenue_new_visit>10</revenue_new_visit>
+ <conversion_rate_new_visit>100%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>4</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>3</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>13351.11</revenue_returning_visit>
+ <conversion_rate_returning_visit>75%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_Metadata_VisitTime.getVisitInformationPerServerTime__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_Metadata_VisitTime.getVisitInformationPerServerTime__API.getProcessedReport_day.xml
index b98d7db734..a0a7bbea54 100755
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_Metadata_VisitTime.getVisitInformationPerServerTime__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_Metadata_VisitTime.getVisitInformationPerServerTime__API.getProcessedReport_day.xml
@@ -20,6 +20,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_SegmentNoVisit_HaveConvertedNonExistingGoal__Goals.get_week.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_SegmentNoVisit_HaveConvertedNonExistingGoal__Goals.get_week.xml
index 2cb7df5a9e..36db013c1a 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_SegmentNoVisit_HaveConvertedNonExistingGoal__Goals.get_week.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_SegmentNoVisit_HaveConvertedNonExistingGoal__Goals.get_week.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>0</nb_visits_converted>
<revenue>0</revenue>
<conversion_rate>0%</conversion_rate>
+ <nb_conversions_new_visit>0</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>0</nb_visits_converted_new_visit>
+ <revenue_new_visit>0</revenue_new_visit>
+ <conversion_rate_new_visit>0%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_SegmentVisitHasConvertedGoal__Goals.get_week.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_SegmentVisitHasConvertedGoal__Goals.get_week.xml
index 8405e1d37a..6306af1f2b 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_SegmentVisitHasConvertedGoal__Goals.get_week.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_SegmentVisitHasConvertedGoal__Goals.get_week.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>1</nb_visits_converted>
<revenue>10</revenue>
<conversion_rate>100%</conversion_rate>
+ <nb_conversions_new_visit>1</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit>
+ <revenue_new_visit>10</revenue_new_visit>
+ <conversion_rate_new_visit>100%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_SegmentVisitHasNotOrderedAndConvertedGoal__Goals.get_week.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_SegmentVisitHasNotOrderedAndConvertedGoal__Goals.get_week.xml
index 8405e1d37a..6306af1f2b 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_SegmentVisitHasNotOrderedAndConvertedGoal__Goals.get_week.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_SegmentVisitHasNotOrderedAndConvertedGoal__Goals.get_week.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>1</nb_visits_converted>
<revenue>10</revenue>
<conversion_rate>100%</conversion_rate>
+ <nb_conversions_new_visit>1</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit>
+ <revenue_new_visit>10</revenue_new_visit>
+ <conversion_rate_new_visit>100%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_Website2__Goals.get_week.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_Website2__Goals.get_week.xml
index 76d1b80343..92c011eff0 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_Website2__Goals.get_week.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_Website2__Goals.get_week.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>1</nb_visits_converted>
<revenue>250</revenue>
<conversion_rate>50%</conversion_rate>
+ <nb_conversions_new_visit>1</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit>
+ <revenue_new_visit>250</revenue_new_visit>
+ <conversion_rate_new_visit>50%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__API.getProcessedReport_day.xml
index 95ecfbfd3c..3d36e8c075 100755
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__API.getProcessedReport_day.xml
@@ -18,6 +18,10 @@
<nb_visits>If a visitor comes to your website for the first time or if he visits a page more than 30 minutes after his last page view, this will be recorded as a new visit.</nb_visits>
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Goals.get_day.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Goals.get_day.xml
index 837cc2b4c6..08432554ee 100755
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Goals.get_day.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Goals.get_day.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>2</nb_visits_converted>
<revenue>3121.11</revenue>
<conversion_rate>66.67%</conversion_rate>
+ <nb_conversions_new_visit>1</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit>
+ <revenue_new_visit>10</revenue_new_visit>
+ <conversion_rate_new_visit>100%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>2</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>1</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>3111.11</revenue_returning_visit>
+ <conversion_rate_returning_visit>50%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Goals.get_week.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Goals.get_week.xml
index c9cd54530d..6c6dacbd81 100755
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Goals.get_week.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Goals.get_week.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>4</nb_visits_converted>
<revenue>13361.11</revenue>
<conversion_rate>80%</conversion_rate>
+ <nb_conversions_new_visit>1</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit>
+ <revenue_new_visit>10</revenue_new_visit>
+ <conversion_rate_new_visit>100%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>4</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>3</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>13351.11</revenue_returning_visit>
+ <conversion_rate_returning_visit>75%</conversion_rate_returning_visit>
</result> \ No newline at end of file
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 c01bf08c71..dc3af2db1a 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
@@ -470,15 +470,11 @@ Device type
label,nb_visits,nb_actions,conversion_rate,nb_actions_per_visit,avg_time_on_site,bounce_rate
Desktop,5,16,80%,3.2,00:22:49,20%
-Device brand
-label,nb_visits,nb_actions,conversion_rate,nb_actions_per_visit,avg_time_on_site,bounce_rate
-Unknown,5,16,80%,3.2,00:22:49,20%
-
Visitor Browser
label,nb_visits,nb_actions,conversion_rate,nb_actions_per_visit,avg_time_on_site,bounce_rate
Firefox,5,16,80%,3.2,00:22:49,20%
-Device model
+Device brand
label,nb_visits,nb_actions,conversion_rate,nb_actions_per_visit,avg_time_on_site,bounce_rate
Unknown,5,16,80%,3.2,00:22:49,20%
@@ -486,6 +482,10 @@ Browser version
label,nb_visits,nb_actions,conversion_rate,nb_actions_per_visit,avg_time_on_site,bounce_rate
Firefox 3.6,5,16,80%,3.2,00:22:49,20%
+Device model
+label,nb_visits,nb_actions,conversion_rate,nb_actions_per_visit,avg_time_on_site,bounce_rate
+Unknown,5,16,80%,3.2,00:22:49,20%
+
Operating System families
label,nb_visits,nb_actions,conversion_rate,nb_actions_per_visit,avg_time_on_site,bounce_rate
Windows,5,16,80%,3.2,00:22:49,20%
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 c77997e4ca..eed4308fde 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
@@ -335,18 +335,13 @@
</a>
</li>
<li>
- <a href="#DevicesDetection_getBrand" style="text-decoration:none; color: rgb(13,13,13);">
- Device brand
- </a>
- </li>
- <li>
<a href="#DevicesDetection_getBrowsers" style="text-decoration:none; color: rgb(13,13,13);">
Visitor Browser
</a>
</li>
<li>
- <a href="#DevicesDetection_getModel" style="text-decoration:none; color: rgb(13,13,13);">
- Device model
+ <a href="#DevicesDetection_getBrand" style="text-decoration:none; color: rgb(13,13,13);">
+ Device brand
</a>
</li>
<li>
@@ -355,6 +350,11 @@
</a>
</li>
<li>
+ <a href="#DevicesDetection_getModel" style="text-decoration:none; color: rgb(13,13,13);">
+ Device model
+ </a>
+ </li>
+ <li>
<a href="#DevicesDetection_getOsFamilies" style="text-decoration:none; color: rgb(13,13,13);">
Operating System families
</a>
@@ -6182,8 +6182,8 @@
<a style="text-decoration:none; color: rgb(13,13,13); font-size: 9pt;" href="#reportTop">
Back to top
</a>
-<h2 id="DevicesDetection_getBrand" style="color: rgb(13,13,13); font-size: 24pt; font-weight:normal;">
- Device brand
+<h2 id="DevicesDetection_getBrowsers" style="color: rgb(13,13,13); font-size: 24pt; font-weight:normal;">
+ Visitor Browser
</h2>
@@ -6191,7 +6191,7 @@
<table style="border-collapse:collapse; margin-left: 5px;">
<thead style="background-color: rgb(255,255,255); color: rgb(13,13,13); font-size: 11pt; text-transform: uppercase; line-height:2.5em;">
<th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
- &nbsp;Device brand&nbsp;&nbsp;
+ &nbsp;Browser&nbsp;&nbsp;
</th>
<th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
&nbsp;Visits&nbsp;&nbsp;
@@ -6216,9 +6216,9 @@
<tr style="background-color: rgb(242,242,242);line-height: 22px;">
<td style="font-size: 13px; border-right: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- <img src='plugins/DevicesDetection/images/brand/Unknown.ico'>
+ <img src='plugins/DevicesDetection/images/browsers/FF.gif'>
&nbsp;
- Unknown </td>
+ Firefox </td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
5
</td>
@@ -6244,8 +6244,8 @@
<a style="text-decoration:none; color: rgb(13,13,13); font-size: 9pt;" href="#reportTop">
Back to top
</a>
-<h2 id="DevicesDetection_getBrowsers" style="color: rgb(13,13,13); font-size: 24pt; font-weight:normal;">
- Visitor Browser
+<h2 id="DevicesDetection_getBrand" style="color: rgb(13,13,13); font-size: 24pt; font-weight:normal;">
+ Device brand
</h2>
@@ -6253,7 +6253,7 @@
<table style="border-collapse:collapse; margin-left: 5px;">
<thead style="background-color: rgb(255,255,255); color: rgb(13,13,13); font-size: 11pt; text-transform: uppercase; line-height:2.5em;">
<th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
- &nbsp;Browser&nbsp;&nbsp;
+ &nbsp;Device brand&nbsp;&nbsp;
</th>
<th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
&nbsp;Visits&nbsp;&nbsp;
@@ -6278,9 +6278,9 @@
<tr style="background-color: rgb(242,242,242);line-height: 22px;">
<td style="font-size: 13px; border-right: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- <img src='plugins/DevicesDetection/images/browsers/FF.gif'>
+ <img src='plugins/DevicesDetection/images/brand/Unknown.ico'>
&nbsp;
- Firefox </td>
+ Unknown </td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
5
</td>
@@ -6306,8 +6306,8 @@
<a style="text-decoration:none; color: rgb(13,13,13); font-size: 9pt;" href="#reportTop">
Back to top
</a>
-<h2 id="DevicesDetection_getModel" style="color: rgb(13,13,13); font-size: 24pt; font-weight:normal;">
- Device model
+<h2 id="DevicesDetection_getBrowserVersions" style="color: rgb(13,13,13); font-size: 24pt; font-weight:normal;">
+ Browser version
</h2>
@@ -6315,7 +6315,7 @@
<table style="border-collapse:collapse; margin-left: 5px;">
<thead style="background-color: rgb(255,255,255); color: rgb(13,13,13); font-size: 11pt; text-transform: uppercase; line-height:2.5em;">
<th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
- &nbsp;Device model&nbsp;&nbsp;
+ &nbsp;Browser version&nbsp;&nbsp;
</th>
<th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
&nbsp;Visits&nbsp;&nbsp;
@@ -6340,7 +6340,9 @@
<tr style="background-color: rgb(242,242,242);line-height: 22px;">
<td style="font-size: 13px; border-right: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- Unknown </td>
+ <img src='plugins/DevicesDetection/images/browsers/FF.gif'>
+ &nbsp;
+ Firefox 3.6 </td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
5
</td>
@@ -6366,8 +6368,8 @@
<a style="text-decoration:none; color: rgb(13,13,13); font-size: 9pt;" href="#reportTop">
Back to top
</a>
-<h2 id="DevicesDetection_getBrowserVersions" style="color: rgb(13,13,13); font-size: 24pt; font-weight:normal;">
- Browser version
+<h2 id="DevicesDetection_getModel" style="color: rgb(13,13,13); font-size: 24pt; font-weight:normal;">
+ Device model
</h2>
@@ -6375,7 +6377,7 @@
<table style="border-collapse:collapse; margin-left: 5px;">
<thead style="background-color: rgb(255,255,255); color: rgb(13,13,13); font-size: 11pt; text-transform: uppercase; line-height:2.5em;">
<th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
- &nbsp;Browser version&nbsp;&nbsp;
+ &nbsp;Device model&nbsp;&nbsp;
</th>
<th style="font-weight: normal; font-size:10px; text-align:left; padding: 6px 0;">
&nbsp;Visits&nbsp;&nbsp;
@@ -6400,9 +6402,7 @@
<tr style="background-color: rgb(242,242,242);line-height: 22px;">
<td style="font-size: 13px; border-right: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- <img src='plugins/DevicesDetection/images/browsers/FF.gif'>
- &nbsp;
- Firefox 3.6 </td>
+ Unknown </td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
5
</td>
diff --git a/tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__Goals.getMetrics_day.xml b/tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__Goals.getMetrics_day.xml
new file mode 100644
index 0000000000..106f23f16b
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__Goals.getMetrics_day.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<results>
+ <result date="2009-01-04" />
+ <result date="2009-01-05" />
+ <result date="2009-01-06" />
+ <result date="2009-01-07" />
+ <result date="2009-01-08" />
+ <result date="2009-01-09" />
+ <result date="2009-01-10" />
+</results> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__Goals.getMetrics_week.xml b/tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__Goals.getMetrics_week.xml
new file mode 100644
index 0000000000..5cfb246edc
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__Goals.getMetrics_week.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<results>
+ <result date="From 2008-12-29 to 2009-01-04" />
+ <result date="From 2009-01-05 to 2009-01-11" />
+ <result date="From 2009-01-12 to 2009-01-18" />
+ <result date="From 2009-01-19 to 2009-01-25" />
+ <result date="From 2009-01-26 to 2009-02-01" />
+ <result date="From 2009-02-02 to 2009-02-08" />
+ <result date="From 2009-02-09 to 2009-02-15" />
+</results> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_noVisit__Goals.getMetrics_day.xml b/tests/PHPUnit/System/expected/test_noVisit__Goals.getMetrics_day.xml
new file mode 100644
index 0000000000..2cb7df5a9e
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_noVisit__Goals.getMetrics_day.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_conversions>0</nb_conversions>
+ <nb_visits_converted>0</nb_visits_converted>
+ <revenue>0</revenue>
+ <conversion_rate>0%</conversion_rate>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_noVisit__Goals.get_day.xml b/tests/PHPUnit/System/expected/test_noVisit__Goals.get_day.xml
index 2cb7df5a9e..36db013c1a 100644
--- a/tests/PHPUnit/System/expected/test_noVisit__Goals.get_day.xml
+++ b/tests/PHPUnit/System/expected/test_noVisit__Goals.get_day.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>0</nb_visits_converted>
<revenue>0</revenue>
<conversion_rate>0%</conversion_rate>
+ <nb_conversions_new_visit>0</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>0</nb_visits_converted_new_visit>
+ <revenue_new_visit>0</revenue_new_visit>
+ <conversion_rate_new_visit>0%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange_IndexedByDate__MultiSites.getAll_day.xml b/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange_IndexedByDate__MultiSites.getAll_day.xml
index 3d6283b321..a1c7e55b5f 100644
--- a/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange_IndexedByDate__MultiSites.getAll_day.xml
+++ b/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange_IndexedByDate__MultiSites.getAll_day.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
<row>
+ <label>Site AAAAAA</label>
<nb_visits>2</nb_visits>
<nb_actions>3</nb_actions>
<nb_pageviews>3</nb_pageviews>
<revenue>0</revenue>
- <label>Site AAAAAA</label>
<visits_evolution>0%</visits_evolution>
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange_MultipleDatesNotSupported__MultiSites.getAll_day.xml b/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange_MultipleDatesNotSupported__MultiSites.getAll_day.xml
index 2fb69ad710..f714cc123d 100644
--- a/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange_MultipleDatesNotSupported__MultiSites.getAll_day.xml
+++ b/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange_MultipleDatesNotSupported__MultiSites.getAll_day.xml
@@ -11,9 +11,9 @@
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
<label>SITE BBbbBB</label>
@@ -25,9 +25,9 @@
<actions_evolution>0%</actions_evolution>
<pageviews_evolution>0%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="2010-12-16" />
@@ -50,9 +50,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
<label>SITE BBbbBB</label>
@@ -64,9 +64,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>2</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>2</idsite>
</row>
</result>
<result date="2010-12-26" />
@@ -100,9 +100,9 @@
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>0%</revenue_evolution>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
</result>
</results> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange__MultiSites.getAll_range.xml b/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange__MultiSites.getAll_range.xml
index 5e03453232..d758a762ff 100644
--- a/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange__MultiSites.getAll_range.xml
+++ b/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange__MultiSites.getAll_range.xml
@@ -6,9 +6,9 @@
<nb_actions>9</nb_actions>
<nb_pageviews>9</nb_pageviews>
<revenue>0</revenue>
+ <idsite>1</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>1</idsite>
</row>
<row>
<label>SITE BBbbBB</label>
@@ -16,8 +16,8 @@
<nb_actions>2</nb_actions>
<nb_pageviews>2</nb_pageviews>
<revenue>0</revenue>
+ <idsite>2</idsite>
<group />
<main_url>http://piwik.net</main_url>
- <idsite>2</idsite>
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__API.getProcessedReport_range.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__API.getProcessedReport_range.xml
index f704570bac..61d15c6685 100644
--- a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__API.getProcessedReport_range.xml
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__API.getProcessedReport_range.xml
@@ -17,6 +17,10 @@
<nb_visits>If a visitor comes to your website for the first time or if he visits a page more than 30 minutes after his last page view, this will be recorded as a new visit.</nb_visits>
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Goals.get_range.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Goals.get_range.xml
index 26bf6746c5..2c07daa5b1 100644
--- a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Goals.get_range.xml
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Goals.get_range.xml
@@ -4,4 +4,12 @@
<nb_visits_converted>2</nb_visits_converted>
<revenue>1000</revenue>
<conversion_rate>66.67%</conversion_rate>
+ <nb_conversions_new_visit>3</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>2</nb_visits_converted_new_visit>
+ <revenue_new_visit>1000</revenue_new_visit>
+ <conversion_rate_new_visit>66.67%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
</result> \ No newline at end of file
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 f1debe8ad2..1b02f126e5 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
@@ -154,7 +154,6 @@
-
</row>
<row>
<idSite>1</idSite>
@@ -275,7 +274,6 @@
-
</row>
</lastVisits>
<userId>0</userId>
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__API.getProcessedReport_range.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__API.getProcessedReport_range.xml
new file mode 100644
index 0000000000..61d15c6685
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__API.getProcessedReport_range.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <website>Piwik test</website>
+
+ <metadata>
+ <category>Visitors</category>
+ <name>Country</name>
+ <module>UserCountry</module>
+ <action>getCountry</action>
+ <dimension>Country</dimension>
+ <documentation>This report shows which country your visitors were in when they accessed your website.</documentation>
+ <metrics>
+ <nb_visits>Visits</nb_visits>
+ <nb_actions>Actions</nb_actions>
+ </metrics>
+ <metricsDocumentation>
+ <nb_visits>If a visitor comes to your website for the first time or if he visits a page more than 30 minutes after his last page view, this will be recorded as a new visit.</nb_visits>
+ <nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
+ <nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
+ </metricsDocumentation>
+ <processedMetrics>
+ <nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
+ <avg_time_on_site>Avg. Time on Website</avg_time_on_site>
+ <bounce_rate>Bounce Rate</bounce_rate>
+ </processedMetrics>
+ <metricsGoal>
+ <nb_conversions>Conversions</nb_conversions>
+ <revenue>Revenue</revenue>
+ </metricsGoal>
+ <processedMetricsGoal>
+ <revenue_per_visit>Revenue per Visit</revenue_per_visit>
+ </processedMetricsGoal>
+ <imageGraphUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=UserCountry&amp;apiAction=getCountry&amp;period=range&amp;date=</imageGraphUrl>
+ <imageGraphEvolutionUrl>index.php?module=API&amp;method=ImageGraph.get&amp;idSite=1&amp;apiModule=UserCountry&amp;apiAction=getCountry&amp;period=day&amp;date=</imageGraphEvolutionUrl>
+ <uniqueId>UserCountry_getCountry</uniqueId>
+ </metadata>
+ <columns>
+ <label>Country</label>
+ <nb_visits>Visits</nb_visits>
+ <nb_actions>Actions</nb_actions>
+ <nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
+ <avg_time_on_site>Avg. Time on Website</avg_time_on_site>
+ <bounce_rate>Bounce Rate</bounce_rate>
+ <revenue>Revenue</revenue>
+ </columns>
+ <reportData>
+ <row>
+ <label>France</label>
+ <nb_visits>3</nb_visits>
+ <nb_actions>5</nb_actions>
+ <revenue>$ 1000</revenue>
+ <nb_actions_per_visit>1.7</nb_actions_per_visit>
+ <avg_time_on_site>00:04:02</avg_time_on_site>
+ <bounce_rate>67%</bounce_rate>
+ </row>
+ </reportData>
+ <reportMetadata>
+ <row>
+ <code>fr</code>
+ <logo>plugins/UserCountry/images/flags/fr.png</logo>
+ <segment>countryCode==fr</segment>
+ <logoWidth>16</logoWidth>
+ <logoHeight>11</logoHeight>
+ </row>
+ </reportMetadata>
+ <reportTotal>
+ <nb_visits>3</nb_visits>
+ <nb_actions>5</nb_actions>
+ <nb_conversions>3</nb_conversions>
+ <bounce_count>2</bounce_count>
+ <revenue>1000</revenue>
+ </reportTotal>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Actions.getPageUrls_range.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Actions.getPageUrls_range.xml
new file mode 100644
index 0000000000..457accfc9a
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Actions.getPageUrls_range.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>
+ <label>/homepage</label>
+ <nb_visits>2</nb_visits>
+ <nb_hits>2</nb_hits>
+ <sum_time_spent>360</sum_time_spent>
+ <entry_nb_visits>1</entry_nb_visits>
+ <entry_nb_actions>3</entry_nb_actions>
+ <entry_sum_visit_length>364</entry_sum_visit_length>
+ <entry_bounce_count>0</entry_bounce_count>
+ <exit_nb_visits>1</exit_nb_visits>
+ <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>180</avg_time_on_page>
+ <bounce_rate>0%</bounce_rate>
+ <exit_rate>50%</exit_rate>
+ <url>http://example.org/homepage</url>
+ <segment>pageUrl==http%3A%2F%2Fexample.org%2Fhomepage</segment>
+ </row>
+ <row>
+ <label>user</label>
+ <nb_visits>1</nb_visits>
+ <nb_hits>2</nb_hits>
+ <sum_time_spent>0</sum_time_spent>
+ <exit_nb_visits>1</exit_nb_visits>
+ <avg_time_on_page>0</avg_time_on_page>
+ <bounce_rate>0%</bounce_rate>
+ <exit_rate>100%</exit_rate>
+ <subtable>
+ <row>
+ <label>/profile</label>
+ <nb_visits>1</nb_visits>
+ <nb_hits>2</nb_hits>
+ <sum_time_spent>0</sum_time_spent>
+ <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>0</avg_time_on_page>
+ <bounce_rate>0%</bounce_rate>
+ <exit_rate>100%</exit_rate>
+ <url>http://example.org/user/profile</url>
+ </row>
+ </subtable>
+ </row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__CustomVariables.getCustomVariables_range.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__CustomVariables.getCustomVariables_range.xml
new file mode 100644
index 0000000000..1639c238a3
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__CustomVariables.getCustomVariables_range.xml
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>
+ <label>VisitorType</label>
+ <nb_visits>3</nb_visits>
+ <nb_actions>5</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>725</sum_visit_length>
+ <bounce_count>2</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>1000</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>0</revenue>
+ </row>
+ </goals>
+ <nb_conversions>3</nb_conversions>
+ <revenue>1000</revenue>
+ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ <subtable>
+ <row>
+ <label>LoggedIn</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>3</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>364</sum_visit_length>
+ <bounce_count>0</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>0</revenue>
+ </row>
+ </goals>
+ <nb_conversions>1</nb_conversions>
+ <revenue>0</revenue>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ </row>
+ <row>
+ <label>LoggedOut</label>
+ <nb_visits>2</nb_visits>
+ <nb_actions>2</nb_actions>
+ <max_actions>1</max_actions>
+ <sum_visit_length>361</sum_visit_length>
+ <bounce_count>2</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>1000</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>0</revenue>
+ </row>
+ </goals>
+ <nb_conversions>2</nb_conversions>
+ <revenue>1000</revenue>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ </row>
+ </subtable>
+ </row>
+ <row>
+ <label>SET WITH EMPTY VALUE</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>3</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>364</sum_visit_length>
+ <bounce_count>0</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>0</revenue>
+ </row>
+ </goals>
+ <nb_conversions>1</nb_conversions>
+ <revenue>0</revenue>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ <subtable>
+ <row>
+ <label>Value not defined</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>3</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>364</sum_visit_length>
+ <bounce_count>0</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>0</revenue>
+ </row>
+ </goals>
+ <nb_conversions>1</nb_conversions>
+ <revenue>0</revenue>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ </row>
+ </subtable>
+ </row>
+ <row>
+ <label>Status user</label>
+ <nb_actions>3</nb_actions>
+ <subtable>
+ <row>
+ <label>looking at &quot;profile page&quot;</label>
+ <nb_visits>2</nb_visits>
+ <nb_actions>2</nb_actions>
+ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
+ </row>
+ <row>
+ <label>Loggedin</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ </row>
+ </subtable>
+ </row>
+ <row>
+ <label>Value will be VERY long and truncated</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>3</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>364</sum_visit_length>
+ <bounce_count>0</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>0</revenue>
+ </row>
+ </goals>
+ <nb_conversions>1</nb_conversions>
+ <revenue>0</revenue>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ <subtable>
+ <row>
+ <label>abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrst</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>3</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>364</sum_visit_length>
+ <bounce_count>0</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>0</revenue>
+ </row>
+ </goals>
+ <nb_conversions>1</nb_conversions>
+ <revenue>0</revenue>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ </row>
+ </subtable>
+ </row>
+ <row>
+ <label>Othercustom value which should be truncated abcdefghijklmnopqrstuvwxyz</label>
+ <nb_visits>2</nb_visits>
+ <nb_actions>2</nb_actions>
+ <max_actions>1</max_actions>
+ <sum_visit_length>361</sum_visit_length>
+ <bounce_count>2</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>1000</revenue>
+ </row>
+ </goals>
+ <nb_conversions>1</nb_conversions>
+ <revenue>1000</revenue>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ <subtable>
+ <row>
+ <label>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz</label>
+ <nb_visits>2</nb_visits>
+ <nb_actions>2</nb_actions>
+ <max_actions>1</max_actions>
+ <sum_visit_length>361</sum_visit_length>
+ <bounce_count>2</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>1000</revenue>
+ </row>
+ </goals>
+ <nb_conversions>1</nb_conversions>
+ <revenue>1000</revenue>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ </row>
+ </subtable>
+ </row>
+ <row>
+ <label>Language</label>
+ <nb_actions>1</nb_actions>
+ <subtable>
+ <row>
+ <label>FR</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ </row>
+ </subtable>
+ </row>
+ <row>
+ <label>SET WITH EMPTY VALUE PAGE SCOPE</label>
+ <nb_actions>1</nb_actions>
+ <subtable>
+ <row>
+ <label>Value not defined</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ </row>
+ </subtable>
+ </row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Goals.get_range.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Goals.get_range.xml
new file mode 100644
index 0000000000..c31484a079
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Goals.get_range.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_conversions>3</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>1000</revenue>
+ <conversion_rate>66.67%</conversion_rate>
+ <nb_conversions_new_visit>0</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>2</nb_visits_converted_new_visit>
+ <revenue_new_visit>0</revenue_new_visit>
+ <conversion_rate_new_visit>66.67%</conversion_rate_new_visit>
+ <nb_conversions_returning_visit>0</nb_conversions_returning_visit>
+ <nb_visits_converted_returning_visit>0</nb_visits_converted_returning_visit>
+ <revenue_returning_visit>0</revenue_returning_visit>
+ <conversion_rate_returning_visit>0%</conversion_rate_returning_visit>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getCounters.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getCounters.xml
new file mode 100644
index 0000000000..ba6489a54c
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getCounters.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>
+ <visits>3</visits>
+ <actions>5</actions>
+ <visitors>2</visitors>
+ <visitsConverted>3</visitsConverted>
+ </row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisits.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisits.xml
new file mode 100644
index 0000000000..121f02c75a
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisits.xml
@@ -0,0 +1,415 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>3</idVisit>
+ <visitIp>156.5.3.2</visitIp>
+
+ <actionDetails>
+ <row>
+ <type>outlink</type>
+ <url>http://test.com</url>
+ <pageTitle />
+ <pageIdAction>6</pageIdAction>
+
+ <pageId>5</pageId>
+ <icon>plugins/Morpheus/images/link.gif</icon>
+
+ </row>
+ </actionDetails>
+ <goalConversions>0</goalConversions>
+ <siteCurrency>USD</siteCurrency>
+ <siteCurrencySymbol>$</siteCurrencySymbol>
+
+
+
+
+ <userId />
+ <visitorType>new</visitorType>
+ <visitorTypeIcon />
+ <visitConverted>0</visitConverted>
+ <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 />
+ <deviceType>Desktop</deviceType>
+ <deviceTypeIcon>plugins/DevicesDetection/images/screens/normal.gif</deviceTypeIcon>
+ <deviceBrand>Unknown</deviceBrand>
+ <deviceModel />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemName>Windows</operatingSystemName>
+ <operatingSystemIcon>plugins/DevicesDetection/images/os/WIN.gif</operatingSystemIcon>
+ <operatingSystemCode>WIN</operatingSystemCode>
+ <operatingSystemVersion>XP</operatingSystemVersion>
+ <browserFamily>Gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browser>Firefox 3.0</browser>
+ <browserName>Firefox</browserName>
+ <browserIcon>plugins/DevicesDetection/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.0</browserVersion>
+ <events>0</events>
+ <continent>Europe</continent>
+ <continentCode>eur</continentCode>
+ <country>France</country>
+ <countryCode>fr</countryCode>
+ <countryFlag>plugins/UserCountry/images/flags/fr.png</countryFlag>
+ <region />
+ <regionCode />
+ <city />
+ <location>France</location>
+ <latitude />
+ <longitude />
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <daysSinceLastVisit>0</daysSinceLastVisit>
+ <provider>Unknown</provider>
+ <providerName>Unknown</providerName>
+ <providerUrl />
+ <customVariables>
+ <row>
+ <customVariableName1>VisitorType</customVariableName1>
+ <customVariableValue1>LoggedOut</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName2>Othercustom value which should be truncated abcdefghijklmnopqrstuvwxyz</customVariableName2>
+ <customVariableValue2>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz</customVariableValue2>
+ </row>
+ </customVariables>
+ <resolution>1111x222</resolution>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>2</idVisit>
+ <visitIp>156.5.3.2</visitIp>
+
+ <actionDetails>
+ <row>
+ <type>goal</type>
+ <goalName>triggered js</goalName>
+ <goalId>1</goalId>
+ <revenue>0</revenue>
+ <goalPageId />
+
+ <url>http://example.org/homepage</url>
+ <icon>plugins/Morpheus/images/goal.png</icon>
+
+ </row>
+ <row>
+ <type>action</type>
+ <url>http://example.org/homepage</url>
+ <pageTitle>Homepage</pageTitle>
+ <pageIdAction>2</pageIdAction>
+
+ <pageId>4</pageId>
+ <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>361</visitDuration>
+ <visitDurationPretty>6 min 1s</visitDurationPretty>
+ <searches>0</searches>
+ <actions>1</actions>
+ <referrerType>direct</referrerType>
+ <referrerTypeName>Direct Entry</referrerTypeName>
+ <referrerName />
+ <referrerKeyword />
+ <referrerKeywordPosition />
+ <referrerUrl />
+ <referrerSearchEngineUrl />
+ <referrerSearchEngineIcon />
+ <deviceType>Desktop</deviceType>
+ <deviceTypeIcon>plugins/DevicesDetection/images/screens/normal.gif</deviceTypeIcon>
+ <deviceBrand>Unknown</deviceBrand>
+ <deviceModel />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemName>Windows</operatingSystemName>
+ <operatingSystemIcon>plugins/DevicesDetection/images/os/WIN.gif</operatingSystemIcon>
+ <operatingSystemCode>WIN</operatingSystemCode>
+ <operatingSystemVersion>XP</operatingSystemVersion>
+ <browserFamily>Gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browser>Firefox 3.0</browser>
+ <browserName>Firefox</browserName>
+ <browserIcon>plugins/DevicesDetection/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.0</browserVersion>
+ <events>0</events>
+ <continent>Europe</continent>
+ <continentCode>eur</continentCode>
+ <country>France</country>
+ <countryCode>fr</countryCode>
+ <countryFlag>plugins/UserCountry/images/flags/fr.png</countryFlag>
+ <region />
+ <regionCode />
+ <city />
+ <location>France</location>
+ <latitude />
+ <longitude />
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <daysSinceLastVisit>0</daysSinceLastVisit>
+ <provider>Unknown</provider>
+ <providerName>Unknown</providerName>
+ <providerUrl />
+ <customVariables>
+ <row>
+ <customVariableName1>VisitorType</customVariableName1>
+ <customVariableValue1>LoggedOut</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName2>Othercustom value which should be truncated abcdefghijklmnopqrstuvwxyz</customVariableName2>
+ <customVariableValue2>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz</customVariableValue2>
+ </row>
+ </customVariables>
+ <resolution>1111x222</resolution>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>1</idVisit>
+ <visitIp>156.5.3.2</visitIp>
+
+ <actionDetails>
+ <row>
+ <type>goal</type>
+ <goalName>second goal</goalName>
+ <goalId>2</goalId>
+ <revenue>0</revenue>
+ <goalPageId />
+
+ <url>http://example.org/homepage</url>
+ <icon>plugins/Morpheus/images/goal.png</icon>
+
+ </row>
+ <row>
+ <type>action</type>
+ <url>http://example.org/homepage</url>
+ <pageTitle>Homepage</pageTitle>
+ <pageIdAction>2</pageIdAction>
+
+ <pageId>1</pageId>
+ <timeSpent>360</timeSpent>
+ <timeSpentPretty>6 min 0s</timeSpentPretty>
+ <icon />
+
+ </row>
+ <row>
+ <type>goal</type>
+ <goalName>triggered js</goalName>
+ <goalId>1</goalId>
+ <revenue>0</revenue>
+ <goalPageId />
+
+ <url>http://example.org/user/profile</url>
+ <icon>plugins/Morpheus/images/goal.png</icon>
+
+ </row>
+ <row>
+ <type>action</type>
+ <url>http://example.org/user/profile</url>
+ <pageTitle>Profile page</pageTitle>
+ <pageIdAction>4</pageIdAction>
+
+ <pageId>2</pageId>
+ <customVariables>
+ <row>
+ <customVariablePageName4>Status user</customVariablePageName4>
+ <customVariablePageValue4>Loggedin</customVariablePageValue4>
+ </row>
+ <row>
+ <customVariablePageName5>Status user</customVariablePageName5>
+ <customVariablePageValue5>looking at &quot;profile page&quot;</customVariablePageValue5>
+ </row>
+ </customVariables>
+ <timeSpent>0</timeSpent>
+ <timeSpentPretty>0s</timeSpentPretty>
+ <icon />
+
+ </row>
+ <row>
+ <type>action</type>
+ <url>http://example.org/user/profile</url>
+ <pageTitle>Profile page for user *_)%</pageTitle>
+ <pageIdAction>4</pageIdAction>
+
+ <pageId>3</pageId>
+ <customVariables>
+ <row>
+ <customVariablePageName1>Language</customVariablePageName1>
+ <customVariablePageValue1>FR</customVariablePageValue1>
+ </row>
+ <row>
+ <customVariablePageName2>SET WITH EMPTY VALUE PAGE SCOPE</customVariablePageName2>
+ <customVariablePageValue2 />
+ </row>
+ <row>
+ <customVariablePageName4>Status user</customVariablePageName4>
+ <customVariablePageValue4>looking at &quot;profile page&quot;</customVariablePageValue4>
+ </row>
+ </customVariables>
+ <icon />
+
+ </row>
+ </actionDetails>
+ <goalConversions>2</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>364</visitDuration>
+ <visitDurationPretty>6 min 4s</visitDurationPretty>
+ <searches>0</searches>
+ <actions>3</actions>
+ <referrerType>search</referrerType>
+ <referrerTypeName>Search Engines</referrerTypeName>
+ <referrerName>Google</referrerName>
+ <referrerKeyword>this keyword should be ranked</referrerKeyword>
+ <referrerKeywordPosition>1</referrerKeywordPosition>
+ <referrerUrl>http://www.google.com/search?q=this+keyword+should+be+ranked</referrerUrl>
+ <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl>
+ <referrerSearchEngineIcon>plugins/Referrers/images/searchEngines/google.com.png</referrerSearchEngineIcon>
+ <deviceType>Desktop</deviceType>
+ <deviceTypeIcon>plugins/DevicesDetection/images/screens/normal.gif</deviceTypeIcon>
+ <deviceBrand>Unknown</deviceBrand>
+ <deviceModel />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemName>Windows</operatingSystemName>
+ <operatingSystemIcon>plugins/DevicesDetection/images/os/WIN.gif</operatingSystemIcon>
+ <operatingSystemCode>WIN</operatingSystemCode>
+ <operatingSystemVersion>XP</operatingSystemVersion>
+ <browserFamily>Gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browser>Firefox 3.6</browser>
+ <browserName>Firefox</browserName>
+ <browserIcon>plugins/DevicesDetection/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
+ <events>0</events>
+ <continent>Europe</continent>
+ <continentCode>eur</continentCode>
+ <country>France</country>
+ <countryCode>fr</countryCode>
+ <countryFlag>plugins/UserCountry/images/flags/fr.png</countryFlag>
+ <region />
+ <regionCode />
+ <city />
+ <location>France</location>
+ <latitude />
+ <longitude />
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <daysSinceLastVisit>0</daysSinceLastVisit>
+ <provider>Unknown</provider>
+ <providerName>Unknown</providerName>
+ <providerUrl />
+ <customVariables>
+ <row>
+ <customVariableName1>VisitorType</customVariableName1>
+ <customVariableValue1>LoggedIn</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName2>SET WITH EMPTY VALUE</customVariableName2>
+ <customVariableValue2 />
+ </row>
+ <row>
+ <customVariableName3>Value will be VERY long and truncated</customVariableName3>
+ <customVariableValue3>abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrst</customVariableValue3>
+ </row>
+ </customVariables>
+ <resolution>1111x222</resolution>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisitsDetails_range.xml
new file mode 100644
index 0000000000..121f02c75a
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisitsDetails_range.xml
@@ -0,0 +1,415 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>3</idVisit>
+ <visitIp>156.5.3.2</visitIp>
+
+ <actionDetails>
+ <row>
+ <type>outlink</type>
+ <url>http://test.com</url>
+ <pageTitle />
+ <pageIdAction>6</pageIdAction>
+
+ <pageId>5</pageId>
+ <icon>plugins/Morpheus/images/link.gif</icon>
+
+ </row>
+ </actionDetails>
+ <goalConversions>0</goalConversions>
+ <siteCurrency>USD</siteCurrency>
+ <siteCurrencySymbol>$</siteCurrencySymbol>
+
+
+
+
+ <userId />
+ <visitorType>new</visitorType>
+ <visitorTypeIcon />
+ <visitConverted>0</visitConverted>
+ <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 />
+ <deviceType>Desktop</deviceType>
+ <deviceTypeIcon>plugins/DevicesDetection/images/screens/normal.gif</deviceTypeIcon>
+ <deviceBrand>Unknown</deviceBrand>
+ <deviceModel />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemName>Windows</operatingSystemName>
+ <operatingSystemIcon>plugins/DevicesDetection/images/os/WIN.gif</operatingSystemIcon>
+ <operatingSystemCode>WIN</operatingSystemCode>
+ <operatingSystemVersion>XP</operatingSystemVersion>
+ <browserFamily>Gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browser>Firefox 3.0</browser>
+ <browserName>Firefox</browserName>
+ <browserIcon>plugins/DevicesDetection/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.0</browserVersion>
+ <events>0</events>
+ <continent>Europe</continent>
+ <continentCode>eur</continentCode>
+ <country>France</country>
+ <countryCode>fr</countryCode>
+ <countryFlag>plugins/UserCountry/images/flags/fr.png</countryFlag>
+ <region />
+ <regionCode />
+ <city />
+ <location>France</location>
+ <latitude />
+ <longitude />
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <daysSinceLastVisit>0</daysSinceLastVisit>
+ <provider>Unknown</provider>
+ <providerName>Unknown</providerName>
+ <providerUrl />
+ <customVariables>
+ <row>
+ <customVariableName1>VisitorType</customVariableName1>
+ <customVariableValue1>LoggedOut</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName2>Othercustom value which should be truncated abcdefghijklmnopqrstuvwxyz</customVariableName2>
+ <customVariableValue2>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz</customVariableValue2>
+ </row>
+ </customVariables>
+ <resolution>1111x222</resolution>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>2</idVisit>
+ <visitIp>156.5.3.2</visitIp>
+
+ <actionDetails>
+ <row>
+ <type>goal</type>
+ <goalName>triggered js</goalName>
+ <goalId>1</goalId>
+ <revenue>0</revenue>
+ <goalPageId />
+
+ <url>http://example.org/homepage</url>
+ <icon>plugins/Morpheus/images/goal.png</icon>
+
+ </row>
+ <row>
+ <type>action</type>
+ <url>http://example.org/homepage</url>
+ <pageTitle>Homepage</pageTitle>
+ <pageIdAction>2</pageIdAction>
+
+ <pageId>4</pageId>
+ <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>361</visitDuration>
+ <visitDurationPretty>6 min 1s</visitDurationPretty>
+ <searches>0</searches>
+ <actions>1</actions>
+ <referrerType>direct</referrerType>
+ <referrerTypeName>Direct Entry</referrerTypeName>
+ <referrerName />
+ <referrerKeyword />
+ <referrerKeywordPosition />
+ <referrerUrl />
+ <referrerSearchEngineUrl />
+ <referrerSearchEngineIcon />
+ <deviceType>Desktop</deviceType>
+ <deviceTypeIcon>plugins/DevicesDetection/images/screens/normal.gif</deviceTypeIcon>
+ <deviceBrand>Unknown</deviceBrand>
+ <deviceModel />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemName>Windows</operatingSystemName>
+ <operatingSystemIcon>plugins/DevicesDetection/images/os/WIN.gif</operatingSystemIcon>
+ <operatingSystemCode>WIN</operatingSystemCode>
+ <operatingSystemVersion>XP</operatingSystemVersion>
+ <browserFamily>Gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browser>Firefox 3.0</browser>
+ <browserName>Firefox</browserName>
+ <browserIcon>plugins/DevicesDetection/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.0</browserVersion>
+ <events>0</events>
+ <continent>Europe</continent>
+ <continentCode>eur</continentCode>
+ <country>France</country>
+ <countryCode>fr</countryCode>
+ <countryFlag>plugins/UserCountry/images/flags/fr.png</countryFlag>
+ <region />
+ <regionCode />
+ <city />
+ <location>France</location>
+ <latitude />
+ <longitude />
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <daysSinceLastVisit>0</daysSinceLastVisit>
+ <provider>Unknown</provider>
+ <providerName>Unknown</providerName>
+ <providerUrl />
+ <customVariables>
+ <row>
+ <customVariableName1>VisitorType</customVariableName1>
+ <customVariableValue1>LoggedOut</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName2>Othercustom value which should be truncated abcdefghijklmnopqrstuvwxyz</customVariableName2>
+ <customVariableValue2>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz</customVariableValue2>
+ </row>
+ </customVariables>
+ <resolution>1111x222</resolution>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>1</idVisit>
+ <visitIp>156.5.3.2</visitIp>
+
+ <actionDetails>
+ <row>
+ <type>goal</type>
+ <goalName>second goal</goalName>
+ <goalId>2</goalId>
+ <revenue>0</revenue>
+ <goalPageId />
+
+ <url>http://example.org/homepage</url>
+ <icon>plugins/Morpheus/images/goal.png</icon>
+
+ </row>
+ <row>
+ <type>action</type>
+ <url>http://example.org/homepage</url>
+ <pageTitle>Homepage</pageTitle>
+ <pageIdAction>2</pageIdAction>
+
+ <pageId>1</pageId>
+ <timeSpent>360</timeSpent>
+ <timeSpentPretty>6 min 0s</timeSpentPretty>
+ <icon />
+
+ </row>
+ <row>
+ <type>goal</type>
+ <goalName>triggered js</goalName>
+ <goalId>1</goalId>
+ <revenue>0</revenue>
+ <goalPageId />
+
+ <url>http://example.org/user/profile</url>
+ <icon>plugins/Morpheus/images/goal.png</icon>
+
+ </row>
+ <row>
+ <type>action</type>
+ <url>http://example.org/user/profile</url>
+ <pageTitle>Profile page</pageTitle>
+ <pageIdAction>4</pageIdAction>
+
+ <pageId>2</pageId>
+ <customVariables>
+ <row>
+ <customVariablePageName4>Status user</customVariablePageName4>
+ <customVariablePageValue4>Loggedin</customVariablePageValue4>
+ </row>
+ <row>
+ <customVariablePageName5>Status user</customVariablePageName5>
+ <customVariablePageValue5>looking at &quot;profile page&quot;</customVariablePageValue5>
+ </row>
+ </customVariables>
+ <timeSpent>0</timeSpent>
+ <timeSpentPretty>0s</timeSpentPretty>
+ <icon />
+
+ </row>
+ <row>
+ <type>action</type>
+ <url>http://example.org/user/profile</url>
+ <pageTitle>Profile page for user *_)%</pageTitle>
+ <pageIdAction>4</pageIdAction>
+
+ <pageId>3</pageId>
+ <customVariables>
+ <row>
+ <customVariablePageName1>Language</customVariablePageName1>
+ <customVariablePageValue1>FR</customVariablePageValue1>
+ </row>
+ <row>
+ <customVariablePageName2>SET WITH EMPTY VALUE PAGE SCOPE</customVariablePageName2>
+ <customVariablePageValue2 />
+ </row>
+ <row>
+ <customVariablePageName4>Status user</customVariablePageName4>
+ <customVariablePageValue4>looking at &quot;profile page&quot;</customVariablePageValue4>
+ </row>
+ </customVariables>
+ <icon />
+
+ </row>
+ </actionDetails>
+ <goalConversions>2</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>364</visitDuration>
+ <visitDurationPretty>6 min 4s</visitDurationPretty>
+ <searches>0</searches>
+ <actions>3</actions>
+ <referrerType>search</referrerType>
+ <referrerTypeName>Search Engines</referrerTypeName>
+ <referrerName>Google</referrerName>
+ <referrerKeyword>this keyword should be ranked</referrerKeyword>
+ <referrerKeywordPosition>1</referrerKeywordPosition>
+ <referrerUrl>http://www.google.com/search?q=this+keyword+should+be+ranked</referrerUrl>
+ <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl>
+ <referrerSearchEngineIcon>plugins/Referrers/images/searchEngines/google.com.png</referrerSearchEngineIcon>
+ <deviceType>Desktop</deviceType>
+ <deviceTypeIcon>plugins/DevicesDetection/images/screens/normal.gif</deviceTypeIcon>
+ <deviceBrand>Unknown</deviceBrand>
+ <deviceModel />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemName>Windows</operatingSystemName>
+ <operatingSystemIcon>plugins/DevicesDetection/images/os/WIN.gif</operatingSystemIcon>
+ <operatingSystemCode>WIN</operatingSystemCode>
+ <operatingSystemVersion>XP</operatingSystemVersion>
+ <browserFamily>Gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browser>Firefox 3.6</browser>
+ <browserName>Firefox</browserName>
+ <browserIcon>plugins/DevicesDetection/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.6</browserVersion>
+ <events>0</events>
+ <continent>Europe</continent>
+ <continentCode>eur</continentCode>
+ <country>France</country>
+ <countryCode>fr</countryCode>
+ <countryFlag>plugins/UserCountry/images/flags/fr.png</countryFlag>
+ <region />
+ <regionCode />
+ <city />
+ <location>France</location>
+ <latitude />
+ <longitude />
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <daysSinceLastVisit>0</daysSinceLastVisit>
+ <provider>Unknown</provider>
+ <providerName>Unknown</providerName>
+ <providerUrl />
+ <customVariables>
+ <row>
+ <customVariableName1>VisitorType</customVariableName1>
+ <customVariableValue1>LoggedIn</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName2>SET WITH EMPTY VALUE</customVariableName2>
+ <customVariableValue2 />
+ </row>
+ <row>
+ <customVariableName3>Value will be VERY long and truncated</customVariableName3>
+ <customVariableValue3>abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrstuvwxyz----abcdefghijklmnopqrst</customVariableValue3>
+ </row>
+ </customVariables>
+ <resolution>1111x222</resolution>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getMostRecentVisitorId.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getMostRecentVisitorId.xml
new file mode 100644
index 0000000000..943e78b64e
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getMostRecentVisitorId.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>61e8cc2d51fea26d</result> \ No newline at end of file
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
new file mode 100644
index 0000000000..1b02f126e5
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getVisitorProfile.xml
@@ -0,0 +1,280 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <totalVisits>2</totalVisits>
+ <totalVisitDuration>361</totalVisitDuration>
+ <totalActions>2</totalActions>
+ <totalSearches>0</totalSearches>
+ <totalPageViewsWithTiming>0</totalPageViewsWithTiming>
+ <totalGoalConversions>1</totalGoalConversions>
+ <totalConversionsByGoal>
+ <row idgoal="1">1</row>
+ </totalConversionsByGoal>
+ <hasLatLong>0</hasLatLong>
+ <searches>
+ </searches>
+ <continents>
+ <row>
+ <continent>eur</continent>
+ <nb_visits>2</nb_visits>
+ <prettyName>Europe</prettyName>
+ </row>
+ </continents>
+ <countries>
+ <row>
+ <country>fr</country>
+ <nb_visits>2</nb_visits>
+ <flag>plugins/UserCountry/images/flags/fr.png</flag>
+ <prettyName>France</prettyName>
+ </row>
+ </countries>
+ <totalVisitDurationPretty>6 min 1s</totalVisitDurationPretty>
+ <firstVisit>
+
+
+ <daysAgo>0</daysAgo>
+ <referrerType>direct</referrerType>
+ <referralSummary>Direct Entry</referralSummary>
+ </firstVisit>
+ <lastVisit>
+
+
+ <daysAgo>0</daysAgo>
+ <referrerType>direct</referrerType>
+ <referralSummary>Direct Entry</referralSummary>
+ </lastVisit>
+ <visitsAggregated>2</visitsAggregated>
+
+
+ <lastVisits>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>3</idVisit>
+ <visitIp>156.5.3.2</visitIp>
+
+ <actionDetails>
+ <row>
+ <type>outlink</type>
+ <url>http://test.com</url>
+ <pageTitle />
+ <pageIdAction>6</pageIdAction>
+
+ <pageId>5</pageId>
+ <icon>plugins/Morpheus/images/link.gif</icon>
+
+ </row>
+ </actionDetails>
+ <goalConversions>0</goalConversions>
+ <siteCurrency>USD</siteCurrency>
+ <siteCurrencySymbol>$</siteCurrencySymbol>
+
+
+
+
+ <userId />
+ <visitorType>new</visitorType>
+ <visitorTypeIcon />
+ <visitConverted>0</visitConverted>
+ <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 />
+ <deviceType>Desktop</deviceType>
+ <deviceTypeIcon>plugins/DevicesDetection/images/screens/normal.gif</deviceTypeIcon>
+ <deviceBrand>Unknown</deviceBrand>
+ <deviceModel />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemName>Windows</operatingSystemName>
+ <operatingSystemIcon>plugins/DevicesDetection/images/os/WIN.gif</operatingSystemIcon>
+ <operatingSystemCode>WIN</operatingSystemCode>
+ <operatingSystemVersion>XP</operatingSystemVersion>
+ <browserFamily>Gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browser>Firefox 3.0</browser>
+ <browserName>Firefox</browserName>
+ <browserIcon>plugins/DevicesDetection/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.0</browserVersion>
+ <events>0</events>
+ <continent>Europe</continent>
+ <continentCode>eur</continentCode>
+ <country>France</country>
+ <countryCode>fr</countryCode>
+ <countryFlag>plugins/UserCountry/images/flags/fr.png</countryFlag>
+ <region />
+ <regionCode />
+ <city />
+ <location>France</location>
+ <latitude />
+ <longitude />
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <daysSinceLastVisit>0</daysSinceLastVisit>
+ <provider>Unknown</provider>
+ <providerName>Unknown</providerName>
+ <providerUrl />
+ <customVariables>
+ <row>
+ <customVariableName1>VisitorType</customVariableName1>
+ <customVariableValue1>LoggedOut</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName2>Othercustom value which should be truncated abcdefghijklmnopqrstuvwxyz</customVariableName2>
+ <customVariableValue2>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz</customVariableValue2>
+ </row>
+ </customVariables>
+ <resolution>1111x222</resolution>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+ <row>
+ <idSite>1</idSite>
+ <idVisit>2</idVisit>
+ <visitIp>156.5.3.2</visitIp>
+
+ <actionDetails>
+ <row>
+ <type>goal</type>
+ <goalName>triggered js</goalName>
+ <goalId>1</goalId>
+ <revenue>0</revenue>
+ <goalPageId />
+
+ <url>http://example.org/homepage</url>
+ <icon>plugins/Morpheus/images/goal.png</icon>
+
+ </row>
+ <row>
+ <type>action</type>
+ <url>http://example.org/homepage</url>
+ <pageTitle>Homepage</pageTitle>
+ <pageIdAction>2</pageIdAction>
+
+ <pageId>4</pageId>
+ <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>361</visitDuration>
+ <visitDurationPretty>6 min 1s</visitDurationPretty>
+ <searches>0</searches>
+ <actions>1</actions>
+ <referrerType>direct</referrerType>
+ <referrerTypeName>Direct Entry</referrerTypeName>
+ <referrerName />
+ <referrerKeyword />
+ <referrerKeywordPosition />
+ <referrerUrl />
+ <referrerSearchEngineUrl />
+ <referrerSearchEngineIcon />
+ <deviceType>Desktop</deviceType>
+ <deviceTypeIcon>plugins/DevicesDetection/images/screens/normal.gif</deviceTypeIcon>
+ <deviceBrand>Unknown</deviceBrand>
+ <deviceModel />
+ <operatingSystem>Windows XP</operatingSystem>
+ <operatingSystemName>Windows</operatingSystemName>
+ <operatingSystemIcon>plugins/DevicesDetection/images/os/WIN.gif</operatingSystemIcon>
+ <operatingSystemCode>WIN</operatingSystemCode>
+ <operatingSystemVersion>XP</operatingSystemVersion>
+ <browserFamily>Gecko</browserFamily>
+ <browserFamilyDescription>Gecko (Firefox)</browserFamilyDescription>
+ <browser>Firefox 3.0</browser>
+ <browserName>Firefox</browserName>
+ <browserIcon>plugins/DevicesDetection/images/browsers/FF.gif</browserIcon>
+ <browserCode>FF</browserCode>
+ <browserVersion>3.0</browserVersion>
+ <events>0</events>
+ <continent>Europe</continent>
+ <continentCode>eur</continentCode>
+ <country>France</country>
+ <countryCode>fr</countryCode>
+ <countryFlag>plugins/UserCountry/images/flags/fr.png</countryFlag>
+ <region />
+ <regionCode />
+ <city />
+ <location>France</location>
+ <latitude />
+ <longitude />
+ <visitLocalTime>12:34:06</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <daysSinceLastVisit>0</daysSinceLastVisit>
+ <provider>Unknown</provider>
+ <providerName>Unknown</providerName>
+ <providerUrl />
+ <customVariables>
+ <row>
+ <customVariableName1>VisitorType</customVariableName1>
+ <customVariableValue1>LoggedOut</customVariableValue1>
+ </row>
+ <row>
+ <customVariableName2>Othercustom value which should be truncated abcdefghijklmnopqrstuvwxyz</customVariableName2>
+ <customVariableValue2>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz</customVariableValue2>
+ </row>
+ </customVariables>
+ <resolution>1111x222</resolution>
+ <plugins>flash, java</plugins>
+ <pluginsIcons>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/flash.gif</pluginIcon>
+ <pluginName>flash</pluginName>
+ </row>
+ <row>
+ <pluginIcon>plugins/DevicePlugins/images/plugins/java.gif</pluginIcon>
+ <pluginName>java</pluginName>
+ </row>
+ </pluginsIcons>
+
+
+
+
+
+ </row>
+ </lastVisits>
+ <userId>0</userId>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Referrers.getCampaigns_range.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Referrers.getCampaigns_range.xml
new file mode 100644
index 0000000000..566315146e
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Referrers.getCampaigns_range.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>
+ <label>campaign name - yeah!</label>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>1000</revenue>
+ </row>
+ </goals>
+ <nb_conversions>1</nb_conversions>
+ <revenue>1000</revenue>
+ <nb_visits>0</nb_visits>
+ <segment>referrerType==campaign;referrerName==campaign+name+-+yeah%21</segment>
+ <subtable>
+ <row>
+ <label>campaign keyword - right...</label>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>1000</revenue>
+ </row>
+ </goals>
+ <nb_conversions>1</nb_conversions>
+ <revenue>1000</revenue>
+ <nb_visits>0</nb_visits>
+ </row>
+ </subtable>
+ </row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Referrers.getKeywords_range.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Referrers.getKeywords_range.xml
new file mode 100644
index 0000000000..418287bdef
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Referrers.getKeywords_range.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>
+ <label>this keyword should be ranked</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>3</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>364</sum_visit_length>
+ <bounce_count>0</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>referrerType==search;referrerKeyword==this+keyword+should+be+ranked</segment>
+ <subtable>
+ <row>
+ <label>Google</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>3</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>364</sum_visit_length>
+ <bounce_count>0</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>
+ </subtable>
+ </row>
+ <row>
+ <label>piwik</label>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>0</revenue>
+ </row>
+ <row idgoal='2'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>0</revenue>
+ </row>
+ </goals>
+ <nb_conversions>2</nb_conversions>
+ <revenue>0</revenue>
+ <nb_visits>0</nb_visits>
+ <segment>referrerType==search;referrerKeyword==piwik</segment>
+ </row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__VisitsSummary.get_range.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..4a5151e912
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>3</nb_visits>
+ <nb_actions>5</nb_actions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <bounce_count>2</bounce_count>
+ <sum_visit_length>725</sum_visit_length>
+ <max_actions>3</max_actions>
+ <bounce_rate>67%</bounce_rate>
+ <nb_actions_per_visit>1.7</nb_actions_per_visit>
+ <avg_time_on_site>242</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_twoVisitsWithCustomVariables__subtable__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_twoVisitsWithCustomVariables__subtable__API.getProcessedReport_day.xml
index 5712088ac8..87b6e82799 100644
--- a/tests/PHPUnit/System/expected/test_twoVisitsWithCustomVariables__subtable__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/System/expected/test_twoVisitsWithCustomVariables__subtable__API.getProcessedReport_day.xml
@@ -21,6 +21,10 @@
<nb_uniq_visitors>The number of unduplicated visitors coming to your website. Every user is only counted once, even if he visits the website multiple times a day.</nb_uniq_visitors>
<nb_actions>The number of actions performed by your visitors. Actions can be page views, internal site searches, downloads or outlinks.</nb_actions>
<nb_users>The number of users logged in your website. It is the number of unique active users that have a User ID set (via the Tracking code function 'setUserId').</nb_users>
+ <nb_actions_per_visit>The average number of actions (page views, site searches, downloads or outlinks) that were performed during the visits.</nb_actions_per_visit>
+ <avg_time_on_site>The average duration of a visit.</avg_time_on_site>
+ <bounce_rate>The percentage of visits that only had a single pageview. This means, that the visitor left the website directly from the entrance page.</bounce_rate>
+ <conversion_rate>The percentage of visits that triggered a goal conversion.</conversion_rate>
</metricsDocumentation>
<processedMetrics>
<nb_actions_per_visit>Actions per Visit</nb_actions_per_visit>
diff --git a/tests/PHPUnit/Unit/Archive/DataCollectionTest.php b/tests/PHPUnit/Unit/Archive/DataCollectionTest.php
new file mode 100644
index 0000000000..1aebd06f2b
--- /dev/null
+++ b/tests/PHPUnit/Unit/Archive/DataCollectionTest.php
@@ -0,0 +1,284 @@
+<?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\Unit;
+
+use Piwik\Archive\DataCollection;
+use Piwik\Archive\DataTableFactory;
+use Piwik\Period;
+use Piwik\Tests\Framework\TestCase\UnitTestCase;
+
+/**
+ * @group DataCollectionTest
+ * @group DataCollection
+ * @group Archive
+ * @group Core
+ */
+class DataCollectionTest extends UnitTestCase
+{
+ private $site1 = 1;
+ private $site2 = 2;
+ private $date1 = '2012-12-12,2012-12-12';
+ private $date2 = '2012-12-13,2012-12-13';
+
+ public function setUp()
+ {
+ parent::setUp();
+
+ }
+
+ private function createCollection($onlyOnePeriod = false, $onlyOneSite = false)
+ {
+ $periods = array(
+ Period\Factory::build('day', '2012-12-12'),
+ Period\Factory::build('day', '2012-12-13'),
+ );
+ $dataType = 'numeric';
+ $siteIds = array($this->site1, $this->site2);
+ $dataNames = array('Name1', 'Name2');
+ $defaultRow = array(
+ 'default' => 1
+ );
+
+ if ($onlyOnePeriod) {
+ $periods = array($periods[0]);
+ }
+
+ if ($onlyOneSite) {
+ $siteIds = array($siteIds[0]);
+ }
+
+ return new DataCollection($dataNames, $dataType, $siteIds, $periods, $defaultRow);
+ }
+
+ public function test_getIndexedArray_numeric_noResultIndices_noData()
+ {
+ $collection = $this->createCollection($onlyOnePeriod = true, $onlyOneSite = true);
+ $this->assertEquals(array(), $collection->getIndexedArray($resultIndices = array()));
+ }
+
+ public function test_getIndexedArray_numeric_noResultIndices_withData()
+ {
+ $collection = $this->createCollection($onlyOnePeriod = true, $onlyOneSite = true);
+ $collection->set($this->site1, '2012-12-12,2012-12-12', 'nb_visits', '5');
+ $collection->set($this->site1, '2012-12-12,2012-12-12', 'nb_unique_visits', '10');
+
+ $expected = array(
+ 'default' => 1,
+ 'nb_visits' => '5',
+ 'nb_unique_visits' => '10',
+ );
+
+ $this->assertEquals($expected, $collection->getIndexedArray($resultIndices = array()));
+ }
+
+ public function test_getIndexedArray_numeric_noResultIndices_withDefaultOverwritten()
+ {
+ $collection = $this->createCollection($onlyOnePeriod = true, $onlyOneSite = true);
+ $collection->set($this->site1, '2012-12-12,2012-12-12', 'nb_visits', '5');
+ $collection->set($this->site1, '2012-12-12,2012-12-12', 'default', '10');
+
+ $expected = array(
+ 'default' => '10',
+ 'nb_visits' => '5'
+ );
+
+ $this->assertEquals($expected, $collection->getIndexedArray($resultIndices = array()));
+ }
+
+ private function getSiteResultIndices()
+ {
+ return array(DataTableFactory::TABLE_METADATA_SITE_INDEX => 'idSite');
+ }
+
+ public function test_getIndexedArray_numeric_withSiteResultIndices_noData()
+ {
+ $collection = $this->createCollection();
+
+ $this->assertEquals(array(
+ 1 => array(),
+ 2 => array()
+ ), $collection->getIndexedArray($this->getSiteResultIndices()));
+ }
+
+ public function test_getIndexedArray_numeric_withSiteResultIndices_withData()
+ {
+ $collection = $this->createCollection();
+ $collection->set($this->site1, '2012-12-12,2012-12-12', 'nb_visits', '5');
+ $collection->set($this->site1, '2012-12-12,2012-12-12', 'nb_unique_visits', '10');
+
+ $expected = array(
+ 1 => array(
+ 'default' => 1,
+ 'nb_visits' => '5',
+ 'nb_unique_visits' => '10',
+ ),
+ 2 => array(
+ )
+ );
+
+ $this->assertEquals($expected, $collection->getIndexedArray($this->getSiteResultIndices()));
+ }
+
+ public function test_getIndexedArray_numeric_withSiteResultIndices_withDefaultOverwritten()
+ {
+ $collection = $this->createCollection();
+ $collection->set($this->site1, '2012-12-12,2012-12-12', 'nb_visits', '5');
+ $collection->set($this->site1, '2012-12-12,2012-12-12', 'default', '10');
+ $collection->set($this->site2, '2012-12-12,2012-12-12', 'nb_visits', '15');
+
+ $expected = array(
+ 1 => array(
+ 'default' => '10',
+ 'nb_visits' => '5'
+ ),
+ 2 => array(
+ 'default' => 1,
+ 'nb_visits' => '15'
+ )
+ );
+
+ $this->assertEquals($expected, $collection->getIndexedArray($this->getSiteResultIndices()));
+ }
+
+ private function getPeriodResultIndices()
+ {
+ return array(DataTableFactory::TABLE_METADATA_PERIOD_INDEX => 'date');
+ }
+
+ public function test_getIndexedArray_numeric_withPeriodResultIndices_noData()
+ {
+ $collection = $this->createCollection($onlyOnePeriod = false, $onlyOneSite = true);
+
+ $this->assertEquals(array(
+ $this->date1 => array(),
+ $this->date2 => array()
+ ), $collection->getIndexedArray($this->getPeriodResultIndices()));
+ }
+
+ public function test_getIndexedArray_numeric_withPeriodResultIndices_withData()
+ {
+ $collection = $this->createCollection($onlyOnePeriod = false, $onlyOneSite = true);
+ $collection->set($this->site1, $this->date1, 'nb_visits', '5');
+ $collection->set($this->site1, $this->date1, 'nb_unique_visits', '10');
+
+ $expected = array(
+ $this->date1 => array(
+ 'default' => 1,
+ 'nb_visits' => '5',
+ 'nb_unique_visits' => '10',
+ ),
+ $this->date2 => array(
+ )
+ );
+
+ $this->assertEquals($expected, $collection->getIndexedArray($this->getPeriodResultIndices()));
+ }
+
+ public function test_getIndexedArray_numeric_withPeriodResultIndices_withDefaultOverwritten()
+ {
+ $collection = $this->createCollection($onlyOnePeriod = false, $onlyOneSite = true);
+ $collection->set($this->site1, $this->date1, 'nb_visits', '5');
+ $collection->set($this->site1, $this->date1, 'default', '10');
+ $collection->set($this->site1, $this->date2, 'nb_visits', '15');
+
+ $expected = array(
+ $this->date1 => array(
+ 'default' => '10',
+ 'nb_visits' => '5'
+ ),
+ $this->date2 => array(
+ 'default' => 1,
+ 'nb_visits' => '15'
+ )
+ );
+
+ $this->assertEquals($expected, $collection->getIndexedArray($this->getPeriodResultIndices()));
+ }
+
+
+ private function getPeriodAndSiteResultIndices()
+ {
+ return array_merge($this->getSiteResultIndices(), $this->getPeriodResultIndices());
+ }
+
+ public function test_getIndexedArray_numeric_withPeriodAndSiteResultIndices_noData()
+ {
+ $collection = $this->createCollection();
+
+ $expected = array(
+ $this->site1 => array(
+ $this->date1 => array(),
+ $this->date2 => array()
+ ),
+ $this->site2 => array(
+ $this->date1 => array(),
+ $this->date2 => array()
+ )
+ );
+
+ $this->assertEquals($expected, $collection->getIndexedArray($this->getPeriodAndSiteResultIndices()));
+ }
+
+ public function test_getIndexedArray_numeric_withPeriodAndSiteResultIndices_withData()
+ {
+ $collection = $this->createCollection();
+ $collection->set($this->site1, $this->date1, 'nb_visits', '5');
+ $collection->set($this->site1, $this->date1, 'nb_unique_visits', '10');
+ $collection->set($this->site2, $this->date1, 'nb_unique_visits', '21');
+ $collection->set($this->site2, $this->date2, 'nb_unique_visits', '22');
+
+ $expected = array(
+ $this->site1 => array(
+ $this->date1 => array(
+ 'default' => 1,
+ 'nb_visits' => '5',
+ 'nb_unique_visits' => '10',
+ ),
+ $this->date2 => array()
+ ),
+ $this->site2 => array(
+ $this->date1 => array(
+ 'default' => 1,
+ 'nb_unique_visits' => '21',
+ ),
+ $this->date2 => array(
+ 'default' => 1,
+ 'nb_unique_visits' => '22',
+ )
+ )
+ );
+
+ $this->assertEquals($expected, $collection->getIndexedArray($this->getPeriodAndSiteResultIndices()));
+ }
+
+ public function test_getIndexedArray_numeric_withPeriodAndSiteResultIndices_withDefaultOverwritten()
+ {
+ $collection = $this->createCollection();
+ $collection->set($this->site1, $this->date1, 'nb_visits', '5');
+ $collection->set($this->site1, $this->date1, 'default', '10');
+ $collection->set($this->site2, $this->date1, 'default', '21');
+
+ $expected = array(
+ $this->site1 => array(
+ $this->date1 => array(
+ 'default' => 10,
+ 'nb_visits' => '5',
+ ),
+ $this->date2 => array()
+ ),
+ $this->site2 => array(
+ $this->date1 => array('default' => 21),
+ $this->date2 => array()
+ )
+ );
+
+ $this->assertEquals($expected, $collection->getIndexedArray($this->getPeriodAndSiteResultIndices()));
+ }
+
+} \ No newline at end of file
diff --git a/tests/UI/expected-ui-screenshots b/tests/UI/expected-ui-screenshots
-Subproject e1c7b5f9ade43f751883541898b82dc09ca830e
+Subproject a5b994034ce10e529d9bb72d2b49060925867c6
diff --git a/tests/UI/screenshot-diffs/singlediff.html b/tests/UI/screenshot-diffs/singlediff.html
index b80c764957..32fdc9c083 100644
--- a/tests/UI/screenshot-diffs/singlediff.html
+++ b/tests/UI/screenshot-diffs/singlediff.html
@@ -10,7 +10,7 @@
<script src='diffgenerator.js'></script>
<script src='comparator.js'></script>
</head>
-<body>
+<body style="background: #E8E8E8">
<span class="info"></span>
<br />
diff --git a/tests/UI/specs/Insights_spec.js b/tests/UI/specs/Insights_spec.js
new file mode 100644
index 0000000000..d7773f5887
--- /dev/null
+++ b/tests/UI/specs/Insights_spec.js
@@ -0,0 +1,21 @@
+/*!
+ * Piwik - free/libre analytics platform
+ *
+ * Insights screenshot tests.
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+describe("Insights", function () {
+ this.timeout(0);
+
+ var url = "?module=Widgetize&action=iframe&idSite=1&period=year&date=2012-08-09&moduleToWidgetize=Actions&actionToWidgetize=getPageUrls&isFooterExpandedInDashboard=1&viewDataTable=insightsVisualization";
+
+ it("should load correctly", function (done) {
+ expect.screenshot('initial').to.be.capture(function (page) {
+ page.load(url);
+ }, done);
+ });
+
+});
diff --git a/tests/UI/specs/MultiSites_spec.js b/tests/UI/specs/MultiSites_spec.js
new file mode 100644
index 0000000000..7f93eae231
--- /dev/null
+++ b/tests/UI/specs/MultiSites_spec.js
@@ -0,0 +1,35 @@
+/*!
+ * Piwik - free/libre analytics platform
+ *
+ * Screenshot integration tests.
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+describe("MultiSitesTest", function () {
+ this.timeout(0);
+
+ var generalParams = 'idSite=1&period=year&date=2012-08-09';
+ var selector = '.pageWrap,.expandDataTableFooterDrawer';
+
+ it('should load the all websites dashboard correctly', function (done) {
+ expect.screenshot('all_websites').to.be.captureSelector(selector, function (page) {
+ page.load("?" + generalParams + "&module=MultiSites&action=index");
+ }, done);
+ });
+
+ it('should search correctly', function (done) {
+ expect.screenshot('all_websites_search').to.be.captureSelector(selector, function (page) {
+ page.sendKeys('.site_search input', 'Site');
+ page.click('.site_search .search_ico');
+ }, done);
+ });
+
+ it('should toggle sort order when click on current metric', function (done) {
+ expect.screenshot('all_websites_changed_sort_order').to.be.captureSelector(selector, function (page) {
+ page.click('#visits .heading');
+ }, done);
+ });
+
+}); \ No newline at end of file
diff --git a/tests/UI/specs/SegmentSelectorEditor_spec.js b/tests/UI/specs/SegmentSelectorEditor_spec.js
index 7552977813..3a33712adf 100644
--- a/tests/UI/specs/SegmentSelectorEditor_spec.js
+++ b/tests/UI/specs/SegmentSelectorEditor_spec.js
@@ -168,10 +168,14 @@ describe("SegmentSelectorEditorTest", function () {
}, done);
});
- it("should correctly remove the segment when the delete link is clicked", function (done) {
- expect.screenshot('deleted').to.be.captureSelector(selectorsToCapture, function (page) {
- page.click('.segmentList li[data-idsegment=4] .editSegment');
+ it("should correctly show delete dialog when the delete link is clicked", function (done) {
+ expect.screenshot('deleted_dialog').to.be.captureSelector('.ui-dialog', function (page) {
page.click('.segmentEditorPanel a.delete');
+ }, done);
+ });
+
+ it("should correctly remove the segment when the delete dialog is confirmed", function (done) {
+ expect.screenshot('deleted').to.be.captureSelector(selectorsToCapture + ',.ui-dialog', function (page) {
page.click('.ui-dialog button>span:contains(Yes):visible');
page.click('.segmentationContainer');
diff --git a/tests/UI/specs/SitesManager_spec.js b/tests/UI/specs/SitesManager_spec.js
index cfb3af94e3..6e48e7656a 100644
--- a/tests/UI/specs/SitesManager_spec.js
+++ b/tests/UI/specs/SitesManager_spec.js
@@ -31,7 +31,7 @@ describe("SitesManager", function () {
function searchForText(page, textToAppendToSearchField)
{
page.sendKeys(".SitesManager .search:first input", textToAppendToSearchField);
- page.click('.SitesManager .search:first .submit');
+ page.click('.SitesManager .search:first img');
page.wait(150);
}
diff --git a/tests/UI/specs/UIIntegration_spec.js b/tests/UI/specs/UIIntegration_spec.js
index af0846dbf2..ad497ad849 100644
--- a/tests/UI/specs/UIIntegration_spec.js
+++ b/tests/UI/specs/UIIntegration_spec.js
@@ -514,12 +514,6 @@ describe("UIIntegrationTest", function () { // TODO: Rename to Piwik?
});
// top bar pages
- it('should load the all websites dashboard correctly', function (done) {
- expect.screenshot('all_websites').to.be.captureSelector('.pageWrap,.expandDataTableFooterDrawer', function (page) {
- page.load("?" + generalParams + "&module=MultiSites&action=index");
- }, done);
- });
-
it('should load the widgets listing page correctly', function (done) {
expect.screenshot('widgets_listing').to.be.captureSelector('#content', function (page) {
page.load("?" + generalParams + "&module=Widgetize&action=index");
diff --git a/tests/javascript/index.php b/tests/javascript/index.php
index a2b964b992..06fd68fbd4 100644
--- a/tests/javascript/index.php
+++ b/tests/javascript/index.php
@@ -375,6 +375,7 @@ function setupContentTrackingFixture(name, targetNode) {
<li><a id="click6" href="example.pdf" target="iframe6" class="clicktest">download: implicit (file extension)</a></li>
<li><a id="click7" href="example.word" target="iframe7" class="piwik_download clicktest">download: explicit</a></li>
<li><a id="click8" href="example.exe" target="iframe8" class="clicktest">no click handler</a></li>
+ <li><a id="click9" href="example.html" target="iframe7" download class="clicktest">download: explicit (attribute)</a></li>
</ul>
<div id="clickDiv"></div>
</div>
@@ -573,7 +574,7 @@ function PiwikTest() {
propEqual(actual, [_e('click7')], "findNodesHavingCssClass, find matching within div different class");
actual = query.findNodesHavingCssClass(_e('other'), 'clicktest');
- propEqual(actual, [_e('click1'), _e('click2'), _e('click3'), _e('click4'), _e('click5'), _e('click6'), _e('click7'), _e('click8')], "findNodesHavingCssClass, find many matching within div");
+ propEqual(actual, [_e('click1'), _e('click2'), _e('click3'), _e('click4'), _e('click5'), _e('click6'), _e('click7'), _e('click8'), _e('click9')], "findNodesHavingCssClass, find many matching within div");
actual = query.findNodesHavingCssClass(_e('click7'), 'piwik_download');
propEqual(actual, [], "findNodesHavingCssClass, should not find if passed node has class itself");
@@ -702,7 +703,7 @@ function PiwikTest() {
ok(actual.length > 11, "findNodesHavingAttribute, should find many elements within body");
actual = query.findNodesHavingAttribute(_e('other'), 'href');
- propEqual(actual, [_e('click1'), _e('click2'), _e('click3'), _e('click4'), _e('click5'), _e('click6'), _e('click7'), _e('click8')], "findNodesHavingAttribute, should find many elements within node");
+ propEqual(actual, [_e('click1'), _e('click2'), _e('click3'), _e('click4'), _e('click5'), _e('click6'), _e('click7'), _e('click8'), _e('click9')], "findNodesHavingAttribute, should find many elements within node");
actual = query.findNodesHavingAttribute(_e('other'), 'anyAttribute');
propEqual(actual, [], "findNodesHavingAttribute, should not find any such attribute within div");
@@ -805,7 +806,7 @@ function PiwikTest() {
ok(-1 !== indexOfArray(actual, _e('click1')), 'find, random check to make sure it contains a link');
actual = query.find('.clicktest');
- ok(actual.length === 8, "find, should find many elements by class");
+ ok(actual.length === 9, "find, should find many elements by class");
ok(-1 !== indexOfArray(actual, _e('click1')), 'find, random check to make sure it contains a link');
@@ -2296,7 +2297,7 @@ function PiwikTest() {
});
test("Tracker setDownloadExtensions(), addDownloadExtensions(), setDownloadClasses(), setLinkClasses(), and getLinkType()", function() {
- expect(66);
+ expect(72);
var tracker = Piwik.getTracker();
@@ -2304,50 +2305,55 @@ function PiwikTest() {
equal( typeof tracker.hook.test._getLinkType, 'function', 'getLinkType' );
- equal( tracker.hook.test._getLinkType('something', 'goofy.html', false), 'link', messagePrefix + 'implicit link' );
- equal( tracker.hook.test._getLinkType('something', 'goofy.pdf', false), 'download', messagePrefix + 'external PDF files are downloads' );
- equal( tracker.hook.test._getLinkType('something', 'goofy.pdf', true), 'download', messagePrefix + 'local PDF are downloads' );
- equal( tracker.hook.test._getLinkType('something', 'goofy-with-dash.pdf', true), 'download', messagePrefix + 'local PDF are downloads' );
+ equal( tracker.hook.test._getLinkType('something', 'goofy.html', false, false), 'link', messagePrefix + 'implicit link' );
+ equal( tracker.hook.test._getLinkType('something', 'goofy.pdf', false, false), 'download', messagePrefix + 'external PDF files are downloads' );
+ equal( tracker.hook.test._getLinkType('something', 'goofy.pdf', true, false), 'download', messagePrefix + 'local PDF are downloads' );
+ equal( tracker.hook.test._getLinkType('something', 'goofy-with-dash.pdf', true, false), 'download', messagePrefix + 'local PDF are downloads' );
- equal( tracker.hook.test._getLinkType('piwik_download', 'piwiktest.ext', true), 'download', messagePrefix + 'piwik_download' );
- equal( tracker.hook.test._getLinkType('abc piwik_download xyz', 'piwiktest.ext', true), 'download', messagePrefix + 'abc piwik_download xyz' );
- equal( tracker.hook.test._getLinkType('piwik_link', 'piwiktest.asp', true), 'link', messagePrefix+ 'piwik_link' );
- equal( tracker.hook.test._getLinkType('abc piwik_link xyz', 'piwiktest.asp', true), 'link', messagePrefix + 'abc piwik_link xyz' );
- equal( tracker.hook.test._getLinkType('something', 'piwiktest.txt', true), 'download', messagePrefix + 'download extension' );
- equal( tracker.hook.test._getLinkType('something', 'piwiktest.ext', true), 0, messagePrefix + '[1] link (default)' );
+ equal( tracker.hook.test._getLinkType('piwik_download', 'piwiktest.ext', true, false), 'download', messagePrefix + 'piwik_download' );
+ equal( tracker.hook.test._getLinkType('abc piwik_download xyz', 'piwiktest.ext', true, false), 'download', messagePrefix + 'abc piwik_download xyz' );
+ equal( tracker.hook.test._getLinkType('piwik_link', 'piwiktest.asp', true, false), 'link', messagePrefix+ 'piwik_link' );
+ equal( tracker.hook.test._getLinkType('abc piwik_link xyz', 'piwiktest.asp', true, false), 'link', messagePrefix + 'abc piwik_link xyz' );
+ equal( tracker.hook.test._getLinkType('something', 'piwiktest.txt', true, false), 'download', messagePrefix + 'download extension' );
+ equal( tracker.hook.test._getLinkType('something', 'piwiktest.ext', true, false), 0, messagePrefix + '[1] link (default)' );
- equal( tracker.hook.test._getLinkType('something', 'file.zip', true), 'download', messagePrefix + 'download file.zip' );
- equal( tracker.hook.test._getLinkType('something', 'index.php?name=file.zip#anchor', true), 'download', messagePrefix + 'download file.zip (anchor)' );
- equal( tracker.hook.test._getLinkType('something', 'index.php?name=file.zip&redirect=yes', true), 'download', messagePrefix + 'download file.zip (is param)' );
- equal( tracker.hook.test._getLinkType('something', 'file.zip?mirror=true', true), 'download', messagePrefix + 'download file.zip (with param)' );
+ equal( tracker.hook.test._getLinkType('something', 'file.zip', true, false), 'download', messagePrefix + 'download file.zip' );
+ equal( tracker.hook.test._getLinkType('something', 'index.php?name=file.zip#anchor', true, false), 'download', messagePrefix + 'download file.zip (anchor)' );
+ equal( tracker.hook.test._getLinkType('something', 'index.php?name=file.zip&redirect=yes', true, false), 'download', messagePrefix + 'download file.zip (is param)' );
+ equal( tracker.hook.test._getLinkType('something', 'file.zip?mirror=true', true, false), 'download', messagePrefix + 'download file.zip (with param)' );
tracker.setDownloadExtensions('pk');
- equal( tracker.hook.test._getLinkType('something', 'piwiktest.pk', true), 'download', messagePrefix + '[1] .pk == download extension' );
- equal( tracker.hook.test._getLinkType('something', 'piwiktest.txt', true), 0, messagePrefix + '.txt =! download extension' );
+ equal( tracker.hook.test._getLinkType('something', 'piwiktest.pk', true, false), 'download', messagePrefix + '[1] .pk == download extension' );
+ equal( tracker.hook.test._getLinkType('something', 'piwiktest.txt', true, false), 0, messagePrefix + '.txt =! download extension' );
tracker.addDownloadExtensions('xyz');
tracker.addDownloadExtensions(['abc','zz']);
- equal( tracker.hook.test._getLinkType('something', 'piwiktest.pk', true), 'download', messagePrefix + '[2] .pk == download extension' );
- equal( tracker.hook.test._getLinkType('something', 'piwiktest.xyz', true), 'download', messagePrefix + '.xyz == download extension' );
- equal( tracker.hook.test._getLinkType('something', 'piwiktest.abc', true), 'download', messagePrefix + '.abc == download extension' );
- equal( tracker.hook.test._getLinkType('something', 'piwiktest.zz', true), 'download', messagePrefix + '.zz == download extension' );
+ equal( tracker.hook.test._getLinkType('something', 'piwiktest.pk', true, false), 'download', messagePrefix + '[2] .pk == download extension' );
+ equal( tracker.hook.test._getLinkType('something', 'piwiktest.xyz', true, false), 'download', messagePrefix + '.xyz == download extension' );
+ equal( tracker.hook.test._getLinkType('something', 'piwiktest.abc', true, false), 'download', messagePrefix + '.abc == download extension' );
+ equal( tracker.hook.test._getLinkType('something', 'piwiktest.zz', true, false), 'download', messagePrefix + '.zz == download extension' );
tracker.removeDownloadExtensions(['xyz','pk']);
tracker.removeDownloadExtensions('zz');
- equal( tracker.hook.test._getLinkType('something', 'piwiktest.pk', true), 0, messagePrefix + '[2] .pk =! download extension' );
- equal( tracker.hook.test._getLinkType('something', 'piwiktest.xyz', true), 0, messagePrefix + '.xyz =! download extension' );
- equal( tracker.hook.test._getLinkType('something', 'piwiktest.abc', true), 'download', messagePrefix + '.abc == download extension' );
- equal( tracker.hook.test._getLinkType('something', 'piwiktest.zz', true), 0, messagePrefix + '.zz =! download extension' );
+ equal( tracker.hook.test._getLinkType('something', 'piwiktest.pk', true, false), 0, messagePrefix + '[2] .pk =! download extension' );
+ equal( tracker.hook.test._getLinkType('something', 'piwiktest.xyz', true, false), 0, messagePrefix + '.xyz =! download extension' );
+ equal( tracker.hook.test._getLinkType('something', 'piwiktest.abc', true, false), 'download', messagePrefix + '.abc == download extension' );
+ equal( tracker.hook.test._getLinkType('something', 'piwiktest.zz', true, false), 0, messagePrefix + '.zz =! download extension' );
tracker.setDownloadClasses(['a', 'b']);
- equal( tracker.hook.test._getLinkType('abc piwik_download', 'piwiktest.ext', true), 'download', messagePrefix + 'download (default)' );
- equal( tracker.hook.test._getLinkType('abc a', 'piwiktest.ext', true), 'download', messagePrefix + 'download (a)' );
- equal( tracker.hook.test._getLinkType('b abc', 'piwiktest.ext', true), 'download', messagePrefix + 'download (b)' );
+ equal( tracker.hook.test._getLinkType('abc piwik_download', 'piwiktest.ext', true, false), 'download', messagePrefix + 'download (default)' );
+ equal( tracker.hook.test._getLinkType('abc a', 'piwiktest.ext', true, false), 'download', messagePrefix + 'download (a)' );
+ equal( tracker.hook.test._getLinkType('b abc', 'piwiktest.ext', true, false), 'download', messagePrefix + 'download (b)' );
tracker.setLinkClasses(['c', 'd']);
- equal( tracker.hook.test._getLinkType('abc piwik_link', 'piwiktest.ext', true), 'link', messagePrefix + 'link (default)' );
- equal( tracker.hook.test._getLinkType('abc c', 'piwiktest.ext', true), 'link', messagePrefix + 'link (c)' );
- equal( tracker.hook.test._getLinkType('d abc', 'piwiktest.ext', true), 'link', messagePrefix + 'link (d)' );
+ equal( tracker.hook.test._getLinkType('abc piwik_link', 'piwiktest.ext', true, false), 'link', messagePrefix + 'link (default)' );
+ equal( tracker.hook.test._getLinkType('abc c', 'piwiktest.ext', true, false), 'link', messagePrefix + 'link (c)' );
+ equal( tracker.hook.test._getLinkType('d abc', 'piwiktest.ext', true, false), 'link', messagePrefix + 'link (d)' );
+
+ // links containing a download attribute are always downloads
+ equal( tracker.hook.test._getLinkType('test', 'index.html', false, true), 'download', 'download attribute' );
+ equal( tracker.hook.test._getLinkType('piwik_link', 'index.html', true, true), 'link', messagePrefix + ' download attribute, but link class' );
+ equal( tracker.hook.test._getLinkType('piwik_download', 'test.pdf', true, true), 'download', messagePrefix + ' download attribute' );
}
var trackerUrl = tracker.getTrackerUrl();
@@ -2367,9 +2373,9 @@ function PiwikTest() {
runTests('with tracker url, ');
- equal( tracker.hook.test._getLinkType('something', 'piwik.php', true), 0, 'matches tracker url and should never return any tracker Url' );
- equal( tracker.hook.test._getLinkType('something', 'piwik.php?redirecturl=http://example.com/test.pdf', true), 0, 'should not match download as is config tracker url' );
- equal( tracker.hook.test._getLinkType('something', 'piwik.php?redirecturl=http://example.com/', true), 0, 'should not match link as is config tracker url' );
+ equal( tracker.hook.test._getLinkType('something', 'piwik.php', true, false), 0, 'matches tracker url and should never return any tracker Url' );
+ equal( tracker.hook.test._getLinkType('something', 'piwik.php?redirecturl=http://example.com/test.pdf', true, false), 0, 'should not match download as is config tracker url' );
+ equal( tracker.hook.test._getLinkType('something', 'piwik.php?redirecturl=http://example.com/', true, false), 0, 'should not match link as is config tracker url' );
tracker.setTrackerUrl(trackerUrl);
});
@@ -2801,13 +2807,13 @@ if ($sqlite) {
var clickDiv = _e("clickDiv"),
anchor = document.createElement("a");
- anchor.id = "click9";
+ anchor.id = "click10";
anchor.href = "http://example.us";
clickDiv.innerHTML = "";
clickDiv.appendChild(anchor);
tracker.addListener(anchor);
tracker.hook.test._addEventListener(anchor, "click", stopEvent);
- triggerEvent(_e('click9'), 'click');
+ triggerEvent(_e('click10'), 'click');
var visitorId1, visitorId2;