From 2c4e84fc5d66d18d9f8648c937e0d30349248807 Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Tue, 8 Jul 2025 17:10:51 +0700 Subject: [PATCH 001/344] [remote-config] Enable app version semver comparison --- plugins/remote-config/api/parts/rc.js | 33 +++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/plugins/remote-config/api/parts/rc.js b/plugins/remote-config/api/parts/rc.js index 5c04137ea9a..65ec7eb11a6 100644 --- a/plugins/remote-config/api/parts/rc.js +++ b/plugins/remote-config/api/parts/rc.js @@ -2,6 +2,7 @@ * Fetching and processing data for remote config * @module plugins/remote-config/api/parts/data/rc */ +const semver = require('semver'); var prng = require('../../../../api/utils/random-sfc32.js'); var globalSeed = "Countly_is_awesome"; @@ -38,7 +39,16 @@ remoteConfig.processFilter = function(user, query) { } if (parts[0] !== "chr") { - if (typeof (value) !== "undefined") { + if (prop === 'up.av') { + if ('av' in user) { + hasValue = true; + queryStatus = queryStatus && processAppVersionValues(user.av, query, prop); + } + else { + hasValue = false; + } + } + else if (typeof (value) !== "undefined") { hasValue = true; queryStatus = queryStatus && processPropertyValues(value, query, prop); } @@ -111,6 +121,25 @@ function processPropertyValues(value, query, prop) { return status; } +/** + * Function to process query property value + * @param {Object} inpUserAv - user app version + * @param {Object} query - filter + * @param {String} prop - query property + * @returns {Boolean} property value status + */ +function processAppVersionValues(inpUserAv, query, prop) { + const userAv = inpUserAv.replace(/:/g, '.'); + const filterType = Object.keys(query[prop])[0]; + const targetAv = query[prop] && query[prop][filterType] && query[prop][filterType].replace(/:/g, '.'); + + if (!semver.valid(userAv) || !semver.valid(targetAv)) { + return false; + } + + return semver[filterType.slice(1)](userAv, targetAv); +} + /** * Function to process query cohort value * @param {Object} user - user data @@ -162,4 +191,4 @@ function processCohortValues(user, query) { return status; } -module.exports = remoteConfig; \ No newline at end of file +module.exports = remoteConfig; From 7fb8cd3ed91758356aea16bde5c4fac3928c40d7 Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Tue, 8 Jul 2025 17:10:58 +0700 Subject: [PATCH 002/344] [remote-config] Add app version comparison test --- .../tests/fetch_remote_config.js | 40 ++++++++++++++++++- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/plugins/remote-config/tests/fetch_remote_config.js b/plugins/remote-config/tests/fetch_remote_config.js index a4bd77239c4..18e7592536f 100644 --- a/plugins/remote-config/tests/fetch_remote_config.js +++ b/plugins/remote-config/tests/fetch_remote_config.js @@ -188,7 +188,7 @@ describe('Fetch remote config', () => { .expect('Content-Type', /json/); }); - it('Should match targetted user', () => { + it('Should match targetted user (device id)', () => { const targettedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', uid: '13', @@ -199,7 +199,7 @@ describe('Fetch remote config', () => { should(remoteConfig.processFilter(targettedUser, query)).equal(true); }); - it('Should match targetted user', () => { + it('Should match targetted user (country)', () => { const targettedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', uid: '13', @@ -211,6 +211,42 @@ describe('Fetch remote config', () => { should(remoteConfig.processFilter(targettedUser, query)).equal(true); }); + it('Should match targetted user (app version)', () => { + const targettedUser = { + _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', + uid: '13', + did: 'targetted_user', + av: '1:0:0', + }; + const queryGt = { 'up.av': { $gt: '0:0:0' } }; + const queryGte = { 'up.av': { $gte: '1:0:0' } }; + const queryLt = { 'up.av': { $lt: '2:0:0' } }; + const queryLte = { 'up.av': { $lte: '1:0:0' } }; + + should(remoteConfig.processFilter(targettedUser, queryGt)).equal(true); + should(remoteConfig.processFilter(targettedUser, queryGte)).equal(true); + should(remoteConfig.processFilter(targettedUser, queryLt)).equal(true); + should(remoteConfig.processFilter(targettedUser, queryLte)).equal(true); + }); + + it('Should not match non targetted user (app version)', () => { + const nonTargettedUser = { + _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', + uid: '13', + did: 'targetted_user', + av: '1:0:0', + }; + const queryGt = { 'up.av': { $gt: '1:0:0' } }; + const queryGte = { 'up.av': { $gte: '2:0:0' } }; + const queryLt = { 'up.av': { $lt: '1:0:0' } }; + const queryLte = { 'up.av': { $lte: '0:0:0' } }; + + should(remoteConfig.processFilter(nonTargettedUser, queryGt)).equal(false); + should(remoteConfig.processFilter(nonTargettedUser, queryGte)).equal(false); + should(remoteConfig.processFilter(nonTargettedUser, queryLt)).equal(false); + should(remoteConfig.processFilter(nonTargettedUser, queryLte)).equal(false); + }); + it('Should not match non targetted user', () => { const nonTargettedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', From b40be354f3d55fed05ed581e31e5bfadf14f4abd Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Tue, 8 Jul 2025 17:11:04 +0700 Subject: [PATCH 003/344] [remote-config] Update query matcher to enable complex conditions --- plugins/remote-config/api/parts/rc.js | 113 +++++++-------- .../tests/fetch_remote_config.js | 129 +++++++++++++++++- 2 files changed, 182 insertions(+), 60 deletions(-) diff --git a/plugins/remote-config/api/parts/rc.js b/plugins/remote-config/api/parts/rc.js index 65ec7eb11a6..04763156c1c 100644 --- a/plugins/remote-config/api/parts/rc.js +++ b/plugins/remote-config/api/parts/rc.js @@ -10,77 +10,79 @@ var globalSeed = "Countly_is_awesome"; var remoteConfig = {}; /** - * Function to check if the given query would match the given user - * @param {Object} user - user - * @param {Object} query - query + * Function to check if the given query matches the given user + * @param {Object} inpUser - user object + * @param {Object} inpQuery - condition query * @returns {Boolean} true if the query matches the user */ -remoteConfig.processFilter = function(user, query) { - var queryStatus = false, isCohort = false, hasValue = false; - - if (Object.keys(query).length) { - queryStatus = true; - - for (var prop in query) { - var parts = prop.split("."); - var value; - - if (parts[0] === "up" || parts.length === 1) { - var p = parts[0]; - if (p === "up") { - p = parts[1]; - } - if (user[p]) { - value = user[p]; - } +remoteConfig.processFilter = function(inpUser, inpQuery) { + /** + * Inner function of processFilter for recursion + * @param {Object} user - user object + * @param {Object} query - condition query + * @returns {Boolean} true if the query matches the user + */ + function matchesQuery(user, query) { + for (let key in query) { + if (key === '$or') { + return query[key].some((subQuery) => matchesQuery(user, subQuery)); } - else if (user[parts[0]] && user[parts[0]][parts[1]]) { - value = user[parts[0]][parts[1]]; + else if (key === '$and') { + return query[key].every((subQuery) => matchesQuery(user, subQuery)); } - - if (parts[0] !== "chr") { - if (prop === 'up.av') { - if ('av' in user) { - hasValue = true; - queryStatus = queryStatus && processAppVersionValues(user.av, query, prop); + else if (typeof query[key] === 'object' && query[key] !== null && !Array.isArray(query[key])) { + let qResult = true; + + for (let prop in query) { + let parts = prop.split("."); + let value; + + if (parts[0] === "up" || parts.length === 1) { + var p = parts[0]; + if (p === "up") { + p = parts[1]; + } + if (user[p]) { + value = user[p]; + } } - else { - hasValue = false; + else if (user[parts[0]] && user[parts[0]][parts[1]]) { + value = user[parts[0]][parts[1]]; } - } - else if (typeof (value) !== "undefined") { - hasValue = true; - queryStatus = queryStatus && processPropertyValues(value, query, prop); - } - else { - //If the type of the user prop is undefined, set query status to false, since data is not available - //In such cases only process if $nin is present otherwise we show the default value to the user - if (query[prop].$nin) { - hasValue = true; - queryStatus = queryStatus && processPropertyValues(value, query, prop); + + if (parts[0] !== 'chr') { + if (prop === 'up.av') { + if ('av' in user) { + qResult = qResult && processAppVersionValues(user.av, { [prop]: query[prop] }, prop); + } + } + else if (typeof (value) !== 'undefined') { + qResult = qResult && processPropertyValues(value, { [prop]: query[prop] }, prop); + } + else { + //If data is not available, check for $nin and $exists operator since they can be true + if (query[prop] && (query[prop].$nin || '$exists' in query[prop])) { + qResult = qResult && processPropertyValues(value, { [prop]: query[prop] }, prop); + } // Otherwise return false + else { + qResult = false; + } + } } else { - queryStatus = false; + qResult = qResult && processCohortValues(user, { chr: query[prop] }); } } + + return qResult; } else { - hasValue = true; - isCohort = true; + return false; } } - - if (isCohort) { - queryStatus = queryStatus && processCohortValues(user, query); - } - - if (!hasValue) { - //If the user does not have any user prop value, set query status to false, since data is not available - queryStatus = false; - } } - return queryStatus; + return matchesQuery(inpUser, inpQuery); }; /** @@ -115,6 +117,7 @@ function processPropertyValues(value, query, prop) { case "$lte": status = status && value <= query[prop].$lte; break; case "$regex": status = status && query[prop].$regex.test(value); break; case "$not": status = status && !query[prop].$not.test(value); break; + case '$exists': status = status && (query[prop].$exists === (value !== undefined)); break; } } diff --git a/plugins/remote-config/tests/fetch_remote_config.js b/plugins/remote-config/tests/fetch_remote_config.js index 18e7592536f..d5a0b7259b6 100644 --- a/plugins/remote-config/tests/fetch_remote_config.js +++ b/plugins/remote-config/tests/fetch_remote_config.js @@ -199,6 +199,17 @@ describe('Fetch remote config', () => { should(remoteConfig.processFilter(targettedUser, query)).equal(true); }); + it('Should not match non targetted user (device id)', () => { + const nonTargettedUser = { + _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', + uid: '13', + did: 'non_targetted_user', + }; + const query = { did: { $in: ['targetted_user'] } }; + + should(remoteConfig.processFilter(nonTargettedUser, query)).equal(false); + }); + it('Should match targetted user (country)', () => { const targettedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', @@ -247,15 +258,123 @@ describe('Fetch remote config', () => { should(remoteConfig.processFilter(nonTargettedUser, queryLte)).equal(false); }); - it('Should not match non targetted user', () => { - const nonTargettedUser = { + it('Should match targetted user ($and query)', () => { + const targettedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', uid: '13', - did: 'non_targetted_user', + did: 'targetted_user', + cc: 'UK', + }; + const query = { 'up.cc': { $exists: true }, did: { $in: ['targetted_user'] } }; + const altQuery = { + $and: [ + { 'up.cc': { $exists: true } }, + { did: { $in: ['targetted_user'] } }, + ], }; - const query = { did: { $in: ['targetted_user'] } }; - should(remoteConfig.processFilter(nonTargettedUser, query)).equal(false); + should(remoteConfig.processFilter(targettedUser, query)).equal(true); + should(remoteConfig.processFilter(targettedUser, altQuery)).equal(true); + }); + + it('Should not match targetted user ($and query)', () => { + const targettedUser = { + _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', + uid: '13', + did: 'targetted_user', + cc: 'UK', + }; + const query = { 'up.cc': { $exists: true }, did: { $nin: ['targetted_user'] } }; + const altQuery = { + $and: [ + { 'up.cc': { $exists: true } }, + { did: { $nin: ['targetted_user'] } }, + ], + }; + + should(remoteConfig.processFilter(targettedUser, query)).equal(false); + should(remoteConfig.processFilter(targettedUser, altQuery)).equal(false); + }); + + it('Should match targetted user ($or query)', () => { + const targettedUser = { + _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', + uid: '13', + did: 'targetted_user', + cc: 'UK', + }; + const query = { + $or: [ + { 'up.cc': { $exists: true }}, + { did: { $nin: ['targetted_user'] } }, + ], + }; + + should(remoteConfig.processFilter(targettedUser, query)).equal(true); + }); + + it('Should not match targetted user ($or query)', () => { + const targettedUser = { + _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', + uid: '13', + did: 'targetted_user', + cc: 'UK', + }; + const query = { + $or: [ + { 'up.cc': { $exists: false }}, + { did: { $nin: ['targetted_user'] } }, + ], + }; + + should(remoteConfig.processFilter(targettedUser, query)).equal(false); + }); + + it('Should match targetted user (combination query)', () => { + const targettedUser = { + _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', + uid: '13', + did: 'targetted_user', + cc: 'UK', + chr: { + 'chr_id': { + i: 123, + in: 'true', + }, + }, + }; + const query = { + $or: [ + { 'up.cc': { $in: ['UK'] }, chr: { $in: ['chr_id'] } }, + { did: { $nin: ['targetted_user'] } }, + ], + }; + + should(remoteConfig.processFilter(targettedUser, query)).equal(true); + }); + + it('Should not match targetted user (combination query)', () => { + const targettedUser = { + _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', + uid: '13', + did: 'targetted_user', + cc: 'UK', + av: '1:0:0', + chr: { + 'chr_id': { + i: 123, + in: 'true', + }, + }, + }; + const query = { + $or: [ + { 'up.cc': { $nin: ['UK'] }, chr: { $nin: ['chr_id'] } }, + { did: { $nin: ['targetted_user'] }, 'up.av': { $gt: '2:0:0' } }, + ], + }; + + should(remoteConfig.processFilter(targettedUser, query)).equal(false); }); it('Should fetch remote config with default value', async() => { From 2c9427cc9be35e5b5dfeeaa6a2de56d66b2dd666 Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Tue, 8 Jul 2025 17:13:43 +0700 Subject: [PATCH 004/344] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3759495e5a2..e247c59f692 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ Fixes: - [active_directory] Fix for handling azure ad callback properly when request body empty - [core] Set up default headers for common return methods - [star-rating] Fix widget close button +- [remote-config] Fix condition matching with complex conditions Enterprise Fixes: - [surveys] Fix widget close button From 959f7e76c7686b577a891b428c10d237bc97c62e Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Tue, 8 Jul 2025 20:50:57 +0700 Subject: [PATCH 005/344] [remote-config] Update condition query matcher --- plugins/remote-config/api/parts/rc.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/remote-config/api/parts/rc.js b/plugins/remote-config/api/parts/rc.js index 04763156c1c..9e155029f0b 100644 --- a/plugins/remote-config/api/parts/rc.js +++ b/plugins/remote-config/api/parts/rc.js @@ -51,21 +51,21 @@ remoteConfig.processFilter = function(inpUser, inpQuery) { } if (parts[0] !== 'chr') { - if (prop === 'up.av') { - if ('av' in user) { + if (typeof (value) !== 'undefined') { + if (prop === 'up.av') { qResult = qResult && processAppVersionValues(user.av, { [prop]: query[prop] }, prop); } - } - else if (typeof (value) !== 'undefined') { - qResult = qResult && processPropertyValues(value, { [prop]: query[prop] }, prop); + else { + qResult = qResult && processPropertyValues(value, { [prop]: query[prop] }, prop); + } } else { //If data is not available, check for $nin and $exists operator since they can be true - if (query[prop] && (query[prop].$nin || '$exists' in query[prop])) { + if (query[prop] && ('$nin' in query[prop] || '$exists' in query[prop])) { qResult = qResult && processPropertyValues(value, { [prop]: query[prop] }, prop); } // Otherwise return false else { - qResult = false; + qResult = qResult && false; } } } From 5592cfcc1c2bed513ef26d63a5165971734878ca Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Thu, 10 Jul 2025 22:29:48 +0700 Subject: [PATCH 006/344] [remote-config] Modify app version property type in qb --- .../frontend/public/javascripts/countly.views.js | 7 ++++--- .../frontend/public/templates/condition-dialog.html | 13 +++++++++++-- .../public/templates/conditions-drawer.html | 1 + 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/plugins/remote-config/frontend/public/javascripts/countly.views.js b/plugins/remote-config/frontend/public/javascripts/countly.views.js index ded3fefd01c..a867a3beb05 100644 --- a/plugins/remote-config/frontend/public/javascripts/countly.views.js +++ b/plugins/remote-config/frontend/public/javascripts/countly.views.js @@ -216,7 +216,8 @@ value: 1, label: "#6C47FF" }, - colorTag: COLOR_TAG + colorTag: COLOR_TAG, + modifyPropType: { 'up.av': countlyQueryBuilder.PropertyType.NUMERIC_STRING_LIST }, }; }, computed: { @@ -636,7 +637,6 @@ name: CV.i18n("remote-config.conditions.random.percentile"), type: countlyQueryBuilder.PropertyType.NUMBER, group: 'User Properties', - })); return { remoteConfigFilterRules: remoteConfigFilterRules, @@ -651,7 +651,8 @@ value: 1, label: "#6C47FF" }, - colorTag: COLOR_TAG + colorTag: COLOR_TAG, + modifyPropType: { 'up.av': countlyQueryBuilder.PropertyType.NUMERIC_STRING_LIST }, }; }, methods: { diff --git a/plugins/remote-config/frontend/public/templates/condition-dialog.html b/plugins/remote-config/frontend/public/templates/condition-dialog.html index fcd12ac7355..032a6a798b8 100644 --- a/plugins/remote-config/frontend/public/templates/condition-dialog.html +++ b/plugins/remote-config/frontend/public/templates/condition-dialog.html @@ -1,5 +1,13 @@ - + @@ -71,6 +79,7 @@

{{i18n('remote-config.parameter.conditions.add.n :add-empty-row-on-empty-query="true" :allow-breakdown="false" :orGroupsEnabled="true" + :modifyPropType="modifyPropType" show-in-the-last-minutes show-in-the-last-hours v-model="managedPropertySegmentation"> diff --git a/plugins/remote-config/frontend/public/templates/conditions-drawer.html b/plugins/remote-config/frontend/public/templates/conditions-drawer.html index a5c043dc759..54923d9b544 100644 --- a/plugins/remote-config/frontend/public/templates/conditions-drawer.html +++ b/plugins/remote-config/frontend/public/templates/conditions-drawer.html @@ -66,6 +66,7 @@ :add-empty-row-on-empty-query="true" :allow-breakdown="false" :orGroupsEnabled="true" + :modifyPropType="modifyPropType" show-in-the-last-minutes show-in-the-last-hours v-model="managedPropertySegmentation"> From 29d92c58ff7b7ee3c4ff70a81b7459a2c67fcf31 Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Fri, 11 Jul 2025 13:36:10 +0700 Subject: [PATCH 007/344] [remote-config] Update tests --- .../tests/fetch_remote_config.js | 134 +++++++++--------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/plugins/remote-config/tests/fetch_remote_config.js b/plugins/remote-config/tests/fetch_remote_config.js index d5a0b7259b6..c5717c32257 100644 --- a/plugins/remote-config/tests/fetch_remote_config.js +++ b/plugins/remote-config/tests/fetch_remote_config.js @@ -13,7 +13,7 @@ const AMOUNT_OF_KEYS = 5; const PARAMETER_PREFIX = 'fetch_remote_config_param_'; const CONDITION_PREFIX = 'fetchremoteconfigcond'; const VALUE_PREFIX = 'value_'; -const TARGETTED_USER_ID = 'targetted_user'; +const TARGETED_USER_ID = 'targeted_user'; describe('Fetch remote config', () => { before(async() => { @@ -136,7 +136,7 @@ describe('Fetch remote config', () => { } }); - describe('Targetting', () => { + describe('Targeting', () => { before(async() => { await request .post('/i/remote-config/add-condition') @@ -147,8 +147,8 @@ describe('Fetch remote config', () => { condition: JSON.stringify({ condition_name: `${CONDITION_PREFIX}0`, condition_color: 1, - condition: { did: { $in: [TARGETTED_USER_ID] } }, - condition_definition: `ID = ${TARGETTED_USER_ID}`, + condition: { did: { $in: [TARGETED_USER_ID] } }, + condition_definition: `ID = ${TARGETED_USER_ID}`, condition_description: '-', seed_value: '', }), @@ -188,45 +188,45 @@ describe('Fetch remote config', () => { .expect('Content-Type', /json/); }); - it('Should match targetted user (device id)', () => { - const targettedUser = { + it('Should match targeted user (device id)', () => { + const targetedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', uid: '13', - did: 'targetted_user', + did: 'targeted_user', }; - const query = { did: { $in: ['targetted_user'] } }; + const query = { did: { $in: ['targeted_user'] } }; - should(remoteConfig.processFilter(targettedUser, query)).equal(true); + should(remoteConfig.processFilter(targetedUser, query)).equal(true); }); - it('Should not match non targetted user (device id)', () => { - const nonTargettedUser = { + it('Should not match non targeted user (device id)', () => { + const nonTargetedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', uid: '13', - did: 'non_targetted_user', + did: 'non_targeted_user', }; - const query = { did: { $in: ['targetted_user'] } }; + const query = { did: { $in: ['targeted_user'] } }; - should(remoteConfig.processFilter(nonTargettedUser, query)).equal(false); + should(remoteConfig.processFilter(nonTargetedUser, query)).equal(false); }); - it('Should match targetted user (country)', () => { - const targettedUser = { + it('Should match targeted user (country)', () => { + const targetedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', uid: '13', - did: 'targetted_user', + did: 'targeted_user', cc: 'UK', }; const query = { 'up.cc': { $exists: true } }; - should(remoteConfig.processFilter(targettedUser, query)).equal(true); + should(remoteConfig.processFilter(targetedUser, query)).equal(true); }); - it('Should match targetted user (app version)', () => { - const targettedUser = { + it('Should match targeted user (app version)', () => { + const targetedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', uid: '13', - did: 'targetted_user', + did: 'targeted_user', av: '1:0:0', }; const queryGt = { 'up.av': { $gt: '0:0:0' } }; @@ -234,17 +234,17 @@ describe('Fetch remote config', () => { const queryLt = { 'up.av': { $lt: '2:0:0' } }; const queryLte = { 'up.av': { $lte: '1:0:0' } }; - should(remoteConfig.processFilter(targettedUser, queryGt)).equal(true); - should(remoteConfig.processFilter(targettedUser, queryGte)).equal(true); - should(remoteConfig.processFilter(targettedUser, queryLt)).equal(true); - should(remoteConfig.processFilter(targettedUser, queryLte)).equal(true); + should(remoteConfig.processFilter(targetedUser, queryGt)).equal(true); + should(remoteConfig.processFilter(targetedUser, queryGte)).equal(true); + should(remoteConfig.processFilter(targetedUser, queryLt)).equal(true); + should(remoteConfig.processFilter(targetedUser, queryLte)).equal(true); }); - it('Should not match non targetted user (app version)', () => { - const nonTargettedUser = { + it('Should not match non targeted user (app version)', () => { + const nonTargetedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', uid: '13', - did: 'targetted_user', + did: 'targeted_user', av: '1:0:0', }; const queryGt = { 'up.av': { $gt: '1:0:0' } }; @@ -252,89 +252,89 @@ describe('Fetch remote config', () => { const queryLt = { 'up.av': { $lt: '1:0:0' } }; const queryLte = { 'up.av': { $lte: '0:0:0' } }; - should(remoteConfig.processFilter(nonTargettedUser, queryGt)).equal(false); - should(remoteConfig.processFilter(nonTargettedUser, queryGte)).equal(false); - should(remoteConfig.processFilter(nonTargettedUser, queryLt)).equal(false); - should(remoteConfig.processFilter(nonTargettedUser, queryLte)).equal(false); + should(remoteConfig.processFilter(nonTargetedUser, queryGt)).equal(false); + should(remoteConfig.processFilter(nonTargetedUser, queryGte)).equal(false); + should(remoteConfig.processFilter(nonTargetedUser, queryLt)).equal(false); + should(remoteConfig.processFilter(nonTargetedUser, queryLte)).equal(false); }); - it('Should match targetted user ($and query)', () => { - const targettedUser = { + it('Should match targeted user ($and query)', () => { + const targetedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', uid: '13', - did: 'targetted_user', + did: 'targeted_user', cc: 'UK', }; - const query = { 'up.cc': { $exists: true }, did: { $in: ['targetted_user'] } }; + const query = { 'up.cc': { $exists: true }, did: { $in: ['targeted_user'] } }; const altQuery = { $and: [ { 'up.cc': { $exists: true } }, - { did: { $in: ['targetted_user'] } }, + { did: { $in: ['targeted_user'] } }, ], }; - should(remoteConfig.processFilter(targettedUser, query)).equal(true); - should(remoteConfig.processFilter(targettedUser, altQuery)).equal(true); + should(remoteConfig.processFilter(targetedUser, query)).equal(true); + should(remoteConfig.processFilter(targetedUser, altQuery)).equal(true); }); - it('Should not match targetted user ($and query)', () => { - const targettedUser = { + it('Should not match targeted user ($and query)', () => { + const targetedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', uid: '13', - did: 'targetted_user', + did: 'targeted_user', cc: 'UK', }; - const query = { 'up.cc': { $exists: true }, did: { $nin: ['targetted_user'] } }; + const query = { 'up.cc': { $exists: true }, did: { $nin: ['targeted_user'] } }; const altQuery = { $and: [ { 'up.cc': { $exists: true } }, - { did: { $nin: ['targetted_user'] } }, + { did: { $nin: ['targeted_user'] } }, ], }; - should(remoteConfig.processFilter(targettedUser, query)).equal(false); - should(remoteConfig.processFilter(targettedUser, altQuery)).equal(false); + should(remoteConfig.processFilter(targetedUser, query)).equal(false); + should(remoteConfig.processFilter(targetedUser, altQuery)).equal(false); }); - it('Should match targetted user ($or query)', () => { - const targettedUser = { + it('Should match targeted user ($or query)', () => { + const targetedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', uid: '13', - did: 'targetted_user', + did: 'targeted_user', cc: 'UK', }; const query = { $or: [ { 'up.cc': { $exists: true }}, - { did: { $nin: ['targetted_user'] } }, + { did: { $nin: ['targeted_user'] } }, ], }; - should(remoteConfig.processFilter(targettedUser, query)).equal(true); + should(remoteConfig.processFilter(targetedUser, query)).equal(true); }); - it('Should not match targetted user ($or query)', () => { - const targettedUser = { + it('Should not match targeted user ($or query)', () => { + const targetedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', uid: '13', - did: 'targetted_user', + did: 'targeted_user', cc: 'UK', }; const query = { $or: [ { 'up.cc': { $exists: false }}, - { did: { $nin: ['targetted_user'] } }, + { did: { $nin: ['targeted_user'] } }, ], }; - should(remoteConfig.processFilter(targettedUser, query)).equal(false); + should(remoteConfig.processFilter(targetedUser, query)).equal(false); }); - it('Should match targetted user (combination query)', () => { - const targettedUser = { + it('Should match targeted user (combination query)', () => { + const targetedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', uid: '13', - did: 'targetted_user', + did: 'targeted_user', cc: 'UK', chr: { 'chr_id': { @@ -346,18 +346,18 @@ describe('Fetch remote config', () => { const query = { $or: [ { 'up.cc': { $in: ['UK'] }, chr: { $in: ['chr_id'] } }, - { did: { $nin: ['targetted_user'] } }, + { did: { $nin: ['targeted_user'] } }, ], }; - should(remoteConfig.processFilter(targettedUser, query)).equal(true); + should(remoteConfig.processFilter(targetedUser, query)).equal(true); }); - it('Should not match targetted user (combination query)', () => { - const targettedUser = { + it('Should not match targeted user (combination query)', () => { + const targetedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', uid: '13', - did: 'targetted_user', + did: 'targeted_user', cc: 'UK', av: '1:0:0', chr: { @@ -370,11 +370,11 @@ describe('Fetch remote config', () => { const query = { $or: [ { 'up.cc': { $nin: ['UK'] }, chr: { $nin: ['chr_id'] } }, - { did: { $nin: ['targetted_user'] }, 'up.av': { $gt: '2:0:0' } }, + { did: { $nin: ['targeted_user'] }, 'up.av': { $gt: '2:0:0' } }, ], }; - should(remoteConfig.processFilter(targettedUser, query)).equal(false); + should(remoteConfig.processFilter(targetedUser, query)).equal(false); }); it('Should fetch remote config with default value', async() => { @@ -399,7 +399,7 @@ describe('Fetch remote config', () => { api_key: API_KEY_ADMIN, app_id: APP_ID, app_key: APP_KEY, - device_id: TARGETTED_USER_ID, + device_id: TARGETED_USER_ID, method: 'fetch_remote_config', }) .expect(200); From 6b248250b0ed30bb6578fbdd288348e9b0338089 Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Fri, 11 Jul 2025 15:44:19 +0700 Subject: [PATCH 008/344] [remote-config] Fix delete dialog --- .../frontend/public/javascripts/countly.views.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/remote-config/frontend/public/javascripts/countly.views.js b/plugins/remote-config/frontend/public/javascripts/countly.views.js index a867a3beb05..191c2fc5e75 100644 --- a/plugins/remote-config/frontend/public/javascripts/countly.views.js +++ b/plugins/remote-config/frontend/public/javascripts/countly.views.js @@ -837,7 +837,7 @@ self.onSubmit(); }); - }, [this.i18n["common.no-dont-delete"], this.i18n["remote-config.yes-delete-parameter"]], {title: this.i18n["remote-config.delete-parameter-title"], image: "delete-email-report"}); + }, [this.i18n("common.no-dont-delete"), this.i18n("remote-config.yes-delete-parameter")], {title: this.i18n("remote-config.delete-parameter-title"), image: "delete-email-report"}); break; } }, @@ -921,7 +921,7 @@ break; case "remove": - CountlyHelpers.confirm(this.i18n("remote-config.confirm-condition-delete", "" + name + ""), "popStyleGreen", function(result) { + CountlyHelpers.confirm(this.i18n("remote-config.confirm-condition-delete", "" + row.condition_name + ""), "popStyleGreen", function(result) { if (!result) { return false; } @@ -930,7 +930,7 @@ self.onSubmit(); }); - }, [this.i18n["common.no-dont-delete"], this.i18n["remote-config.yes-delete-condition"]], {title: this.i18n["remote-config.delete-condition-title"], image: "delete-email-report"}); + }, [this.i18n("common.no-dont-delete"), this.i18n("remote-config.yes-delete-condition")], {title: this.i18n("remote-config.delete-condition-title"), image: "delete-email-report"}); break; } }, From 2545c689cc0db7967859d25e6c2442c7de10fc13 Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Mon, 14 Jul 2025 10:16:26 +0700 Subject: [PATCH 009/344] [remote-config] Update query matcher --- plugins/remote-config/api/parts/rc.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/plugins/remote-config/api/parts/rc.js b/plugins/remote-config/api/parts/rc.js index 9e155029f0b..b6ff123ecf4 100644 --- a/plugins/remote-config/api/parts/rc.js +++ b/plugins/remote-config/api/parts/rc.js @@ -24,16 +24,17 @@ remoteConfig.processFilter = function(inpUser, inpQuery) { */ function matchesQuery(user, query) { for (let key in query) { - if (key === '$or') { - return query[key].some((subQuery) => matchesQuery(user, subQuery)); - } - else if (key === '$and') { - return query[key].every((subQuery) => matchesQuery(user, subQuery)); - } - else if (typeof query[key] === 'object' && query[key] !== null && !Array.isArray(query[key])) { + if (typeof query[key] === 'object' && query[key] !== null && !Array.isArray(query[key])) { let qResult = true; for (let prop in query) { + if (prop === '$or') { + return qResult && query[prop].some((subQuery) => matchesQuery(user, subQuery)); + } + else if (prop === '$and') { + return qResult && query[prop].every((subQuery) => matchesQuery(user, subQuery)); + } + let parts = prop.split("."); let value; @@ -76,6 +77,12 @@ remoteConfig.processFilter = function(inpUser, inpQuery) { return qResult; } + else if (key === '$or') { + return query[key].some((subQuery) => matchesQuery(user, subQuery)); + } + else if (key === '$and') { + return query[key].every((subQuery) => matchesQuery(user, subQuery)); + } else { return false; } From 7961ceb18f0300be4b2bedef6b52c54e6bab8efe Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Wed, 16 Jul 2025 09:49:41 +0700 Subject: [PATCH 010/344] Update changelog --- CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 168473fb349..bc909f708fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## Version 25.03.XX +Fixes: +- [remote-config] Fix condition matching with complex conditions + +Features: +- [remote-config] Add support for comparing newer/older app version in conditions + ## Version 25.03.10 Enterprise Fixes: - [okta] Fix body parser middleware version mismatch causing OKTA authentication break @@ -9,7 +16,6 @@ Features: Fixes: - [core] Set up default headers for common return methods - [star-rating] Fix widget close button -- [remote-config] Fix condition matching with complex conditions Enterprise Fixes: - [active_directory] Fix for reading azure application tenant id from config From 74d1868dff93a64099c940dd53eca6652f0dca8f Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Mon, 21 Jul 2025 18:54:06 +0700 Subject: [PATCH 011/344] [core] Update app version log level to debug --- api/parts/data/usage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/parts/data/usage.js b/api/parts/data/usage.js index ce3b2a847d3..14b8c44313b 100644 --- a/api/parts/data/usage.js +++ b/api/parts/data/usage.js @@ -1121,7 +1121,7 @@ plugins.register("/sdk/user_properties", async function(ob) { userProps.av_build = versionComponents.build; } else { - log.w("Invalid app version format: %s", params.qstring.metrics._app_version); + log.d("Invalid app version format: %s", params.qstring.metrics._app_version); userProps.av_major = null; userProps.av_minor = null; userProps.av_patch = null; From c88e2b5e9da68a770000d1e399ef48b33dc599e4 Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Wed, 23 Jul 2025 14:17:07 +0300 Subject: [PATCH 012/344] French localization --- .../app-version/templates/app-version.html | 4 +- .../javascripts/countly.details.views.js | 4 +- .../javascripts/countly.overview.views.js | 2 +- .../events/templates/configureEvents.html | 4 +- .../core/home/javascripts/countly.views.js | 6 +- .../core/logs/javascripts/countly.views.js | 2 +- .../core/onboarding/templates/populator.html | 2 +- .../dashboard/dashboard.properties | 7 + .../dashboard/dashboard_fr.properties | 701 ++++++++++-------- .../localization/help/help_fr.properties | 102 +-- .../localization/mail/mail_fr.properties | 10 +- .../pre-login/pre-login_fr.properties | 42 +- .../public/javascripts/countly.views.js | 62 +- .../public/localization/alerts.properties | 33 + .../public/localization/alerts_fr.properties | 219 ++++-- .../public/localization/browser_fr.properties | 2 +- .../public/localization/compare_fr.properties | 10 +- .../localization/compliance-hub_fr.properties | 18 +- .../localization/consolidate_fr.properties | 2 +- .../public/javascripts/countly.views.js | 20 +- .../public/localization/crashes.properties | 11 +- .../public/localization/crashes_fr.properties | 469 ++++++------ .../localization/dashboards_fr.properties | 28 +- .../localization/data-manager_fr.properties | 30 +- .../localization/data_migration_fr.properties | 26 +- .../localization/dbviewer_fr.properties | 3 +- .../public/localization/density_fr.properties | 2 +- .../public/localization/desktop_fr.properties | 2 +- .../public/javascripts/countly.views.js | 4 +- .../public/localization/errorlogs.properties | 2 + .../localization/errorlogs_fr.properties | 2 + .../public/localization/guides_fr.properties | 33 + .../public/localization/hooks_fr.properties | 100 +-- .../public/localization/locale_fr.properties | 4 +- .../public/localization/logger_fr.properties | 18 +- .../public/localization/mobile_fr.properties | 2 +- .../public/localization/plugins_fr.properties | 8 +- .../localization/populator_fr.properties | 145 +++- .../public/javascripts/countly.views.js | 2 +- .../public/localization/push.properties | 3 + .../public/localization/push_fr.properties | 50 +- .../localization/recaptcha_fr.properties | 2 +- .../localization/remote-config_fr.properties | 8 +- .../public/localization/reports_fr.properties | 4 +- .../public/localization/sdk_fr.properties | 4 + .../localization/server-stats_fr.properties | 20 +- .../public/localization/sources_fr.properties | 2 +- .../public/javascripts/countly.views.js | 14 +- .../localization/star-rating.properties | 7 + .../localization/star-rating_fr.properties | 20 +- .../localization/system-utility_fr.properties | 1 + .../localization/systemlogs_fr.properties | 32 +- .../public/javascripts/countly.models.js | 12 +- .../localization/times-of-day_fr.properties | 6 +- .../two-factor-auth_fr.properties | 8 +- .../public/localization/views_fr.properties | 17 +- .../localization/vue-example_fr.properties | 3 + .../public/localization/web_fr.properties | 4 +- 58 files changed, 1440 insertions(+), 920 deletions(-) mode change 100644 => 100755 plugins/density/frontend/public/localization/density_fr.properties create mode 100755 plugins/guides/frontend/public/localization/guides_fr.properties mode change 100644 => 100755 plugins/push/frontend/public/localization/push_fr.properties create mode 100644 plugins/sdk/frontend/public/localization/sdk_fr.properties create mode 100644 plugins/system-utility/frontend/public/localization/system-utility_fr.properties mode change 100644 => 100755 plugins/times-of-day/frontend/public/localization/times-of-day_fr.properties create mode 100644 plugins/vue-example/frontend/public/localization/vue-example_fr.properties diff --git a/frontend/express/public/core/app-version/templates/app-version.html b/frontend/express/public/core/app-version/templates/app-version.html index 4ea87e052ef..e1d77d78906 100644 --- a/frontend/express/public/core/app-version/templates/app-version.html +++ b/frontend/express/public/core/app-version/templates/app-version.html @@ -12,13 +12,13 @@
-

App versions for

+

{{i18n('app-versions.versions-for')}}

-

  as

+

  {{i18n('app-versions.as')}}

diff --git a/frontend/express/public/core/events/javascripts/countly.details.views.js b/frontend/express/public/core/events/javascripts/countly.details.views.js index b522c5f22a2..563f4e831a4 100644 --- a/frontend/express/public/core/events/javascripts/countly.details.views.js +++ b/frontend/express/public/core/events/javascripts/countly.details.views.js @@ -6,7 +6,7 @@ data: function() { return { scoreTableExportSettings: { - title: "AllEvents", + title: CV.i18n("events.all-events"), timeDependent: true } }; @@ -504,7 +504,7 @@ priority: 1, name: "detail", permission: "events", - title: "Event Stats", + title: CV.i18n('events.stats'), route: "#/analytics/events", component: AllEventsView, dataTestId: "event-stats", diff --git a/frontend/express/public/core/events/javascripts/countly.overview.views.js b/frontend/express/public/core/events/javascripts/countly.overview.views.js index 2e1337a0240..0bab9048858 100644 --- a/frontend/express/public/core/events/javascripts/countly.overview.views.js +++ b/frontend/express/public/core/events/javascripts/countly.overview.views.js @@ -5,7 +5,7 @@ data: function() { return { scoreTableExportSettings: { - title: "Events", + title: CV.i18n("events.title"), timeDependent: true } }; diff --git a/frontend/express/public/core/events/templates/configureEvents.html b/frontend/express/public/core/events/templates/configureEvents.html index b636388c81a..57ac9da57be 100644 --- a/frontend/express/public/core/events/templates/configureEvents.html +++ b/frontend/express/public/core/events/templates/configureEvents.html @@ -8,11 +8,11 @@
{{i18n('events.overview.add.item')}}
- + - + diff --git a/frontend/express/public/core/home/javascripts/countly.views.js b/frontend/express/public/core/home/javascripts/countly.views.js index 35d099f98e5..091510ced02 100644 --- a/frontend/express/public/core/home/javascripts/countly.views.js +++ b/frontend/express/public/core/home/javascripts/countly.views.js @@ -219,13 +219,13 @@ var HomeViewView = countlyVue.views.create({ selected: function(command) { if (command === "download") { var self = this; - CountlyHelpers.notify({type: "ok", title: jQuery.i18n.map["common.success"], message: "Starting the image generation process. You will be notified when it is ready. Please do not leave the website while the process is running.", sticky: true, clearAll: true}); + CountlyHelpers.notify({type: "ok", title: jQuery.i18n.map["common.success"], message: jQuery.i18n.map["home.download.starting"], sticky: true, clearAll: true}); this.$store.dispatch("countlyHomeView/downloadScreen").then(function() { if (self.$store.state.countlyHomeView.image) { - CountlyHelpers.notify({type: "ok", title: jQuery.i18n.map["common.success"], message: "Download", sticky: true, clearAll: true}); + CountlyHelpers.notify({type: "ok", title: jQuery.i18n.map["common.success"], message: "" + jQuery.i18n.map["common.download"] + "", sticky: true, clearAll: true}); } else { - CountlyHelpers.notify({type: "error", title: jQuery.i18n.map["common.success"], message: "ERROR", sticky: false, clearAll: true}); + CountlyHelpers.notify({type: "error", title: jQuery.i18n.map["common.error"], message: jQuery.i18n.map["common.error"], sticky: false, clearAll: true}); } }); } diff --git a/frontend/express/public/core/logs/javascripts/countly.views.js b/frontend/express/public/core/logs/javascripts/countly.views.js index a506aa77c30..e9cefb44462 100644 --- a/frontend/express/public/core/logs/javascripts/countly.views.js +++ b/frontend/express/public/core/logs/javascripts/countly.views.js @@ -53,5 +53,5 @@ this.renderWhenReady(ViewWrapper); }); - app.addMenu("management", {code: "logs", permission: "core", url: "#/manage/logs", text: "Logs", priority: 50, tabsPath: "/manage/logs"}); + app.addMenu("management", {code: "logs", permission: "core", url: "#/manage/logs", text: CV.i18n("sidebar.management.logs"), priority: 50, tabsPath: "/manage/logs"}); })(); \ No newline at end of file diff --git a/frontend/express/public/core/onboarding/templates/populator.html b/frontend/express/public/core/onboarding/templates/populator.html index ed763ffd447..c62c6af6b09 100644 --- a/frontend/express/public/core/onboarding/templates/populator.html +++ b/frontend/express/public/core/onboarding/templates/populator.html @@ -2,7 +2,7 @@
- + {0} {1} atteint sur {2} -common.graph-min = Minumum {0} {1} sur {2} -common.graph.time-spent = Temps Passé (min) -common.graph.average-time = Moy. Temps Passé (min) -common.graph.reqs-received = Requêtes Reçues -common.graph.avg-reqs-received = Moy. Requêtes Reçues +common.save-changes = Save changes +common.graph-max = Maximum {0} {1} reached on {2} +common.graph-min = Minimum {0} {1} on {2} +common.graph.time-spent = Time Spent (min) +common.graph.average-time = Avg. Time Spent (min) +common.graph.reqs-received = Requests Received +common.graph.avg-reqs-received = Avg. Requests Received common.graph.no-data = There is no data to show for this period -common.seconds = secondes +common.seconds = seconds common.minutes = minutes -common.hour = heure +common.hour = hour common.second.abrv = s common.second.abrv2 = s common.minute.abrv = m common.minute.abrv2 = m common.hour.abrv = h common.hour.abrv2 = h -common.day.abrv = jours +common.day.abrv = days common.day.abrv2 = day -common.year.abrv = années +common.year.abrv = yrs common.year.abrv2 = yr -common.buckets.monthly = mensuel -common.buckets.weekly = hebdomadaire -common.buckets.daily = journalier +common.buckets.monthly = monthly +common.buckets.weekly = weekly +common.buckets.daily = daily common.buckets.years = years -common.buckets.months = mois -common.buckets.weeks = semaines -common.buckets.days = jours +common.buckets.months = months +common.buckets.weeks = weeks +common.buckets.days = days +common.buckets.minutes = minutes +common.buckets.hours = hours common.max = Max -common.create = Créer +common.create = Create common.session-expiration = Session expiration common.click-to-login = Click to remain login common.expire-minute = Your session will expire in 1 minute @@ -157,7 +161,7 @@ common.search = Search common.unknown = Unknown common.eu = European Union common.integrate-sdks = Need some help with SDK integration? -common.integrate-sdks-text = helps you generate personalized code snippets and SDK integration tutorials based on your platforms and Countly features you want to use. +common.integrate-sdks-text = Helps you generate personalized code snippets and SDK integration tutorials based on your platforms and Countly features you want to use. common.integrate-sdks-platforms = Select a platform to get started common.go-to-countries = Go to Countries common.show = Show @@ -183,7 +187,7 @@ common.ago.one-week = 1 week ago common.every.minutes = every {0} minutes common.every.hours = every {0} hours common.every.hour = every hour -common.estimation = Total (unique) value for this period is estimated and corrected using the biggest time buckets from available daily, weekly and monthly stats.

Exact total counts are available for this year, month and day periods +common.estimation = Total (unique) value for this period is estimated and corrected using the biggest time buckets from available daily, weekly and monthly stats. Exact total counts are available for this year, month and day periods common.action = Action common.view = View common.back = Back @@ -229,8 +233,8 @@ common.custom-events = Custom Events common.none = None common.emtpy-view-title = ...hmm, seems empty here common.emtpy-view-subtitle = No data found -common.no-widget-text = Add a widget to create dashboard and see
some informative explanation -common.no-dashboard-text = Create dashboard and see
some informative explanation +common.no-widget-text = Add a widget to create dashboard and see some informative explanation +common.no-dashboard-text = Create dashboard and see some informative explanation common.create-dashboard = + Create a Dashboard common.add-widget = + Add a Widget common.sunday = Sunday @@ -246,22 +250,35 @@ common.adjust-limit = Adjust Limit common.copy-error-message = Something went wrong, please copy it again. common.created-at-by = Created {0} by {1} common.updated = Updated +common.manage = Manage +common.selected-with-count = {0} Selected +common.selected = Selected +common.select-all-with-count = Select all {0} +common.deselect = Deselect +common.session = Session +common.sessions = Sessions +common.go-to-settings = Go to settings +common.go-to-app-settings = Go to application management +common.go-to-task-manager = Go to Task Manager #vue common.undo = Undo common.drawer.next-step = Next step common.drawer.previous-step = Previous step common.diff-helper.changes = You made {0} changes. +common.diff-helper.changes-made-single = change has been made. +common.diff-helper.changes-made = changes have been made. common.diff-helper.keep = Do you want to keep them? -common.save-changes = Modifications enregistrées +common.diff-helper.keep-single = Do you want to keep it? +common.save-changes = Save Changes common.discard-changes = Discard common.complete = Complete common.reset = Reset -common.confirm = Are you sure? +common.confirm = Confirm common.remove = Remove common.next = Next common.previous = Previous -common.select-at-least = At least {0} items should be selected. +common.select-at-least = At least {0} items should be selected. common.select-at-most = At most {0} items can be selected. common.and = and common.or = or @@ -271,23 +288,30 @@ common.email-example=(e.g. john@doe.mail) common.no-email-addresses=No addresses have been specified #period-picker common.all-time = All time +common.in-last-minutes-plural = in the last {0} minutes +common.in-last-minutes = in the last minute +common.in-last-hours-plural = in the last {0} hours +common.in-last-hours = in the last hour common.in-last-days-plural = in the last {0} days common.in-last-days = in the last day common.in-last-weeks-plural = in the last {0} weeks common.in-last-weeks = in the last week common.in-last-months-plural = in the last {0} months common.in-last-months = in the last month -common.time-period-select.custom-range = Custom Range -common.time-period-select.last-n = In the Last +common.in-last-years-plural = in the last {0} years +common.in-last-years = in the last year +common.time-period-select.custom-range = Custom range +common.time-period-select.presets = Presets +common.time-period-select.last-n = In the last common.time-period-select.since = Since common.time-period-select.on = On -common.time-period-select.range = In Between +common.time-period-select.range = In between common.time-period-name.since = since {0} common.time-period-name.on = on {0} common.time-period-select.before = Before common.time-period-name.before = Before {0} common.time-period-name.range = {0} - {1} -common.apply-range = Apply Range +common.apply-range = Apply range common.range-length-limit = Selected range cannot be longer than {0}. #taskmanager @@ -324,10 +348,10 @@ taskmanager.recalculating = Recalculating #task manager assistent notification strings assistant.taskmanager.longTaskTooLong.title = This request is running for too long. -assistant.taskmanager.longTaskTooLong.message = We have switched it to report manager and will notify you when it is finished. +assistant.taskmanager.longTaskTooLong.message = We have switched it to the report manager and will notify you when it is finished. assistant.taskmanager.longTaskTooLong.info = Check its status in Utilities -> Report Manager assistant.taskmanager.longTaskAlreadyRunning.title = A similar report is already running. -assistant.taskmanager.longTaskAlreadyRunning.message = Looks like report with same parameters already running in report manager +assistant.taskmanager.longTaskAlreadyRunning.message = Looks like report with same parameters already running in report manager assistant.taskmanager.completed.title = Report completed for {1} assistant.taskmanager.completed.message = Results are ready for {0} reports. Check report manager to view them. assistant.taskmanager.errored.title = Failed to generate report for {0} @@ -335,10 +359,10 @@ assistant.taskmanager.errored.message = Some reports ({0}) couldn't be generated assistant.taskmanager.errored.info = Under Utilities -> Task Manager #placeholders -placeholder.old-password = Ancien mot de passe... -placeholder.new-password = Nouveau mot de passe... -placeholder.again = Encore... -placeholder.app-name = Entrez le nom de l'application... +placeholder.old-password = Old password... +placeholder.new-password = New password... +placeholder.again = Again... +placeholder.app-name = Enter application name... placeholder.search-columns = Search Columns placeholder.events.edit.description = Enter event description @@ -347,62 +371,64 @@ placeholder.events.edit.sum = Sum placeholder.events.edit.duration = Duration #application categories -application-category.books = Livres -application-category.business = Entreprise -application-category.education = Éducation -application-category.entertainment = Divertissement +application-category.books = Books +application-category.business = Business +application-category.education = Education +application-category.entertainment = Entertainment application-category.finance = Finance -application-category.games = Jeux -application-category.health-fitness = Santé & Sport -application-category.lifestyle = Style de vie -application-category.medical = Médicale -application-category.music = Musique +application-category.games = Games +application-category.health-fitness = Health & Fitness +application-category.lifestyle = Lifestyle +application-category.medical = Medical +application-category.music = Music application-category.navigation = Navigation -application-category.news = Actualités -application-category.photography = Photographie -application-category.productivity = Productivité -application-category.reference = Référence -application-category.social-networking = Réseaux sociaux +application-category.news = News +application-category.photography = Photography +application-category.productivity = Productivity +application-category.reference = Reference +application-category.social-networking = Social Networking application-category.sports = Sports -application-category.travel = Voyage -application-category.utilities = Utilitaires -application-category.weather = Météo +application-category.travel = Travel +application-category.utilities = Utilities +application-category.weather = Weather #sidebar sidebar.home = Home sidebar.dashboard = Overview -sidebar.analytics = Statistiques +sidebar.analytics = Analytics sidebar.analytics.users = User Analytics web.sidebar.analytics.users = Visitor Analytics sidebar.analytics.user-loyalty = User Loyalty sidebar.analytics.session = Session Analytics sidebar.analytics.sessions = Sessions -sidebar.analytics.countries = Pays -sidebar.analytics.devices = Terminaux -sidebar.analytics.app-versions = Versions de l'application +sidebar.analytics.countries = Countries +sidebar.analytics.devices = Devices +sidebar.analytics.app-versions = App versions sidebar.analytics.versions = Versions -sidebar.analytics.carriers = Opérateurs -sidebar.analytics.platforms = Plateformes -sidebar.analytics.resolutions = Résolutions +sidebar.analytics.carriers = Carriers +sidebar.analytics.platforms = Platforms +sidebar.analytics.resolutions = Resolutions sidebar.analytics.technology = Technology -sidebar.analytics.technology-description = Overview details of your app or website traffic by your users’ technology, such as platform, device, resolution, browsers and app version. +sidebar.analytics.technology-description = Overview details of your app or website traffic based on your users’ technology, such as platform, device, resolution, browsers, and app version. sidebar.analytics.geo = Geo sidebar.engagement = Engagement -sidebar.events = Événements +sidebar.events = Events sidebar.events.all-events = All Events sidebar.events.blueprint = Manage Events sidebar.events.overview = Overview sidebar.utilities = Utilities -sidebar.management = Gestion +sidebar.management = Management sidebar.management.applications = Applications -sidebar.management.account = Mon Compte +sidebar.management.account = My Account sidebar.management.users = User Management sidebar.management.longtasks = Report Manager sidebar.management.help = Help Mode sidebar.management.jobs = Jobs +sidebar.management.logs = Logs sidebar.management.token-manager = Token Manager -sidebar.settings = Configurations -sidebar.logout = Déconnexion +sidebar.management.presets = Preset management +sidebar.settings = Settings +sidebar.logout = Logout sidebar.api_key = Api Key sidebar.behavior = Behavior sidebar.category.understand = Understand @@ -415,34 +441,37 @@ sidebar.dashboard-tooltip = Dashboards sidebar.main-menu = Main Menu sidebar.my-profile = My Profile sidebar.copy-api-key-success-message = Api Key has been copied to clipboard! +sidebar.banner.text = Countly’s self-service product analytics offering. +sidebar.banner.upgrade-button = Create a free server #dashboard -dashboard.apply = Appliquer +dashboard.apply = Apply dashboard.home-desc = Overview of collected data +home.download.starting = Starting the image generation process. You will be notified when it is ready. Please do not leave the website while the process is running. dashboard.empty-title = Nothing to show -dashboard.empty-text = There are no data to show. Enable features or Customize this page to see data about choosen features. +dashboard.empty-text = There is no data to show. Enable features or customize this page to see data about chosen features. dashboard.audience = Audience dashboard.customize-home = Customize Home dashboard.avg-time-spent = Avg. Session Duration dashboard.avg-time-spent-desc = The average amount of time spent per session on your application. It is calculated by dividing total duration spent across sessions by the total number of sessions. dashboard.time-spent = Time Spent dashboard.time-spent-desc = Total time spent for this period -dashboard.reqs-received = REQUÊTES REÇUES +dashboard.reqs-received = REQUESTS RECEIVED dashboard.avg-reqs-received = Avg. Requests Received -dashboard.avg-reqs-received-desc = Number of write API requests Countly Server receives for each session (includes sessions, session extensions, events, etc) +dashboard.avg-reqs-received-desc = The number of write API requests the Countly Server receives for each session (includes sessions, session extensions, events, etc.). dashboard.bounce-rate = BOUNCE RATE dashboard.pages-per-visit = PAGES PER VISIT dashboard.note-title-remaining = Remaining dashboard.go-to-sessions = Go to Sessions dashboard.total-sessions-desc = Total session data #users -users.title = UTILISATEURS +users.title = USERS #user-activity user-activity.title = User Activity web.user-activity.title = Visitor Activity -user-activity.description = Overview of the total number of users who started a session on your application, distributed in pre-set categories of numbers of sessions. -web.user-activity.description = Overview of the total number of visitors who started a session on your website, distributed in pre-set categories of numbers of sessions. +user-activity.description = An overview of the total number of users who started a session on your application, distributed in pre-set categories based on the number of sessions. +web.user-activity.description = An overview of the total number of visitors who started a session on your website, distributed in pre-set categories based on the number of sessions. user-activity.barchart-all-users = All Users web.user-activity.barchart-all-users = All Visitors user-activity.barchart-thirty-days = Active Users (30 days) @@ -473,7 +502,7 @@ session-durations.description = Time period(s) for which users have opened your #session-frequency session-frequency.title = Session Frequency -session-frequency.description = Number of times users open your application, in the selected time period, distributed into frequency ranges. +session-frequency.description = The number of times users open your application within the selected time period, distributed into frequency ranges. session-frequency.table.frequency = Time since last session #notes @@ -500,27 +529,27 @@ notes.hide-notes = Hide Notes notes.created-message = Note created successfully #session-duration -session-duration.title = DURÉES SESSION -session-duration.table.duration = Durée de la session +session-duration.title = SESSION DURATIONS +session-duration.table.duration = Session duration #countries countries.title = Countries -countries.description = An overview of the geographical distribution of your users and their sessions in the selected time period. -web.countries.description = An overview of the geographical distribution of your visitors and their sessions in the selected time period. -countries.table.country = Pays -countries.table.city = Ville +countries.description = An overview of the geographical distribution of your users and their sessions within the selected time period. +web.countries.description = An overview of the geographical distribution of your visitors and their sessions within the selected time period. +countries.table.country = Country +countries.table.city = City countries.back-to-list = Back to Country List countries.back-to-map = Back to World Map countries.google-api-key-remind = Google Maps API key must be setup to view city level data. Click here to setup Google Maps API key. countries.go-to-countries = Go to Countries #devices -devices.title = TERMINAL -devices.table.device = Terminal +devices.title = DEVICES +devices.table.device = Device devices.devices-and-types.title = Devices and Types devices.go-to-technology = Go to Technology -#analytics users +#analytics users user-analytics.overview-title = Users Overview user-analytics.overview-desc = Overview of the main metrics and stats about your audience. web.user-analytics.overview-title = Visitors Overview @@ -528,47 +557,51 @@ web.user-analytics.overview-title = Visitors Overview #resolutions resolutions.title = Resolutions -resolutions.description = Detailed information on the resolution settings of the devices through which your users access your application, in the selected time period. -web.resolutions.description = Detailed information on the resolution settings of the devices through which your visitors access your website, in the selected time period. +resolutions.description = Detailed information on the resolution settings of the devices through which your users access your application within the selected time period. +web.resolutions.description = Detailed information on the resolution settings of the devices through which your visitors access your website within the selected time period. -resolutions.table.resolution = Résolution -resolutions.table.width = Largeur -resolutions.table.height = Hauteur +resolutions.table.resolution = Resolution +resolutions.table.width = Width +resolutions.table.height = Height #device_type device_type.title = Devices and Types -device_type.description = Details of the device models and types from which your users access your application, in the selected time period. -web.device_type.description = Details of the device models and types from which your visitors access your website, in the selected time period. +device_type.description = Details of the device models and types from which your users access your application within the selected time period. +web.device_type.description = Details of the device models and types from which your visitors access your website within the selected time period. device_type.table.device_type = Device Type device_type.types = Types device_type.devices = Devices #app-versions app-versions.title = App Versions -app-versions.description = Detailed information on the application versions of your application accessed by your users, in the selected time period. -web.app-versions.description = Detailed information on the website versions of your website accessed by your visitors, in the selected time period. -app-versions.table.app-version = Version de l'App. +app-versions.versions-for = App versions for +app-versions.as = as +app-versions.description = Detailed information on the application versions of your application accessed by your users within the selected time period. +web.app-versions.description = Detailed information on the website versions of your website accessed by your visitors within the selected time period. +app-versions.table.app-version = App Version #carriers carriers.title = Carriers -carriers.table.carrier = Opérateur -carriers.description = Detailed information on the network carriers of the devices through which your users access your application, in the selected time period. +carriers.table.carrier = Carrier +carriers.description = Detailed information on the network carriers of the devices through which your users access your application within the selected time period. #platforms platforms.title = Platforms -platforms.pie-right = VERSIONS PLATEFORME -platforms.table.platform = Plateforme -platforms.table.platform-version = Version Plateforme +platforms.pie-right = PLATFORM VERSIONS +platforms.table.platform = Platform +platforms.table.platform-version = Platform Version platforms.table.platform-version-for = Platform Versions for -platforms.description = Details of the platforms on which yours users access your application, in the selected time period. -web.platforms.description = Details of the platforms on which yours visitors access your website, in the selected time period. +platforms.description = Details of the platforms on which your users access your application within the selected time period. +web.platforms.description = Details of the platforms on which your visitors access your website within the selected time period. platforms.platforms-for = Platforms for platforms.version-distribution = Platforms version distribution platforms.versions = Versions #events events.title = Events +events.all-events = All Events +events.stats = Event Stats events.blueprint-title = MANAGE EVENTS events.blueprint-general = General events.blueprint-events-tab-title = EVENTS @@ -583,7 +616,7 @@ events.blueprint-events-show.visible = Visible Events events.go-to-events = Go to Events events.blueprint-events-properties-tooltip = Edited properties of this event will be updated on All Events and other plugins. -events.blueprint-event-groups-include-events-tooltip = Select at least 2 events to create an Event Group. New Event Groups will automatically sum all the selected event properties and report them. +events.blueprint-event-groups-include-events-tooltip = Select at least 2 events to create an Event Group. New Event Groups will automatically sum all the selected event properties and report them. events.blueprint-event-groups-properties-tooltip = Edited properties in this Event Group will be updated across All Events and other plugins. events.blueprint-event-group-included-events = INCLUDED EVENTS @@ -618,24 +651,24 @@ events.general.yes-delete-event = Yes, delete event events.general.yes-delete-events = Yes, delete events events.general.want-to-discard = You have made changes to this event. Do you want to leave and discard those changes? events.general.want-to-discard-title = Discard changes? -events.general.events-deleted = Selected events deleted sucessfully +events.general.events-deleted = Selected events deleted successfully events.general.no-hidden-events = There are no hidden events events.general.no-visible-events = There are no visible events events.back-to-events = Back to all events events.general.error = Error -events.no-segmentation = Pas de segment -events.count = NOMBRE -events.sum = SOMME +events.no-segmentation = No segmentation +events.count = COUNT +events.sum = SUM events.dur = DURATION -events.table.count = Nombre -events.table.sum = Somme +events.table.count = Count +events.table.sum = Sum events.table.avg-sum = Avg. Sum events.table.dur = Duration events.table.avg-dur = Avg. Duration events.table.segmentation = Segmentation -events.edit.event-key = Clé de l'événement +events.edit.event-key = Event key events.edit.event-key-description = Event key as it is sent from the SDK -events.edit.event-name = Nom de l'événement +events.edit.event-name = Event name events.edit.event-name-description = A display name for this event key to be used throughout the user interface events.edit.event-description = Description events.edit.event-description-description = A short description of this custom event and when it is triggered @@ -650,8 +683,8 @@ events.edit.display-sum-description = A display name for the optional sum proper events.edit.display-duration = Display name for duration events.edit.display-duration-description = A display name for the optional duration property of this event. events.edit.event-properties = Event properties -events.no-event = There are no events tracked for this application\! -events.delete-confirm = Vous êtes sur le point de supprimer toutes les données associées à l'événement "{0}". Êtes-vous sûr de vouloir continuer ? +events.no-event = There are no events tracked for this application! +events.delete-confirm = You are about to delete all data associated with event "{0}". Do you want to continue? events.delete-confirm-many = You are about to delete all data associated with these events. Do you want to continue? events.delete.multiple-events = {0} events events.edit.omit-event-segments = Omit event segments @@ -659,7 +692,7 @@ events.edit.omit-event-segments-description = Choose which segments of this cust events.edit.omit-event-segments-description-drill = Data for these segments will still be stored in Drill. events.edit.omit-event-segments-to-omit = Segments to omit events.edit.omit-event-select-segments = Select segments -event.edit.omitt-warning = You are about to omit data for some segments of this event. Omitted segments will not be saved in the future and past data for these segments will be purged immediately after you save these settings. Do you want to continue? +event.edit.omitt-warning = You are about to omit data for some segments of this event. Omitted segments will not be saved in the future, and past data for these segments will be purged immediately after you save these settings. Do you want to continue? events.overview.title = Overview events.overview.drawer-title = Configure overview events.overview.empty = You don't have any items in overview @@ -670,30 +703,30 @@ events.overview.choose-event = Choose event events.overview.choose-property = Choose property events.overview.table.title-event = Event events.overview.table.title-property = Property -events.overview.max-c = You can add maximum 12 previews in overview. Please delete some of previously added to add new. -events.overview.have-already-one = You have already one item with the same event and propery in overview. +events.overview.max-c = You can add a maximum of 12 previews in the overview. Please delete some of the previously added items to add new ones. +events.overview.have-already-one = You already have one item with the same event and property in the overview. events.overview.empty-title = Events overview is empty -events.overview.empty-text-admin = Configure events overview to visualise your most important custom events at a glance. -events.overview.empty-text-user = Request an admin of this application to configure events overview to visualise most important custom events at a glance. +events.overview.empty-text-admin = Configure the events overview to visualise your most important custom events at a glance. +events.overview.empty-text-user = Request an admin of this application to configure the events overview to visualise the most important custom events at a glance. events.overview.save-changes = Save changes events.overview.unknown = NA -events.all.empty-title = This application doesn't have any custom events -events.all.empty-text = Log some custom events inside your application's code using the SDKs and visit this section later +events.all.empty-title = This application does not have any custom events. +events.all.empty-text = Log some custom events inside your application's code using the SDKs and visit this section later. events.top-events.title = Top Events By Count events.top-events.24hours = 24-Hours events.top-events.30days = 30-Days events.top-events.yesterday = Yesterday events.top-events.info-text = Updated {0} hrs ago -events.max-event-key-limit = Maximum limit of unique event keys ({0}) has been reached. Limit can be adjusted. -events.max-segmentation-limit = Maximum limit of segmentations ({0}) in current event "{1}" has been reached. Limit can be adjusted. -events.max-unique-value-limit = Maximum limit of unique values ({0}) in current event segmentation "{1}" has been reached. Limit can be adjusted. +events.max-event-key-limit = Maximum limit of unique event keys ({0}) has been reached. Limit can be adjusted. +events.max-segmentation-limit = Maximum limit of segmentations ({0}) in current event "{1}" has been reached. Limit can be adjusted. +events.max-unique-value-limit = Maximum limit of unique values ({0}) in current event segmentation "{1}" has been reached. Limit can be adjusted. events.event-group-drawer-create = Create new Event Group events.event-group-name = Event Group name events.group-use-description = Use description events.group-include-events = Include events events.group-select-events = Select events to include -events.group-select-events-remind = Select events +events.group-select-events-remind = Select events events.group-visibility = Event Group Visibility events.group-visibility-description = If an event group is invisible server will continue to record data for it but it will not be displayed in the user interface. events.group-visibility-checkbox = Event Group is visible @@ -701,7 +734,7 @@ events.group-invisibility-checkbox = Event Group is invisible events.group-properties = Event Group Properties events.event-group-count = Display name for count events.event-group-count-description = A display name for the count property of this event -events.event-group-sum= Display name for sum +events.event-group-sum = Display name for sum events.event-group-sum-description = A display name for the sum property of this event events.event-group-duration = Display name for duration events.event-group-duration-description = A display name for the duration property of this event @@ -720,20 +753,20 @@ export.documents = documents export.export-columns-selected-count = {0}/{1} selected export.format-if-possible = Format timestamps to readable date export.format-if-possible-explain = Fields which are saved in data base as timestamps will be converted to show as date string like in table. For example: "Mon, 29 Jun 2020 17:14:15" -export.export-started = Export file is being generated. When ready you will see notification or can download it in report manager. -export.export-failed = Error upon attempting to export table data. +export.export-started = The export file is being generated. When ready, you will see a notification or can download it in the report manager. +export.export-failed = An error occurred while attempting to export table data. export.export-finished = Export completed. export.export-finished-click = Click to download exported file. export.file-name = File name #management-applications management-applications.title = Application Management -management-applications.my-new-app = Ma nouvelle application -management-applications.clear-data = Effacer les données +management-applications.my-new-app = My new app +management-applications.clear-data = Clear data management-applications.clear-reset-data = Reset application -management-applications.clear-reset-explanation = Resets app to initial clean state like right after creation +management-applications.clear-reset-explanation = Resets the app to its initial clean state, as it was right after creation. management-applications.clear-all-data = Clear all data -management-applications.clear-all-explanation = Removes collected data but keeps configurations +management-applications.clear-all-explanation = Removes collected data but keeps the configurations. management-applications.clear-1month-data = Clear data older than 1 month management-applications.clear-3month-data = Clear data older than 3 months management-applications.clear-6month-data = Clear data older than 6 months @@ -743,47 +776,47 @@ management-applications.yes-clear-app = Yes, clear app data management-applications.no-clear = No don't clear management-applications.delete-an-app = Delete application management-applications.yes-delete-app = Yes, delete the app -management-applications.application-name = Nom de l'Application -management-applications.application-name.tip = Entrez le nom de l'application +management-applications.application-name = Application Name +management-applications.application-name.tip = Enter application name management-applications.application-details = Show details management-applications.app-details = App Details management-applications.application-no-details = Could not retrieve app details management-applications.type = Application Type management-applications.type.tip = Choose application type management-applications.type.hint = All data will be recorded for this application type -management-applications.category = Catégorie -management-applications.category.tip = Sélectionnez la catégorie -management-applications.app-id = ID application +management-applications.category = Category +management-applications.category.tip = Select a category +management-applications.app-id = App ID management-applications.app-id.hint = This ID is used for the read API -management-applications.app-key = Clé d'application -management-applications.app-key.hint = You'll need this key for SDK integration +management-applications.app-key = App Key +management-applications.app-key.hint = You will need this key for SDK integration. management-applications.app-key.generate = Will generate automatically management-applications.app-key-unique = This App Key is already in use -management-applications.time-zone = Fuseau Horaire -management-applications.time-zone.tip = Sélectionnez un pays +management-applications.time-zone = Time Zone +management-applications.time-zone.tip = Select a country management-applications.time-zone.hint = All data will be recorded in this timezone management-applications.country.hint = City information will be only recorded for this country management-applications.icon = App Icon -management-applications.add-application = Ajouter une application +management-applications.add-application = Add application management-applications.clear-confirm-all = You are about to clear all the collected data stored for your application. Do you want to continue? management-applications.clear-confirm-period = You are about to clear all the collected data stored for your application within a selected period of time. Do you want to continue? -management-applications.clear-confirm-reset = You are about to reset your app to initial clean state. Do you want to continue? -management-applications.clear-admin = Seul les administrateurs peuvent effacer ces données. -management-applications.clear-success = Les données de votre application ont été supprimées avec succès. +management-applications.clear-confirm-reset = You are about to reset your app to its initial clean state. Do you want to continue? +management-applications.clear-admin = Only administrators of an application can clear it's data. +management-applications.clear-success = Application data is successfully cleared. management-applications.reset-success = Application is successfully reset. -management-applications.delete-confirm = Vous êtes sur le point de supprimer toutes les données associées à votre application. Êtes-vous sûr de vouloir continuer ? -management-applications.delete-admin = Seul les administrateurs d'une application peuvent la supprimer. +management-applications.delete-confirm = You are about to delete all the data associated with your application. Do you want to continue? +management-applications.delete-admin = Only administrators of an application can delete it. management-applications.app-locked = Application is locked. -management-applications.icon-error = Seul les formats d'image jpg, png et gif sont acceptés -management-applications.no-app-warning = Avant de pouvoir collecter des données, vous devez ajouter une application à votre compte. +management-applications.icon-error = Only JPG, PNG, and GIF image formats are allowed. +management-applications.no-app-warning = In order to start collecting data you need to add an application to your account. management-applications.app-key-change-warning-title = Changing the App key -management-applications.app-key-change-warning = Changing the app key will cause all users from this point on to be recorded as new users even if they used your application before.

This action is only recommended if you are migrating an application from another server or changing the app key of a new application. +management-applications.app-key-change-warning = Changing the app key will cause all users from this point on to be recorded as new users even if they used your application before. This action is only recommended if you are migrating an application from another server or changing the app key of a new application. management-applications.app-key-change-warning-confirm = Continue, change the app key -management-applications.app-key-change-warning-EE = Changing the app key will cause all users from this point on to be recorded as new users even if they used your application before.

This action is only recommended if you are migrating an application from another server or changing the app key of a new application.

If your intention was to change the app key to stop collecting data for this application, recommended way of doing so is using Filtering Rules plugin. -management-applications.first-app-message2 = Great\! You can now embed Countly SDK into your application and start viewing your stats instantly. Don't forget to get your App Key from above. +management-applications.app-key-change-warning-EE = Changing the app key will cause all users from this point on to be recorded as new users even if they used your application before. This action is only recommended if you are migrating an application from another server or changing the app key of a new application. If your intention was to change the app key to stop collecting data for this application, recommended way of doing so is using Filtering Rules plugin. +management-applications.first-app-message2 = Great! You can now embed the Countly SDK into your application and start viewing your stats instantly. Don't forget to get your App Key from above. management-applications.types.mobile = Mobile management-applications.checksum-salt = Salt for checksum -management-applications.checksum-salt.hint = Will only accept requests where checksum is signed with the same salt in SDK +management-applications.checksum-salt.hint = Will only accept requests where the checksum is signed with the same salt in the SDK. management-applications.app-domain = Website Domain management-applications.app-creator = App created by management-applications.app-created-at = Date of creation @@ -803,9 +836,9 @@ management-applications.plugins.saved.title = Plugin configuration management-applications.plugins.saved = Changes saved successfully! management-applications.plugins.error.server = Unknown server error management-applications.create-first-app-title = Let's add your first application. -management-applications.create-first-app-description = After adding your first application you'll be ready to start collecting data. +management-applications.create-first-app-description = After adding your first application, you will be ready to start collecting data. management-applications.contact-an-admin = Please contact an administrator -management-applications.dont-access = You don't access rights to any application. +management-applications.dont-access = You don't have access rights to any application. management-applications.plugins-description = Settings in this section will override global settings for the application management-applications.application-lock-tooltip = Application lock prevents accidental data purge and data population management-applications.application-tooltip-locked-text = App is locked. Unlock it to allow changes. @@ -829,7 +862,7 @@ management-users.apps = Apps management-users.sidebar-title = User Management management-users.users = Users management-users.view-title = Manage Users -management-users.editing-your-account = You\'re about to edit your own account. So you may be logged out automatically if changed something related with your permission. Do you want to contiue? +management-users.editing-your-account = You are about to edit your own account. So you may be logged out automatically if you change something related to your permission. Do you want to continue? management-users.feature = Feature management-users.create = Create management-users.read = Read @@ -841,54 +874,56 @@ management-users.create-new-user = Create new user management-users.remove-permission-set = Remove permission set management-users.create-user = Create user management-users.discard-changes = Discard Changes -management-users.discard-confirm = You will lose all changes that you made. Are you sure to continue? +management-users.discard-confirm = You will lose all the changes that you have made. Are you sure you want to continue? management-users.permission-settings = Permission settings management-users.user-has-access-to = User has access to -management-users.role = Rôle +management-users.role = Role management-users.global-administrator = Global Administrator -management-users.full-name = Nom complet +management-users.full-name = Full Name management-users.enter-full-name = Enter Full Name -management-users.username = Nom d'utilisateur +management-users.username = Username management-users.enter-username = Enter Username -management-users.password = Mot de passe -management-users.generate-password = Générer le mot de passe +management-users.password = Password +management-users.generate-password = Generate password management-users.enter-password = Enter Password -management-users.generate-password = Générer le mot de passe -management-users.change-password = Changer le mot de passe -management-users.role = Rôle -management-users.drag-and-drop-or = Drag and drop or +management-users.generate-password = Generate Password +management-users.change-password = Change password +management-users.role = Role +management-users.drag-and-drop-or = Drag and drop file here or +management-users.click-to-upload = click to upload a file management-users.browser = browser management-users.files-to-add-picture = files to add picture -management-users.pp-size-warning = JPG, PNG and GIF files allowed. Maximum size is 5 MB. +management-users.pp-size-warning = JPG, PNG, and GIF files are allowed. The maximum size is 5 MB. management-users.remove-image = Remove image management-users.email = E-mail management-users.enter-email = Enter E-mail address -management-users.global-admin = Super Administrateur +management-users.global-admin = Global Admin management-users.lock-account = Lock Account management-users.time-banned = Time Banned management-users.remove-ban = Remove Ban management-users.remove-ban-notify-title = Time ban removed. management-users.remove-ban-notify-message = User time ban removed successfully. -management-users.admin = Administrateur -management-users.admin-of = Administrateur de -management-users.admin-of.tip = L'utilisateur n'est l'administrateur d'aucune application... -management-users.user = Utilisateur -management-users.user-of = Utilisateur de -management-users.user-of.tip = L'utilisateur ne dispose pas des droits de visualisation sur une application... -management-users.no-role = Pas de rôle -management-users.create-user = Create user -management-users.delete-user = Supprimer l'utilisateur -management-users.edit = Cliquez pour éditer +management-users.admin = Admin +management-users.admin-of = Admin of +management-users.admin-of.tip = User is not the administrator of any application... +management-users.user = User +management-users.user-of = User of +management-users.user-of.tip = User does not have view rights to any application... +management-users.no-role = No role +management-users.create-user = Create User +management-users.delete-user = Delete User +management-users.edit = Click to edit +management-users.disable-2fa-user = Disable 2FA management-users.all-roles = All roles management-users.not-logged-in-yet = Not logged in yet -management-users.close = Cliquez pour fermer -management-users.password-change-confirm = You have changed {0}\''s password. Do you want a notification email to be sent? -management-users.delete-confirm = You are about to delete {0}\''s account. Do you want to continue? +management-users.close = Click to close +management-users.password-change-confirm = You have changed {0}'s password. Do you want a notification email to be sent? +management-users.delete-confirm = You are about to delete {0}'s account. Do you want to continue? management-users.delete-confirm-title = Delete user? management-users.yes-delete-user = Yes, delete user -management-users.email.invalid = Courriel invalide -management-users.email.exists = le courriel existe -management-users.username.exists = l'utilisateur existe +management-users.email.invalid = invalid email +management-users.email.exists = email exists +management-users.username.exists = username exists management-users.password.length = Password must be at least {0} characters long management-users.password.has-char = Password must contain at least one uppercase letter management-users.password.has-number = Password must contain at least one number @@ -900,12 +935,12 @@ management-users.revoke-confirm = You are about to remove this user's access to management-users.email-tip = User will be notified even if there is not an account for this email... management-users.last_login = Last Login management-users.created = Created -management-users.created-message = User created successfully\! +management-users.created-message = User created successfully! management-users.removed = Removed -management-users.removed-message = User removed successfully\! +management-users.removed-message = User removed successfully! management-users.remove-canceled = User remove canceled management-users.updated = Updated -management-users.updated-message = User informations updated successfully\! +management-users.updated-message = User information updated successfully! management-users.confirm-loss-checkboxes = You will lose all marked permissions below. Are you sure you want to continue? management-users.select-app-first-title = Select app first management-users.select-app-first-message = You need to select app or apps before you mark permission boxes @@ -924,33 +959,77 @@ management-users.group-blank = - management-users.reset-filters = Reset Filters management-users.search-placeholder = Search in Features management-users.reset-failed-logins = Reset failed logins -management-users.reset-failed-logins-success = Failed logins reset successfully\! +management-users.reset-failed-logins-success = Failed logins reset successfully! management-users.reset-failed-logins-failed = Failed to reset logins\! +management-users.cannot-delete-own-account = You can not delete your own account +management-users.cannot-revoke-own-admin = You can not revoke your own global admin privileges + +#date-preset +management.preset = Date presets +management.preset.name = Preset name +management.preset.placeholder = Enter preset name +management.preset.visibility = Visibility +management.preset.visibility.all-users = Public +management.preset.visibility.none = Private +management.preset.visibility.selected-users = Shared +management.preset.user-permissions = User permissions +management.preset.users-edit-permission = Edit permission +management.preset.users-edit-description = Select users who can view and edit the preset +management.preset.enter-user-email = Enter user email +management.preset.sharing-disabled = Adding or editing users is disabled by global administrator +management.preset.users-view-permission = View-only permission +management.preset.users-view-description = Select users who can only view the preset and can't do any editing. +management.preset.user-group-permission = User group permission +management.preset.select-user-group = Select user groups +management.preset.create-button = New date preset +management.preset.manage-button-tooltip = Edit and remove your presets +management.preset.create-new-preset = Create new date preset +management.preset.edit-preset = Edit date preset +management.preset.duplicate-preset = Duplicate date preset +management.preset.date-range = Date range +management.preset.exclude-current-day = Exclude current day +management.preset.exclude-current-day.description = By excluding the current day, results may change as the day has not yet ended. +management.preset.created = Preset created successfully! +management.preset.updated = Preset updated successfully! +management.preset.deleted = Preset deleted successfully! +management.preset.created.error = Something went wrong while creating preset. +management.preset.updated.error = Something went wrong while updating preset. +management.preset.deleted.error = Something went wrong while deleting preset. +management.preset.delete-preset = Delete date preset +management.preset.delete-preset-confirm = Are you sure you want to delete {0} ? +management.preset.delete-preset-confirm-generic = this preset +management.preset.column.name = Name +management.preset.column.range = Date range +management.preset.column.owner = Owner +management.preset.column.visibility = Visibility +management.preset.empty.title = No date presets +management.preset.empty.subtitle = Create a new date preset to save time when selecting date ranges. +management.preset.back-to-home = Back to home #user-settings -user-settings.username = Nom d'utilisateur -user-settings.change-password = Changer le mot de passe -user-settings.old-password = Ancien mot de passe... -user-settings.new-password = Nouveau mot de passe... -user-settings.password-again = Encore... -user-settings.alert = Quelque chose est incorrect... -user-settings.success = Settings saved successfully\! -user-settings.api-key = Clé API -user-settings.password-match = Les mots de passe ne correspondent pas +user-settings.username = Username +user-settings.change-password = Change password +user-settings.old-password = Old password... +user-settings.new-password = New password... +user-settings.password-again = Again... +user-settings.alert = Something is wrong... +user-settings.success = Settings saved successfully! +user-settings.api-key = API Key +user-settings.password-match = Passwords don't match user-settings.old-password-match = Provide old password to change it user-settings.old-password-not-match = Old password does not match -user-settings.password-not-old = New password must not be the same as old the one +user-settings.password-not-old = New password must not be the same as the old one user-settings.force-password-reset = It is time to change your password. user-settings.please-correct-input = Please fix errors before submitting the form user-settings.api-key-length = API key should be exactly 32 characters long user-settings.api-key-restrict = API key should contain digits and alphabetical characters user-settings.regenerate-api-key = Regenerate API key user-settigs.delete-account = Delete account -user-settings.delete-account-title = Delete account? +user-settings.delete-account-title = Delete account? user-settings.delete-account-confirm = Do you really want to delete your account? You won't be able to recover it. -user-settings.password-mandatory = Password is mandatory! -user-settings.global admin limit = This account is last global admin account. Can't delete last global admin account. -user-settings.password not valid = Given password is not valid +user-settings.password-mandatory = Password is mandatory. +user-settings.global admin limit = This account is the last global admin account. Can't delete the last global admin account. +user-settings.password not valid = The given password is not valid user-settings.profile-picture = Profile Picture user-settings.upload = Upload @@ -987,14 +1066,14 @@ app-users.download-debug-info = Download debug information app-users.export-userdata = Export user's data app-users.download-export = Download user's exported data app-users.delete-export = Purge user's exported data -app-users.delete-userdata = Purge user's data completely +app-users.delete-userdata = Purge selected user's data completely app-users.delete-userdata-confirm = Do you really want to purge all data associated with this user? -app-users.export-started = Exporting has started sucessfully. +app-users.export-started = Exporting has started successfully. app-users.export-finished = User data is exported. You can download it now. app-users.export-finished-click = Click here to download. -app-users.export-failed = There was error during export process. There might be more information in logs. +app-users.export-failed = There was an error during the export process. There might be more information in logs. app-users.export-deleted = Export data was purged -app-users.userdata-deleted = User data was purged +app-users.userdata-deleted = User's data has been purged app-users.yes-purge-data = Yes, purge data app-users.no-dont-purge = No, don't purge app-users.purge-confirm-title = Purge user's data completely? @@ -1011,28 +1090,28 @@ token_manager.page-title = Token Manager token_manager.create-token = Create Token token_manager.create-new-token = Create New Token token_manager.table.id = Token ID -token_manager.table.ends =Valid until -token_manager.table.multi = Multiple times +token_manager.table.ends = Valid Until +token_manager.table.multi = Multiple times token_manager.table.owner = Token owner token_manager.table.app = App -token_manager.table.status = Status +token_manager.table.status = Status token_manager.table.endpoint = Endpoint token_manager.table.endpoints = Endpoints token_manager.table.endpoint-name = Endpoint Name token_manager.table.endpoint-detail = ENDPOINT DETAILS -token_manager.table.endpoints-description = Given endpoints are interpreted as regularexpressions +token_manager.table.endpoints-description = Given endpoints are interpreted as regular expressions. token_manager.table.expiration-description = Set expiration time for token token_manager.table.purpose = Description token_manager.table.token-description = Token Description -token_manager.table.purpose-desc = Some information to help user identify created token. -token_manager.table.endpoint-desc = You can limit token to a single or multiple endpoints.
Given endpoints are interpreted as regular expressions. -token_manager.table.multi-desc = Token can be used multiple times +token_manager.table.purpose-desc = Some information to help the user identify created token. +token_manager.table.endpoint-desc = You can limit the token to a single or multiple endpoints. Given endpoints are interpreted as regular expressions. +token_manager.table.multi-desc = Token can be used multiple times. token_manager.table.apps-title = Token Usage token_manager.table.apps-limit = Allow token to be used only in some apps token_manager.table.apps-allow = Allow token to be used in all apps -token_manager.table.limit-limit.label = Limited Time +token_manager.table.limit-limit.label = Limited Time token_manager.table.limit-limit.text = Token will expire after the time you set -token_manager.table.limit-allow.label = Unlimited Time +token_manager.table.limit-allow.label = Unlimited Time token_manager.table.limit-allow.text = Token can be used until it is deleted token_manager.table.limit-title = Token Expiration token_manager.table.enter-number = Enter number @@ -1045,24 +1124,24 @@ token_manager.delete-token-confirm = Do you really want to delete this token? token_manager.delete-token-confirm-title = Delete token? token_manager.yes-delete-token = Yes, delete token token_manager.delete-error = Deleting token failed -token_manager.select-apps-error = You have to chose apps or set option to "Allow token to be used in all apps" -token_manager.select-expire-error = You have to choose after how long time token expires or set option to "Token can be used till it is deleted" +token_manager.select-apps-error = You have to choose apps or set option to "Allow token to be used in all apps" +token_manager.select-expire-error = You have to choose after how long time token expires or set option to "Token can be used until it is deleted" token_manager.table.delete-token = Delete token token_manager.table.status-expired = Expired token_manager.table.status-active = Active token_manager.copy-token = Click to copy -token_manager.token-coppied = Token coppied +token_manager.token-coppied = Token Copied token_manager.query-param = Query Parameters token_manager.query-param-value = Value -token_manager.query-param-desc = Limit by some parameter values(for example method=get_events) Value is used as regex when validating. +token_manager.query-param-desc = Limit by some parameter values (for example, method=get_events). The value is used as a regex when validating. token_manager.add-new-endpoint = Add new endpoint token_manager.add-param = Add parameter -token_manager.parameter = Parameter -token_manager.select-apps = Select Apps +token_manager.parameter = Parameter +token_manager.select-apps = Select Apps token_manager.select-time-unit = Select time unit token_manager.token-expiration-time = Expiration Time -token_manager.LoginAuthToken-description = This token is created when creating dashboard screenshots.
If you are not currently rendering dashboard images, you can delete this token. -token_manager.LoggedInAuth-description = This token is used for keeping users session.
Deleting it will log out user currently using it to keep session. +token_manager.LoginAuthToken-description = This token is created when creating dashboard screenshots. If you are not currently rendering dashboard images, you can delete this token. +token_manager.LoggedInAuth-description = This token is used for keeping the user's session. Deleting it will log out the user currently using it to keep the session. version_history.page-title = Countly version history @@ -1071,8 +1150,14 @@ version_history.package-version = Package version version_history.version = Version version_history.upgraded = Upgraded / installed version_history.alert-title = Version mismatch -version_history.alert-message = There is a version mismatch between version in files and in database. It may indicate that upgrade scripts didn't complete properly. +version_history.alert-message = There is a version mismatch between the version in the files and the version in the database. It may indicate that upgrade scripts did not complete properly. +llm.events = LLM Observability internal-events.[CLY]_session = Session +internal-events.[CLY]_llm_interaction = LLM Interaction +internal-events.[CLY]_llm_interaction_feedback = LLM Interaction Feedback +internal-events.[CLY]_llm_tool_used = LLM Tool Used +internal-events.[CLY]_llm_tool_usage_parameter = LLM Tool Usage Parameter + #jobs jobs.back-to-jobs-list = Back to jobs list @@ -1094,11 +1179,11 @@ systemlogs.action.task_manager_task_created = Report created #events-overview events.overview.title.new = Events Overview -events.overview.title.new.tooltip = Complete summary of all Events being tracked. -events.overview.total.event.count = Total number of Events triggered in the last 30 days. -events.overview.event.per.user = Average number of Events triggered per user, in the last 30 days. -events.overview.event.per.session = Average number of Events triggered per session, in the last 30 days. -events.overview.event.metrics = Overview of the metrics calculated by the identified Events, in the last 30 days. +events.overview.title.new.tooltip = A complete summary of all Events being tracked. +events.overview.total.event.count = The total number of Events triggered in the last 30 days. +events.overview.event.per.user = The average number of Events triggered per user in the last 30 days. +events.overview.event.per.session = The average number of Events triggered per session in the last 30 days. +events.overview.event.metrics = An overview of the metrics calculated by the identified Events in the last 30 days. events.overview.event.monitor.events = A quick summary of selected Events that you wish to monitor. To select Events that you want to highlight here, please click on 'Configure Events'. events.overview.metrics = Event Metrics events.overview.monitor = Monitor Events @@ -1122,38 +1207,46 @@ events.overview.manage.items = Manage Items events.overview.last-30days = Last 30 Days #all-events -events.all.title.tooltip = Details of the stats of each Event, in the selected time period, and their comparison where applicable. +events.all.title.tooltip = Details of the stats of each Event within the selected time period, and their comparison where applicable. events.all.title.new = All Events events.all.period = PERIOD +events.all.event = EVENT events.all.segmentation = SEGMENTATION BY +events.segment.values = SEGMENT VALUE(S) events.all.search.placeholder = Search in {0} Events events.all.group = GROUP events.all.error = Could not fetch data events.all.count = Count events.all.sum = Sum events.all.duration = Duration +events.all.segmentation-search.placeholder = Search segments +events.all.segmentation-values-search.placeholder = Search segment value(s) events.all.any.segmentation = Any segmentation events.all.omitted.segments = OMITTED +events.all.drill = Drill +events.drill-drawer.title = Event Drill +events.drill-drawer.save-button = Go to Drill #auto-refresh -auto-refresh.help= Automatically refresh can be adjusted through this switch -auto-refresh.enable= Enable Auto-refresh -auto-refresh.stop= Stop Auto-refresh -auto-refresh.is= Auto-refresh is +auto-refresh.help = Automatic refresh can be adjusted through this switch. +auto-refresh.enable = Enable Auto-refresh +auto-refresh.stop = Stop Auto-refresh +auto-refresh.is = Auto-refresh is auto-refresh.enabled = Enabled initial-setup.application = Application initial-setup.add-first-application-title = Let's add your first application -initial-setup.add-first-application-byline = After adding your first application, you'll be ready to start collecting data +initial-setup.add-first-application-byline = After adding your first application, you will be ready to start collecting data. initial-setup.add-demo-application-title = Let's create a demo app for you! initial-setup.application-type-label = Select your application type initial-setup.time-zone-label = Select your time zone -initial-setup.application-sample-label = We'll populate some demo data for your app, which example sounds the best? +initial-setup.application-sample-label = We will populate some demo data for your app. Which example sounds the best? initial-setup.create-application = Create Application initial-setup.continue-data-population = Continue with data population +initial-setup.populating-data = Populating data for your app initial-setup.consent-title = Before we start... initial-setup.analytics-blurb-1 = We utilize Countly to understand user interactions and collect feedback, helping us enhance our product continuously. However, your privacy remains our priority. -initial-setup.analytics-blurb-2 = This analysis is done on the server level, so we won't see or collect any individual details or any data you record. The data is reported back only to our dedicated Countly server based in Europe. Please note, you can change your mind at any time in the settings. +initial-setup.analytics-blurb-2 = This analysis is done at the server level, so we will not see or collect any individual details or any data you record. The data is reported back only to our dedicated Countly server based in Europe. Please note, you can change your mind at any time in the settings. initial-setup.analytics-question = Considering our commitment to maintaining your privacy and the potential benefits for product enhancement, would you be comfortable enabling Countly on this server? initial-setup.analytics-no = No, maybe later initial-setup.analytics-yes = Yes, enable Countly on this server diff --git a/frontend/express/public/localization/help/help_fr.properties b/frontend/express/public/localization/help/help_fr.properties index 7e94da29691..ed31daa5f9d 100644 --- a/frontend/express/public/localization/help/help_fr.properties +++ b/frontend/express/public/localization/help/help_fr.properties @@ -1,66 +1,66 @@ -help.help-mode-welcome = Hover on each item to view a brief explanation.

While in this mode auto-refreshing of your data is disabled and will be enabled as soon as you turn off the help mode. -help.help-mode-welcome-title = Welcome to the help mode\! +help.help-mode-welcome = Hover over each item to view a brief explanation.

While in this mode, auto-refreshing of your data is disabled and will be enabled as soon as you turn off help mode. +help.help-mode-welcome-title = Welcome to Help Mode! #dashboard -help.dashboard.total-sessions = Nombre de fois où votre application est ouverte. Cliquez sur cet élément pour voir une représentation des séries chronologiques des sessions total. -help.dashboard.total-users = Nombre de terminaux uniques utilisés par votre application. Cliquez sur cet élément pour voir une représentation des séries chronologiques du total des utilisateurs. -help.dashboard.new-users = Nombre de nouveaux utilisateurs. Cliquez sur cet élément pour voir une représentation des séries chronologiques du total des nouveaux utilisateurs. -help.dashboard.total-time-spent = Total time users spent using your application. -help.dashboard.avg-time-spent2 = Total time spent using your application divided by total session count. Click this item to see a time series representation of average time spent per session. -help.dashboard.reqs-received = Nombre de requêtes reçues sur l'API du serveur Countly pour cette application. Cliquez sur cet élément pour voir une représentation des requêtes reçues. -help.dashboard.avg-reqs-received = Nombre de requêtes reçues sur l'API du serveur Countly pour cette application, divisé par le nombre total d'utilisateur. Cliquez sur cet élément pour voir le nombre de requête moyen par utilisateur. -help.dashboard.top-platforms = Affichage des trois meilleurs platesformes représentées par des couleurs différentes selon le nombre de sessions de chaque plateforme. Passez sur chaque couleur pour voir le nom de la plateforme. -help.dashboard.top-resolutions = Affichage des trois meilleurs résolutions représentés par des couleurs différentes selon le nombre de session pour chaque résolution. Passez sur chaque couleur pour voir la résolution. -help.dashboard.top-carriers = Affichage des trois meilleurs opérateurs représentés par des couleurs différentes selon le nombre de sessions pour chaque opérateur. Passez sur chaque couleur pour voir le nom de l'opérateur. -help.dashboard.top-users = Affichage des trois meilleurs jours au cours desquels votre application a atteint le maximum d'utilisateurs au total. Passez sur chaque couleur pour voir la date. -help.dashboard.map = La carte du monde affiche les chiffres de session de chaque pays représenté par une tonalité verte selon le nombre. A côté de la carte vous pouvez voir un tableau des dix meilleurs pays associés au nombre de sessions (le tableau s'affiche uniquement s'il ya des données disponibles). +help.dashboard.total-sessions = The number of times your application is opened. Click this item to see a time series representation of total sessions. +help.dashboard.total-users = The number of unique devices your application is used from. Click this item to see a time series representation of total users. +help.dashboard.new-users = The number of first-time users. Click this item to see a time series representation of new users. +help.dashboard.total-time-spent = The total time users spent using your application. +help.dashboard.avg-time-spent2 = The total time spent using your application divided by the total session count. Click this item to see a time series representation of the average time spent per session. +help.dashboard.reqs-received = The number of write API requests the Countly Server received for this application. Click this item to see a time series representation of requests received. +help.dashboard.avg-reqs-received = The number of write API requests the Countly Server received for this application, divided by the total user count. Click this item to see a time series representation of the average requests per user. +help.dashboard.top-platforms = Shows at most the top three platforms represented by different colors according to the number of sessions from each platform. Hover over each color to see the platform name. +help.dashboard.top-resolutions = Shows at most the top three resolutions represented by different colors according to the number of sessions from each resolution. Hover over each color to see the resolution. +help.dashboard.top-carriers = Shows at most the top three carriers represented by different colors according to the number of sessions from each carrier. Hover over each color to see the carrier name. +help.dashboard.top-users = Shows at most the top three days in which your application reached the maximum number of total users. Hover over each color to see the date. +help.dashboard.map = The world map shows session counts from each country, represented by a tone of green according to the count. Next to the map, you can see a table of the top ten countries together with their session counts (the table is shown only if there is any available data). #sessions view -help.sessions.total-sessions = Nombre de fois où votre application est ouverte. La représentation des séries temporelles de cet élément est identifié par la couleur de bordure supérieure de ce bloc. -help.sessions.new-sessions = Nombre de fois où votre application a été ouverte par un nouvel utilisateur. La représentation des séries temporelles de cet élément est identifié par la couleur de bordure supérieure de ce bloc. -help.sessions.unique-sessions = Nombre de fois où votre application est ouverte à partir d'un terminal unique. La représentation des séries temporelles de cet élément est identifié par la couleur de bordure supérieure de ce bloc. +help.sessions.total-sessions = The number of times your application is opened. The time series representation of this item is identified by the top border color of this block. +help.sessions.new-sessions = The number of times your application is opened by a first-time user. The time series representation of this item is identified by the top border color of this block. +help.sessions.unique-sessions = The number of times your application is opened from a unique device. The time series representation of this item is identified by the top border color of this block. #users view -help.users.total-users = Nombre de terminaux uniques. La représentation des séries temporelles de cet élément est identifié par la couleur de bordure supérieure de ce bloc. -help.users.new-users = Nombre de nouveaux utilisateurs. La représentation des séries temporelles de cet élément est identifié par la couleur de bordure supérieure de ce bloc. -help.users.returning-users = Nombre d'utilisateurs qui ont utilisé votre application au moins une fois précedement. La représentation des séries temporelles de cet élément est identifié par la couleur de bordure supérieure de ce bloc. +help.users.total-users = The number of unique devices. The time series representation of this item is identified by the top border color of this block. +help.users.new-users = The number of first-time users. The time series representation of this item is identified by the top border color of this block. +help.users.returning-users = The number of users that have used your application at least one time before. The time series representation of this item is identified by the top border color of this block. #countries view -help.countries.chart = La carte du monde montre les chiffres de session de chaque pays représenté par une tonalité verte selon le nombre. -help.countries.table = Country\: Name of the country.
Total Sessions\: Number of times your application is opened by a user from this country.
Total Users\: Number of unique devices your application is used from within this country.
New Users\: Number of first time users from this country.
-help.countries.total-sessions = Nombre de fois que votre application a été ouverte. -help.countries.total-users = Nombre de terminaux uniques. -help.countries.new-users = Nombre de nouveaux utilisateurs. +help.countries.chart = The world map shows session counts from each country represented by a tone of green according to the count. +help.countries.table = Country: Name of the country.
Total Sessions: The number of times your application is opened by a user from this country.
Total Users: The number of unique devices from which your application is used within this country.
New Users: The number of first-time users from this country.
+help.countries.total-sessions = The number of times your application is opened. +help.countries.total-users = The number of unique devices. +help.countries.new-users = The number of first-time users. #devices view -help.devices.chart = Le diagramme circulaire sur la gauche montre le pourcentage du total des utilisateurs pour chaque appareil (pourcentages de terminaux uniques). Le diagramme circulaire sur la droite montre le pourcentage de nouveaux utilisateurs à partir de chaque appareil. -help.devices.platform-versions2 = Affiche les trois meilleures versions de plateformes représentées par différentes couleurs selon le nombre de session par version de plateforme. +help.devices.chart = The pie chart on the left shows the percentage of total users from each device (unique device percentages). The pie chart on the right shows the percentage of first-time users from each device. +help.devices.platform-versions2 = Shows at most the top three platform versions represented by different colors according to the number of sessions from each platform version. Hover over each color to see the platform version. #loyalty view -help.loyalty.chart = Le nombre total d'utilisateurs pour chaque session réparti par segment (1, 2, 3-5, 6-9, 10-19, 20-49, 50-99, 100-499,> 500) est visualisé en utilisant un graphique à barres. -help.loyalty.table = Session Count\: Session count segment. User is categorized into one of 1, 2, 3-5, 6-9, 10-19, 20-49, 50-99, 100-499, > 500 according to his total session count.
Number of Users\: Number of users (unique devices) that are in a particular session count segment.
Percent\: Percentage of users that are in a particular session count segment.
+help.loyalty.chart = The total number of users from each session count segment (1, 2, 3-5, 6-9, 10-19, 20-49, 50-99, 100-499, > 500) is visualized using a bar chart. +help.loyalty.table = Session Count: Session count segment. A user is categorized into one of 1, 2, 3-5, 6-9, 10-19, 20-49, 50-99, 100-499, > 500 according to their total session count.
Number of Users: The number of users (unique devices) that are in a particular session count segment.
Percent: The percentage of users that are in a particular session count segment.
#frequency view -help.frequency.chart = Le nombre total d'utilisateurs en fonction de la fréquence de chaque session, réparti par segment (première session, 1-24 heures, 1 jour, 2 jours, 3 jours, 4 jours, 5 jours, 6 jours, 7 jours, 8-14 jours, 15-30 jours, 30 + jours) est visualisé en utilisant un graphique à barres. -help.frequency.table = Time after previous session\: Time between users' consequent sessions. User is categorized into one of First session, 1-24 hours, 1 day, 2 days, 3 days, 4 days, 5 days, 6 days, 7 days, 8-14 days, 15-30 days or 30+ days according to his session frequency.
Number of Users\: Number of users (unique devices) in this session frequency segment.
Percent\: Percentage of users in this session frequency segment.
+help.frequency.chart = The total number of users from each session frequency segment (First session, 1-24 hours, 1 day, 2 days, 3 days, 4 days, 5 days, 6 days, 7 days, 8-14 days, 15-30 days, 30+ days) is visualized using a bar chart. +help.frequency.table = Time after previous session: Time between users' consequent sessions. A user is categorized into one of First session, 1-24 hours, 1 day, 2 days, 3 days, 4 days, 5 days, 6 days, 7 days, 8-14 days, 15-30 days or 30+ days according to their session frequency.
Number of Users: Number of users (unique devices) in this session frequency segment.
Percent: Percentage of users in this session frequency segment.
#platforms view -help.platform-versions.chart = Le diagramme circulaire sur la gauche montre le pourcentage du total des utilisateurs par plateforme. Le diagramme circulaire sur la droite montre le pourcentage du total des utilisateurs de chaque version de la plateforme. Vous pouvez basculer entre iOS et Android pour voir la distribution des versions de la plateforme (le bouton pour basculer n'apparaît que si il n'y a plus d'une plateforme) +help.platform-versions.chart = Pie chart on the left shows percentage of total users from each platform. Pie chart on the right shows percentage of total users from each platform version. You can toggle between iOS and Android to see distribution of platform versions (Toggle button will appear only if there is more than one platform) #app versions view help.app-versions.chart = This page shows different versions of applications, in case they are defined. A stacked chart shows total sessions and new users. The table under the chart shows total sessions, total users and new users, respectively for each application version. #carriers view -help.carriers.chart = Le diagramme circulaire sur la gauche montre le pourcentage du total des utilisateurs pour chaque opérateur. Le diagramme circulaire sur la droite montre le pourcentage de nouveaux utilisateurs pour chaque opérateur. +help.carriers.chart = Pie chart on the left shows percentage of total users from each carrier. Pie chart on the right shows percentage of first time users from each carrier. #manage apps view -help.manage-apps.app-name = Nom de votre application. Utilisé dans plusieurs sections différentes de votre tableau de bord. -help.manage-apps.app-key = La Clé d'Application de votre application que vous utiliserez dans les SDKs. Celle-ci aide le serveur Countly à identifier l'application lors des requêtes à partir du SDK. De plus, cette clé est utilisée dans le tableau de bord pour lire les données de l'application sélectionnée. -help.manage-apps.app-category = Catégorie de votre application. -help.manage-apps.app-timezone = Fuseau horaire que vous allez voir à partir de votre tableau de bord. Lors de l'enregistrement des requêtes à partir des SDKs dans la base de données, ce fuseau horaire est utilisé alors assurez-vous sélectionner une valeur correcte. -help.manage-apps.app-icon = Icône de votre application. Utilisé dans différentes sections de votre tableau de bord. -help.manage-apps.app-add-button = Ouvre un formulaire pour ajouter une nouvelle application. Seuls les utilisateurs ayant un compte super-administrateur peuvent exécuter cette action. -help.manage-apps.app-delete-button = Supprime toutes les données de cette application issues de la base de données. Seuls les utilisateurs ayant un compte super-administrateur peuvent exécuter cette action. -help.manage-apps.app-clear-button = Supprime toutes les données de cette application mais ne supprime pas la configuration de l''application. Vous pouvez continuer à utiliser la même app_key. Seuls les utilisateurs ayant un compte super-administrateur peuvent exécuter cette action. +help.manage-apps.app-name = Name of your application. Used in several different sections of your dashboard. +help.manage-apps.app-key = Application key of your application that you will use inside the SDKs. This helps Countly Server to identify which application the write request from the SDK is for. Also this key is used in the dashboard to read the data for the selected application. +help.manage-apps.app-category = Category of your application. +help.manage-apps.app-timezone = Timezone that you will view your dashboard from. While saving the write requests from the SDKs to the database this timezone is used so make sure to set this one correct. +help.manage-apps.app-icon = Icon for your application. Used in several different sections of your dashboard. +help.manage-apps.app-add-button = Opens up a form to add a new application. Only users with a global administrator account can perform this action. +help.manage-apps.app-delete-button = Deletes all the data of this application from the database. Only users with a global administrator account can perform this action. +help.manage-apps.app-clear-button = Deletes all the data of this application but does not delete the application entry. You can continue to use the same app_key. Only users with a global administrator account can perform this action. help.manage-apps.app-edit-button = Activates editing mode for this application. Users with a global administrator account and administrators of this application can perform this action. help.manage-apps.app-lock-button = Locks this application to prevent accidental delete/clear/reset. Users with a global administrator account and administrators of this application can perform this action. help.manage-apps.checksum-salt = Providing this value will enable checking request's checksum to prevent parameter tampering. You must configure same salt on SDK side too. @@ -68,26 +68,26 @@ help.manage-apps.app-clear-button-hint = Purge all data or data older than a sel help.manage-apps.app-delete-button-hint = Delete the application from the system and purge all of the collected data #manage users view -help.manage-users.full-name = Nom complet de l'utilisateur qui sera utilisée dans les courriels de notification (pour l'instant). -help.manage-users.username = Nom d'utilisateur de l'utilisateur qui sera utilisé pour la connexion au tableau de bord. -help.manage-users.email = Courriel de l'utilisateur qui sera utilisé pour les courriels de notification. -help.manage-users.global-admin = Si le super-administrateur est coché, utilisateur aura tous les droits sur toutes les applications ainsi que la gestion des droits utilisateurs. +help.manage-users.full-name = Full name of the user that will be used in notification emails (for now). +help.manage-users.username = Username of the user that will be used for logging in to the dashboard. +help.manage-users.email = Email of the user that will be used for notification emails. +help.manage-users.global-admin = If the global admin is checked user will have all the rights to all the applications plus user management rights. help.manage-users.lock-account = If account is locked, user cannot log in into dashboard. -help.manage-users.admin-of = L'administrateur d'une application peut afficher et modifier ses paramètres, mais ne peut pas effacer ou supprimer les données d'application. -help.manage-users.user-of = L'utilisateur d'une application peut uniquement afficher les stats pour cette application et ne peut effectuer aucune tâche administrative. +help.manage-users.admin-of = Admin of an application can view and change its settings but can not clear or delete the application data. +help.manage-users.user-of = User of an application can only view the stats for that application and can not perform any administrative task. #resolutions view -help.resolutions.chart = Le diagramme circulaire sur la gauche montre le pourcentage du total des utilisateurs pour chaque résolution d'écran. Le diagramme sur la droite montre le pourcentage de nouveaux utilisateurs pour chaque résolution d'écran. +help.resolutions.chart = Pie chart on the left shows percentage of total users from each resolution. Pie chart on the right shows percentage of first time users from each resolution. #device_type view help.device_type.chart = Pie chart on the left shows percentage of total users from each device type. Pie chart on the right shows percentage of first time users from each device type. #session durations view -help.durations.chart = Nombre total d'utilisateur pour chaque durée de session (0-10 secondes, 11-30 secondes, 31-60 secondes, 1-3 minutes, 3-10 minutes, 10-30 minutes, 30-60 minutes ou > 1 heure) est représenté par un graphique à barres. -help.durations.table = Session duration\: User is categorized into one of 0-10 seconds, 11-30 seconds, 31-60 seconds, 1-3 minutes, 3-10 minutes, 10-30 minutes, 30-60 minutes or > 1 hour according to his session duration.
Number of Users\: Number of users (unique devices) in this session duration segment.
Percent\: Percentage of users in this session duration segment.
+help.durations.chart = Total number of users from each session duration segment (0-10 seconds, 11-30 seconds, 31-60 seconds, 1-3 minutes, 3-10 minutes, 10-30 minutes, 30-60 minutes or > 1 hour) is visualized using a bar chart. +help.durations.table = Session duration: A user is categorized into one of 0-10 seconds, 11-30 seconds, 31-60 seconds, 1-3 minutes, 3-10 minutes, 10-30 minutes, 30-60 minutes or > 1 hour according to their session duration.
Number of Users: Number of users (unique devices) in this session duration segment.
Percent: Percentage of users in this session duration segment.
#push help.manage-apps.push-apn-certificate = Certificate file for Apple Push Notification (APN) service. In order to send Push Notifications, you need to supply at least one .PK12 file for this app. -help.manage-apps.push-gcm-key = Server API Key for Google Cloud Messaging (GCM) service. It's required if you're going to send messages to your Android app users from Countly. You can get one from Google API Console. +help.manage-apps.push-gcm-key = Server API Key for Google Cloud Messaging (GCM) service. It is required if you're going to send messages to your Android app users from Countly. You can get one from the Google API Console. help.datatables-export = Only visible data will be downloaded diff --git a/frontend/express/public/localization/mail/mail_fr.properties b/frontend/express/public/localization/mail/mail_fr.properties index 553b4492b50..edcff97a9d0 100644 --- a/frontend/express/public/localization/mail/mail_fr.properties +++ b/frontend/express/public/localization/mail/mail_fr.properties @@ -1,10 +1,10 @@ #mail templates mail.new-member-subject = Your Countly Account -mail.new-member = Hi {0},

Your Countly account on {1} is created with the following details;

Username: {2}
Password: {3}

Enjoy,
A fellow Countly Admin -mail.new-member-prid = Hi {0},

Your Countly account on {1} is created with the following details;

Username: {2}
You can set up your password following this link.
Enjoy,
A fellow Countly Admin +mail.new-member = Hi {0},

Your Countly account on {1} has been created with the following details:

Username: {2}
Password: {3}

Enjoy,
A fellow Countly Admin +mail.new-member-prid = Hi {0},

Your Countly account on {1} has been created with the following details:

Username: {2}
You can set up your password by following this link.
Enjoy,
A fellow Countly Admin mail.password-change-subject = Countly Account - Password Change -mail.password-change = Hi {0},

Your password for your Countly account on {1} has been changed. Below you can find your updated account details;

Username: {2}
Password: {3}

Best,
A fellow Countly Admin +mail.password-change = Hi {0},

Your password for your Countly account on {1} has been changed. Below you can find your updated account details:

Username: {2}
Password: {3}

Best,
A fellow Countly Admin mail.password-reset-subject = Countly Account - Password Reset -mail.password-reset = Hi {0},

You can reset your Countly account password by following this link.

If you did not request to reset your password ignore this email.

Best,
A fellow Countly Admin +mail.password-reset = Hi {0},

You can reset your Countly account password by following this link.

If you did not request to reset your password, please ignore this email.

Best,
A fellow Countly Admin mail.time-ban-subject = {0}: Your account is locked -mail.time-ban = Hi {0},

Due to excess number of failed login attempts, your account has been blocked. You can use this link to unlock your user and login to your dashboard for once.

Best
A fellow admin +mail.time-ban = Hi {0},

Due to an excessive number of failed login attempts, your account has been blocked. You can use this link to unlock your user and log in to your dashboard once.

Best,
A fellow admin \ No newline at end of file diff --git a/frontend/express/public/localization/pre-login/pre-login_fr.properties b/frontend/express/public/localization/pre-login/pre-login_fr.properties index b45e304940b..8605a441361 100644 --- a/frontend/express/public/localization/pre-login/pre-login_fr.properties +++ b/frontend/express/public/localization/pre-login/pre-login_fr.properties @@ -1,6 +1,6 @@ #placeholders placeholder.full-name = Enter your full name -placeholder.username = Utilisateur +placeholder.username = Username placeholder.username-email = Username or Email placeholder.new-password = Enter your new password placeholder.password = Enter your password @@ -10,13 +10,13 @@ placeholder.enter-username = Enter your username placeholder.enter-password = Enter your password #login -login.title = Identification +login.title = Login login.forgot = Forgot password? -login.result = Identification incorrect -login.blocked = Your account was locked due to too many incorrect login attempts. Please wait for a while or contact with your system admin. -login.locked = Your account was locked by admin +login.result = Login Failed +login.blocked = Your account has been locked due to too many incorrect login attempts. Please wait for a while or contact your system admin. +login.locked = Your account has been locked by an admin. login.button = Sign In -login.token-expired = Your session was expired. Please login again +login.token-expired = Your session has expired. Please log in again. login.email-adress = Email Address login.email-adress-or-username = Username or E-mail address login.sign-in = or Sign In With Your Email @@ -30,29 +30,29 @@ login.help-center = Help Center login.confirm-password = Confirm Password #forgot -forgot.title = Réinitialiser le mot de passe -forgot.explanation = Merci d'entrer le courriel de votre compte ci-dessous pour recevoir des instructions sur la réinitialisation de votre mot de passe. -forgot.result = Vous recevrez rapidement un message si le courriel que vous avez entré existe dans le système +forgot.title = Reset Password +forgot.explanation = Please enter your account email below in order to receive instructions on resetting your password. +forgot.result = You will receive an email shortly if the email you entered exists in the system forgot.button = Send Email forgot.invalid-email = Invalid email address format. -forgot.error = Somethings went wrong. Please try again later. +forgot.error = Something went wrong. Please try again later. forgot.sent-email-title = Password Reset Email Sent forgot.sent-email = An email has been sent to your email address, {0}. Follow the directions in the email to reset your password. #reset -reset.explanation = Créer votre nouveau mot de passe de compte ci-dessous. -reset.result = You can login with your new password\! -reset.invalid = Demande de réinitialisation de mot passe invalide -reset.dont-match = Passwords don't match\! +reset.explanation = Create your new account password below. +reset.result = You can log in with your new password! +reset.invalid = Invalid password reset request +reset.dont-match = Passwords do not match! reset.confirm-password = Confirm Password reset.new-password = New Password -reset.button = Réinitialiser mon mot de passe +reset.button = Reset my password reset.buttonnew = Set my password management-users.password.requirements = Password requirements management-users.password.length = At least {0} characters long management-users.password.has-char = At least one uppercase letter management-users.password.has-number = At least one number -management-users.password.has-special = At least one special character +management-users.password.has-special = At least one special character management-users.email.invalid = Invalid email format management-users.username.invalid = Must provide username management-users.full_name.invalid = Must provide full name @@ -61,17 +61,17 @@ management-users.full_name.invalid = Must provide full name setup.title = Registration setup.full-name = Full Name setup.username = Username -setup.explanation = Vous avez réussi à configurer Countly sur votre serveur. Vous avez juste besoin de créer votre compte administrateur pour terminer l'installation. +setup.explanation = You have successfully set up Countly on your server. You just need to create your administrator account to complete the installation. setup.button = Create Account -setup.hint-password-good=Your password is good to go\! +setup.hint-password-good=Your password is good to go! setup.error-username = Please enter a valid username. setup.error-full-name = Please enter a valid full name. -setup.error-email = Please enter a valid email adress. -setup.error-confirm-password = Confirmation password has to be the same as password. +setup.error-email = Please enter a valid email address. +setup.error-confirm-password = The confirmation password has to be the same as the password. setup.ready = Your Countly server is ready! setup.byline = Let's first create your dashboard user account setup.continue-demo-app = Continue with a demo app setup.continue-own-app = I want to create my own app #logout -logout.inactivity = You have been logged out due to inactivity +logout.inactivity = You have been logged out due to inactivity. diff --git a/plugins/alerts/frontend/public/javascripts/countly.views.js b/plugins/alerts/frontend/public/javascripts/countly.views.js index 0e390d62eaa..8640fe7b49b 100644 --- a/plugins/alerts/frontend/public/javascripts/countly.views.js +++ b/plugins/alerts/frontend/public/javascripts/countly.views.js @@ -50,22 +50,22 @@ defaultAlertDefine: { events: { target: [ - { value: "count", label: "count" }, - { value: "sum", label: "sum" }, - { value: "duration", label: "duration" }, - { value: "average sum", label: "average sum" }, + { value: "count", label: jQuery.i18n.map["alert.count"] || "count" }, + { value: "sum", label: jQuery.i18n.map["alert.sum"] || "sum" }, + { value: "duration", label: jQuery.i18n.map["alert.duration"] || "duration" }, + { value: "average sum", label: jQuery.i18n.map["alert.average-sum"] || "average sum" }, { value: "average duration", - label: "average duration", + label: jQuery.i18n.map["alert.average-duration"] || "average duration", }, ], }, views: { target: [ - { value: "bounce rate", label: "bounce rate" }, + { value: "bounce rate", label: jQuery.i18n.map["alert.bounce-rate"] || "bounce rate" }, { value: "# of page views", - label: "# of page views", + label: jQuery.i18n.map["alert.page-views"] || "# of page views", }, ], }, @@ -73,17 +73,17 @@ target: [ { value: "average session duration", - label: "average session duration", + label: jQuery.i18n.map["alert.average-session-duration"] || "average session duration", }, - { value: "# of sessions", label: "# of sessions" }, + { value: "# of sessions", label: jQuery.i18n.map["alert.sessions-count"] || "# of sessions" }, ], }, users: { target: [ - { value: "# of users", label: "# of users" }, + { value: "# of users", label: jQuery.i18n.map["alert.users-count"] || "# of users" }, { value: "# of new users", - label: "# of new users", + label: jQuery.i18n.map["alert.new-users-count"] || "# of new users", }, ], }, @@ -91,19 +91,19 @@ target: [ { value: "# of crashes/errors", - label: "# of crashes/errors", + label: jQuery.i18n.map["alert.crashes-count"] || "# of crashes/errors", }, { value: "non-fatal crashes/errors per session", - label: "non-fatal crashes/errors per session", + label: jQuery.i18n.map["alert.non-fatal-crashes"] || "non-fatal crashes/errors per session", }, { value: "fatal crashes/errors per session", - label: "fatal crashes/errors per session", + label: jQuery.i18n.map["alert.fatal-crashes"] || "fatal crashes/errors per session", }, { value: "new crash/error", - label: "new crash/error", + label: jQuery.i18n.map["alert.new-crash"] || "new crash/error", }, ], }, @@ -111,11 +111,11 @@ target: [ { value: "# of survey responses", - label: "# of survey responses", + label: jQuery.i18n.map["alert.survey-responses-count"] || "# of survey responses", }, { value: "new survey response", - label: "new survey response", + label: jQuery.i18n.map["alert.new-survey-response"] || "new survey response", }, ], }, @@ -123,11 +123,11 @@ target: [ { value: "# of responses", - label: "# of responses", + label: jQuery.i18n.map["alert.nps-responses-count"] || "# of responses", }, { value: "new NPS response", - label: "new NPS response", + label: jQuery.i18n.map["alert.new-nps-response"] || "new NPS response", }, ], }, @@ -135,11 +135,11 @@ target: [ { value: "# of responses", - label: "# of responses", + label: jQuery.i18n.map["alert.rating-responses-count"] || "# of responses", }, { value: "new rating response", - label: "new rating response", + label: jQuery.i18n.map["alert.new-rating-response"] || "new rating response", }, ], }, @@ -147,7 +147,7 @@ target: [ { value: "total data points", - label: "total data points", + label: jQuery.i18n.map["alert.total-data-points"] || "total data points", }, ], }, @@ -155,20 +155,20 @@ target: [ { value: "t", - label: "# of online users", + label: jQuery.i18n.map["alert.online-users-count"] || "# of online users", }, { value: "o", - label: "overall record", + label: jQuery.i18n.map["alert.overall-record"] || "overall record", }, - { value: "m", label: "30-day record" }, + { value: "m", label: jQuery.i18n.map["alert.30day-record"] || "30-day record" }, ], }, cohorts: { target: [ { value: "# of users in the cohort", - label: "# of users in the cohort", + label: jQuery.i18n.map["alert.cohort-users-count"] || "# of users in the cohort", }, ], }, @@ -176,24 +176,24 @@ target: [ { value: "# of users in the profile group", - label: "# of users in the profile group", + label: jQuery.i18n.map["alert.profile-group-users-count"] || "# of users in the profile group", }, ], }, revenue: { target: [ - { value: "total revenue", label: "total revenue" }, + { value: "total revenue", label: jQuery.i18n.map["alert.total-revenue"] || "total revenue" }, { value: "average revenue per user", - label: "average revenue per user", + label: jQuery.i18n.map["alert.average-revenue-per-user"] || "average revenue per user", }, { value: "average revenue per paying user", - label: "average revenue per paying user", + label: jQuery.i18n.map["alert.average-revenue-per-paying-user"] || "average revenue per paying user", }, { value: "# of paying users", - label: "# of paying users", + label: jQuery.i18n.map["alert.paying-users-count"] || "# of paying users", }, ], }, diff --git a/plugins/alerts/frontend/public/localization/alerts.properties b/plugins/alerts/frontend/public/localization/alerts.properties index 427a0bd335c..5d4e1f400c2 100644 --- a/plugins/alerts/frontend/public/localization/alerts.properties +++ b/plugins/alerts/frontend/public/localization/alerts.properties @@ -111,3 +111,36 @@ alerts.crashes-icon = Alert will be triggered as soon as a new, before unseen cr alerts.status-all = All alerts alerts.status-enabled = Enabled alerts.status-disabled = Disabled + +# Alert target types +alert.count = count +alert.sum = sum +alert.duration = duration +alert.average-sum = average sum +alert.average-duration = average duration +alert.bounce-rate = bounce rate +alert.page-views = # of page views +alert.average-session-duration = average session duration +alert.sessions-count = # of sessions +alert.users-count = # of users +alert.new-users-count = # of new users +alert.crashes-count = # of crashes/errors +alert.non-fatal-crashes = non-fatal crashes/errors per session +alert.fatal-crashes = fatal crashes/errors per session +alert.new-crash = new crash/error +alert.survey-responses-count = # of survey responses +alert.new-survey-response = new survey response +alert.nps-responses-count = # of responses +alert.new-nps-response = new NPS response +alert.rating-responses-count = # of responses +alert.new-rating-response = new rating response +alert.total-data-points = total data points +alert.online-users-count = # of online users +alert.overall-record = overall record +alert.30day-record = 30-day record +alert.cohort-users-count = # of users in the cohort +alert.profile-group-users-count = # of users in the profile group +alert.total-revenue = total revenue +alert.average-revenue-per-user = average revenue per user +alert.average-revenue-per-paying-user = average revenue per paying user +alert.paying-users-count = # of paying users diff --git a/plugins/alerts/frontend/public/localization/alerts_fr.properties b/plugins/alerts/frontend/public/localization/alerts_fr.properties index f1c1ac15795..61d947204ca 100644 --- a/plugins/alerts/frontend/public/localization/alerts_fr.properties +++ b/plugins/alerts/frontend/public/localization/alerts_fr.properties @@ -1,83 +1,146 @@ #empty -alert.plugin-title = Alerts -#empty.plugin-description = Use it to start developing new plugin +alert.plugin-title = Alertes +#empty.plugin-description = Utilisez-le pour commencer à développer un nouveau plugin -alert.Add_New_Alert=Add New Alert -alert.Edit_Your_Alert=Edit Your Alert -alert.Alert_Name=Alert Name -alert.Data_type=Data Type -alert.Metric=Metric -alert.Event=Event -alert.Crash=Crash -alert.For_Application=For Application -alert.all-applications=All Applications -alert.Select_app=Select Application -alert.Select_apps=Select Applications -alert.Event=Event -alert.Select_event=Select Event -alert.Alert_type=Alert type -alert.Select_a_type=Select a Type -alert.Alert_Me_When=Alert Me When -alert.Action=Action -alert.e-mail=e-mail -alert.HTTP_request=HTTP request -alert.E-mail_address=E-mail address(One email per line) -alert.Http_Request_URL=Http Request URL -alert.Create_New_Alert=Add New Alert -alert.RUNNING_ALERTS=Active Alerts -alert.TOTAL_ALERTS_SENT=TOTAL ALERTS SENT -alert.Today_ALERT_SENT=Today ALERT SENT -alert.Edit=Edit -alert.Delete=Delete -alert.Save_Changes=Save Changes -alert.Discard_Changes=Discard Changes -alert.Data_type=Data Type -alert.Metric=Metric -alert.Event=Event -alert.Event=Event -alert.For_Applications=For Application -alert.Select_metric=Select Metric -alert.Define_variation=Define variation -alert.Select_event=Select Event -alert.Define_variation=Define variation -alert.Select_metric=Select Metric -alert.Define_variation=Define variation -alert.TOTAL_ALERTS_SENT=TOTAL ALERTS SENT -alert.ALERTS_SENT_TODAY=Alerts Sent Today -alert.Alert_definition=ALERT DEFINITION -alert.Users_to_send_alerts=Users to send alerts -alert.Select_users=Select Users -alert.You_will_be_notified_via_email=You will be notified via email -alert.delete-confirm-title = Delete Alert -alert.delete-confirm = Confirm to delete this alert? -alert.yes-delete-alert = Yes, delete alert -alert.email-place-holder=Enter emails -alert.enter-alert-name = Enter Alert Name +alert.Add_New_Alert = Ajouter une Nouvelle Alerte +alert.Edit_Your_Alert = Modifier Votre Alerte +alert.Alert_Name = Nom de l'Alerte +alert.Event = Événements +alert.View = Vues +alert.Session = Sessions +alert.User = Utilisateurs +alert.Crash = Crashes +alert.Survey = Sondage +alert.NPS = NPS +alert.Rating = Notation +alert.Data-points = Points de Données +alert.Online-users = Utilisateurs en Ligne +alert.Cohorts = Cohortes +alert.Profile-groups = Groupes de Profil +alert.Revenue = Revenus +alert.Data_type = Type de Données +alert.For_Application = Pour l'Application +alert.all-applications = Toutes les Applications +alert.Select_app = Sélectionner l'Application +alert.Select_apps = Sélectionner les Applications +alert.Select_event = Sélectionner l'Événement +alert.Alert_type = Type d'Alerte +alert.Select_a_type = Sélectionner un Type +alert.Alert_Me_When = M'Alerter Quand +alert.Action = Action +alert.e-mail = Email +alert.HTTP_request = Requête HTTP +alert.E-mail_address = Adresse Email (Un email par ligne) +alert.Http_Request_URL = URL de Requête HTTP +alert.Create_New_Alert = Créer une Nouvelle Alerte +alert.RUNNING_ALERTS = Alertes Actives +alert.TOTAL_ALERTS_SENT = TOTAL DES ALERTES ENVOYÉES +alert.Today_ALERT_SENT = Alertes Envoyées Aujourd'hui +alert.Edit = Modifier +alert.Delete = Supprimer +alert.Save_Changes = Sauvegarder les Changements +alert.Discard_Changes = Abandonner les Changements +alert.For_Applications = Application +alert.Select_metric = Sélectionner la Métrique +alert.Define_variation = Définir la variation +alert.Select_event = Sélectionner l'Événement +alert.Define_variation = Définir la variation +alert.Select_metric = Sélectionner la Métrique +alert.Define_variation = Définir la variation +alert.TOTAL_ALERTS_SENT = Total des Alertes Envoyées +alert.ALERTS_SENT_TODAY = Alertes Envoyées Aujourd'hui +alert.Alert_Trigger = Déclencheur +alert.Users_to_send_alerts = Utilisateurs pour envoyer les alertes +alert.Select_users = Sélectionner les Utilisateurs +alert.You_will_be_notified_via_email = Vous serez notifié par email +alert.delete-confirm-title = Supprimer l'Alerte +alert.delete-confirm = Confirmer la suppression de cette alerte ? +alert.yes-delete-alert = Oui, supprimer l'alerte +alert.email-place-holder = Entrer les Emails +alert.enter-alert-name = Entrer le Nom de l'Alerte alert.Application = Application alert.Condition = Condition -alert.CreateBy = Created by -alert.compare-remind = Metrics are compared on a daily basis. -alert.add-number = Add Number -alert.make-changes-remind = You made {0} changes. -alert.make-change-remind = You made 1 change. -alert.rating = Rating -alert.starView-disabled-title = Ratings plugin is disabled! -alert.starView-disabled-desc = You will not receive data alerts from Ratings. -alert.starView-disabled-suggest = Please enable Ratings plugin to receive alerts. -alert.crashesView-disabled-title = Crashes plugin is disabled! -alert.crashesView-disabled-desc = You will not receive data alerts from Crashes. -alert.crashesView-disabled-suggest = Please enable Crashes plugin to receive alerts. -alert.data-point = Data point -alert.email-to-receive = E-mail to receive alerts -alert.select-metric=Select Metric -alert.define-variable=Define Variation -alert.add-number=Add Number -alert.add-alert=Add Alert -alert.save-alert=Save Alert -alert.tips = Overview of all alerts set up. Create new alerts to receive emails when
specific conditions related to metrics are met. -alerts.update-status-success = Successfully update status -alerts.save-alert-success= Alert saved -alerts.empty-title= ...hmm, seems empty here -alerts.empty-action-button-title=+ Create New Alert -alerts.empty-subtitle= Create new alerts to receive emails when specific conditions related to metrics are met. +alert.CreateBy = Créé Par +alert.compare-remind = Les métriques sont comparées quotidiennement. +alert.add-number = Ajouter un Nombre +alert.make-changes-remind = Vous avez effectué {0} changements. +alert.make-change-remind = Vous avez effectué 1 changement. +alert.starView-disabled-title = Le plugin Notations est désactivé ! +alert.starView-disabled-desc = Vous ne recevrez pas d'alertes de données des Notations. +alert.starView-disabled-suggest = Veuillez activer le plugin Notations pour recevoir des alertes. +alert.crashesView-disabled-title = Le plugin Crashes est désactivé ! +alert.crashesView-disabled-desc = Vous ne recevrez pas d'alertes de données des Crashes. +alert.crashesView-disabled-suggest = Veuillez activer le plugin Crashes pour recevoir des alertes. +alert.email-to-receive = Email pour recevoir les alertes +alert.data-point = Point de données +alert.select-metric = Sélectionner la Métrique +alert.define-variable = Définir la Variation +alert.add-number = Ajouter un Nombre +alert.add-alert = Ajouter une Alerte +alert.save-alert = Sauvegarder l'Alerte +alert.save = Créer +alert.tips = Aperçu de toutes les alertes configurées. Créez de nouvelles alertes pour recevoir des emails quand des conditions spécifiques liées aux métriques sont remplies. +alerts.application-tooltip = Points de données est le seul type de données disponible pour votre Application sélectionnée. +alerts.update-status-success = Statut mis à jour avec succès +alerts.save-alert-success = Alerte sauvegardée +alerts.empty-title = ...hmm, ça semble vide ici +alerts.empty-action-button-title = + Créer une Nouvelle Alerte +alerts.empty-subtitle = Créez de nouvelles alertes pour recevoir des emails quand des conditions spécifiques liées aux métriques sont remplies. +alerts.alert-is-enabled = L'Alerte est Activée +alerts.alert-is-disabled = L'Alerte est Désactivée +alerts.select-data-type = Sélectionner un type de données +alerts.select-an-application = Sélectionner une Application +alerts.filter = Filtre +alerts.add-filter = + Ajouter un Filtre +alerts.segment-value = Chaîne +alerts.widget-name = Nom du Widget +alert.email-to-specific-address = À une adresse spécifique +alert.email-to-group = Aux utilisateurs d'un groupe +alerts.select-group = Entrer le Nom du Groupe d'Utilisateurs +alerts.email-icon1 = Cette alerte ne peut être utilisée que dans +alerts.email-icon2 = pour déclencher des actions. +alerts.period-select-reminder-hourly = La valeur sera vérifiée toutes les heures +alerts.period-select-reminder-daily = La valeur sera vérifiée à minuit dans le fuseau horaire de l'app +alert.email-to-dont-send = Ne pas envoyer pour cette alerte +alerts.select-event = Sélectionner un Événement +alert.email-header = Notification par Email +alerts.email-icon = Cette alerte ne peut être utilisée que dans Hooks pour déclencher des actions. +alerts.common-icon-info = L'alerte sera déclenchée dès qu'une nouvelle réponse est soumise pour le widget sélectionné. +alerts.crashes-icon = L'alerte sera déclenchée dès qu'un nouveau crash jamais vu auparavant se produit. +alerts.status-all = Toutes les alertes +alerts.status-enabled = Activé +alerts.status-disabled = Désactivé + +# Types de cibles d'alerte +alert.count = compte +alert.sum = somme +alert.duration = durée +alert.average-sum = somme moyenne +alert.average-duration = durée moyenne +alert.bounce-rate = taux de rebond +alert.page-views = nombre de vues de page +alert.average-session-duration = durée moyenne de session +alert.sessions-count = nombre de sessions +alert.users-count = nombre d'utilisateurs +alert.new-users-count = nombre de nouveaux utilisateurs +alert.crashes-count = nombre de crashes/erreurs +alert.non-fatal-crashes = crashes/erreurs non fatales par session +alert.fatal-crashes = crashes/erreurs fatales par session +alert.new-crash = nouveau crash/erreur +alert.survey-responses-count = nombre de réponses de sondage +alert.new-survey-response = nouvelle réponse de sondage +alert.nps-responses-count = nombre de réponses +alert.new-nps-response = nouvelle réponse NPS +alert.rating-responses-count = nombre de réponses +alert.new-rating-response = nouvelle réponse de notation +alert.total-data-points = points de données totaux +alert.online-users-count = nombre d'utilisateurs en ligne +alert.overall-record = record global +alert.30day-record = record de 30 jours +alert.cohort-users-count = nombre d'utilisateurs dans la cohorte +alert.profile-group-users-count = nombre d'utilisateurs dans le groupe de profil +alert.total-revenue = revenus totaux +alert.average-revenue-per-user = revenus moyens par utilisateur +alert.average-revenue-per-paying-user = revenus moyens par utilisateur payant +alert.paying-users-count = nombre d'utilisateurs payants diff --git a/plugins/browser/frontend/public/localization/browser_fr.properties b/plugins/browser/frontend/public/localization/browser_fr.properties index 498a7ba4e7b..c08b05e2202 100644 --- a/plugins/browser/frontend/public/localization/browser_fr.properties +++ b/plugins/browser/frontend/public/localization/browser_fr.properties @@ -8,4 +8,4 @@ help.browser.chart = Pie chart on the left shows total visitors from each browse browser.browser-for = Browsers for browser.version-distribution = Browsers Version Distribution browser.versions = Versions -browser.drill-data = Drill Data +browser.drill-data = Drill Data \ No newline at end of file diff --git a/plugins/compare/frontend/public/localization/compare_fr.properties b/plugins/compare/frontend/public/localization/compare_fr.properties index 6f430701a50..608107999d2 100644 --- a/plugins/compare/frontend/public/localization/compare_fr.properties +++ b/plugins/compare/frontend/public/localization/compare_fr.properties @@ -1,7 +1,7 @@ # e.g. select maximum 10 events to compare compare.plugin-title = Compare -compare.plugin-description = Extensible plugin to compare multiple apps and custom events -compare.limit = Select maximum {0} {1} to compare +compare.plugin-description = Extensible plugin to compare multiple apps and custom events. +compare.limit = Select a maximum of {0} {1} to compare compare.button = Compare compare.back = Back compare.results.by = Results by @@ -19,7 +19,7 @@ compare.apps.app-name = App Name compare.apps.total-unique = Total Visitors/Users compare.apps.new-unique = New Visitors/Users compare.apps.all-apps = All apps -compare.apps.maximum.placeholder = Select maximum 20 applications to compare +compare.apps.maximum.placeholder = Select a maximum of 20 applications to compare compare.apps.results.by.total.sessions = Total Sessions compare.apps.results.by.total.visitors = Total Visitors / Users compare.apps.results.by.new.visitors = New Visitors / Users @@ -32,7 +32,7 @@ compare.apps.table.new.users = NEW VISITORS/USERS compare.apps.table.time.spent = TIME SPENT compare.apps.table.avg.session.duration = AVG. SESSION DURATION compare.apps.metric = METRIC -compare.events.title = COMPARE EVENTS +compare.events.title = Compare Events compare.events = Compare compare.events.event = EVENT compare.events.count = COUNT @@ -44,4 +44,4 @@ compare.events.results.by.sum = Sum compare.events.results.by.duration = Duration compare.events.results.by.avg.duration = Avg. Duration compare.events.previous.period = Previous Period -compare.events.metric = METRIC +compare.events.metric = METRIC \ No newline at end of file diff --git a/plugins/compliance-hub/frontend/public/localization/compliance-hub_fr.properties b/plugins/compliance-hub/frontend/public/localization/compliance-hub_fr.properties index 1964a6cceab..9f8df6a0766 100644 --- a/plugins/compliance-hub/frontend/public/localization/compliance-hub_fr.properties +++ b/plugins/compliance-hub/frontend/public/localization/compliance-hub_fr.properties @@ -1,10 +1,10 @@ #consent compliance_hub.title = Compliance Hub compliance-hub.plugin-title = Data Compliance Hub -compliance-hub.description = Providing and aggregating features in compliance with GDPR -compliance_hub.Export-finished = App User export finished -compliance_hub.App-user-deleted = App User deleted -compliance_hub.Export-file-deleted = App User export file deleted +compliance-hub.description = Provides and aggregates features in compliance with GDPR. +compliance_hub.Export-finished = App User Export Finished. +compliance_hub.App-user-deleted = App User Deleted. +compliance_hub.Export-file-deleted = App User Export File Deleted. compliance_hub.Sessions = Sessions compliance_hub.Events = Events compliance_hub.Views = Views @@ -21,7 +21,7 @@ consent.changes = Changes consent.opt-i = Opt in consent.opt-o = Opt out consent.opt-in = Opted in for {0} feature(s) -consent.opt-out = Opted out from {0} feature(s) +consent.opt-out = Opted out of {0} feature(s) consent.metrics = Metrics consent.data-compliance = Data compliance metrics consent.history = Consent history @@ -29,13 +29,13 @@ consent.history-for = Consent history for {0} consent.go-history = Go to consent history consent.export-history = Export/Purge history consent.search-device-id = Search for Device ID -consent.userdata-exports = User data exports -consent.userdata-purges = User data purges +consent.userdata-exports = User data exports. +consent.userdata-purges = User data purges. consent.type = Consent type consent.feature = Feature type -consent.metrics-desc = View consent requests (opt-ins or opt-outs) in a time series graph +consent.metrics-desc = View consent requests (opt-ins or opt-outs) in a time-series graph. consent.users-desc = View list of users and their consent states consent.history-desc = View a history of consent changes consent.exports-desc = View all export and purge actions previously executed userdata.consents = User's consent history -internal-events.[CLY]_consent = Consent +internal-events.[CLY]_consent = Consent \ No newline at end of file diff --git a/plugins/consolidate/frontend/public/localization/consolidate_fr.properties b/plugins/consolidate/frontend/public/localization/consolidate_fr.properties index 37c2745e408..ce49b1006f9 100644 --- a/plugins/consolidate/frontend/public/localization/consolidate_fr.properties +++ b/plugins/consolidate/frontend/public/localization/consolidate_fr.properties @@ -4,4 +4,4 @@ consolidate.plugin-title = Consolidate consolidate.plugin-description = Duplicate data from multiple apps into a single app consolidate.app = Select apps for consolidation configs.help.consolidate-app = Select applications from which data will be combined into this application. -configs.help.consolidate-select-apps = Please select the applications from list +configs.help.consolidate-select-apps = Please select the applications from list \ No newline at end of file diff --git a/plugins/crashes/frontend/public/javascripts/countly.views.js b/plugins/crashes/frontend/public/javascripts/countly.views.js index 2f32ce9f589..5813804f712 100644 --- a/plugins/crashes/frontend/public/javascripts/countly.views.js +++ b/plugins/crashes/frontend/public/javascripts/countly.views.js @@ -47,31 +47,31 @@ filterProperties.push( new countlyQueryBuilder.Property({ id: "nonfatal", - name: "Fatality", + name: jQuery.i18n.prop("crashes.fatality") || "Fatality", type: countlyQueryBuilder.PropertyType.LIST, group: "Main", getValueList: function() { return [ - {name: "Fatal", value: false}, - {name: "Non-fatal", value: true} + {name: jQuery.i18n.prop("crashes.fatal") || "Fatal", value: false}, + {name: jQuery.i18n.prop("crashes.non-fatal") || "Non-fatal", value: true} ]; } }), new countlyQueryBuilder.Property({ id: "is_hidden", - name: "Visibility", + name: jQuery.i18n.prop("crashes.visibility") || "Visibility", type: countlyQueryBuilder.PropertyType.LIST, group: "Main", getValueList: function() { return [ - {name: "Hidden", value: true}, - {name: "Shown", value: false} + {name: jQuery.i18n.prop("crashes.hidden") || "Hidden", value: true}, + {name: jQuery.i18n.prop("crashes.shown") || "Shown", value: false} ]; } }), new countlyQueryBuilder.Property({ id: "is_new", - name: "Viewed", + name: jQuery.i18n.prop("crashes.viewed") || "Viewed", type: countlyQueryBuilder.PropertyType.LIST, group: "Main", getValueList: function() { @@ -83,7 +83,7 @@ }), new countlyQueryBuilder.Property({ id: "is_renewed", - name: "Reoccured", + name: jQuery.i18n.prop("crashes.reoccurred") || "Reoccurred", type: countlyQueryBuilder.PropertyType.LIST, group: "Main", getValueList: function() { @@ -95,7 +95,7 @@ }), new countlyQueryBuilder.Property({ id: "is_resolved", - name: "Resolved", + name: jQuery.i18n.prop("crashes.resolved") || "Resolved", type: countlyQueryBuilder.PropertyType.LIST, group: "Main", getValueList: function() { @@ -107,7 +107,7 @@ }), new countlyQueryBuilder.Property({ id: "is_resolving", - name: "Resolving", + name: jQuery.i18n.prop("crashes.resolving") || "Resolving", type: countlyQueryBuilder.PropertyType.LIST, group: "Main", getValueList: function() { diff --git a/plugins/crashes/frontend/public/localization/crashes.properties b/plugins/crashes/frontend/public/localization/crashes.properties index f8d01454d31..d5b18109458 100644 --- a/plugins/crashes/frontend/public/localization/crashes.properties +++ b/plugins/crashes/frontend/public/localization/crashes.properties @@ -263,4 +263,13 @@ crashes.user = User crashes.minutes-short = mins crashes.detail = Crash Detail crashes.filter.orientation.portrait = Portrait -crashes.filter.orientation.landscape = Landscape \ No newline at end of file +crashes.filter.orientation.landscape = Landscape + +# Filter properties +crashes.fatality = Fatality +crashes.fatal = Fatal +crashes.non-fatal = Non-fatal +crashes.visibility = Visibility +crashes.shown = Shown +crashes.viewed = Viewed +crashes.reoccurred = Reoccurred \ No newline at end of file diff --git a/plugins/crashes/frontend/public/localization/crashes_fr.properties b/plugins/crashes/frontend/public/localization/crashes_fr.properties index 23a401c228d..d5c2a9c2ba6 100644 --- a/plugins/crashes/frontend/public/localization/crashes_fr.properties +++ b/plugins/crashes/frontend/public/localization/crashes_fr.properties @@ -1,215 +1,234 @@ #crashes -crashes.title = Crashes -crashes.plugin-title = Crash analytics -crashes.plugin-description = See actionable information about crashes and exceptions including which users are impacted -crashes.not-found = This crash report cannot be viewed. Possible reasons:

You are trying to view a crash report that you do not have access to or
Link to this crash is invalid. -crashes.search = Search for Error -crashes.all = All -crashes.show = Show -crashes.hide = Hide -crashes.delete = Delete -crashes.hidden = Hidden -crashes.resolution-status = Resolution Status -crashes.resolved = Resolved -crashes.resolved-for = Resolved for -crashes.unresolved = Unresolved -crashes.resolving = Resolving -crashes.unprocessed = Unprocessed -crashes.unresolved-crashes = Unresolved crashes -crashes.groupid = Crash ID -crashes.platform = Platform -crashes.platform_version = Platform Version -crashes.error = Error +crashes.title = Crashs +crashes.plugin-title = Analyse des crashs +crashes.plugin-description = Consultez des informations exploitables sur les crashs et exceptions, y compris les utilisateurs impactés. +crashes.nsystemlogs.action.crash_resolved = Crash résolu +systemlogs.action.crash_unresolved = Crash non résolu +systemlogs.action.crash_shared = Crash partagé +systemlogs.action.crash_unshared = Crash non partagé +systemlogs.action.crash_modify_share = Partage de crash modifié +systemlogs.action.crash_hidden = Crash masqué +systemlogs.action.crash_shown = Crash affiché +systemlogs.action.crash_added_comment = Commentaire ajouté au crash +systemlogs.action.crash_edited_comment = Commentaire de crash modifié +systemlogs.action.crash_deleted_comment = Commentaire de crash supprimé +systemlogs.action.crash_deleted = Crash supprimé +systemlogs.action.crash_group_deleted = Les données du groupe de crash ont été supprimées. +internal-events.[CLY]_crash = Crash rapport de crash ne peut pas être consulté. Raisons possibles : Vous essayez de consulter un rapport de crash auquel vous n'avez pas accès ou le lien vers ce crash est invalide. +crashes.search = Rechercher une erreur +crashes.all = Tous +crashes.show = Afficher +crashes.hide = Masquer +crashes.delete = Supprimer +crashes.hidden = Masqué +crashes.resolution-status = Statut de résolution +crashes.resolved = Résolu +crashes.resolved-for = Résolu pour +crashes.unresolved = Non résolu +crashes.resolving = En cours de résolution +crashes.unprocessed = Non traité +crashes.unresolved-crashes = Crashs non résolus +crashes.groupid = ID du crash +crashes.platform = Plateforme +crashes.platform_version = Version de la plateforme +crashes.error = Erreur crashes.reports = Occurrences -crashes.last_time = Last occurrence -crashes.latest_app = Latest app version -crashes.build_id = App Build Number -crashes.build_info = Build Info -crashes.users = Users -crashes.crashed = Crashed -crashes.last-crash = Last Crash -crashes.highest-version = Latest App Version +crashes.last_time = Dernière occurrence +crashes.latest_app = Dernière version de l'app +crashes.build_id = Numéro de build de l'app +crashes.build_info = Informations de build +crashes.users = Utilisateurs +crashes.crashed = A crashé +crashes.last-crash = Dernier crash +crashes.highest-version = Dernière version de l'app crashes.os = OS -crashes.varies = Varies -crashes.view = View -crashes.browser = Browser -crashes.os_version = OS Version -crashes.app_version = App Version -crashes.manufacture = Manufacturer -crashes.device = Device -crashes.group-metrics = Device properties -crashes.group-custom = Custom properties -crashes.resolution = Resolution +crashes.varies = Varie +crashes.view = Voir +crashes.browser = Navigateur +crashes.os_version = Version de l'OS +crashes.app_version = Version de l'app +crashes.manufacture = Fabricant +crashes.device = Appareil +crashes.group-metrics = Propriétés de l'appareil +crashes.group-custom = Propriétés personnalisées +crashes.resolution = Résolution crashes.orientation = Orientation -crashes.root = Rooted/Jailbroken -crashes.online = Crashed when Online -crashes.muted = Crashed while Muted -crashes.background = Crashed in Background -crashes.ram = Ram -crashes.disk = Disk -crashes.battery = Battery -crashes.error-happened = Error happened -crashes.back-to-crashes = Back to crashes overview -crashes.back-to-crash = Back to crash -crashes.crashes-by = Crash occurrences by -crashes.mark-resolved = Mark as resolved -crashes.mark-unresolved = Mark as unresolved -crashes.total = Total Occurences -crashes.total-crashes = Total Crashes -crashes.unique = Unique Crashes -crashes.rate = Crash Frequency -web.crashes.rate = Error Frequency -crashes.top-crash = Top crash type -crashes.affected-users = Affected Users -crashes.free-users = Crash-free Users -web.crashes.free-users = Error-free Users -crashes.free-sessions = Crash-free Sessions -web.crashes.free-sessions = Error-free Sessions -crashes.affected = Affected -crashes.notaffected = Not affected -crashes.top-app = Top App version -crashes.new-crashes = New Crashes -crashes.renew-crashes = Reoccurred Crashes -crashes.new = New -crashes.viewed = Viewed -crashes.fatality = Crash Fatality +crashes.root = Rooté/Jailbreaké +crashes.online = Crashé en ligne +crashes.muted = Crashé en mode silencieux +crashes.background = Crashé en arrière-plan +crashes.ram = RAM +crashes.disk = Disque +crashes.battery = Batterie +crashes.error-happened = Une erreur s'est produite +crashes.back-to-crashes = Retour à l'aperçu des crashs +crashes.back-to-crash = Retour au crash +crashes.crashes-by = Occurrences de crashs par +crashes.mark-resolved = Marquer comme résolu +crashes.mark-unresolved = Marquer comme non résolu +crashes.total = Total des occurrences +crashes.total-crashes = Total des crashs +crashes.unique = Crashs uniques +crashes.rate = Fréquence des crashs +web.crashes.rate = Fréquence des erreurs +crashes.top-crash = Type de crash principal +crashes.affected-users = Utilisateurs affectés +crashes.free-users = Utilisateurs sans crash +web.crashes.free-users = Utilisateurs sans erreur +crashes.free-sessions = Sessions sans crash +web.crashes.free-sessions = Sessions sans erreur +crashes.affected = Affectés +crashes.notaffected = Non affectés +crashes.top-app = Version d'app principale +crashes.new-crashes = Nouveaux crashs +crashes.renew-crashes = Crashs réapparus +crashes.new = Nouveau +crashes.viewed = Vu +crashes.fatality = Fatalité du crash crashes.fatal = Fatal crashes.nonfatal = Non-fatal -crashes.nonfatal-crashes = Non-fatal Crashes -crashes.total-per-session = Crashes / Sessions -web.crashes.total-per-session = Errors / Sessions +crashes.nonfatal-crashes = Crashs non-fatals +crashes.total-per-session = Crashs / Sessions +web.crashes.total-per-session = Erreurs / Sessions crashes.min = MIN crashes.max = MAX -crashes.avg = AVG -crashes.total-stats = Overall statistics -crashes.run = Running -crashes.cpu = CPU model -crashes.opengl = OpenGL version -crashes.state = Device State -crashes.logs = Logs -crashes.custom = Custom -crashes.loss = Revenue Loss -crashes.first-crash = First crash -crashes.after = After +crashes.avg = MOY +crashes.total-stats = Statistiques globales +crashes.run = En cours d'exécution +crashes.cpu = Modèle de CPU +crashes.opengl = Version OpenGL +crashes.state = État de l'appareil +crashes.logs = Journaux +crashes.custom = Personnalisé +crashes.loss = Perte de revenus +crashes.first-crash = Premier crash +crashes.after = Après crashes.sessions = session(s) -crashes.frequency = Frequency -crashes.share = Share -crashes.unshare = Unshare -crashes.public-link = Public link -crashes.public-crashes = Make publicly available -crashes.public-reports = Display latest reports publicly -crashes.public-loss = Display revenue loss publicly -crashes.public-users = Display affected users publicly -crashes.comments = Comments -crashes.crashed-thread = Crashed Thread -crashes.all-threads = All Threads -crashes.author = Author -crashes.add_comment = Add Comment -crashes.posted_comment = Posted -crashes.edit = Edit -crashes.cancel = Cancel -crashes.edited_comment = Edited -crashes.alert-fails = Some operations were not succesful -crashes.confirm-delete = Are you sure you want to delete this crash? -crashes.confirm-comment-delete = Are you sure you want to delete this comment? -crashes.resolved-users = Resolved upgrades -crashes.try-later = Can not perform this operation now, try again later. -crashes.not-viewed = This error is not viewed yet -crashes.re-occurred = This error re-occurred -crashes.expand = EXPAND -crashes.collapse = COLLAPSE -crashes.of-users = {0} of {1} crashes -crashes.make-action = Perform action -crashes.action-disabled-tooltip = Select crashes from the table to perform actions -crashes.action-resolved = Mark as resolved -crashes.action-unresolved = Mark as unresolved -crashes.action-view = Mark as seen -crashes.action-hide = Mark as hidden -crashes.action-show = Mark as not hidden -crashes.action-deselect = Deselect all -crashes.action-delete = Delete -crashes.action-resolving = Mark as resolving -crashes.confirm-action-resolved = Are you sure you want to mark {0} item(s) as resolved -crashes.confirm-action-unresolved = Are you sure you want to mark {0} item(s) as unresolved -crashes.confirm-action-view = Are you sure you want to mark {0} item(s) as seen -crashes.confirm-action-hide = Are you sure you want to hide {0} item(s) -crashes.confirm-action-show = Are you sure you want to unhide {0} item(s) -crashes.confirm-action-resolving = Are you sure you want to move {0} item(s) to resolving state? +crashes.frequency = Fréquence +crashes.share = Partager +crashes.unshare = Ne plus partager +crashes.public-link = Lien public +crashes.public-crashes = Rendre publiquement disponible +crashes.public-reports = Afficher publiquement les derniers rapports +crashes.public-loss = Afficher publiquement la perte de revenus +crashes.public-users = Afficher publiquement les utilisateurs affectés +crashes.comments = Commentaires +crashes.crashed-thread = Thread du crash +crashes.all-threads = Tous les threads +crashes.author = Auteur +crashes.add_comment = Ajouter un commentaire +crashes.posted_comment = Publié +crashes.edit = Modifier +crashes.cancel = Annuler +crashes.edited_comment = Modifié +crashes.alert-fails = Certaines opérations n'ont pas réussi +crashes.confirm-delete = Êtes-vous sûr de vouloir supprimer ce crash ? +crashes.confirm-comment-delete = Êtes-vous sûr de vouloir supprimer ce commentaire ? +crashes.resolved-users = Mises à niveau résolues +crashes.try-later = Impossible d'effectuer cette opération maintenant, réessayez plus tard. +crashes.not-viewed = Cette erreur n'a pas encore été consultée +crashes.re-occurred = Cette erreur s'est reproduite +crashes.expand = DÉVELOPPER +crashes.collapse = RÉDUIRE +crashes.of-users = {0} sur {1} crashs +crashes.make-action = Effectuer une action +crashes.action-disabled-tooltip = Sélectionnez des crashs dans le tableau pour effectuer des actions +crashes.action-resolved = Marquer comme résolu +crashes.action-unresolved = Marquer comme non résolu +crashes.action-view = Marquer comme vu +crashes.action-hide = Marquer comme masqué +crashes.action-show = Marquer comme non masqué +crashes.action-deselect = Désélectionner tout +crashes.action-delete = Supprimer +crashes.action-resolving = Marquer comme en résolution +crashes.confirm-action-resolved = Êtes-vous sûr de vouloir marquer {0} élément(s) comme résolu(s) +crashes.confirm-action-unresolved = Êtes-vous sûr de vouloir marquer {0} élément(s) comme non résolu(s) +crashes.confirm-action-view = Êtes-vous sûr de vouloir marquer {0} élément(s) comme vu(s) +crashes.confirm-action-hide = Êtes-vous sûr de vouloir masquer {0} élément(s) +crashes.confirm-action-show = Êtes-vous sûr de vouloir afficher {0} élément(s) +crashes.confirm-action-resolving = Êtes-vous sûr de vouloir déplacer {0} élément(s) vers l'état en cours de résolution ? +crashes.confirm-action-title = Supprimer le groupe de crash +crashes.confirm-action-title-plural = Supprimer les groupes de crash +crashes.yes-delete = Oui, supprimer le groupe crashes.stacktrace = Stacktrace -crashes.download-stacktrace = Download stacktrace -crashes.download-binary = Download binary +crashes.download-stacktrace = Télécharger la stacktrace +crashes.download-binary = Télécharger le binaire -crashes.confirm-action-delete = Are you sure you want to permanently delete {0} item(s) -crashes.help-crash-group = An overview of all Crash Groups. Filter, edit, and review the Crash Groups to see crash details. -crashes.help-crash-statistics = An overview of the statistics of all crashes, as well as a graphic representation of selected crash metrics, in a selected time period. -crashes.help-resolved-users = Timeline of resolved crashes for users, due to user app upgrades to an app version which resolves a crash -crashes.help-loss = Value of revenue potentially lost as a result of crashes occurred on Revenue Events. -crashes.help-root = Percentage of rooted/jailbroken devices -crashes.help-online = Percentage of devices that were connected to Internet during crash -crashes.help-muted = Percentage of devices that were muted during crash (i.e. volume level 0) -crashes.help-background = Percentage of devices that had your app in background during crash -crashes.help-platform = Platform of the crash -crashes.help-reports = How many times this crash occurred -crashes.help-affected = Amount of all your app users that had this crash. Amount gets reduced when users upgrade to version higher than for which crash was resolved -crashes.help-app-version = Latest app version that you released to market that had this crash -crashes.help-latest-version = Latest app version that you released to market that had any crash -crashes.help-unresolved = Amount of unresolved crashes -crashes.help-resolved = Percentage of the crashes that have been resolved over the total number of crashes that have occurred. -crashes.help-frequency-short = How often in amount of sessions the app crashes for each user -crashes.help-affected-levels = Breakdown of affected users, who had at least one fatal crash, then at least one only non-fatal crash/catched exception and unaffected users, that did not have any crashes or their crashes were resolved. Amount of affected users gets reduced when users upgrade to version higher than for which crash was resolved -crashes.help-platforms = Details of the platforms on which crashes have occurred. Top 4 platforms are listed here. -crashes.help-fatals = Comparison of fatal crashes and non-fatal/catched exceptions -crashes.help-new = Number of crashes that have not yet been viewed. -crashes.help-reoccurred = Number of crashes that have occurred multiple times. -crashes.help-total = Timeline of all occurrences of all crashes. Same crash may occurred multiple times for same or different users. -crashes.help-nonfatal = Timeline of non-fatal crashes or catched exceptions that were reported to server -crashes.help-session = Timeline for crashes/session in % -crashes.help-unique = Timeline of crash types. Only the first ocurrence of each crash time recorded here. -crashes.help-fatal = Timeline of fatal crashes, which made users exit your app -crashes.help-ram = Shows how much RAM was in use at the time of the crash, displaying the average, minimum, and maximum amounts of RAM used when the crash occurred. -crashes.help-disk = Shows how full was disk space in the moment of crash, displaying the average, minimum, and maximum values of all crashes -crashes.help-battery = Shows how full was the battery at the moment of crash, displaying the average, minimum, and maximum values of all crashes -crashes.help-run = Showing how long app was running before it crashed, displaying the average, minimum, and maximum values of all crashes -crashes.help-frequency = Showing how often in amount of sessions does the app crash for each user, displaying minimum amount of sessions between crashes, maximum amount and average value of sessions between each repeated crash -crashes.help-free-users= Number of users who have not experienced a crash for the applied filter in the selected time period, expressed as a percentage of the total number of users within that time period. -crashes.help-free-sessions = Number of sessions during which the selected crash did not occur in the selected time period, expressed as a percentage of the total number of sessions within that time period. -crashes.help-crash-fatality = Number of fatal crashes, expressed as a percentage of the total number of crashes that have occurred. +crashes.confirm-action-delete = Êtes-vous sûr de vouloir supprimer définitivement {0} élément(s) +crashes.help-crash-group = Un aperçu de tous les groupes de crash. Filtrez, modifiez et examinez les groupes de crash pour voir les détails des crashs. +crashes.help-crash-statistics = Un aperçu des statistiques de tous les crashs, ainsi qu'une représentation graphique des métriques de crash sélectionnées, dans une période donnée. +crashes.help-resolved-users = Chronologie des crashs résolus pour les utilisateurs, due aux mises à niveau des utilisateurs vers une version d'application qui résout un crash +crashes.help-loss = Valeur des revenus potentiellement perdus à la suite de crashs survenus lors d'événements générant des revenus. +crashes.help-root = Pourcentage d'appareils rootés/jailbreakés +crashes.help-online = Pourcentage d'appareils qui étaient connectés à Internet lors du crash +crashes.help-muted = Pourcentage d'appareils qui étaient en mode silencieux lors du crash (c.-à-d. niveau de volume 0) +crashes.help-background = Pourcentage d'appareils qui avaient votre application en arrière-plan lors du crash +crashes.help-platform = Plateforme du crash +crashes.help-reports = Nombre de fois où ce crash s'est produit +crashes.help-affected = Nombre de tous vos utilisateurs d'application qui ont eu ce crash. Le nombre diminue lorsque les utilisateurs passent à une version supérieure à celle pour laquelle le crash a été résolu +crashes.help-app-version = Dernière version de l'application que vous avez publiée sur le marché qui a eu ce crash +crashes.help-latest-version = Dernière version de l'application que vous avez publiée sur le marché qui a eu un crash +crashes.help-unresolved = Nombre de crashs non résolus +crashes.help-resolved = Pourcentage de crashs qui ont été résolus par rapport au nombre total de crashs qui se sont produits. +crashes.help-frequency-short = Fréquence en nombre de sessions entre les crashs de l'application pour chaque utilisateur +crashes.help-affected-levels = Répartition des utilisateurs affectés, qui ont eu au moins un crash fatal, puis au moins un crash non fatal/exception capturée, et des utilisateurs non affectés, qui n'ont pas eu de crashs ou dont les crashs ont été résolus. Le nombre d'utilisateurs affectés diminue lorsque les utilisateurs passent à une version supérieure à celle pour laquelle le crash a été résolu. +crashes.help-platforms = Détails des plateformes sur lesquelles des crashs se sont produits. Les 4 principales plateformes sont listées ici. +crashes.help-fatals = Comparaison des crashs fatals et des exceptions non fatales/capturées +crashes.help-new = Nombre de crashs qui n'ont pas encore été consultés. +crashes.help-reoccurred = Nombre de crashs qui se sont produits plusieurs fois. +crashes.help-total = Chronologie de toutes les occurrences de tous les crashs. Le même crash peut s'être produit plusieurs fois pour le même utilisateur ou pour différents utilisateurs. +crashes.help-nonfatal = Chronologie des crashs non fatals ou des exceptions capturées qui ont été signalés au serveur +crashes.help-session = Chronologie des crashs/session en % +crashes.help-unique = Chronologie des types de crash. Seule la première occurrence de chaque type de crash est enregistrée ici. +crashes.help-fatal = Chronologie des crashs fatals qui ont fait quitter votre application aux utilisateurs +crashes.help-ram = Montre la quantité de RAM utilisée au moment du crash, affichant les valeurs moyenne, minimale et maximale de RAM utilisée lors du crash. +crashes.help-disk = Montre le niveau de remplissage de l'espace disque au moment du crash, affichant les valeurs moyenne, minimale et maximale de tous les crashs. +crashes.help-battery = Montre le niveau de charge de la batterie au moment du crash, affichant les valeurs moyenne, minimale et maximale de tous les crashs. +crashes.help-run = Montre depuis combien de temps l'application était en cours d'exécution avant de crasher, affichant les valeurs moyenne, minimale et maximale de tous les crashs. +crashes.help-frequency = Montre la fréquence, en nombre de sessions, des crashs de l'application pour chaque utilisateur, affichant le nombre minimum de sessions entre les crashs, le nombre maximum et la valeur moyenne des sessions entre chaque crash répété. +crashes.help-free-users= Le nombre d'utilisateurs qui n'ont pas subi de crash pour le filtre appliqué dans la période sélectionnée, exprimé en pourcentage du nombre total d'utilisateurs dans cette période. +crashes.help-free-sessions = Nombre de sessions pendant lesquelles le crash sélectionné ne s'est pas produit dans la période sélectionnée, exprimé en pourcentage du nombre total de sessions dans cette période. +crashes.help-crash-fatality = Nombre de crashs fatals, exprimé en pourcentage du nombre total de crashs qui se sont produits. -crashes.report_limit = Amount of reports displayed -crashes.total_overall=OVERALL -crashes.fatal_crash_count=Fatal Crash Count -web.crashes.fatal_crash_count=Fatal Error Count +crashes.groups-confirm-delete= 1 élément sera affecté par cette action +crashes.groups-confirm-delete-plural= {0} éléments seront affectés par cette action +crashes.groups-want-to-delete= Voulez-vous supprimer définitivement le(s) groupe(s) de crash ? Cette action n'est pas réversible. -crashes.filter.reset-filters=Reset Filters -crashes.filter.all-fatalities=Overall -crashes.filter.all-versions=All Versions -crashes.filter.all-platforms=All Platforms +crashes.report_limit = Nombre de rapports affichés +crashes.total_overall=GLOBAL +crashes.fatal_crash_count=Nombre de crashs fatals +web.crashes.fatal_crash_count=Nombre d'erreurs fatales -crashes.grouping_strategy = Crash grouping strategy -crashes.grouping_strategy.stacktrace = By full stack trace -crashes.grouping_strategy.error_and_file = Error and file where error happened -configs.help.crashes-grouping_strategy = How crashes should be grouped together +crashes.filter.reset-filters=Réinitialiser les filtres +crashes.filter.all-fatalities=Global +crashes.filter.all-versions=Toutes les versions +crashes.filter.all-platforms=Toutes les plateformes -crashes.smart_preprocessing = Smart stack trace preprocessing -configs.help.crashes-smart_preprocessing = Merges together more groups by removing dynamic content based on heuristics +crashes.grouping_strategy = Stratégie de regroupement des crashs +crashes.grouping_strategy.stacktrace = Par trace de pile complète +crashes.grouping_strategy.error_and_file = Erreur et fichier où l'erreur s'est produite +configs.help.crashes-grouping_strategy = Comment les crashs doivent être regroupés ensemble -crashes.smart_regexes = Smart regexes to remove information from stacktrace -configs.help.crashes-smart_regexes = JavaScript regex as string without needed options, one regex per new line, (example removing contents between {} brackets: {.*?}), test: stack.replace(new RegExp(reg, "gim"), ""); +crashes.smart_preprocessing = Prétraitement intelligent de la trace de pile +configs.help.crashes-smart_preprocessing = Fusionne davantage de groupes en supprimant le contenu dynamique basé sur des heuristiques -crashes.same_app_version_crash_update = Latest crash update -configs.help.crashes-same_app_version_crash_update = Update latest crash in crashgroup even when incoming crash has the same app version as latest crash +crashes.smart_regexes = Expressions régulières intelligentes pour supprimer des informations de la stacktrace +configs.help.crashes-smart_regexes = Expression régulière JavaScript sous forme de chaîne sans options nécessaires, une regex par nouvelle ligne, (exemple de suppression du contenu entre accolades {} : {.*?}), test : stack.replace(new RegExp(reg, "gim"), ""); -crashes.max_custom_field_keys = Maximum custom field keys -configs.help.crashes-max_custom_field_keys = Maximum number of unique custom field keys to keep in a crashgroup. Do not set a large number for this as it will increase the size of the crashgroup data being saved. +crashes.same_app_version_crash_update = Mise à jour du dernier crash +configs.help.crashes-same_app_version_crash_update = Mettre à jour le dernier crash dans le groupe de crashs même lorsque le crash entrant a la même version d'application que le dernier crash -crashes.activate_custom_field_cleanup_job = Activate custom field cleanup job -configs.help.crashes-activate_custom_field_cleanup_job = This job will try to cleanup custom field from crashgroups. Do not activate this when there are a very large number of crashgroups (around 100.000 or more). +crashes.max_custom_field_keys = Nombre maximum de clés de champs personnalisés +configs.help.crashes-max_custom_field_keys = Nombre maximum de clés de champs personnalisés uniques à conserver dans un groupe de crashs. Ne définissez pas un nombre élevé car cela augmentera la taille des données du groupe de crashs enregistrées. -crashes.home.total = Total number of crashes or crash groups occurrences for the applied filter, in the selected time period. -crashes.home.unique = Number of crashes (fatal or non-fatal) that occurred uniquely, in the selected time period. Only the first occurrence of the crash is recorded. -crashes.home.per-session=Number of crashes for the applied filter occurring per session, expressed as a percentage, in the selected time period. +crashes.activate_custom_field_cleanup_job = Activer la tâche de nettoyage des champs personnalisés +configs.help.crashes-activate_custom_field_cleanup_job = Cette tâche essaiera de nettoyer les champs personnalisés des groupes de crashs. Ne l'activez pas lorsqu'il y a un très grand nombre de groupes de crashs (environ 100 000 ou plus). + +crashes.home.total = Nombre total d'occurrences de crashs ou de groupes de crashs pour le filtre appliqué, dans la période sélectionnée. +crashes.home.unique = Nombre de crashs (fatals ou non fatals) qui se sont produits de façon unique, dans la période sélectionnée. Seule la première occurrence du crash est enregistrée. +crashes.home.per-session=Nombre de crashs pour le filtre appliqué se produisant par session, exprimé en pourcentage, dans la période sélectionnée. systemlogs.action.crash_resolved = Crash Resolved systemlogs.action.crash_unresolved = Crash Unresolved systemlogs.action.crash_shared = Crash Shared @@ -221,38 +240,48 @@ systemlogs.action.crash_added_comment = Crash Added Comment systemlogs.action.crash_edited_comment = Crash Edited Comment systemlogs.action.crash_deleted_comment = Crash Deleted Comment systemlogs.action.crash_deleted = Crash Deleted +systemlogs.action.crash_group_deleted = Crash group’s data has been deleted. internal-events.[CLY]_crash = Crash -crashes.show-binary-images = Show binary images -crashes.binary-images = Binary Images -crashes.go-to-crashes = Go to Crashes -web.crashes.go-to-crashes = Go to Errors -crashes.app-performance = App Performance +crashes.show-binary-images = Afficher les images binaires +crashes.binary-images = Images binaires +crashes.go-to-crashes = Aller aux crashs +web.crashes.go-to-crashes = Aller aux erreurs +crashes.app-performance = Performance de l'application -crashes.crash-group = Crash Group -web.crashes.crash-group = Error Group -crashes.crash-groups = Crash Groups -web.crashes.crash-groups = Error Groups -crashes.crash-statistics = Crash Statistics -web.crashes.crash-statistics = Error Statistics -crashes.top-platforms = Top Platforms -crashes.crash-filters = Crash Filters -crashes.reoccuring = Reoccuring -crashes.every-n-sessions = Every {0} Sessions -crashes.every-session = Every Session -crashes.shown = Shown -crashes.no-comments-yet = No comments, yet... -crashes.no-comments-yet-long = No comments here right now. Add a comment to share your thoughts. -crashes.crash-metrics = Crash Metrics -crashes.average = Average +crashes.crash-group = Groupe de crash +web.crashes.crash-group = Groupe d'erreur +crashes.crash-groups = Groupes de crash +web.crashes.crash-groups = Groupes d'erreur +crashes.crash-statistics = Statistiques de crash +web.crashes.crash-statistics = Statistiques d'erreur +crashes.top-platforms = Principales plateformes +crashes.crash-filters = Filtres de crash +crashes.reoccuring = Récurrent +crashes.every-n-sessions = Toutes les {0} sessions +crashes.every-session = Chaque session +crashes.shown = Affiché +crashes.no-comments-yet = Pas encore de commentaires... +crashes.no-comments-yet-long = Pas de commentaires ici pour le moment. Ajoutez un commentaire pour partager vos réflexions. +crashes.crash-metrics = Métriques de crash +crashes.average = Moyenne crashes.minimum = Minimum crashes.maximum = Maximum -crashes.crash-occurences-by = {0} Crash Occurences by -web.crashes.crash-occurences-by = {0} Error Occurences by -crashes.crash-occurences = Crash Occurences -web.crashes.crash-occurences = Error Occurences -crashes.sdk-logs = SDK Logs -crashes.user = User -crashes.minutes-short = mins -crashes.detail = Crash Detail +crashes.crash-occurences-by = {0} Occurrences de crash par +web.crashes.crash-occurences-by = {0} Occurrences d'erreur par +crashes.crash-occurences = Occurrences de crash +web.crashes.crash-occurences = Occurrences d'erreur +crashes.sdk-logs = Journaux SDK +crashes.user = Utilisateur +crashes.minutes-short = min +crashes.detail = Détail du crash crashes.filter.orientation.portrait = Portrait -crashes.filter.orientation.landscape = Landscape +crashes.filter.orientation.landscape = Paysage + +# Filter properties +crashes.fatality = Fatalité +crashes.fatal = Fatal +crashes.non-fatal = Non-fatal +crashes.visibility = Visibilité +crashes.shown = Affiché +crashes.viewed = Vu +crashes.reoccurred = Réapparu \ No newline at end of file diff --git a/plugins/dashboards/frontend/public/localization/dashboards_fr.properties b/plugins/dashboards/frontend/public/localization/dashboards_fr.properties index 79df0ec9d17..b5b456cc996 100644 --- a/plugins/dashboards/frontend/public/localization/dashboards_fr.properties +++ b/plugins/dashboards/frontend/public/localization/dashboards_fr.properties @@ -1,13 +1,13 @@ #No dashboards dashboards.home-title = Welcome to Dashboards -dashboards.home-description = Dashboards lets you visualise data for multiple applications and metrics with ease. Using full screen mode on a TV you will always be on top of your KPIs. +dashboards.home-description = Dashboards let you visualize data for multiple applications and metrics with ease. By using full-screen mode on a TV, you'll always stay on top of your KPIs. dashboards.save-dashboard = Save Changes dashboards.activate-full-screen = Activate full screen mode #No widgets dashboards.empty-dashboard = Your dashboard is empty -dashboards.empty-dashboard-description = Create your own composition of widgets to focus on metrics most important for your business -dashboards.select-cohorts-multi = Select maximum 5 cohorts +dashboards.empty-dashboard-description = Create your own composition of widgets to focus on the metrics most important to your business +dashboards.select-cohorts-multi = Select up to 5 cohorts dashboards.cohorts-label = Cohorts dashboards.cohorts-visualization = Visualization dashboards.bar-chart-multi-cohort = Bar Chart @@ -22,14 +22,17 @@ dashboards.create-and-add = Create and add widget dashboards.save-changes = Save Changes dashboards.dashboard-theme = Dashboard theme -dashboards.create-email-reports = Create E-mail Report +dashboards.create-email-reports = Create Email Report dashboards.select_dashboards = Select custom dashboard to receive reports from dashboards.select-report-date-range = Select dashboard data date range dashboards.select = Select dashboard dashboards.select-date-range = Select date range dashboards.report = Dashboard report +dashboards.period = Period dashboards.custom-period = Use custom time period dashboards.custom-cohort-widget-title= Show overall number of users in the chart +dashboards.custom-refresh-rate = Custom refresh rate +dashboards.custom-refresh-rate-description = The refresh rate should be specified in minutes, with a minimum value of 5 minutes. The dashboard will attempt to refresh report-based widgets (such as funnels and drills) according to the specified refresh rate. However, if the calculation of any widget takes longer than set refresh rate period, it will not refresh as frequently as the set rate. dashboards.email-subject = {0} stats for {1}! dashbaords.dashboard-theme-1 = Charcoal Blue dashbaords.dashboard-theme-2 = Deep Violet @@ -41,7 +44,7 @@ dashbaords.dashboard-theme-7 = Deep Blue dashboards.compared-to-prev-period = compared to prev.period dashboards.sharing_status = Allow Dashboard Sharing -configs.help.dashboards-sharing_status = Enable dashboard sharing for users to share a dashboard with other users. If set to off, a dashboard cannot be shared with others. +configs.help.dashboards-sharing_status = Enable dashboard sharing for users to share a dashboard with other users. If set to off, dashboards cannot be shared with others. dashboards.access-denied = This dashboard is no longer shared with you or an error has occurred. Please ask your global administrator if you think this is due to an issue. dashbaords.access-denied-title = Access Denied dashboards.edit-access-denied = You don't have the edit permission for this dashboard. Please ask your global administrator if you think this is due to an issue. @@ -77,7 +80,6 @@ dashboards.custom-period.select-date-range = Select period - #Final localization dashboards.plugin-title = Dashboards @@ -88,17 +90,20 @@ dashboards.dashboard-name = Dashboard name dashboards.create-new-dashboard-heading = Create new dashboard dashboards.edit-dashboard-heading = Edit dashboard dashboards.duplicate-dashboard-heading = Duplicate dashboard -dashboards.create-dashboard = Create a dashboard -dashboards.save-dashboard = Save Changes +dashboards.create-dashboard = Create dashboard +dashboards.save-dashboard = Save dashboard dashboards.share.all-users = All users -dashboards.share.all-users.description = Share view access to dashbaord with all users +dashboards.share.all-users.description = Share view access to dashboard with all users dashboards.share.selected-users = Some specific users dashboards.share.selected-users.description = Share the dashboard with some specific users dashboards.share.none = Private dashboards.share.none.description = Share the dashboard with no one dashboards.share-with = Visibility +dashboards.share-with-tooltip-content = The visibility settings for a dashboard are independent from the user’s global permissions. dashboards.user-permissions = User permissions +dashboards.user-permissions-tooltip-content = User permissions for a dashboard are independent from the user’s global permissions. dashboards.user-group-permission = User group permissions +dashboards.user-group-permission-tooltip-content = User group permissions for a dashboard are independent from the user groups global permissions. dashboards.users-edit-permission = Edit permission dashboards.users-view-permission = View-only permission dashboards.enter-user-email = Enter user email @@ -113,7 +118,7 @@ dashboards.duplicate-dashboard = Duplicate dashboards.yes-delete-dashboard = Yes, delete dashboard dashboards.delete-dashboard-title = Delete dashboard? -dashboards.delete-dashboard-text = Do you really want to delete dashboard called {0} ? +dashboards.delete-dashboard-text = Do you really want to delete dashboard called {0} ? dashbaords.created = Created dashbaords.created-by = by {0} @@ -141,6 +146,7 @@ dashboards.plugin-invalid-data = The data for {0} widget is invalid. Please dele dashboards.widget-type-description = Select the type of widget you want to create dashboards.add-note = Add note +dashboards.note-placeholder = Write something ... dashboards.multiple-apps-count = {0} apps @@ -203,7 +209,7 @@ dashboards.crauf = Fatal Crash-Free Users dashboards.craunf = Non-Fatal Crash-Free Users dashboards.crfses = Fatal Crash-Free Sessions dashboards.crnfses = Non-Fatal Crash-Free Sessions -dashboards.send-email = Notify all users via emails +dashboards.send-email = Notify all users via email dashboards.additional-settings = Additional Settings dashboards.dashboard-invite-subtitle = A new dashboard on Countly was shared with you. dashboards.dashboard-invite-content = was shared with you with View permission. Click to access the dashboard. diff --git a/plugins/data-manager/frontend/public/localization/data-manager_fr.properties b/plugins/data-manager/frontend/public/localization/data-manager_fr.properties index a3bc031f7a8..ef6f832cc47 100644 --- a/plugins/data-manager/frontend/public/localization/data-manager_fr.properties +++ b/plugins/data-manager/frontend/public/localization/data-manager_fr.properties @@ -37,7 +37,7 @@ data-manager.empty-placeholder = - data-manager.delete-transformation-title = Delete transformation? data-manager.delete-data-type = Yes, delete property's type data-manager.delete-data-type-title = Delete property's type? -data-manager.confirm-delete-data-type = Are you sure you want to delete property's type?

It will not delete data itself, but will remove property from segmentation inputs.

But if SDK sends data again, it will appear here again +data-manager.confirm-delete-data-type = Are you sure you want to delete property's type? It will not delete data itself, but will remove property from segmentation inputs. But if SDK sends data again, it will appear here again data-manager.validation.error.data_type_mismatch = Data type planned on UI and sent via SDK don't match together. data-manager.validation.error.unexpected-segment = Segment sent by SDK is not Live/Approved on the UI @@ -115,13 +115,13 @@ configs.data-manager.manage-events = Manage Events configs.data-manager.validation-settings = Validation Settings data-manager.enableValidation = Perform Schema Validations for Incoming Data -configs.help.data-manager-enableValidation = For disabled state, you don’t get any error for events, segments or data type validations.
Only global PII regex works for disabled state. +configs.help.data-manager-enableValidation = For disabled state, you don’t get any error for events, segments or data type validations. Only global PII regex works for disabled state. data-manager.allowUnplannedEvents = Manage Events -configs.help.data-manager-allowUnplannedEvents = Allow unplanned events : Unplanned events are visible on all features that use event data on Countly and tagged as “Unplanned” on Data Manager.

Don't allow unplanned events : Unplanned events are NOT visible on all features that use event data on Countly and tagged as “Unplanned” on Data Manager. This option is recommended to keep your data clean. +configs.help.data-manager-allowUnplannedEvents = Allow unplanned events : Unplanned events are visible on all features that use event data on Countly and tagged as “Unplanned” on Data Manager. Don't allow unplanned events : Unplanned events are NOT visible on all features that use event data on Countly and tagged as “Unplanned” on Data Manager. This option is recommended to keep your data clean. data-manager.triggerUnplannedError = Trigger Validation For Unplanned Events -configs.help.data-manager-triggerUnplannedError = You dont get any validation error from Data Manager for disabled state.
Enabled state is highly recommended if Manage Events setting is selected as “Don't allow unplanned event” above. +configs.help.data-manager-triggerUnplannedError = You dont get any validation error from Data Manager for disabled state. Enabled state is highly recommended if Manage Events setting is selected as “Don't allow unplanned event” above. data-manager.segmentLevelValidationAction = Segment Level Validation Action configs.help.data-manager-segmentLevelValidationAction = Action to take when a segment level regex matches. @@ -138,7 +138,7 @@ data-manager.global-description = Can be seen by everyone. data-manager.private = Private data-manager.private-description = Can be seen by the creator. data-manager.uncategorized = Uncategorized -data-manager.created = Transformation Created! +data-manager.created = Created data-manager.approved = Approved data-manager.live = Live data-manager.blocked = Blocked @@ -223,7 +223,7 @@ data-manager.new-segmentation-name = New Segmentation Name data-manager.segmentation-name = Segmentation Name data-manager.segmentation-details = Segmentation Details data-manager.new-segmentation-name.placeholder = Name -data-manager.select-property = Select property +data-manager.select-property = Select Property data-manager.select-property.tooltip = Select Property data-manager.select-property.placeholder = Select Property data-manager.new-property-name = New Property Name @@ -231,7 +231,6 @@ data-manager.last-modified-on = Last modified on data-manager.description = Description data-manager.first-triggered = First Triggered data-manager.segment-name = Segment Name -data-manager.last-modified = Last Modified data-manager.delete-event-permanently = Delete event(s) permanently? data-manager.delete-event-warning = Warning: This is not reversible data-manager.delete-events = Delete Events @@ -252,13 +251,13 @@ data-manager.event-search-placeholder = Search in Events data-manager.manage-categories = Manage Categories data-manager.last-modified-by = Last modified by data-manager.delete-segments-permanently = Delete Segment(s) permanently? -data-manager.omit-segments = Omit Segments +data-manager.omit-segments = Omit Segment(s)? data-manager.omit-segments-subheading = Choose which segments of this custom event to omit. Omitted segments will not be saved in the future and past data for these segments will be purged immediately after you save these settings. data-manager.omit = Omit -data-manager.related-event = Data Source +data-manager.related-event = Related Event data-manager.related-property = Related Property data-manager.delete-transformation-permanently = Delete Transformation permanently? -data-manager.delete-transformation = Yes, delete transformation +data-manager.delete-transformation = Delete Transformation data-manager.error = Error data-manager.error-last-triggered = Error Last Triggered data-manager.occurence-count = Occurences @@ -273,7 +272,7 @@ data-manager.drag-drop-file = Drag and drop file here or data-manager.click-to-upload = Click to upload data-manager.add-category = Add new category data-manager.category-name = Category name -data-manager.add-category = Add new category +data-manager.add-category = Add Category data-manager.back-to-manage-properties = Back to Manage Properties data-manager.property-details = Property Details data-manager.edit-property = Edit Property @@ -331,6 +330,7 @@ data-manager.success.event-update = Event Updated data-manager.error.event-update = Error while updating event data-manager.success.event-delete = Event Deleted data-manager.error.event-delete = Error while deleting event +data-manager.success.visibility = Visibility updated data-manager.success.category-create = Category Created data-manager.error.category-create = Error while creating category data-manager.success.category-update = Category Updated @@ -363,6 +363,8 @@ data-manager.transform.segment-option.change-value = Modify Segmentation Value data-manager.transform.segment-option.change-value.description = Modify Segmentation Value data-manager.transform.segment-option.rename = Rename Segmentation data-manager.transform.segment-option.rename.description = Rename Segmentation +data-manager.transform.segment-option.copy-to-user-custom = Copy to Custom User Property +data-manager.transform.segment-option.copy-to-user-custom.description = Copy to Custom User Property data-manager.transform.property-option.merge = Merge Custom Property data-manager.transform.property-option.merge.description = Merge Custom Property @@ -374,3 +376,9 @@ data-manager.error.event-visibility-error = Cannot Change visibility for unplann data-manager.property-expiration = Expiration data-manager.property.session-end = Session End data-manager.error.property-expire = Error in setting Property Expiration + +data-manager.copy-to-user-custom.type = Custom User Property Type +data-manager.copy-to-user-custom.existing= Existing +data-manager.copy-to-user-custom.new = New +data-manager.copy-to-user-custom.select-type = Existing Custom User Property +data-manager.copy-to-user-custom.new-type = New Custom User Property \ No newline at end of file diff --git a/plugins/data_migration/frontend/public/localization/data_migration_fr.properties b/plugins/data_migration/frontend/public/localization/data_migration_fr.properties index 22b25003a48..f50aad25f77 100644 --- a/plugins/data_migration/frontend/public/localization/data_migration_fr.properties +++ b/plugins/data_migration/frontend/public/localization/data_migration_fr.properties @@ -1,7 +1,7 @@ #titles data-migration.plugin-title = Data Migration data-migration.page-title = Data Migration -data-migration.plugin-description = Migrate your data from one Countly server to another +data-migration.plugin-description = Migrate data from one Countly server to another. data-migration.import-export-button-title = Export or import data data-migration.export-data = Export data data-migration.import-data = Import data @@ -11,13 +11,13 @@ data-migration.export-title = Export data data-migration.applications = Applications data-migration.export-type = Export type data-migration.export-type-transfer-label = Export and transfer data to another Countly server -data-migration.export-type-transfer-description = +data-migration.export-type-transfer-description = data-migration.export-type-download-label = Export and download data -data-migration.export-type-download-description = +data-migration.export-type-download-description = data-migration.server-token = Server token data-migration.server-address=Server address data-migration.server-token-description = Token generated in target server "Import form" -data-migration.server-address-description= As seen in browser +data-migration.server-address-description= As displayed in your browser. data-migration.export-data-button = Export data data-migration.send-export-button = Send export data-migration.test-connection = Test connection @@ -25,6 +25,8 @@ data-migration.export-other-path = Export folder: data-migration.export-additional-files = Export crash symbols data-migration.redirect-traffic = Redirect traffic to new server after migration is completed data-migration.export-completed-unable-to-delete = Export completed. Unable to delete files +data-migration.export-type-get-export-scripts = Get only database export commands +data-migration.download-auto = Your download will start automatically. #import data form data-migration.import-title = Import data data-migration.import-type = Import type @@ -32,7 +34,7 @@ data-migration.import-from-another-server = Import from another server data-migration.import-type-token-label = Import data from another server data-migration.import-type-token-description = In order to import data from another server you must provide source server owner with your server address and the token you'll create now data-migration.import-type-upload-label = Import from an existing export file -data-migration.import-type-upload-description = +data-migration.import-type-upload-description = data-migration.select-file = Select file data-migration.import-from-file = Import uploading previously exported file data-migration.import-from-server = Import data from another server @@ -44,9 +46,9 @@ data-migration.create-another-token = Create another token data-migration.generated-token = Token has been generated data-migration.copy-url = Copy URL data-migration.copy-token = Copy Token -data-migration.tokken-coppied-in-clipboard = Server token copied into the clipboard -data-migration.address-coppied-in-clipboard = Server address copied into the clipboard -data-migration.close-without-copy = If you close this tab you won't be able to copy this token anymore. Do you want to close it? +data-migration.tokken-coppied-in-clipboard = Server token copied to the clipboard +data-migration.address-coppied-in-clipboard = Server address copied to the clipboard +data-migration.close-without-copy = If you close this tab, you won't be able to copy this token anymore. Do you want to close it? data-migration.close-confirm-title = Close tab? data-migration.cancel = Cancel data-migration.continue-and-close = Continue and close @@ -91,7 +93,7 @@ data-migration.resend-export = Send export #confirms,notifications data-migration.delete-log-confirm = Do you really want to delete the log file? data-migration.delete-export-confirm = Do you really want to delete export files? -data-migration.delete-import-confirm = Do you really want to delete export files and the log file? +data-migration.delete-import-confirm = Do you really want to delete the export files and the log file? data-migration.app-redirected = App({app_name}) is redirected. data-migration.app-redirected-explanation = All incoming SDK calls for this app are redirected to remote server: data-migration.app-redirected-remove = Click to go to app settings @@ -127,7 +129,7 @@ data-migration.failed-generate-scripts = Failed to generate export scripts data-migration.failed-sending = Your previous export has failed in sending phase. You can try to resend data or delete previously exported data and start a new export process. data-migration.export-stopped = Export process is stopped. You can delete data and start new process. data-migration.export-started = Export process has successfully started. -data-migration.target-server-not-valid= Target server address is not valid +data-migration.target-server-not-valid= Target server address is invalid data-migration.enter-your-server-address = Enter your server address data-migration.enter-your-server-token = Enter your server token data-migration.enter-your-export-folder = Enter your export folder @@ -149,7 +151,7 @@ data-migration.import-started = Import process started successfully data-migration.import-file-missing = Import file is missing. data-migration.import-process-exist = There is an ongoing import process on target server with same apps. Clear out the data on target server to start a new import process. data-migration.file-to-big-warning = Chosen file exceeds server limitation for maximum file size. Please modify your server settings to allow uploading bigger files. -data-migration.file-to-big-error = File is to large to upload to server. Please modify your server settings to allow uploading bigger files. +data-migration.file-to-big-error = File is too large to upload to the server. Please modify your server settings to allow uploading bigger files. data-migration.badformat = Uploaded file should be .tar.gz data-migration.could-not-find-file = Could not find file on server data-migration.unable-to-delete-log-file = Unable to delete log file @@ -167,4 +169,4 @@ systemlogs.action.app_redirected = App redirected management-applications.redirect_url= Redirect URL management-applications.redirect_url.help = Incoming data for this app is redirected to given address. Disable to stop data redirection. management-applications.table.redirect_not_set = None -management-applications.table.remove_redirect = Remove redirect +management-applications.table.remove_redirect = Remove redirect diff --git a/plugins/dbviewer/frontend/public/localization/dbviewer_fr.properties b/plugins/dbviewer/frontend/public/localization/dbviewer_fr.properties index 9cd3302431e..eb102853b63 100644 --- a/plugins/dbviewer/frontend/public/localization/dbviewer_fr.properties +++ b/plugins/dbviewer/frontend/public/localization/dbviewer_fr.properties @@ -36,6 +36,7 @@ dbviewer.generate-aggregate-report= Generate aggregate report dbviewer.back-to-dbviewer = Back to DB Viewer dbviewer.invalid-pipeline = Invalid pipeline object, please check pipeline input. dbviewer.server-error = There was a server error. There might be more information in logs. +dbviewer.removed-warning = Some stages are removed from aggregation pipleine. Following stages are allowed only with global admin rights: dbviewer.not-found-data = Couldn't find any results dbviewer.execute-aggregation = Execute Aggregation on {0} dbviewer.prepare-new-aggregation = Prepare New Aggregation @@ -45,4 +46,4 @@ dbviewer.mongostat = Mongostat dbviewer.enter-aggregation-pipeline = Enter aggregation pipeline dbviewer.indexes-of = Indexes of dbviewer.projection = Projection -dbviewer.data = Data +dbviewer.data = Data \ No newline at end of file diff --git a/plugins/density/frontend/public/localization/density_fr.properties b/plugins/density/frontend/public/localization/density_fr.properties old mode 100644 new mode 100755 index 6e0103f3b13..62dd41ed5c9 --- a/plugins/density/frontend/public/localization/density_fr.properties +++ b/plugins/density/frontend/public/localization/density_fr.properties @@ -10,4 +10,4 @@ density.densities-for = Densities for help.density.chart = This chart displays breakdown of density values by platform density.distribution = Density Distribution density.versions = Versions -density.table-version = Density Version +density.table-version = Density Version \ No newline at end of file diff --git a/plugins/desktop/frontend/public/localization/desktop_fr.properties b/plugins/desktop/frontend/public/localization/desktop_fr.properties index 9f229cc1eb6..0e07fc142f4 100644 --- a/plugins/desktop/frontend/public/localization/desktop_fr.properties +++ b/plugins/desktop/frontend/public/localization/desktop_fr.properties @@ -1,4 +1,4 @@ desktop.plugin-title = Desktop Apps desktop.plugin-description = Plugin for adding desktop app types to Countly common.bar.top-languages = Top Languages -management-applications.types.desktop = Desktop +management-applications.types.desktop = Desktop \ No newline at end of file diff --git a/plugins/errorlogs/frontend/public/javascripts/countly.views.js b/plugins/errorlogs/frontend/public/javascripts/countly.views.js index 654c47f61d9..89c5fcbb9b3 100644 --- a/plugins/errorlogs/frontend/public/javascripts/countly.views.js +++ b/plugins/errorlogs/frontend/public/javascripts/countly.views.js @@ -7,7 +7,7 @@ return { selectLog: this.query || "api", downloadLink: countlyGlobal.path + "/o/errorlogs?download=true&log=" + this.query || "api", - logList: [{name: "Api Log", value: "api"}], + logList: [{name: jQuery.i18n.map["errorlogs.api-log"] || "Api Log", value: "api"}], authToken: countlyGlobal.auth_token, cachedLog: {} }; @@ -71,7 +71,7 @@ priority: 1, route: "#/manage/logs/errorlogs", component: ErrorLogsView, - title: "Server Logs", + title: jQuery.i18n.map["errorlogs.server-logs"] || "Server Logs", name: "errorlogs", permission: FEATURE_NAME, vuex: [] diff --git a/plugins/errorlogs/frontend/public/localization/errorlogs.properties b/plugins/errorlogs/frontend/public/localization/errorlogs.properties index 28305a1ab27..6c2df3ffb5b 100644 --- a/plugins/errorlogs/frontend/public/localization/errorlogs.properties +++ b/plugins/errorlogs/frontend/public/localization/errorlogs.properties @@ -10,4 +10,6 @@ errorlogs.confirm-delete-dashboard-title = Clear Dashboard log? errorlogs.confirm-delete-dashboard = Do you really want to clear the Dashboard log? errorlogs.confirm-delete-api-title = Clear API log? errorlogs.confirm-delete-api = Do you really want to clear the API log? +errorlogs.api-log = Api Log +errorlogs.server-logs = Server Logs systemlogs.action.errologs_clear = Clear Logs diff --git a/plugins/errorlogs/frontend/public/localization/errorlogs_fr.properties b/plugins/errorlogs/frontend/public/localization/errorlogs_fr.properties index 28305a1ab27..6c2df3ffb5b 100644 --- a/plugins/errorlogs/frontend/public/localization/errorlogs_fr.properties +++ b/plugins/errorlogs/frontend/public/localization/errorlogs_fr.properties @@ -10,4 +10,6 @@ errorlogs.confirm-delete-dashboard-title = Clear Dashboard log? errorlogs.confirm-delete-dashboard = Do you really want to clear the Dashboard log? errorlogs.confirm-delete-api-title = Clear API log? errorlogs.confirm-delete-api = Do you really want to clear the API log? +errorlogs.api-log = Api Log +errorlogs.server-logs = Server Logs systemlogs.action.errologs_clear = Clear Logs diff --git a/plugins/guides/frontend/public/localization/guides_fr.properties b/plugins/guides/frontend/public/localization/guides_fr.properties new file mode 100755 index 00000000000..bb9a4eb387f --- /dev/null +++ b/plugins/guides/frontend/public/localization/guides_fr.properties @@ -0,0 +1,33 @@ +#guides + +guides.plugin-title = Countly Guides +guides.plugin-description = Provides guides about Countly's features, including articles and walkthroughs. +guides.overview = Overview +guides.all = All +guides.walkthrough = Walkthrough +guides.walkthroughs = Walkthroughs +guides.watch-walkthrough = Watch walkthrough +guides.walkthroughs.all = All Walkthroughs +guides.walkthroughs.get-started = Get started +guides.walkthroughs.new = What's new? +guides.walkthroughs.home = Home +guides.article = Article +guides.articles = Articles +guides.articles.all = All Articles +guides.back-to-guides = Back to Countly Guides +guides.help-center = Help Center +guides.go-to-help-center = Go to Help Center +guides.feedback = Do you have any feedback? +guides.read-more = Read more +guides.see-all = See all + +guides.search.in-guides = Search in Guides +guides.search.in-countly-guides = Search in Countly Guides +guides.search.results-count = {0} results for "{1}" +guides.search.start = Start searching +guides.search.start-description= Type something and press Enter to see the results +guides.search.no-result = ...hmm, there are no results +guides.search.no-result-description = Try adjusting your search to find what you’re looking for + +guides.view = View Guide +guides.take-the-tour = Take the tour \ No newline at end of file diff --git a/plugins/hooks/frontend/public/localization/hooks_fr.properties b/plugins/hooks/frontend/public/localization/hooks_fr.properties index a5d6f007be6..36b41cf4e76 100644 --- a/plugins/hooks/frontend/public/localization/hooks_fr.properties +++ b/plugins/hooks/frontend/public/localization/hooks_fr.properties @@ -1,21 +1,21 @@ hooks.plugin-title = Hooks -hooks.plugin-description = Trigger external HTTP endpoints & receive emails based on incoming data and internal actions +hooks.plugin-description = Trigger external HTTP endpoints and receive emails based on incoming data and internal actions hooks.new-hook = New hook hooks.drawer-create-title = Create new hook hooks.hook-name = Hook name hooks.hook-description = Hook description -hooks.hook-description-note = An optional description that'll be visible to all users while viewing this hook. +hooks.hook-description-note = An optional description that will be visible to all users while viewing this hook. hooks.for_applications = For application hooks.trigger = Trigger hooks.effects = Actions hooks.create-hook = Create hook hooks.save-hook = Save hook hooks.set-hook-trigger= Trigger Type -hooks.select-effect = Select Action +hooks.select-effect = Select Action hooks.select-trigger = Select trigger -hooks.set-hook-effect = Select action +hooks.set-hook-effect = Select Action hooks.applications = Applications -hooks.create-by = Create by +hooks.create-by = Created by hooks.edit = Edit hooks.delete = Delete hooks.trigger-and-effects = Trigger & Actions @@ -29,11 +29,11 @@ hooks.delete-confirm = Confirm that you want to delete this hook. hooks.edit-your-hook = Edit your hook hooks.delete-confirm-title = Delete Hook hooks.batch-size = Action batch procesing size -hooks.pipelineInterval = Action pipeline interval -hooks.batchActionSize = Action batch procesing size -hooks.refreshRulesPeriod = Refresh rules period -hooks.requestLimit = Request limit -hooks.timeWindowForRequestLimit = Time window for request limit +hooks.pipelineInterval = Action Pipeline Interval +hooks.batchActionSize = Action Batch Processing Size +hooks.refreshRulesPeriod = Refresh Rules Period +hooks.requestLimit = Request Limit +hooks.timeWindowForRequestLimit = Time Window for Request Limit configs.help.hooks-pipelineInterval=The interval between each batch of actions. configs.help.hooks-batchActionSize=The number of actions to be processed in each batch. @@ -44,13 +44,13 @@ configs.help.hooks-timeWindowForRequestLimit=The time window for the request lim #triggers hooks.InternalEventTrigger = Internal Actions -hooks.trigger-api-endpoint-uri= API Endpoint +hooks.trigger-api-endpoint-uri= API Endpoint hooks.trigger-introduction = Introduction -hooks.trigger-api-endpoint-intro-content = Send a GET request with query string parameter “payload” as a JSON string to the below URL:
{0} -hooks.APIEndPointTrigger = API Endpoint +hooks.trigger-api-endpoint-intro-content = Send a GET request with the query string parameter "payload" as a JSON string to the URL below:
{0} +hooks.APIEndPointTrigger = API Endpoint hooks.internal-event-selector-title = Internal Actions hooks.internal-event-selector-placeholder = Please select an internal action -hooks.cohort-selector-title = Cohort +hooks.cohort-selector-title = Cohort hooks.cohort-selector-placeholder = Please select a cohort hooks.IncomingDataTrigger = Tracked Data hooks.IncomingData = Tracked Data @@ -64,7 +64,7 @@ hooks.ScheduledTrigger = Scheduled Trigger hooks.trigger-and-actions = Trigger -> Actions #efffects -hooks.CustomCodeEffect = Custom Code +hooks.CustomCodeEffect = Custom Code hooks.EmailEffect = Send an email hooks.SDKEventEffect = SDK Event Action @@ -78,69 +78,81 @@ hooks.select-http-effect-method = HTTP Method hooks.query-string-or-json-body = Query string (for GET) or request body (for POST) hooks.http-method-get = GET hooks.http-method-post = POST -hooks.http-effect-description= Use {{payload_json}} to include the entire trigger data as a JSON object in your request body, or {{payload_string}} to include a stringified JSON in your query string. You can also use individual properties within the trigger data such as {{user}}. +hooks.http-effect-description= Use {{payload_json}} to include the entire trigger data as a JSON object in your request body, or {{payload_string}} to include a stringified JSON in your query string. You can also use individual properties within the trigger data, such as {{user}}. -hooks.intro-hooks-trigger = /hooks/trigger will capture triggered data from the selected hook trigger.
Output: Trigger output data from selected hook. -hooks.intro-i-app_users-delete= /i/app_users/delete will capture deleted user profiles.
Output: Individual user profile data -hooks.intro-i-app_users-update = /i/app_users/update will capture updated user profiles.
Output: Individual user profile data -hooks.intro-i-app_users-create = /i/app_users/create will capture created user profiles.
Output: Individual user profile data -hooks.intro-cohort-exit = /cohort/exit will capture users who exit from the selected cohort.
Output: Individual user profile data -hooks.intro-cohort-enter = /cohort/enter will capture users who enter into the selected cohort.
Output: Individual user profile data -hooks.intro-incoming-data = Will capture event data when match filter rules.
Output: Event data & user profile data. -hooks.copy-notify-message = API Endpoint URL is copied. +hooks.intro-hooks-trigger = /hooks/trigger will capture triggered data from the selected hook trigger. Output: Trigger output data from selected hook. +hooks.intro-i-app_users-delete= /i/app_users/delete will capture deleted user profiles. Output: Individual user profile data. +hooks.intro-i-app_users-update = /i/app_users/update will capture updated user profiles. Output: Individual user profile data. +hooks.intro-i-app_users-create = /i/app_users/create will capture created user profiles. Output: Individual user profile data. +hooks.intro-cohort-exit = /cohort/exit will capture users who exit from the selected cohort. Output: Individual user profile data. +hooks.intro-cohort-enter = /cohort/enter will capture users who enter into the selected cohort. Output: Individual user profile data. +hooks.intro-incoming-data = Will capture event data when filter rules match. Output: Event data & user profile data. +hooks.copy-notify-message = API Endpoint URL copied. hooks.copy-notify-title = Copy URL hooks.Select_country = Select Country hooks.Select_timezone = Select Timezone hooks.messages.name.placeholder = Name of your Hook -hooks.plugin-title-desc = An overview of all hooks set up. You can enable or disable any hook by using their respective toggle switch. +hooks.plugin-title-desc = An overview of all set up hooks. You can enable or disable any hook by using its respective toggle switch. hooks.status-all = All Hooks hooks.status-enabled = Enabled hooks.status-disabled = Disabled hooks.all-applications = All Applications -hooks.action = ACTION +hooks.action = Action hooks.select-application = Select an Application hooks.description-placeholder = Enter hook description hooks.name = Name hooks.description = Description hooks.optional = Optional -hooks.source-application = Source Application -hooks.step1 = Basic-info +hooks.source-application = Source Application +hooks.step1 = Basic Info hooks.step2 = Trigger hooks.step3 = Actions -hooks.trigger-intro = Set up the details of what will be the trigger for the hook. -hooks.effects-intro = Select the actions the hook will do upon being triggered. You can add more than one action. +hooks.trigger-intro = Set up the details of what will trigger the hook. +hooks.effects-intro = Select the actions the hook will perform upon being triggered. You can add more than one action. -hooks.test-hook = Test hook +hooks.test-hook = HOOK TESTING hooks.test-hook-intro = Test your hooks to verify payloads or check if your hook setup is working properly before taking it live. hooks.test-hook-button = Test your hook setup hooks.remove-action = Remove action hooks.send-email = Email addresses to send the data to hooks.http-intro = Query string (for GET) or request body (for POST) -hooks.trigger-via = Trigger Type -hooks.api-trigger-intro = Send a GET request with query string parameter “payload” as a JSON string +hooks.trigger-via = Trigger Type +hooks.api-trigger-intro = Send a GET request with query string parameter "payload" as a JSON string hooks.copy-url = Copy URL -hooks.incoming-data = Data to trigger this hook -hooks.filter-rule = USE FILTERING RULE -hooks.scheduled-trigger-intro = Select the frequency and time to set the period to trigger hook automatically +hooks.incoming-data = Data to trigger this hook +hooks.filter-rule = Use Filtering Rule +hooks.scheduled-trigger-intro = Select the frequency and time to set the period to trigger the hook automatically hooks.back-to-hooks=Back to Hooks hooks.filtering-tips = Description for filtering rule hooks.edit = Edit hooks.delete = Delete hooks.app-desc=Select the app for which the hook will be created. -hooks.detail-title = HOOK DETAILS -hooks.trigger-count=Trigger count +hooks.detail-title = Hook Details +hooks.trigger-count=Trigger Count hooks.trigger-and-effect = Trigger and Actions hooks.trigger-time = Last Trigger Time hooks.download-stacktrace = Download Stacktrace -hooks.stacktrace = ERROR LOGS +hooks.stacktrace = Error Logs hooks.time=Time hooks.action-step = Action Step -hooks.trigger-data = trigger data -hooks.action-data = Action data -hooks.trigger-tips = Set up the details of what will be the trigger for the hook. -hooks.actions-tips = Select the actions the hook will do upon being triggered. You can add more than one action. +hooks.trigger-data = Trigger Data +hooks.action-data = Action Data +hooks.trigger-tips = Set up the details of what will trigger the hook. +hooks.actions-tips = Select the actions the hook will perform upon being triggered. You can add more than one action. hooks.application-tips = The app(s) for which you want to create a hook. hooks.trigger-count-tips = Number of times the hook has been triggered. -hooks.trigger-action-tips = Identifies the trigger for the hook, and the actions that show the method through which data will be sent. +hooks.trigger-action-tips = Identifies the trigger for the hook and the actions that show the method through which data will be sent. hooks.trigger-save-failed = Hook could not be saved. + +systemlogs.action.hook_created = Hook Created +systemlogs.action.hook_updated = Hook Updated +systemlogs.action.hook_status_updated = Hook Status Updated +systemlogs.action.hook_deleted = Hook Deleted + +# HTTP Headers related texts +hooks.http-headers = HTTP Headers +hooks.add-http-header = Add HTTP Header +hooks.remove-http-header = Remove Header +hooks.header-key = Header Key +hooks.header-value = Header Value diff --git a/plugins/locale/frontend/public/localization/locale_fr.properties b/plugins/locale/frontend/public/localization/locale_fr.properties index 7e65d7357a8..e64d8445a6c 100644 --- a/plugins/locale/frontend/public/localization/locale_fr.properties +++ b/plugins/locale/frontend/public/localization/locale_fr.properties @@ -2,7 +2,7 @@ languages.title = Languages languages.table.language = Language sidebar.analytics.languages = Languages -help.languages.chart = Details of the application languages your users are using, in the selected time period and as determined by their default device language settings. +help.languages.chart = Details of the application's languages your users use in the selected time period, based on their default device language settings. locale.plugin-title = Languages -locale.plugin-description = Display device locale/language metric +locale.plugin-description = Displays device locale and language metrics. \ No newline at end of file diff --git a/plugins/logger/frontend/public/localization/logger_fr.properties b/plugins/logger/frontend/public/localization/logger_fr.properties index 961c382737f..f6a379f88c4 100644 --- a/plugins/logger/frontend/public/localization/logger_fr.properties +++ b/plugins/logger/frontend/public/localization/logger_fr.properties @@ -1,6 +1,6 @@ #logger logger.title = Incoming Data Logs -logger.description = Log requests made to the write API to review and debug incoming data +logger.description = Logs requests made to the write API to review and debug incoming data. logger.all = All Requests logger.event = Events logger.session = Sessions @@ -23,21 +23,21 @@ logger.request-header = Headers logger.request-payload = Data logger.request-reponse = Response logger.request-canceled = Request Canceled -logger.problems = Problems occurred -logger.collection-description = Only up to last {0} incoming data logs are stored -logger.capped-remind = Your collection is not capped yet! Please notice that it may slow down the system performance. +logger.problems = Problems occurred. +logger.collection-description = Only up to the last {0} incoming data logs are stored +logger.capped-remind = Your collection is not capped yet. Please note that this may slow down system performance. logger.state = Set incoming data logging state logger.limit = Set incoming data logging limit per minute logger.state-on = On logger.state-off = Off logger.state-automatic = Automatic -logger.state-off-warning = Incoming data logging is turned off. You can change it using application configuration page. +logger.state-off-warning = Incoming data logging is turned off. You can change it on the settings page. logger.platform = Platform logger.device-id = Device Id logger.location = Location logger.request-query = Request query -logger.request-header = Headers -logger.version = App Version +logger.request-header = Request header +logger.version = Version -configs.help.logger-state = If incoming data logging state is set to "On", only the last 1000 requests will be saved. When the state is set to "Automatic", requests will continue to be logged until the limit per minute is reached. -configs.help.logger-limit = Incoming data logging will turn off automatically when the number of requests logged per minute limit is reached. This will apply only when request logger state is set to "Automatic". +configs.help.logger-state = If the incoming data logging state is set to "On", only the last 1000 requests will be saved. When the state is set to "Automatic", requests will continue to be logged until the limit per minute is reached. +configs.help.logger-limit = Incoming data logging will turn off automatically when the number of requests logged per minute limit is reached. This will apply only when request logger state is set to "Automatic". \ No newline at end of file diff --git a/plugins/mobile/frontend/public/localization/mobile_fr.properties b/plugins/mobile/frontend/public/localization/mobile_fr.properties index 419e1433f5c..ad0f5db8255 100644 --- a/plugins/mobile/frontend/public/localization/mobile_fr.properties +++ b/plugins/mobile/frontend/public/localization/mobile_fr.properties @@ -7,4 +7,4 @@ mobile.revenue.tooltip = IAP event key is the custom event key that you track in mobile.placeholder.iap-event-key = Enter IAP event keys (optional) mobile.placeholder.iap-help = if your app uses in-app purchases mobile.management-applications.iap-event = IAP Event Keys -mobile.systemlogs.action.iap_updated = IAP Events Updated +mobile.systemlogs.action.iap_updated = IAP Events Updated \ No newline at end of file diff --git a/plugins/plugins/frontend/public/localization/plugins_fr.properties b/plugins/plugins/frontend/public/localization/plugins_fr.properties index d933e34eee7..227e38e26ef 100644 --- a/plugins/plugins/frontend/public/localization/plugins_fr.properties +++ b/plugins/plugins/frontend/public/localization/plugins_fr.properties @@ -34,7 +34,7 @@ plugins.seconds = seconds plugins.error = Error occurred plugins.errors = Some errors occurred plugins.errors-msg = Check logs for more information -plugins.confirm = Disabling plugin will also disable the functionality that plugin is providing.

Are you sure you want to proceed? +plugins.confirm = Disabling plugin will also disable the functionality that plugin is providing. Are you sure you want to proceed? plugins.will-restart = Countly will reload after the changes take effect plugins.please-wait = Please wait until the process is completed plugins.dependents = Dependent Features @@ -64,6 +64,8 @@ configs.no-theme = Default Theme configs.frontend-code = Show Code Generator for SDK integration configs.frontend-offline_mode = Offline mode configs.frontend-countly_tracking = Countly +configs.frontend-self_tracking = Self-tracking using Countly +configs.frontend-self_tracking.none = -- Not tracked -- configs.security-login_tries = Allowed login attempts configs.security-login_wait = Incorrect login block time increment configs.security-dashboard_additional_headers = Additional Dashboard HTTP Response headers @@ -142,6 +144,8 @@ configs.new-password = New Password configs.confirmation = Confirm new password configs.password-specification-1 = Use a password at least 15 letters long or at least configs.password-specification-2 = 8 characters long with mixed letters and numbers. +configs.access_control_origin = Access-Control-Origin +configs.allow_access_control_origin = Allow Access-Control-Origin by listing separate origin (including https://) per line configs.api.description = Main API settings configs.api.batch = Batch processing @@ -175,7 +179,7 @@ configs.help.frontend-countly_tracking = When enabled, Countly will be activated configs.help.frontend-production = Initial load of dashboard should be faster, due to smaller files and smaller file amount, but when developing a plugin, you need to regenerate them to see changes configs.help.frontend-theme = Selected theme will be available server-wide, for all apps and users configs.help.frontend-session_timeout = User will be forced to logout after session timeout (in minutes) of inactivity. If you want to disable force logout, set to 0. -configs.help.frontend-google_maps_api_key = Google requires an API key for Geocharts visualization used in views such as Overview and Analytics > Countries. Provide your API key to use this visualization without any limitations.
Learn how to get your API key. +configs.help.frontend-self_tracking = If you want to track usage of this server and users that are using the dashboard, select an app where to collect this data. Make sure to create a new app specifically for this purpose, or else you would merge collected data with existing. Data will only be stored on this server and will not be sent anywhere else. By selecting an app, you will enabling tracking of this server and it will count towards your datapoint quota. The scale of datapoints will depend on your user count and often usage of this dashboard. configs.help.security-login_tries = Account will be blocked for some time after provided number of incorrect login attempts. See below for time increments. configs.help.security-login_wait = Incremental period of time account is blocked after provided number of incorrect login attempts (in seconds) configs.help.security-password_rotation = Amount of previous passwords user should not be able to reuse diff --git a/plugins/populator/frontend/public/localization/populator_fr.properties b/plugins/populator/frontend/public/localization/populator_fr.properties index c143c349594..d081e33002c 100644 --- a/plugins/populator/frontend/public/localization/populator_fr.properties +++ b/plugins/populator/frontend/public/localization/populator_fr.properties @@ -20,18 +20,19 @@ populator.purchases = Purchases made populator.crashes = Crashes occured populator.maxtime = Maximum time to run (seconds) populator.warning1 = This plugin populates data for {0} -populator.warning2 = Make sure your app doesn't involve real data,otherwise it will conflict with generated data. -populator.help =

Select the start and end dates of user activities and press "Start Generating"

Countly populator will generate user data and emulate their behaviour with sessions, events, etc

The longer you let populator run, the more frequent sessions and events users will have in the selected time period

To stop process, simply click "Stop Generating" button

+populator.warning2 = Make sure your app doesn't involve real data, otherwise it will conflict with generated data. +populator.help = Select the start and end dates of user activities and press "Start Generating". Countly populator will generate user data and emulate their behaviour with sessions, events, etc. The longer you let populator run, the more frequent sessions and events users will have in the selected time period. To stop process, simply click "Stop Generating" button. populator.yes-populate-data = Yes, populate data populator.no-populate-data = No, don't do that populator.demo-data = Demo data populator.warning3 = This feature generates random, non-real sample data for your current application. Do not populate data if the current application has collected real user data. populator.warning4 = Do not forget to create another application, or completely remove pregenerated data, before sending production level data. populator.tooltip = Populate app with random data for demo after creation +populator.templates-tooltip = Manage your templates for data population populator.success = Click on Continue to refresh the page and go to dashboard. -populator.generating = Generating ... -populator.sub-title = Generate data for your app in
an easy way -populator.description = This plugin will start generating completely randomized, non-real sample data for your current application. It will help you understand how your Countly user interface will look like, once you start collecting real data.

Do not forget to create another application, or completely remove pregenerated data, before sending production level data. +populator.generating = Generating ... +populator.sub-title = Generate data for your app in an easy way +populator.description = This plugin will start generating completely randomized, non-real sample data for your current application. It will help you understand how your Countly user interface will look like, once you start collecting real data. Do not forget to create another application, or completely remove pregenerated data, before sending production level data. populator.finished-confirm-title = Finished populating data populator.finished-confirm-sub-title = Your data is ready to go. Do you want to go to the Home to see it? populator.go-to-homepage = Yes, take me to the Home @@ -45,24 +46,34 @@ populator.templates-view-title = App Templates populator.template = Template populator.template-type = Type populator.number-of-user-props = Number of User Properties -populator.number-of-events = Number of Events +populator.number-of-users = Number of Users +populator.number-of-events = Events +populator.number-of-views = Views +populator.number-of-sequences = Sequences +populator.generated-on = Generated On populator.edited-by = Edited by +populator.number-of-events = Number of Events populator.create-new-template = Create New Template populator.save-template = Save template +populator.save-environment = Save environment +populator.save-template-tooltip = By selecting this option, populated users and their attributes will be stored in an environment. Environments enable you to execute the populator with a consistent user set, ensuring uniform data across multiple runs. populator.save = Save +populator.existing-environment-warning = There is already an environment called {0} that was associated with this template. If you want to continue, existing template will be overridden +populator.override-it = Yes, override it populator.discard-changes = Discard changes populator.create-template = Create Template populator.drawer-title-edit = Edit Template populator.drawer-title-duplicate = Duplicate Template +populator.drawer-save-template = Save Template populator.template-name = Template Name populator.custom-user-props = Custom User Properties -populator.events = Events generated -populator.add-custom-user-prop = + Add a custom user property -populator.add-custom-prop = + Add a custom property +populator.events = Events +populator.add-custom-user-prop = + Add a Custom User Property +populator.add-custom-prop = + Add a Custom Property populator-add-custom-prop-detail = Custom User Property Details populator.add-segmentation = + Add Segmentation -populator.add-event = + Add event -populator.event-key = Event Key +populator.add-event = + Add Event +populator.event-name = Event Name populator.event-details = Event Details populator.user-prop-key = Key populator.user-prop-values = Values (Comma separated) @@ -71,9 +82,9 @@ populator.segmentation-values = Values (Comma separated) populator.remove-event = Remove event populator.template-type-default = Default populator.template-type-custom = Custom -populator.duration-help-title = Use Duration Property +populator.duration-help-title = Use Duration property populator.duration-help-subtitle = Duration property is for measuring the time it takes for a user to complete actions inside the app. -populator.sum-help-title = Use Sum Property +populator.sum-help-title = Use Sum property populator.sum-help-subtitle = Sum property is a floating point number to track an additional numeric value for your event. populator.app-template = App template populator.select-template = Select an app template @@ -89,11 +100,117 @@ populator.template-name-placeholder = Enter template name populator.select-a-template-first = Please select a template to generate data with populator.generating-data = Generating your data populator.enter-your-key = Enter your key -populator.enter-your-event-key = Enter event key +populator.enter-your-event-name = Enter event name populator.enter-your-values = Enter your values populator.delete-property = Delete Property populator.delete-event = Delete Event populator.go-application-manager = Go to Application Manager +populator.delete-template-header = Delete Template +populator.delete-template-description = Are you sure you want to delete {0} template? populator-success-create-template = Template created successfully. populator-success-delete-template = Template deleted successfully. populator-success-edit-template = Template edited successfully. + +populator-template.settings-of-your = Settings of your {0} +populator-template.users = Users +populator-template.events = Events +populator-template.views = Views +populator-template.sequences = Sequences +populator-template.behavior = Behavior +populator-template.select-settings = Select settings of your {0} for the population. {1} +populator-template.select-settings-sequence = Events or view properties are required to create sequences. +populator-template.unique-users = Unique users +populator-template.unique-users-tooltip = Number of unique users that will be generated +populator-template.platforms = Platforms +populator-template.platforms-tooltip = Select application platforms that will be generated +populator-template.property-details = Property Details +populator-template.empty-unset = Empty/Unset +populator-template.add-another-value = + Add Another Value +populator-template.add-condition = Add Condition +populator-template.property = Property +populator.template.select-a-user-property = Select a user property +populator-template.property-value = Property Value +populator.template.select-a-user-property-value = Select a user property value +populator-template.error-while-removing-value = There is no value to remove +populator-template.warning-while-removing-condition = You must have at least one value +populator-template.delete-condition = Delete Condition +populator-template.condition-is = Condition (If {0} = {1} ) +populator-template.condition-is-not = Condition (If {0} ≠ {1} ) +populator-template.condition-already-exists = Condition already exists +populator-template.probability = Probability +populator-template.probability-tooltip = Probability of the related value +populator-template.values = Value +populator-template.values-tooltip = Value of the user property +populator-template.user-prop-name = Name +populator-template.user-prop-name-tooltip = Name of the user property +populator-template.user-property-name-placeholder = Enter user property name +populator-template.add-sequence = + Add Sequence +populator-template.sequence-incremental = Sequence {0} +populator-template.steps = Steps +populator-template.add-step = + Add Step +populator.template.select-a-step-property = Select a step property +populator.template.select-a-step-property-value = Select {0} name +populator-template.event-details = Event Details +populator-template.event-name-tooltip = Name of the event +populator-template.enter-your-event-name = Enter your event name +populator-template.segment-details = Segment Details +populator-template.segment-name = Segment Name +populator-template.segment-name-tooltip = Name of the segment +populator-template.segment-values = Segment Value +populator-template.segment-values-tooltip = Value of the segment +populator-template.view-name = View Name +populator-template.view-name-tooltip = Name of the view +populator-template.enter-your-view-name = Enter your view name +populator-template.add-view = + Add View +populator-template.view-details = View Details +populator-template.warning-duplicate-value = {0} value duplicated in {1} section. Please update your value +populator-template.warning-duplicate-name = {0} name duplicated in {1} section. Please update the name +populator.number-of-runs = Number of runs +populator.number-of-runs-tooltip = Each run will go through each unique user in the environment/template and will trigger one sequence per user +populator.data-template = Data template +populator.data-template-tooltip = Choose a template for data population. If you can't find a suitable template, you can create a new one from the “Templates” tab above.' +populator.environment = Environment +populator.environment-tooltip = Choose an environment for data population. If no environments are available, initiate the populator with a template first and then save to create an environment. Environments enable you to execute the populator with a consistent user set, ensuring uniform data across multiple runs. +populator.select-template = Select a template +populator.select-environment = Select an evironment +populator.save-as-environment = Enter an environment name +populator.pop-with-temp = Populate with Template +populator.pop-with-env = Populate with Environment +populator-template.general = General +populator-template.time-between-runs = Time between runs +populator-template.hour = hour(s) +populator-template.sequence-probabilities = Sequence Probabilities +populator-template.random-sequence = Random Sequence +populator-template.error-while-adding-condition = There is an error while adding condition +populator-template.disabled-switch-message = You need to add at least a user property and a sequence to add behavior +populator-template.warning-message-when-adding-empty-value = You are not allowed to add empty values twice! +populator.failed-to-fetch-environments = There was an error while fetching environments +populator.delete-environment = Delete Environment +populator.user-name = User Name +populator.platform = Platform +populator.device = Device +populator.back-to-template = Back to Template +populator.environment-delete-warning-title = Delete Environment +populator.environment-delete-warning-description = Are you sure you want to delete {0} environment? +populator-success-delete-environment = Environment deleted successfully +populator.failed-to-delete-environment = There was an error while deleting environment +populator.no-data-fetch-environment = No data found for this environment +populator.warning-environment-users = In this environment, {0} detected users exist, but a total of {1} users are expected based on the template. {2} additional users will be created to meet the target. +populator-template.delete-warning-used-in-condition = The value that you are deleting is being used {0} condition. Please edit them before deleting. +populator.failed-message-regenerate-metadata = Failed to regenerate metadata +populator-template.warning-probability-validation-users-condition = In the users section, sum of the values under {0} condition does not equal to 100 for {1} name +populator-template.warning-probability-validation-users = In the users section, sum of the values does not equal to 100 for {0} name +populator-template.warning-probability-validation-events = In the {0} section, sum of the values does not equal to 100 for {1} segment name +populator-template.warning-probability-validation-events-condition = In the {0} section, sum of the values under {1} condition does not equal to 100 for {2} segment name +populator-template.warning-probability-validation = Sum of the values under the {1} key in the {0} section does not equal 100 +populator-template.warning-probability-validation-behavior = In the behavior section, sum of the values of sequences does not equal to 100 +populator-template.warning-probability-validation-behavior-condition = In the behavior section, sum of the values does not equal to 100 under {0} condition +populator-template.condition-value-tooltip = The value you expect to be created if the condition is met +populator.select-environment = Select an environment +populator.warning-generate-users = Populator can't fully support generating data in given timerange for selected template. There is high chance of having more sessions/events towards end of period. You can modify chosen period and populate then +populator.warning-generate-users-header = There is a high chance of spike +populator-template.add-step-tooltip = Events or view properties are required to add steps to sequences. +populator.error-salt = You should remove the salt for checksum value from application settings to continue using the populator +populator.include-features = Include Features +populator.select-features = Select features +populator.include-features-tooltip = The selected features will be populated with sample data diff --git a/plugins/push/frontend/public/javascripts/countly.views.js b/plugins/push/frontend/public/javascripts/countly.views.js index 3988912e029..6fd8783b992 100644 --- a/plugins/push/frontend/public/javascripts/countly.views.js +++ b/plugins/push/frontend/public/javascripts/countly.views.js @@ -699,7 +699,7 @@ this.estimateIfNecessary(); return; } - CountlyHelpers.notify({type: 'error', message: 'No push credentials found for ' + this.getPlatformLabel(platform) + ' platform' }); + CountlyHelpers.notify({type: 'error', message: CV.i18n('push-notification.no-credentials', this.getPlatformLabel(platform)) || ('No push credentials found for ' + this.getPlatformLabel(platform) + ' platform') }); } else { this.pushNotificationUnderEdit.platforms = this.pushNotificationUnderEdit.platforms.filter(function(item) { diff --git a/plugins/push/frontend/public/localization/push.properties b/plugins/push/frontend/public/localization/push.properties index 3a2eb327a15..e3c2aee5220 100755 --- a/plugins/push/frontend/public/localization/push.properties +++ b/plugins/push/frontend/public/localization/push.properties @@ -462,3 +462,6 @@ systemlogs.action.push_message_updated = Push Notification updated systemlogs.action.push_message_activated = Push Notification activated systemlogs.action.push_message_deactivated = Push Notification deactivated systemlogs.action.push_message_test = Test Push Notification sent + +# Error messages +push-notification.no-credentials = No push credentials found for {0} platform diff --git a/plugins/push/frontend/public/localization/push_fr.properties b/plugins/push/frontend/public/localization/push_fr.properties old mode 100644 new mode 100755 index 1cbe8e1ef58..e3c2aee5220 --- a/plugins/push/frontend/public/localization/push_fr.properties +++ b/plugins/push/frontend/public/localization/push_fr.properties @@ -1,14 +1,14 @@ push-notification.title = Push Notifications -push-notification.description = An overview of all push notifications sent and actions performed in response. +push-notification.description = An overview of all push notifications sent, along with the user actions performed in response. push-notification.one-time = One-time Notifications push-notification.automated = Automated Notifications push-notification.transactional = API Notifications push-notification.total-app-users = Total App Users push-notification.enabled-users = Notification-enabled Users push-notification.enabled-users-percentage = Enabled Users Percentage -push-notification.enabled-users-percentage-description = Number of users who have agreed to receive notifications, expressed as a percentage over the total number of app users. +push-notification.enabled-users-percentage-description = The number of users who have agreed to receive notifications, expressed as a percentage of the total number of app users. push-notification.platform-filter-label-one-time = One-time notifications for -push-notification.platform-filter-label-automatic = Automatic notificatons for +push-notification.platform-filter-label-automatic = Automatic notifications for push-notification.platform-filter-label-transactional = Transactional notifications for push-notification.platform-filter-all = All Platforms push-notification.platform-filter-android = Android @@ -21,7 +21,7 @@ push-notification.unknown-error = Unknown error occurred. Please try again later push-notification.sent-serie-name = Notifications Sent push-notification.sent-serie-description = Total number of notifications sent in the selected time period. push-notification.actions-performed-serie-name = Actions Performed -push-notification.actions-performed-serie-description = Total number of actions performed by users in response to notifications sent, in the selected time period. +push-notification.actions-performed-serie-description = Total number of user actions performed in response to sent notifications within the selected time period. push-notification.table-notification-name = Notification name push-notification.table-status = Status push-notification.table-created = Created @@ -57,7 +57,7 @@ push-notification.right-before-sending-the-message = Right before sending the me push-notification.segmented-push-enabled-users = Segmented push-enabled users push-notification.delivery-type = Delivery Type push-notification.delivery-timeframe = Delivery Timeframe -push-notification.delivery-timeframe-description = Select the time you want the automated notifications to start being sent to users. +push-notification.delivery-timeframe-description = Select the time to start sending automated notifications to users. push-notification.trigger-type = Trigger Type push-notification.ios-badge-number-setting = IOS badge number push-notification.ios-json-data-setting = IOS JSON data @@ -88,19 +88,19 @@ push-notification.platforms = Platforms push-notification.android = Android push-notification.ios = iOS push-notification.targeting = Targeting -push-notification.targeting-tooltip = Select how to target the users who will recieve the notification. +push-notification.targeting-tooltip = Select how to target the users who will receive the notification. push-notification.all-push-enabled-users = All push-enabled users push-notification.all-push-enabled-users-description = Send to all users who have enabled receiving notifications. push-notification.use-segmentation = Use segmentation push-notification.use-segmentation-description = Send to users based on specific segmentation such as cohorts or locations. push-notification.push-enabled-users = Push-enabled users -push-notification.send-to-users-in-cohorts = Send to the users currently in selected cohorts(s) +push-notification.send-to-users-in-cohorts = Send to the users currently in selected cohort(s) push-notification.send-to-users-in-cohorts-description = Select cohort(s) of users who qualify to receive the notification. -push-notification.send-to-users-in-locations = Send to the users currently in selected Geolocations +push-notification.send-to-users-in-locations = Send to the users currently in selected Geolocation(s) push-notification.send-to-users-in-locations-description = Select geolocation(s) of users to whom you want to send the notification (e.g. users located in France). push-notification.select-event-to-set-trigger = Select one or more events to set the trigger push-notification.select-event-to-set-trigger-description = Select one or more events to set the trigger. -push-notification.select-cohort-to-set-trigger = Select one ore more cohorts to set the trigger +push-notification.select-cohort-to-set-trigger = Select one or more cohorts to set the trigger push-notification.select-cohort-to-set-trigger-description = Recalculation of cohorts above will trigger sending process automatically. push-notification.select-location = Please select a location push-notification.when-to-determine-users = When to determine the users? @@ -110,9 +110,9 @@ push-notification.determine-users-now = Determine users now push-notification.triggers = Triggers push-notification.triggers-description = Select the user behavior that will trigger the message sending process automatically. push-notification.cohorts-entry = Cohort(s) entry -push-notification.cohorts-entry-description = Triggered when user enters into any of the cohorts you select. +push-notification.cohorts-entry-description = Triggered when a user enters any of the cohorts you select. push-notification.cohorts-exit = Cohort(s) exit -push-notification.cohorts-exit-description = Triggered when user exits from any of the cohorts you select. +push-notification.cohorts-exit-description = Triggered when a user exits from any of the cohorts you select. push-notification.performed-events = Performed Event(s) push-notification.performed-events-description = Triggered when user performs a selected event. push-notification.select-event = Please select an event @@ -138,7 +138,7 @@ push-notification.relative-to-the-date-event-server = Relative to the date event push-notification.relative-to-the-date-event-device = Relative to the date event occurred on a device push-notification.send-anyway = Send anyway push-notification.cancel-when-user-exits-cohort = Cancel when user exits selected cohort(s) -push-notification.cancel-when-user-exits-cohort-description = Stops the message from being sent if the user is no longer in the selected cohort(s). +push-notification.cancel-when-user-exits-cohort-description = Stops sending the message if the user is no longer in the selected cohort(s). push-notification.send-now = Send now push-notification.send-now-description = Send the push notification immediately, once composition is complete. push-notification.scheduled = Scheduled @@ -156,7 +156,7 @@ push-notification.what-if-past-scheduled-tooltip = Select what happens if a user push-notification.do-not-send-message = Do not send the message push-notification.deliver-next-day = Deliver the message next day push-notification.immediately = Immediately -push-notification.immediately-description = Deliver this message as soon as triggering cohort is recalculated. +push-notification.immediately-description = Deliver this message as soon as the triggering cohort is recalculated. push-notification.delayed = Delayed push-notification.days = Days push-notification.hours = Hours @@ -201,6 +201,8 @@ push-notification.media-url-platform-description = Add the URL for media specifi push-notification.subtitle = Subtitle push-notification.enter-your-subtitle = Enter your subtitle push-notification.subtitle-description = Add a subheading for your message. +push-notification.set-content-available = Set content-available +push-notification.set-content-available-description = Sets the apns-priority header to 5 and content-available property of request body to 1 for the IOS application to receive notifications while the app is in the background push-notification.on-click-url = On Click URL push-notification.enter-on-click-url = Enter on click URL push-notification.on-click-url-description = Add URL link that is opened when user taps a message in drawer. @@ -214,7 +216,7 @@ push-notification.icon = Icon push-notification.icon-description = Set Android notification icon. push-notification.enter-icon = Enter icon push-notification.review-message = Review Mesage -push-notification.review-message-tooltip = Review all the details of you push notification. +push-notification.review-message-tooltip = Review all the details of your push notification. push-notification.message-name = Message name push-notification.review-title = Title push-notification.content = Content @@ -244,6 +246,9 @@ push-notification.testing-tooltip = Sends the push notification to applications' push-notification.send-to-test-users = Send to test users push-notification.confirmation-uppercase = CONFIRMATION push-notification.confirmation-uppercase-description = CONFIRMATION description +push-notification.save-push-stats = Keep individual push records for each user +push-notification.debugging = DEBUGGING +push-notification.push-stats-warning = This options enables the storage of each push record inside "push_stats" collection for every message per device for debug purposes. Please enable this option with caution since it can fill up the database quickly. push-notification.i-am-ready-to-send = I am ready to send this message to real-users push-notification.was-successfully-saved = Push notification message was successfully saved push-notification.was-successfully-sent-to-test-users = Push notification message was successfully sent to test users @@ -269,7 +274,7 @@ push-notification.remove = Remove push-notification.confirm = Confirm push-notification.internal-properties = Internal Properties push-notification.external-properties = External Properties -push-notification-fallback-value-description = User''s \"{0}\" property which falls back to \"{1}\" +push-notification-fallback-value-description = User's "{0}" property which falls back to "{1}" # Details @@ -341,7 +346,8 @@ push-notification.team-id = Team ID push-notification.bundle-id = Bundle ID push-notification.passphrase = Passphrase push-notification.android-settings = Android (Google FCM) -push-notification.firebase-key = Firebase key +push-notification.firebase-service-account-json = Service account JSON file +push-notification.service-account-file-already-uploaded = Service account JSON file is already uploaded push-notification.huawei-settings = Android (Huawei Push Kit) push-notification.huawei-app-id = App ID push-notification.huawei-app-secret = App Secret @@ -388,6 +394,7 @@ push.pool_pushes = Number of notifications in stream batches push.pool_bytes = Bytes in binary stream batches push.pool_concurrency = Maximum number of same type connections push.pool_pools = Maximum number of connections in total +push.default_content_available = Set content-available to 1 by default for IOS #Drawer from other views push-notification.send-message-to-users = Send message to users @@ -418,7 +425,7 @@ push-notification.error-code.InvalidProviderToken.desc = Please check your Auth push-notification.error-code.MissingRegistration.desc = Please contact customer support. push-notification.error-code.InvalidRegistration.desc = Probably you modified the way SDK handles FCM tokens. Please ensure you do it right or contact support. push-notification.error-code.InvalidParameters.desc = Invalid request parameters. Please send server logs to Countly support. -push-notification.error-code.MismatchSenderId.desc = Invalid Sender ID. Most probably SDK competes for tokens with other Firebase SDK you have in your app.
Please override the way our SDK or another SDK get a token so they would end up using the same token. +push-notification.error-code.MismatchSenderId.desc = Invalid Sender ID. Most probably SDK competes for tokens with other Firebase SDK you have in your app. Please override the way our SDK or another SDK get a token so they would end up using the same token. push-notification.error-code.MessageTooBig.desc = Message was too large and Google declined to deliver it. push-notification.error-code.InvalidDataKey.desc = Message contains invalid data key, please check: push-notification.error-code.InvalidTtl.desc = Please contact customer support. @@ -427,7 +434,7 @@ push-notification.error-code.TopicsMessageRateExceeded.desc = You send messages push-notification.error-code.Unavailable.desc = Google server unexpectedly returned HTTP error 200 Unavailable. Please try again later. push-notification.error-code.InternalServerError.desc = Google server unexpectedly returned HTTP error 200 InternalServerError. Please try again later. push-notification.error-code.NotRegistered.desc = FCM token expired -push-notification.error-code.InvalidRegistration.desc = Probably you modified the way SDK handles FCM tokens. Please ensure you do it right or contact support. +push-notification.error-code.InvalidRegistration.desc = FCM token is invalid push-notification.error-code.InvalidPackageName.desc = Your application package name doesn't correspond to package name specified in FCM push-notification.error-code.IllegalToken.desc = Huawei token is expired or invalid push-notification.error-code.MessageBodyTooBig.desc = Message body is too big for a Huawei notification @@ -435,14 +442,14 @@ push-notification.error-code.TooManyTokens.desc = Too many tokens are being sent push-notification.error-code.NotAuthorizedPriority.desc = You are not authorized to send high-priority Huawei notifications. push-notification.error-code.InternalHuaweiError.desc = Internal Huawei server error. -push-notification.error-code.TooLateToSend.desc = Countly was unable to send these notifications in time (1 hour from scheduled date). +push-notification.error-code.TooLateToSend.desc = Push Notification messages have been discarded because time of arrival would be at least 60 minutes later than expected. push-notification.error-code.del = Message deleted push-notification.error-code.del.desc = Push Notification messages have been discarded due to the message being deleted. push-notification.error-code.consent = Consent cancelled push-notification.error-code.consent.desc = Push Notification messages have been removed from the queue because of removed push consent. push-notification.error-code.purge.desc = Push Notification messages have been removed from the queue because user data has been purged. push-notification.error-code.aborted = Aborted -push-notification.error-code.aborted.desc = Push Notification messages have been removed from the queue after an nonrecoverable error. Please check our Troubleshooting documentation.
Please read the following instructions if you want to re-send the push notification to users who have not received it. +push-notification.error-code.aborted.desc = Push Notification messages have been removed from the queue after an nonrecoverable error. Please check our Troubleshooting documentation. Please read the following instructions if you want to re-send the push notification to users who have not received it. push-notification.error-code.ExpiredToken = Expired Token push-notification.error-code.ExpiredToken.desc = The token expired for affected number of users. @@ -455,3 +462,6 @@ systemlogs.action.push_message_updated = Push Notification updated systemlogs.action.push_message_activated = Push Notification activated systemlogs.action.push_message_deactivated = Push Notification deactivated systemlogs.action.push_message_test = Test Push Notification sent + +# Error messages +push-notification.no-credentials = No push credentials found for {0} platform diff --git a/plugins/recaptcha/frontend/public/localization/recaptcha_fr.properties b/plugins/recaptcha/frontend/public/localization/recaptcha_fr.properties index 2aa21e0dca0..408d74992ff 100644 --- a/plugins/recaptcha/frontend/public/localization/recaptcha_fr.properties +++ b/plugins/recaptcha/frontend/public/localization/recaptcha_fr.properties @@ -6,4 +6,4 @@ recaptcha.enable = Enable Recaptcha configs.help.recaptcha-enable = Enable or Disable Recaptcha configs.help.recaptcha-site_key = Get site key from Recaptcha configs.help.recaptcha-secret_key = Get secret key from Recaptcha -recaptcha.incorrect = Please verify you are not a robot. +recaptcha.incorrect = Please verify you are not a robot. \ No newline at end of file diff --git a/plugins/remote-config/frontend/public/localization/remote-config_fr.properties b/plugins/remote-config/frontend/public/localization/remote-config_fr.properties index d859d0ad887..13e241e76ee 100644 --- a/plugins/remote-config/frontend/public/localization/remote-config_fr.properties +++ b/plugins/remote-config/frontend/public/localization/remote-config_fr.properties @@ -65,7 +65,7 @@ remote-config-running = Remote Config is running remote-config-stopped = Remote Config is stopped remote-config.condition.name.placeholder = Enter condition name remote-config.condition.color.tag = Color Tag -remote-config.condition.color.tag.description = Color Tag +remote-config.condition.color.tag.description = Color Tag remote-config.conditions.parameter.affected = parameter affected remote-config.conditions.random.percentile = Random Percentile remote-config.use.description = Use description @@ -80,16 +80,22 @@ remote-config.default-value.placeholder = Enter default value remote-config.parameter.conditions.description = Conditions description remote-config.expiration.time = USE EXPIRATION TIME remote-config.expiration.time.description = Set expiration time for parameter +remote-config.expiration.time.error = Must be at least one day remote-config.parameter.status = Status remote-config.parameter.ab.status = A/B Testing Status remote-config.parameter.created = Created remote-config.expire.date = Expire date remote-config.start = Start remote-config.stop = Stop +remote-config.enable = Enable +remote-config.disable = Disable remote-config.parameter.running = Running remote-config.percentage = Percentage remote-config.parameter.stopped = Stopped remote-config.parameter.expired = Expired +remote-config.parameter.enabled = Enabled +remote-config.parameter.disabled = Disabled +remote-config.parameter.action-tooltip-content = Actions are not allowed when the parameter is in use in an experiment remote-config.json.editor = JSON Editor remote-config.json.invalid = Invalid JSON code remote-config.json.valid = Valid JSON code diff --git a/plugins/reports/frontend/public/localization/reports_fr.properties b/plugins/reports/frontend/public/localization/reports_fr.properties index 37f86f80580..715fc47d6e8 100644 --- a/plugins/reports/frontend/public/localization/reports_fr.properties +++ b/plugins/reports/frontend/public/localization/reports_fr.properties @@ -73,7 +73,7 @@ reports.more = more reports.report = {0} Report reports.too-long = Sending message took too long. Message may not be sent. reports.sent-by = Sent by -reports.view-in-browser = View in browser +reports.view-in-browser = View in browser reports.get-help = Get help reports.metric-metric = Metric reports.metric-count = Count @@ -146,4 +146,4 @@ reports.empty-subtitle= Create reports to receive e-mails periodically. reports.Select-timezone=Select Time Zone reports.Select-dow=Select a Day of the Week reports.Select-time=Select Time -reports.send-pdf = Send as pdf attachment +reports.send-pdf = Send as pdf attachment \ No newline at end of file diff --git a/plugins/sdk/frontend/public/localization/sdk_fr.properties b/plugins/sdk/frontend/public/localization/sdk_fr.properties new file mode 100644 index 00000000000..505879c78ea --- /dev/null +++ b/plugins/sdk/frontend/public/localization/sdk_fr.properties @@ -0,0 +1,4 @@ +#sdk + +sdk.plugin-title = SDK Manager +sdk.plugin-description = SDK configuration and data diff --git a/plugins/server-stats/frontend/public/localization/server-stats_fr.properties b/plugins/server-stats/frontend/public/localization/server-stats_fr.properties index 2e90dc79861..e716c5742bf 100644 --- a/plugins/server-stats/frontend/public/localization/server-stats_fr.properties +++ b/plugins/server-stats/frontend/public/localization/server-stats_fr.properties @@ -8,7 +8,23 @@ server-stats.data-points.punch-card-tooltip = Max: {0}, Min: {1}, Avg: {2} server-stats.data-points.punch-card-title = DATA POINTS (HOURS) → server-stats.data-points-last_hours = Top applications by data points in the last 2 hours server-stats.all-datapoints = All Datapoints -server-stats.total-datapoints = Total Datapoints +server-stats.total-datapoints = Total Data Points server-stats.consolidated-datapoints = Consolidated Datapoints server-stats.natural-datapoints = Natural Datapoints -server-stats.datapoint-change = Change +server-stats.datapoint-change = Change in Data Points +server-stats.event-breakdown = Event Breakdown +# Text required for data table, independant from other plugins +server-stats.app-name = App Name +server-stats.sessions = Sessions +server-stats.events = Non-Session Data Points +server-stats.crashes = Crashes +server-stats.views = Views +server-stats.actions = Heatmaps Actions +server-stats.nps = NPS +server-stats.surveys = Surveys +server-stats.ratings = Ratings +server-stats.apm = APM Traces +server-stats.custom = Custom Events +server-stats.cs = Consent event +server-stats.ps = Push Sent event +server-stats.push = Push Action event diff --git a/plugins/sources/frontend/public/localization/sources_fr.properties b/plugins/sources/frontend/public/localization/sources_fr.properties index 7ae5994195e..3c144d4e51b 100644 --- a/plugins/sources/frontend/public/localization/sources_fr.properties +++ b/plugins/sources/frontend/public/localization/sources_fr.properties @@ -16,4 +16,4 @@ keywords.title = Search Terms keywords.top_terms = Top Searched Terms keywords.total = of Total keywords.go-to-keywords = Go to Search Terms -keywords.description = Applicable to web applications, this higlights the search terms that drive traffic to your website. +keywords.description = Applicable to web applications, this higlights the search terms that drive traffic to your website. \ No newline at end of file diff --git a/plugins/star-rating/frontend/public/javascripts/countly.views.js b/plugins/star-rating/frontend/public/javascripts/countly.views.js index 9a7f38cf5a7..3bfe2807424 100644 --- a/plugins/star-rating/frontend/public/javascripts/countly.views.js +++ b/plugins/star-rating/frontend/public/javascripts/countly.views.js @@ -78,14 +78,22 @@ consent: false, ratingItem: [ { active: false, inactive: false }, { active: false, inactive: false }, { active: false, inactive: false }, { active: false, inactive: false }, { active: false, inactive: false }], constants: { - // TODO: will be localized - trigger_sizes: [{label: 'Small', value: 's'}, {label: 'Medium', value: 'm'}, {label: 'Large', value: 'l'}], + trigger_sizes: [ + {label: this.i18n("star-rating.trigger-size.small") || 'Small', value: 's'}, + {label: this.i18n("star-rating.trigger-size.medium") || 'Medium', value: 'm'}, + {label: this.i18n("star-rating.trigger-size.large") || 'Large', value: 'l'} + ], logoOptions: [ { label: this.i18n("surveys.appearance.logo.option.default"), value: "default" }, { label: this.i18n("surveys.appearance.logo.option.custom"), value: "custom" }, { label: this.i18n("surveys.appearance.logo.option.no.logo"), value: "none" } ], - trigger_positions: [{value: 'mleft', label: 'Center left', key: 'middle-left'}, { value: 'mright', label: 'Center right', key: 'middle-right' }, { value: 'bleft', label: 'Bottom left', key: 'bottom-left'}, { value: 'bright', label: 'Bottom right', key: 'bottom-right' }] + trigger_positions: [ + {value: 'mleft', label: this.i18n("star-rating.trigger-position.center-left") || 'Center left', key: 'middle-left'}, + {value: 'mright', label: this.i18n("star-rating.trigger-position.center-right") || 'Center right', key: 'middle-right'}, + {value: 'bleft', label: this.i18n("star-rating.trigger-position.bottom-left") || 'Bottom left', key: 'bottom-left'}, + {value: 'bright', label: this.i18n("star-rating.trigger-position.bottom-right") || 'Bottom right', key: 'bottom-right'} + ] }, ratingSymbols: ['emojis', 'thumbs', 'stars'], logoDropzoneOptions: { diff --git a/plugins/star-rating/frontend/public/localization/star-rating.properties b/plugins/star-rating/frontend/public/localization/star-rating.properties index 7356b59e652..7c6008da171 100644 --- a/plugins/star-rating/frontend/public/localization/star-rating.properties +++ b/plugins/star-rating/frontend/public/localization/star-rating.properties @@ -25,6 +25,13 @@ star.number-of-ratings-cap= Number of ratings star.percentage=PERCENTAGE star.percentage-cap=Percentage star.change=Change +star-rating.trigger-size.small=Small +star-rating.trigger-size.medium=Medium +star-rating.trigger-size.large=Large +star-rating.trigger-position.center-left=Center left +star-rating.trigger-position.center-right=Center right +star-rating.trigger-position.bottom-left=Bottom left +star-rating.trigger-position.bottom-right=Bottom right feedback.widget = Widget feedback.active = Running feedback.disabled = Stopped diff --git a/plugins/star-rating/frontend/public/localization/star-rating_fr.properties b/plugins/star-rating/frontend/public/localization/star-rating_fr.properties index 211bcca7c6a..7c6008da171 100644 --- a/plugins/star-rating/frontend/public/localization/star-rating_fr.properties +++ b/plugins/star-rating/frontend/public/localization/star-rating_fr.properties @@ -25,6 +25,13 @@ star.number-of-ratings-cap= Number of ratings star.percentage=PERCENTAGE star.percentage-cap=Percentage star.change=Change +star-rating.trigger-size.small=Small +star-rating.trigger-size.medium=Medium +star-rating.trigger-size.large=Large +star-rating.trigger-position.center-left=Center left +star-rating.trigger-position.center-right=Center right +star-rating.trigger-position.bottom-left=Bottom left +star-rating.trigger-position.bottom-right=Bottom right feedback.widget = Widget feedback.active = Running feedback.disabled = Stopped @@ -95,7 +102,7 @@ feedback.comment-callout-title = Use "Add comment" option feedback.email-callout-title = Use "Contact me via e-mail" option feedback.button-callout-title = Button callout feedback.thanks-message-title = Thank you message -feedback.position-on-the-page = Position on the Page +feedback.position-on-the-page = Position on the page feedback.middle-right = Center right feedback.middle-left = Center left feedback.bottom-right = Bottom right @@ -112,6 +119,10 @@ feedback.select-device-types = Select device types feedback.where-to-collect-feedback = Where to collect ratings? feedback.all-pages = On all pages feedback.selected-pages = On selected pages +feedback.internalName = Internal Name +feedback.internalName.placeholder = Enter an Internal Name +feedback.internalName.description = This name is internal and will not be shown to your end user. +feedback.consent = Add user consent feedback.question = Question feedback.rating-symbol = Rating Symbol feedback.rating-score = Rating Score @@ -120,9 +131,11 @@ feedback.show-detail = Show Detail feedback.detail = Detail feedback.responses = Responses feedback.ratings-widget-name = Ratings Widget Name +feedback.ratings-widget-internal-name = Internal Name feedback.emojis = Emojis feedback.thumbs = Thumbs feedback.stars = Stars +feedback.buttons.heading = Buttons feedback.use-add-comment-option = Use "Add comment" option feedback.use-contact-email-option = Use "Contact me via e-mail" option feedback.type-your-option-name = Enter your option name @@ -197,3 +210,8 @@ feedback.delete-logo = Delete Logo feedback.choose-file = Choose File feedback.logo-preview = Logo Preview feedback.view.user = View User +rating.drawer.consent.text = Text +rating.drawer.consent.placeholder = I agree to terms & conditions and privacy policy +rating.drawer.consent.links = Link(s) +rating.drawer.consent.add.link = + Add link +rating.drawer.links.tooltip = Matching link texts inside the consent text are modified to be links diff --git a/plugins/system-utility/frontend/public/localization/system-utility_fr.properties b/plugins/system-utility/frontend/public/localization/system-utility_fr.properties new file mode 100644 index 00000000000..8f61f73b3c4 --- /dev/null +++ b/plugins/system-utility/frontend/public/localization/system-utility_fr.properties @@ -0,0 +1 @@ +#system-utility \ No newline at end of file diff --git a/plugins/systemlogs/frontend/public/localization/systemlogs_fr.properties b/plugins/systemlogs/frontend/public/localization/systemlogs_fr.properties index cfebd0794af..b03d01bba77 100644 --- a/plugins/systemlogs/frontend/public/localization/systemlogs_fr.properties +++ b/plugins/systemlogs/frontend/public/localization/systemlogs_fr.properties @@ -1,7 +1,7 @@ #system logs systemlogs.title = Audit Logs -systemlogs.description = Logs dashboard user actions and data access +systemlogs.description = Logs user actions and data access on the dashboard. systemlogs.user = User systemlogs.action = Action systemlogs.timestamp = Time @@ -11,8 +11,8 @@ systemlogs.view-user-actions = View User Actions systemlogs.all-users = All Users systemlogs.all-actions = All Actions systemlogs.no-data = No additional data to display -systemlogs.has-data = With following data -systemlogs.changed-data = Following data was changed +systemlogs.has-data = With the following data +systemlogs.changed-data = The following data was changed systemlogs.field = Field systemlogs.value = Value systemlogs.before = Before @@ -25,7 +25,7 @@ systemlogs.for-crash = For Crash systemlogs.for-id = For ID systemlogs.data = Data configs.systemlogs-preventIPTracking = Disable IP Tracking -configs.help.systemlogs-preventIPTracking = Do not record IP address of actions taken by the users +configs.help.systemlogs-preventIPTracking = Do not record the IP address of actions taken by the users. systemlogs.action.logout = Logout systemlogs.action.password_reset = Password Reset @@ -50,17 +50,17 @@ systemlogs.action.user_updated = User Updated systemlogs.action.user_deleted = User Deleted systemlogs.action.graph_note_created = Graph Note Created systemlogs.action.graph_note_deleted = Graph Note Deleted -systemlogs.action.events_updated = Events updated -systemlogs.action.event_deleted = Event deleted +systemlogs.action.events_updated = Events Updated +systemlogs.action.event_deleted = Event Deleted systemlogs.action.export_app_user_deleted = App User export file deleted -systemlogs.action.export_app_user_started = App User export started -systemlogs.action.export_app_user = App User export finished +systemlogs.action.export_app_user_started = App User Export Started. +systemlogs.action.export_app_user = App User Export Finished. systemlogs.action.app_user_created = App User Created systemlogs.action.app_user_updated = App User Updated systemlogs.action.app_user_deleted = App User Deleted -systemlogs.action.token_login_failed = Login using token Failed -systemlogs.action.token_login_successfull = Login using token Successful -systemlogs.action.user_account_deleted = User has deleted his account +systemlogs.action.token_login_failed = Login Using Token Failed +systemlogs.action.token_login_successfull = Login Using Token Successful +systemlogs.action.user_account_deleted = User has deleted their account. systemlogs.action.feedback_widget_created = Feedback widget created systemlogs.action.feedback_widget_edited = Feedback widget edited systemlogs.action.feedback_widget_removed = Feedback widget removed @@ -68,3 +68,13 @@ systemlogs.action.feedback_widget_removed_with_data = Feedback widget removed wi systemlogs.action.populator_template_created = Populator template created systemlogs.action.populator_template_removed = Populator template removed systemlogs.action.populator_template_edited = Populator template edited +systemlogs.action.view_recalculation_finished = View recalculation finished. +systemlogs.action.view_segments_ommit = View Segments Omitted +systemlogs.action.view_segments_ommit_complete = View Segments Omission Complete. +systemlogs.action.cb-content_asset-updated = Content Builder Asset Updated +systemlogs.action.cb-content_asset-uploaded = Content Builder Asset Uploaded +systemlogs.action.cb-content_asset-deleted = Content Builder Asset Deleted +systemlogs.action.cb-content_block-edit = Content Builder Block Edited +systemlogs.action.cb-content_block-create = Content Builder Block Created +systemlogs.action.cb-content_block-delete = Content Builder Block Deleted +systemlogs.action.journey-engine-event-created = Journey Engine Event Created \ No newline at end of file diff --git a/plugins/times-of-day/frontend/public/javascripts/countly.models.js b/plugins/times-of-day/frontend/public/javascripts/countly.models.js index 6c7967adaf5..335a010b0b6 100755 --- a/plugins/times-of-day/frontend/public/javascripts/countly.models.js +++ b/plugins/times-of-day/frontend/public/javascripts/countly.models.js @@ -1,9 +1,17 @@ -/*global countlyCommon,CV,countlyVue,countlyEvent,moment */ +/*global countlyCommon,CV,countlyVue,countlyEvent,moment,jQuery */ (function(countlyTimesOfDay) { countlyTimesOfDay.service = { HOURS: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], - WEEK_DAYS: ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"], + WEEK_DAYS: [ + jQuery.i18n.map["common.monday"] || "monday", + jQuery.i18n.map["common.tuesday"] || "tuesday", + jQuery.i18n.map["common.wednesday"] || "wednesday", + jQuery.i18n.map["common.thursday"] || "thursday", + jQuery.i18n.map["common.friday"] || "friday", + jQuery.i18n.map["common.saturday"] || "saturday", + jQuery.i18n.map["common.sunday"] || "sunday" + ], DateBucketEnum: { PREV_MONTH: "previous", THIS_MONTH: "current", diff --git a/plugins/times-of-day/frontend/public/localization/times-of-day_fr.properties b/plugins/times-of-day/frontend/public/localization/times-of-day_fr.properties old mode 100644 new mode 100755 index a9ff40164cc..f7f36af7c48 --- a/plugins/times-of-day/frontend/public/localization/times-of-day_fr.properties +++ b/plugins/times-of-day/frontend/public/localization/times-of-day_fr.properties @@ -1,8 +1,8 @@ times-of-day.title = Times of Day -times-of-day.description = Scatter plot chart with times and days of Session and Event occurrences in your application, based on users' local time. +times-of-day.description = Shows a scatter plot chart with the times and days of session and event occurrences in your application, based on users' local time. times-of-day.results-for = Results for times-of-day.total-users = Total users -times-of-day.between = between +times-of-day.between = between times-of-day.sunday = Sunday times-of-day.monday = Monday @@ -26,4 +26,4 @@ times-of-day.select = Select a period times-of-day.time-period = Time period times-of-day.event = Event -times-of-day.sessions = Sessions +times-of-day.sessions = Sessions \ No newline at end of file diff --git a/plugins/two-factor-auth/frontend/public/localization/two-factor-auth_fr.properties b/plugins/two-factor-auth/frontend/public/localization/two-factor-auth_fr.properties index 7509319a9e7..d3a1b7224b6 100644 --- a/plugins/two-factor-auth/frontend/public/localization/two-factor-auth_fr.properties +++ b/plugins/two-factor-auth/frontend/public/localization/two-factor-auth_fr.properties @@ -4,13 +4,13 @@ two-factor-auth.plugin-title = Two Factor Authentication two-factor-auth.plugin-description = Time based second factor authentication for use with Microsoft and Google Authenticator apps two-factor-auth.login.placeholder = Two Factor Code two-factor-auth.login.code = Login Error: The Two Factor Code you entered is incorrect. Please try again. -two-factor-auth.login.setup = Login Error: Two Factor Authentication has not been setup for this account, please contact your Administrator to help you set it up. You will not be able to log in until you have set up Two Factor Authentication. +two-factor-auth.login.setup = Login Error: Two Factor Authentication has not been setup for this account, please contact your Administrator to help you set it up. You will not be able to log in until you have set up Two Factor Authentication. two-factor-auth.two-factor-authentication = Two Factor Authentication two-factor-auth.globally_enabled = Enforce globally two-factor-auth.confirm = Confirm two-factor-auth.prompt = Please enter verification code configs.help.two-factor-auth-globally_enabled = When enabled, users without Two Factor Authentication enabled will be asked to set it up. -two-factor-auth.global_enable_setup = This option is only available when your own account has Two Factor Authentication enabled. +two-factor-auth.global_enable_setup = This option is only available when your own account has Two Factor Authentication enabled. two-factor-auth.enable = Enable two-factor-auth.disable = Disable two-factor-auth.disable_2fa = Disable 2FA @@ -31,12 +31,12 @@ two-factor-auth.faildisable_title = Failed to disable 2FA two-factor-auth.faildisable_message = Disabling Two Factor Authentication failed with the message "{0}" two-factor-auth.install_app = Install Google / Microsoft authenticator on your smartphone (Android, iOS, Windows). two-factor-auth.scan_qr = To add / renew time based password, open the authenticator app and scan the QR code below. -two-factor-auth.secret_token = Secret Token +two-factor-auth.secret_token = Secret Token two-factor-auth.enter_otp = Enter the time based password generated by the app below and click confirm to activate. two-factor-auth.enter_otp_short = Enter generated password two-factor-auth.confirm_disable_title = Disable 2FA? two-factor-auth.confirm_disable = You are about to disable Two Factor Authentication for your account. Do you want to continue? -two-factor-auth.confirm_disable_admin = You are about to disable Two Factor Authentication for {0}. Do you want to continue? +two-factor-auth.confirm_disable_admin = You are about to disable Two Factor Authentication for {0}. Do you want to continue? systemlogs.action.two_factor_auth_enabled = Enabled 2FA systemlogs.action.two_factor_auth_disabled = Disabled 2FA diff --git a/plugins/views/frontend/public/localization/views_fr.properties b/plugins/views/frontend/public/localization/views_fr.properties index c48c04458f8..e1032118f7f 100644 --- a/plugins/views/frontend/public/localization/views_fr.properties +++ b/plugins/views/frontend/public/localization/views_fr.properties @@ -32,16 +32,16 @@ configs.help.views-view_limit = Configure how many different view values will be views.view_name_limit = View Name Length Limit views.segment_limit = View Segment Limit views.segment_value_limit = View Segment Value Limit -configs.help.views-segment_value_limit = Configure the value limt for view segments. Having value over 100 will most likely result in segment ommision from aggregated data as about 100 values is maximum that can be stored in agregated views segment model. +configs.help.views-segment_value_limit = Configure the value limt for view segments. Having value over 100 will most likely result in segment ommision from aggregated data as about 100 values is maximum that can be stored in agregated views segment model. configs.help.views-view_name_limit = Limit view names to the provided amount of characters and not longer -configs.help.views-segment_limit = Views plugin powered by Drill, allows you to further segment (e.g. view name, domain etc) your analysis. Configure a limit for view segments. +configs.help.views-segment_limit = Views plugin powered by Drill, allows you to further segment (e.g. view name, domain etc) your analysis. Configure a limit for view segments. views.select = Select maximum 2 metrics views.segment-key = Segment key views.segment-value = Segment value views.widget-type = Views views.heading = Page Views -views.u = Total Utilisateurs -views.n = Nouveaux Utilisateurs +views.u = Total Users +views.n = New Users views.t = Total Visits views.d = Avg. Time views.s = Landings @@ -66,9 +66,14 @@ internal-events.[CLY]_action = Action systemlogs.action.view_deleted = View Deleted systemlogs.action.view_segments_ommit_complete = View segment ommiting complete systemlogs.action.view_segments_ommit = View segment ommiting start -views.max-views-limit = Maximum limit of unique views ({0}) has been reached. Limit can be adjusted. +views.omit-segments-confirm = Do you want to omit selected segments for all views in this app? +views.max-views-limit = Maximum limit of unique views ({0}) has been reached. Limit can be adjusted on the Views configurations page. +views.drill-drawer.title = Drill views +views.drill-drawer.save-button = Go to Drill +views.drill-drawer.views = VIEW(S) +views.drill-drawer.search-view-name = Search view name #views-per-session views-per-session.title = Views per Session views-per-session.description = Number of screens or pages that your users viewed in your application, in the selected time period, distributed into frequency ranges. -views-per-session.table-views-buckets = Views per session +views-per-session.table-views-buckets = Views per session \ No newline at end of file diff --git a/plugins/vue-example/frontend/public/localization/vue-example_fr.properties b/plugins/vue-example/frontend/public/localization/vue-example_fr.properties new file mode 100644 index 00000000000..5554e4a93f2 --- /dev/null +++ b/plugins/vue-example/frontend/public/localization/vue-example_fr.properties @@ -0,0 +1,3 @@ +vue-example.table=Table +vue-example.time-graph=Time Graph +vue-example.add-new-row=Add new row \ No newline at end of file diff --git a/plugins/web/frontend/public/localization/web_fr.properties b/plugins/web/frontend/public/localization/web_fr.properties index 55beb9ba9d3..b090ac62c92 100644 --- a/plugins/web/frontend/public/localization/web_fr.properties +++ b/plugins/web/frontend/public/localization/web_fr.properties @@ -87,5 +87,5 @@ web.sources.title = Traffic Sources web.sources.source = Traffic Source web.plugin-title = Web Analytics web.plugin-description = Enable Analytics for websites -management-applications.app-domain = Website Domain -placeholder.app-domain-key = Enter website domain (optional) +management-applications.app-domain = Website Domain +placeholder.app-domain-key = Enter website domain (optional) \ No newline at end of file From dd2d9c9e422d782af5fc0e46ac873a8b552f237e Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Wed, 23 Jul 2025 17:31:40 +0300 Subject: [PATCH 013/344] French localization 2 --- french_localization_files.txt | 36 + .../dashboard/dashboard_fr.properties | 2045 +++++++++-------- .../localization/help/help_fr.properties | 122 +- .../localization/mail/mail_fr.properties | 21 +- .../pre-login/pre-login_fr.properties | 148 +- .../public/localization/browser_fr.properties | 21 +- .../public/localization/compare_fr.properties | 89 +- .../localization/compliance-hub_fr.properties | 79 +- .../localization/consolidate_fr.properties | 12 +- .../public/localization/crashes_fr.properties | 30 +- .../localization/dashboards_fr.properties | 383 ++- .../localization/data-manager_fr.properties | 776 ++++--- .../localization/data_migration_fr.properties | 316 +-- .../localization/dbviewer_fr.properties | 88 +- .../public/localization/density_fr.properties | 22 +- .../public/localization/desktop_fr.properties | 8 +- .../localization/errorlogs_fr.properties | 26 +- .../public/localization/guides_fr.properties | 54 +- .../public/localization/hooks_fr.properties | 270 +-- .../public/localization/locale_fr.properties | 12 +- .../public/localization/logger_fr.properties | 72 +- .../public/localization/mobile_fr.properties | 14 +- .../localization/onboarding_fr.properties | 4 +- .../public/localization/plugins_fr.properties | 436 ++-- .../localization/populator_fr.properties | 418 ++-- .../public/localization/push_fr.properties | 862 +++---- .../localization/recaptcha_fr.properties | 16 +- .../localization/remote-config_fr.properties | 212 +- .../public/localization/reports_fr.properties | 280 +-- .../public/localization/sdk_fr.properties | 4 +- .../localization/server-stats_fr.properties | 52 +- .../slipping-away-users_fr.properties | 42 +- .../public/localization/sources_fr.properties | 26 +- .../localization/star-rating_fr.properties | 410 ++-- .../localization/systemlogs_fr.properties | 150 +- .../localization/times-of-day_fr.properties | 44 +- .../two-factor-auth_fr.properties | 78 +- .../public/localization/views_fr.properties | 150 +- .../localization/vue-example_fr.properties | 6 +- .../public/localization/web_fr.properties | 172 +- 40 files changed, 4071 insertions(+), 3935 deletions(-) create mode 100644 french_localization_files.txt diff --git a/french_localization_files.txt b/french_localization_files.txt new file mode 100644 index 00000000000..d93a517a161 --- /dev/null +++ b/french_localization_files.txt @@ -0,0 +1,36 @@ +/Users/ar2rsawseen/git/countly-server/frontend/express/public/localization/help/help_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/compare/frontend/public/localization/compare_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/compliance-hub/frontend/public/localization/compliance-hub_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/consolidate/frontend/public/localization/consolidate_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/crashes/frontend/public/localization/crashes_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/dashboards/frontend/public/localization/dashboards_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/data_migration/frontend/public/localization/data_migration_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/data-manager/frontend/public/localization/data-manager_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/dbviewer/frontend/public/localization/dbviewer_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/density/frontend/public/localization/density_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/desktop/frontend/public/localization/desktop_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/errorlogs/frontend/public/localization/errorlogs_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/guides/frontend/public/localization/guides_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/hooks/frontend/public/localization/hooks_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/locale/frontend/public/localization/locale_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/logger/frontend/public/localization/logger_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/mobile/frontend/public/localization/mobile_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/onboarding/frontend/public/localization/onboarding_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/plugins/frontend/public/localization/plugins_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/populator/frontend/public/localization/populator_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/push/frontend/public/localization/push_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/recaptcha/frontend/public/localization/recaptcha_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/remote-config/frontend/public/localization/remote-config_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/reports/frontend/public/localization/reports_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/sdk/frontend/public/localization/sdk_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/server-stats/frontend/public/localization/server-stats_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/slipping-away-users/frontend/public/localization/slipping-away-users_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/sources/frontend/public/localization/sources_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/star-rating/frontend/public/localization/star-rating_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/system-utility/frontend/public/localization/system-utility_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/systemlogs/frontend/public/localization/systemlogs_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/times-of-day/frontend/public/localization/times-of-day_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/two-factor-auth/frontend/public/localization/two-factor-auth_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/views/frontend/public/localization/views_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/vue-example/frontend/public/localization/vue-example_fr.properties +/Users/ar2rsawseen/git/countly-server/plugins/web/frontend/public/localization/web_fr.properties diff --git a/frontend/express/public/localization/dashboard/dashboard_fr.properties b/frontend/express/public/localization/dashboard/dashboard_fr.properties index 859f22bdcf6..ea8b71f2012 100644 --- a/frontend/express/public/localization/dashboard/dashboard_fr.properties +++ b/frontend/express/public/localization/dashboard/dashboard_fr.properties @@ -48,15 +48,15 @@ common.previous-period = Période précédente common.previous-year = Même période l'année précédente common.bar.top-resolution = Meilleures Résolutions common.bar.top-resolution.description = Les 5 meilleures résolutions des appareils utilisés dans les sessions de vos utilisateurs dans la période sélectionnée. -web.common.bar.top-resolution.description = The top 5 resolution settings of the devices used in your visitors' sessions within the selected time period. +web.common.bar.top-resolution.description = Les 5 meilleures résolutions des appareils utilisés dans les sessions de vos visiteurs dans la période sélectionnée. common.bar.top-carrier = Top Carriers common.bar.top-users = TOP USERS common.bar.top-platform = Top Platforms -common.bar.top-platform.description = The top 5 platform versions of your users’ sessions within the selected time period. -web.common.bar.top-platform.description = The top 5 platform versions of your visitors’ sessions within the selected time period. +common.bar.top-platform.description = Les 5 principales versions de plateforme des sessions de vos utilisateurs dans la période sélectionnée. +web.common.bar.top-platform.description = Les 5 principales versions de plateforme des sessions de vos visiteurs dans la période sélectionnée. common.bar.top-platform-version = Top Platform Versions -common.bar.top-platform-version.description = The top 3 platform versions of your users' sessions within the selected time period. -web.common.bar.top-platform-version.description = The top 3 platform versions of your visitors' sessions within the selected time period. +common.bar.top-platform-version.description = Les 3 principales versions de plateforme des sessions de vos utilisateurs dans la période sélectionnée. +web.common.bar.top-platform-version.description = Les 3 principales versions de plateforme des sessions de vos visiteurs dans la période sélectionnée. common.bar.top-devices = Principaux Appareils common.bar.top-devices.description = Les 5 principaux appareils de vos utilisateurs basés sur leurs sessions dans la période sélectionnée. web.common.bar.top-devices.description = Les 5 principaux appareils de vos visiteurs basés sur leurs sessions dans la période sélectionnée. @@ -98,1160 +98,1163 @@ common.unlocked = Déverrouillé common.ok = OK common.total = Total common.status = Statut -common.select-status = Select status -common.select-type = Select type +common.select-status = Sélectionner le statut +common.select-type = Sélectionner le type common.type = Type -common.time = Time -common.started = Started +common.time = Temps +common.started = Commencé common.info = Information -common.save-changes = Save changes -common.graph-max = Maximum {0} {1} reached on {2} -common.graph-min = Minimum {0} {1} on {2} -common.graph.time-spent = Time Spent (min) -common.graph.average-time = Avg. Time Spent (min) -common.graph.reqs-received = Requests Received -common.graph.avg-reqs-received = Avg. Requests Received -common.graph.no-data = There is no data to show for this period -common.seconds = seconds +common.save-changes = Enregistrer les modifications +common.graph-max = Maximum {0} {1} atteint le {2} +common.graph-min = Minimum {0} {1} atteint le {2} +common.graph.time-spent = Temps passé (min) +common.graph.average-time = Temps moyen passé (min) +common.graph.reqs-received = Requêtes reçues +common.graph.avg-reqs-received = Moyenne des requêtes reçues +common.graph.no-data = Aucune donnée à afficher pour cette période +common.seconds = secondes common.minutes = minutes -common.hour = hour +common.hour = heure common.second.abrv = s common.second.abrv2 = s common.minute.abrv = m common.minute.abrv2 = m common.hour.abrv = h common.hour.abrv2 = h -common.day.abrv = days -common.day.abrv2 = day -common.year.abrv = yrs -common.year.abrv2 = yr -common.buckets.monthly = monthly -common.buckets.weekly = weekly -common.buckets.daily = daily -common.buckets.years = years -common.buckets.months = months -common.buckets.weeks = weeks -common.buckets.days = days +common.day.abrv = jours +common.day.abrv2 = jour +common.year.abrv = ans +common.year.abrv2 = an +common.buckets.monthly = mensuel +common.buckets.weekly = hebdomadaire +common.buckets.daily = quotidien +common.buckets.years = années +common.buckets.months = mois +common.buckets.weeks = semaines +common.buckets.days = jours common.buckets.minutes = minutes -common.buckets.hours = hours +common.buckets.hours = heures common.max = Max -common.create = Create -common.session-expiration = Session expiration -common.click-to-login = Click to remain login -common.expire-minute = Your session will expire in 1 minute -common.expire-seconds = Your session will expire in 10 seconds -common.add-new-app = Add new app here -common.add-new-app-button = Add new app -common.change-app-type = change app type here -common.install-plugin = Please Install plugin here -common.or = or -common.missing-type = Dashboard is missing for type -common.feedback-and-support = Feedback & Support -common.provide-feedback = Provide Feedback +common.create = Créer +common.session-expiration = Expiration de la session +common.click-to-login = Cliquez pour rester connecté +common.expire-minute = Votre session expirera dans 1 minute +common.expire-seconds = Votre session expirera dans 10 secondes +common.add-new-app = Ajouter une nouvelle application ici +common.add-new-app-button = Ajouter une nouvelle application +common.change-app-type = changer le type d'application ici +common.install-plugin = Veuillez installer le plugin ici +common.or = ou +common.missing-type = Le tableau de bord manque pour le type +common.feedback-and-support = Retour d'information & Support +common.provide-feedback = Donner un retour d'information common.support = Support common.documentation = Documentation -common.help-center = Help Center -common.feature-request = Request a Feature -common.showing = Showing _START_ to _END_ of _TOTAL_ entries -common.filtered = (filtered from _MAX_ total entries) -common.enterprise-edition = Countly Enterprise (supported) -common.save-to-csv = Save to CSV -common.save-to-excel = Save for Excel -common.search = Search -common.unknown = Unknown -common.eu = European Union -common.integrate-sdks = Need some help with SDK integration? -common.integrate-sdks-text = Helps you generate personalized code snippets and SDK integration tutorials based on your platforms and Countly features you want to use. -common.integrate-sdks-platforms = Select a platform to get started -common.go-to-countries = Go to Countries -common.show = Show -common.show-items = Display -common.items-per-page = Items per page -common.try-later = Can't perform this operation now, try again later. -common.never = Never -common.in.days = in {0} days -common.in.hours = in {0} hours -common.in.minutes = in {0} minutes -common.in.seconds = in {0} seconds -common.ago.just-now = just now -common.ago.seconds-ago = {0} seconds ago -common.ago.half-minute = half a minute ago -common.ago.less-minute = less than a minute ago -common.ago.one-minute = one minute ago -common.ago.minutes-ago = {0} minutes ago -common.ago.one-hour = 1 hour ago -common.ago.hours-ago = {0} hours ago -common.ago.one-day = 1 day ago -common.ago.days-ago = {0} days ago -common.ago.one-week = 1 week ago -common.every.minutes = every {0} minutes -common.every.hours = every {0} hours -common.every.hour = every hour -common.estimation = Total (unique) value for this period is estimated and corrected using the biggest time buckets from available daily, weekly and monthly stats. Exact total counts are available for this year, month and day periods +common.help-center = Centre d'aide +common.feature-request = Demander une fonctionnalité +common.showing = Affichage de _START_ à _END_ sur _TOTAL_ entrées +common.filtered = (filtré à partir de _MAX_ entrées totales) +common.enterprise-edition = Countly Enterprise (pris en charge) +common.save-to-csv = Enregistrer en CSV +common.save-to-excel = Enregistrer pour Excel +common.search = Recherche +common.unknown = Inconnu +common.eu = Union Européenne +common.integrate-sdks = Besoin d'aide pour l'intégration des SDK ? +common.integrate-sdks-text = Vous aide à générer des extraits de code personnalisés et des tutoriels d'intégration SDK en fonction de vos plateformes et des fonctionnalités Countly que vous souhaitez utiliser. +common.integrate-sdks-platforms = Sélectionnez une plateforme pour commencer +common.go-to-countries = Aller aux pays +common.show = Afficher +common.show-items = Afficher +common.items-per-page = Articles par page +common.try-later = Impossible d'effectuer cette opération maintenant, réessayez plus tard. +common.never = Jamais +common.in.days = dans {0} jours +common.in.hours = dans {0} heures +common.in.minutes = dans {0} minutes +common.in.seconds = dans {0} secondes +common.ago.just-now = à l'instant +common.ago.seconds-ago = il y a {0} secondes +common.ago.half-minute = il y a une demi-minute +common.ago.less-minute = il y a moins d'une minute +common.ago.one-minute = il y a une minute +common.ago.minutes-ago = il y a {0} minutes +common.ago.one-hour = il y a 1 heure +common.ago.hours-ago = il y a {0} heures +common.ago.one-day = il y a 1 jour +common.ago.days-ago = il y a {0} jours +common.ago.one-week = il y a 1 semaine +common.every.minutes = toutes les {0} minutes +common.every.hours = toutes les {0} heures +common.every.hour = toutes les heures +common.estimation = La valeur totale (unique) pour cette période est estimée et corrigée en utilisant les plus grands intervalles de temps disponibles dans les statistiques quotidiennes, hebdomadaires et mensuelles. Les totaux exacts sont disponibles pour les périodes de cette année, de ce mois et de ce jour common.action = Action -common.view = View -common.back = Back -common.success = Success -common.error = Error -common.no-clear = No don't clear -common.yes-discard = Yes, discard -common.yes-clear-it = Yes, clear it -common.no-dont-change = No, don't change -common.no-dont-delete = No, don't delete -common.no-dont-continue = No, don't continue -common.no-dont-do-that = No, don't do that -common.last-updated = Last updated -common.location = Location -common.enable = Enable -common.running = Running -common.completed = Completed -common.stopped = Stopped -common.errored = Error -common.visits = Visits -common.select-columns-to-display = Select columns to display -common.enter-value = Enter value -common.optional = Optional -common.clear-values = Clear values -common.confirm = Are you sure? -common.json-editor = JSON Editor -common.valid-json = Valid JSON code -common.invalid-json = Invalid JSON code +common.view = Voir +common.back = Retour +common.success = Succès +common.error = Erreur +common.no-clear = Non, ne pas effacer +common.yes-discard = Oui, abandonner +common.yes-clear-it = Oui, effacer +common.no-dont-change = Non, ne pas changer +common.no-dont-delete = Non, ne pas supprimer +common.no-dont-continue = Non, ne pas continuer +common.no-dont-do-that = Non, ne pas faire cela +common.last-updated = Dernière mise à jour +common.location = Emplacement +common.enable = Activer +common.running = En cours +common.completed = Terminé +common.stopped = Arrêté +common.errored = Erreur +common.visits = Visites +common.select-columns-to-display = Sélectionner les colonnes à afficher +common.enter-value = Entrer une valeur +common.optional = Optionnel +common.clear-values = Effacer les valeurs +common.confirm = Êtes-vous sûr ? +common.json-editor = Éditeur JSON +common.valid-json = Code JSON valide +common.invalid-json = Code JSON invalide common.format = Format -common.saveJSON = Save JSON -common.zoom-in = Zoom -common.cancel-zoom = Cancel zoom -common.zoom-out = Zoom out -common.zoom-reset = Reset Zoom -common.zoom-info = Select an area in the chart to zoom in -common.group = GROUP -common.send = Send -common.customize = Customize -common.breakdown-not-available = Breakdown is not available -common.breakdown-not-available-desc = Breakdown is not available for given time period. There is no data. -common.internal-events = Internal Events -common.custom-events = Custom Events -common.none = None -common.emtpy-view-title = ...hmm, seems empty here -common.emtpy-view-subtitle = No data found -common.no-widget-text = Add a widget to create dashboard and see some informative explanation -common.no-dashboard-text = Create dashboard and see some informative explanation -common.create-dashboard = + Create a Dashboard -common.add-widget = + Add a Widget -common.sunday = Sunday -common.monday = Monday -common.tuesday = Tuesday -common.wednesday = Wednesday -common.thursday = Thursday -common.friday = Friday -common.saturday = Saturday -common.hours = Hours -common.chart-type = Chart Type -common.adjust-limit = Adjust Limit -common.copy-error-message = Something went wrong, please copy it again. -common.created-at-by = Created {0} by {1} -common.updated = Updated -common.manage = Manage -common.selected-with-count = {0} Selected -common.selected = Selected -common.select-all-with-count = Select all {0} -common.deselect = Deselect +common.saveJSON = Enregistrer JSON +common.zoom-in = Zoomer +common.cancel-zoom = Annuler le zoom +common.zoom-out = Dézoomer +common.zoom-reset = Réinitialiser le zoom +common.zoom-info = Sélectionnez une zone dans le graphique pour zoomer +common.group = GROUPE +common.send = Envoyer +common.customize = Personnaliser +common.breakdown-not-available = Répartition non disponible +common.breakdown-not-available-desc = La répartition n'est pas disponible pour la période donnée. Il n'y a pas de données. +common.internal-events = Événements internes +common.custom-events = Événements personnalisés +common.none = Aucun +common.emtpy-view-title = ...hmm, il semble que ce soit vide ici +common.emtpy-view-subtitle = Aucune donnée trouvée +common.no-widget-text = Ajoutez un widget pour créer un tableau de bord et voir quelques explications informatives +common.no-dashboard-text = Créez un tableau de bord et voyez quelques explications informatives +common.create-dashboard = + Créer un tableau de bord +common.add-widget = + Ajouter un widget +common.sunday = Dimanche +common.monday = Lundi +common.tuesday = Mardi +common.wednesday = Mercredi +common.thursday = Jeudi +common.friday = Vendredi +common.saturday = Samedi +common.hours = Heures +common.chart-type = Type de graphique +common.adjust-limit = Ajuster la limite +common.copy-error-message = Une erreur s'est produite, veuillez copier à nouveau. +common.created-at-by = Créé {0} par {1} +common.updated = Mis à jour +common.manage = Gérer +common.selected-with-count = {0} sélectionné(s) +common.selected = Sélectionné +common.select-all-with-count = Tout sélectionner {0} +common.deselect = Désélectionner common.session = Session common.sessions = Sessions -common.go-to-settings = Go to settings -common.go-to-app-settings = Go to application management -common.go-to-task-manager = Go to Task Manager +common.go-to-settings = Aller aux paramètres +common.go-to-app-settings = Aller à la gestion de l'application +common.go-to-task-manager = Aller au gestionnaire de tâches #vue -common.undo = Undo -common.drawer.next-step = Next step -common.drawer.previous-step = Previous step -common.diff-helper.changes = You made {0} changes. -common.diff-helper.changes-made-single = change has been made. -common.diff-helper.changes-made = changes have been made. -common.diff-helper.keep = Do you want to keep them? -common.diff-helper.keep-single = Do you want to keep it? -common.save-changes = Save Changes -common.discard-changes = Discard -common.complete = Complete -common.reset = Reset -common.confirm = Confirm -common.remove = Remove -common.next = Next -common.previous = Previous -common.select-at-least = At least {0} items should be selected. -common.select-at-most = At most {0} items can be selected. -common.and = and -common.or = or -common.enter-email-addresses=Enter Email Addresses -common.invalid-email-address="{0}" is not a valid email address -common.email-example=(e.g. john@doe.mail) -common.no-email-addresses=No addresses have been specified +common.undo = Annuler +common.drawer.next-step = Étape suivante +common.drawer.previous-step = Étape précédente +common.diff-helper.changes = Vous avez apporté {0} modifications. +common.diff-helper.changes-made-single = une modification a été apportée. +common.diff-helper.changes-made = des modifications ont été apportées. +common.diff-helper.keep = Voulez-vous les conserver ? +common.diff-helper.keep-single = Voulez-vous le garder ? +common.save-changes = Enregistrer les modifications +common.discard-changes = Abandonner +common.complete = Terminer +common.reset = Réinitialiser +common.confirm = Confirmer +common.remove = Supprimer +common.next = Suivant +common.previous = Précédent +common.select-at-least = Au moins {0} éléments doivent être sélectionnés. +common.select-at-most = Au maximum {0} éléments peuvent être sélectionnés. +common.and = et +common.or = ou +common.enter-email-addresses=Entrez les adresses e-mail +common.invalid-email-address="{0}" n'est pas une adresse e-mail valide +common.email-example=(ex. john@doe.mail) +common.no-email-addresses=Aucune adresse n'a été spécifiée #period-picker -common.all-time = All time -common.in-last-minutes-plural = in the last {0} minutes -common.in-last-minutes = in the last minute -common.in-last-hours-plural = in the last {0} hours -common.in-last-hours = in the last hour -common.in-last-days-plural = in the last {0} days -common.in-last-days = in the last day -common.in-last-weeks-plural = in the last {0} weeks -common.in-last-weeks = in the last week -common.in-last-months-plural = in the last {0} months -common.in-last-months = in the last month -common.in-last-years-plural = in the last {0} years -common.in-last-years = in the last year -common.time-period-select.custom-range = Custom range -common.time-period-select.presets = Presets -common.time-period-select.last-n = In the last -common.time-period-select.since = Since -common.time-period-select.on = On -common.time-period-select.range = In between -common.time-period-name.since = since {0} -common.time-period-name.on = on {0} -common.time-period-select.before = Before -common.time-period-name.before = Before {0} +common.all-time = Tout le temps +common.in-last-minutes-plural = dans les dernières {0} minutes +common.in-last-minutes = dans la dernière minute +common.in-last-hours-plural = dans les dernières {0} heures +common.in-last-hours = dans la dernière heure +common.in-last-days-plural = dans les derniers {0} jours +common.in-last-days = dans le dernier jour +common.in-last-weeks-plural = dans les dernières {0} semaines +common.in-last-weeks = dans la dernière semaine +common.in-last-months-plural = dans les derniers {0} mois +common.in-last-months = dans le dernier mois +common.in-last-years-plural = dans les dernières {0} années +common.in-last-years = dans la dernière année +common.time-period-select.custom-range = Plage personnalisée +common.time-period-select.presets = Préréglages +common.time-period-select.last-n = Dans les derniers +common.time-period-select.since = Depuis +common.time-period-select.on = Sur +common.time-period-select.range = Entre +common.time-period-name.since = depuis {0} +common.time-period-name.on = sur {0} +common.time-period-select.before = Avant +common.time-period-name.before = Avant {0} common.time-period-name.range = {0} - {1} -common.apply-range = Apply range -common.range-length-limit = Selected range cannot be longer than {0}. +common.apply-range = Appliquer la plage +common.range-length-limit = La plage sélectionnée ne peut pas être plus longue que {0}. #taskmanager taskmanager.rerun = Rerun taskmanager.stop = Stop -taskmanager.view-old = View Cache -taskmanager.confirm-delete-title = Delete report? -taskmanager.confirm-stop = Are you sure you want to stop this task? -taskmanager.confirm-delete = Are you sure you want to delete report called {0}? -taskmanager.confirm-rerun = Are you sure you want to rerun this task? -taskmanager.confirm-rerun-title = Rerun task? -taskmanager.confirm-stop-title = Stop task? -taskmanager.yes-rerun-task = Yes, rerun this task -taskmanager.yes-stop-task = Yes, stop this task -taskmanager.yes-delete-report = Yes, delete report -taskmanager.rerunning = Re-Running -taskmanager.select-origin = Select origin -taskmanager.origin = Origin -taskmanager.auto = Auto refresh -taskmanager.manual = One time -taskmanager.edit = Edit -taskmanager.last-today = Today -taskmanager.last-7days = Last 7 days -taskmanager.last-30days = Last 30 days -taskmanager.last-60days = Last 60 days -taskmanager.manually-table-remind = One-time and auto-refreshing reports created by you and your team -taskmanager.automatically-table-remind = Reports automatically generated when a query takes a long time to complete -taskmanager.query-added-long = Query has been added to long running queries -taskmanager.empty-warning = There are no long running queries -taskmanager.recalculating = Recalculating +taskmanager.view-old = Voir le cache +taskmanager.confirm-delete-title = Supprimer le rapport ? +taskmanager.confirm-stop = Êtes-vous sûr de vouloir arrêter cette tâche ? +taskmanager.confirm-delete = Êtes-vous sûr de vouloir supprimer le rapport appelé {0} ? +taskmanager.confirm-rerun = Êtes-vous sûr de vouloir relancer cette tâche ? +taskmanager.confirm-rerun-title = Relancer la tâche ? +taskmanager.confirm-stop-title = Arrêter la tâche ? +taskmanager.yes-rerun-task = Oui, relancer cette tâche +taskmanager.yes-stop-task = Oui, arrêter cette tâche +taskmanager.yes-delete-report = Oui, supprimer le rapport +taskmanager.rerunning = Relance en cours +taskmanager.select-origin = Sélectionner l'origine +taskmanager.origin = Origine +taskmanager.auto = Actualisation automatique +taskmanager.manual = Une fois +taskmanager.edit = Modifier +taskmanager.last-today = Aujourd'hui +taskmanager.last-7days = 7 derniers jours +taskmanager.last-30days = 30 derniers jours +taskmanager.last-60days = 60 derniers jours +taskmanager.manually-table-remind = Rapports uniques et actualisés automatiquement créés par vous et votre équipe +taskmanager.automatically-table-remind = Rapports générés automatiquement lorsqu'une requête prend trop de temps à s'exécuter +taskmanager.query-added-long = La requête a été ajoutée aux requêtes à long terme +taskmanager.empty-warning = Il n'y a pas de requêtes à long terme +taskmanager.recalculating = Recalcul en cours #task manager assistent notification strings -assistant.taskmanager.longTaskTooLong.title = This request is running for too long. -assistant.taskmanager.longTaskTooLong.message = We have switched it to the report manager and will notify you when it is finished. -assistant.taskmanager.longTaskTooLong.info = Check its status in Utilities -> Report Manager -assistant.taskmanager.longTaskAlreadyRunning.title = A similar report is already running. -assistant.taskmanager.longTaskAlreadyRunning.message = Looks like report with same parameters already running in report manager -assistant.taskmanager.completed.title = Report completed for {1} -assistant.taskmanager.completed.message = Results are ready for {0} reports. Check report manager to view them. -assistant.taskmanager.errored.title = Failed to generate report for {0} -assistant.taskmanager.errored.message = Some reports ({0}) couldn't be generated. Check report manager to try rerunning it. -assistant.taskmanager.errored.info = Under Utilities -> Task Manager +assistant.taskmanager.longTaskTooLong.title = Cette demande prend trop de temps. +assistant.taskmanager.longTaskTooLong.message = Nous l'avons transférée au gestionnaire de rapports et vous informerons lorsqu'elle sera terminée. +assistant.taskmanager.longTaskTooLong.info = Vérifiez son statut dans Utilitaires -> Gestionnaire de rapports +assistant.taskmanager.longTaskAlreadyRunning.title = Un rapport similaire est déjà en cours d'exécution. +assistant.taskmanager.longTaskAlreadyRunning.message = Il semble qu'un rapport avec les mêmes paramètres soit déjà en cours d'exécution dans le gestionnaire de rapports +assistant.taskmanager.completed.title = Rapport terminé pour {1} +assistant.taskmanager.completed.message = Les résultats sont prêts pour {0} rapports. Consultez le gestionnaire de rapports pour les voir. +assistant.taskmanager.errored.title = Échec de la génération du rapport pour {0} +assistant.taskmanager.errored.message = Certains rapports ({0}) n'ont pas pu être générés. Consultez le gestionnaire de rapports pour essayer de les relancer. +assistant.taskmanager.errored.info = Sous Utilitaires -> Gestionnaire de tâches #placeholders -placeholder.old-password = Old password... -placeholder.new-password = New password... -placeholder.again = Again... -placeholder.app-name = Enter application name... -placeholder.search-columns = Search Columns +placeholder.old-password = Ancien mot de passe... +placeholder.new-password = Nouveau mot de passe... +placeholder.again = Encore... +placeholder.app-name = Entrez le nom de l'application... +placeholder.search-columns = Rechercher des colonnes -placeholder.events.edit.description = Enter event description -placeholder.events.edit.count = Count -placeholder.events.edit.sum = Sum -placeholder.events.edit.duration = Duration +placeholder.events.edit.description = Entrez la description de l'événement +placeholder.events.edit.count = Compte +placeholder.events.edit.sum = Somme +placeholder.events.edit.duration = Durée #application categories -application-category.books = Books -application-category.business = Business -application-category.education = Education -application-category.entertainment = Entertainment -application-category.finance = Finance -application-category.games = Games -application-category.health-fitness = Health & Fitness -application-category.lifestyle = Lifestyle -application-category.medical = Medical -application-category.music = Music +application-category.books = Livres +application-category.business = Entreprise +application-category.education = Éducation +application-category.entertainment = Divertissement +application-category.finance = Finances +application-category.games = Jeux +application-category.health-fitness = Santé & Forme +application-category.lifestyle = Style de vie +application-category.medical = Médical +application-category.music = Musique application-category.navigation = Navigation -application-category.news = News -application-category.photography = Photography -application-category.productivity = Productivity -application-category.reference = Reference -application-category.social-networking = Social Networking +application-category.news = Actualités +application-category.photography = Photographie +application-category.productivity = Productivité +application-category.reference = Référence +application-category.social-networking = Réseautage social application-category.sports = Sports -application-category.travel = Travel -application-category.utilities = Utilities -application-category.weather = Weather +application-category.travel = Voyage +application-category.utilities = Utilitaires +application-category.weather = Météo #sidebar -sidebar.home = Home -sidebar.dashboard = Overview -sidebar.analytics = Analytics -sidebar.analytics.users = User Analytics -web.sidebar.analytics.users = Visitor Analytics -sidebar.analytics.user-loyalty = User Loyalty -sidebar.analytics.session = Session Analytics +sidebar.home = Accueil +sidebar.dashboard = Vue d'ensemble +sidebar.analytics = Analytique +sidebar.analytics.users = Analyse des utilisateurs +web.sidebar.analytics.users = Analyse des visiteurs +sidebar.analytics.user-loyalty = Fidélité des utilisateurs +sidebar.analytics.session = Analyse des sessions sidebar.analytics.sessions = Sessions -sidebar.analytics.countries = Countries -sidebar.analytics.devices = Devices -sidebar.analytics.app-versions = App versions +sidebar.analytics.countries = Pays +sidebar.analytics.devices = Appareils +sidebar.analytics.app-versions = Versions de l'application sidebar.analytics.versions = Versions -sidebar.analytics.carriers = Carriers -sidebar.analytics.platforms = Platforms -sidebar.analytics.resolutions = Resolutions -sidebar.analytics.technology = Technology -sidebar.analytics.technology-description = Overview details of your app or website traffic based on your users’ technology, such as platform, device, resolution, browsers, and app version. +sidebar.analytics.carriers = Opérateurs +sidebar.analytics.platforms = Plateformes +sidebar.analytics.resolutions = Résolutions +sidebar.analytics.technology = Technologie +sidebar.analytics.technology-description = Détails d'aperçu du trafic de votre application ou site web basé sur la technologie de vos utilisateurs, telle que la plateforme, l'appareil, la résolution, les navigateurs et la version de l'application. sidebar.analytics.geo = Geo sidebar.engagement = Engagement -sidebar.events = Events -sidebar.events.all-events = All Events -sidebar.events.blueprint = Manage Events -sidebar.events.overview = Overview -sidebar.utilities = Utilities -sidebar.management = Management +sidebar.events = Événements +sidebar.events.all-events = Tous les événements +sidebar.events.blueprint = Gérer les événements +sidebar.events.overview = Vue d'ensemble +sidebar.utilities = Utilitaires +sidebar.management = Gestion sidebar.management.applications = Applications -sidebar.management.account = My Account -sidebar.management.users = User Management -sidebar.management.longtasks = Report Manager -sidebar.management.help = Help Mode +sidebar.management.account = Mon compte +sidebar.management.users = Gestion des utilisateurs +sidebar.management.longtasks = Gestionnaire de rapports +sidebar.management.help = Mode d'aide sidebar.management.jobs = Jobs -sidebar.management.logs = Logs -sidebar.management.token-manager = Token Manager -sidebar.management.presets = Preset management -sidebar.settings = Settings -sidebar.logout = Logout -sidebar.api_key = Api Key -sidebar.behavior = Behavior -sidebar.category.understand = Understand -sidebar.category.explore = Explore -sidebar.category.reach = Reach -sidebar.category.improve = Improve -sidebar.long-running-queries = Long running queries -sidebar.feedback = Feedback -sidebar.dashboard-tooltip = Dashboards -sidebar.main-menu = Main Menu -sidebar.my-profile = My Profile -sidebar.copy-api-key-success-message = Api Key has been copied to clipboard! -sidebar.banner.text = Countly’s self-service product analytics offering. -sidebar.banner.upgrade-button = Create a free server +sidebar.management.logs = Journaux +sidebar.management.token-manager = Gestionnaire de jetons +sidebar.management.presets = Gestion des préréglages +sidebar.settings = Paramètres +sidebar.logout = Déconnexion +sidebar.api_key = Clé API +sidebar.behavior = Comportement +sidebar.category.understand = Comprendre +sidebar.category.explore = Explorer +sidebar.category.reach = Atteindre +sidebar.category.improve = Améliorer +sidebar.long-running-queries = Requêtes à long terme +sidebar.feedback = Retour d'information +sidebar.dashboard-tooltip = Tableaux de bord +sidebar.main-menu = Menu principal +sidebar.my-profile = Mon profil +sidebar.copy-api-key-success-message = La clé API a été copiée dans le presse-papiers ! +sidebar.banner.text = Offre d'analytique produit en libre-service de Countly. +sidebar.banner.upgrade-button = Créer un serveur gratuit #dashboard -dashboard.apply = Apply -dashboard.home-desc = Overview of collected data -home.download.starting = Starting the image generation process. You will be notified when it is ready. Please do not leave the website while the process is running. -dashboard.empty-title = Nothing to show -dashboard.empty-text = There is no data to show. Enable features or customize this page to see data about chosen features. +dashboard.apply = Appliquer +dashboard.home-desc = Vue d'ensemble des données collectées +home.download.starting = Démarrage du processus de génération d'image. Vous serez averti lorsque cela sera prêt. Veuillez ne pas quitter le site pendant l'exécution du processus. +dashboard.empty-title = Rien à montrer +dashboard.empty-text = Il n'y a pas de données à afficher. Activez les fonctionnalités ou personnalisez cette page pour voir les données des fonctionnalités choisies. dashboard.audience = Audience -dashboard.customize-home = Customize Home -dashboard.avg-time-spent = Avg. Session Duration -dashboard.avg-time-spent-desc = The average amount of time spent per session on your application. It is calculated by dividing total duration spent across sessions by the total number of sessions. -dashboard.time-spent = Time Spent -dashboard.time-spent-desc = Total time spent for this period -dashboard.reqs-received = REQUESTS RECEIVED -dashboard.avg-reqs-received = Avg. Requests Received -dashboard.avg-reqs-received-desc = The number of write API requests the Countly Server receives for each session (includes sessions, session extensions, events, etc.). -dashboard.bounce-rate = BOUNCE RATE -dashboard.pages-per-visit = PAGES PER VISIT -dashboard.note-title-remaining = Remaining -dashboard.go-to-sessions = Go to Sessions -dashboard.total-sessions-desc = Total session data +dashboard.customize-home = Personnaliser l'accueil +dashboard.avg-time-spent = Durée moyenne de session +dashboard.avg-time-spent-desc = Le temps moyen passé par session sur votre application. Il est calculé en divisant la durée totale passée à travers les sessions par le nombre total de sessions. +dashboard.time-spent = Temps passé +dashboard.time-spent-desc = Temps total passé pour cette période +dashboard.reqs-received = REQUÊTES REÇUES +dashboard.avg-reqs-received = Requêtes reçues moyennes +dashboard.avg-reqs-received-desc = Le nombre de requêtes API d'écriture que le serveur Countly reçoit pour chaque session (inclut les sessions, les extensions de session, les événements, etc.). +dashboard.bounce-rate = TAUX DE REBOND +dashboard.pages-per-visit = PAGES PAR VISITE +dashboard.note-title-remaining = Restant +dashboard.go-to-sessions = Aller aux sessions +dashboard.total-sessions-desc = Données de session totale #users -users.title = USERS +users.title = UTILISATEURS #user-activity -user-activity.title = User Activity -web.user-activity.title = Visitor Activity -user-activity.description = An overview of the total number of users who started a session on your application, distributed in pre-set categories based on the number of sessions. -web.user-activity.description = An overview of the total number of visitors who started a session on your website, distributed in pre-set categories based on the number of sessions. -user-activity.barchart-all-users = All Users -web.user-activity.barchart-all-users = All Visitors -user-activity.barchart-thirty-days = Active Users (30 days) -web.user-activity.barchart-thirty-days = Active Visitors (30 days) -user-activity.barchart-seven-days = Active Users (7 days) -web.user-activity.barchart-seven-days = Active Visitors (7 days) -user-activity.table-session-count = Session Count (All Time) -user-activity.table-all-users = All Users -web.user-activity.table-all-users = All Visitors -user-activity.table-thirty-days = Active Users (30 days) -web.user-activity.table-thirty-days = Active Visitors (30 days) -user-activity.table-seven-days = Active Users (7 days) -web.user-activity.table-seven-days = Active Visitors (7 days) +user-activity.title = Activité des utilisateurs +web.user-activity.title = Activité des visiteurs +user-activity.description = Un aperçu du nombre total d'utilisateurs ayant démarré une session sur votre application, répartis dans des catégories prédéfinies en fonction du nombre de sessions. +web.user-activity.description = Un aperçu du nombre total de visiteurs ayant démarré une session sur votre site web, répartis dans des catégories prédéfinies en fonction du nombre de sessions. +user-activity.barchart-all-users = Tous les utilisateurs +web.user-activity.barchart-all-users = Tous les visiteurs +user-activity.barchart-thirty-days = Utilisateurs actifs (30 jours) +web.user-activity.barchart-thirty-days = Visiteurs actifs (30 jours) +user-activity.barchart-seven-days = Utilisateurs actifs (7 jours) +web.user-activity.barchart-seven-days = Visiteurs actifs (7 jours) +user-activity.table-session-count = Nombre de sessions (tout le temps) +user-activity.table-all-users = Tous les utilisateurs +web.user-activity.table-all-users = Tous les visiteurs +user-activity.table-thirty-days = Utilisateurs actifs (30 jours) +web.user-activity.table-thirty-days = Visiteurs actifs (30 jours) +user-activity.table-seven-days = Utilisateurs actifs (7 jours) +web.user-activity.table-seven-days = Visiteurs actifs (7 jours) #user-loyalty -user-loyalty.range.first-session = First Session -user-loyalty.range.hours = hours -user-loyalty.range.day = day -user-loyalty.range.days = days +user-loyalty.range.first-session = Première session +user-loyalty.range.hours = heures +user-loyalty.range.day = jour +user-loyalty.range.days = jours #session-overview -session-overview.title = Session Overview -session-overview.description = Summary of all sessions your users have had in your application, in the selected time period. +session-overview.title = Vue d'ensemble des sessions +session-overview.description = Résumé de toutes les sessions que vos utilisateurs ont eues dans votre application, pendant la période sélectionnée. #session-durations -session-durations.title = Session Durations -session-durations.description = Time period(s) for which users have opened your application. +session-durations.title = Durées des sessions +session-durations.description = Période(s) pendant lesquelles les utilisateurs ont ouvert votre application. #session-frequency -session-frequency.title = Session Frequency -session-frequency.description = The number of times users open your application within the selected time period, distributed into frequency ranges. -session-frequency.table.frequency = Time since last session +session-frequency.title = Fréquence des sessions +session-frequency.description = Le nombre de fois que les utilisateurs ouvrent votre application dans la période sélectionnée, réparti en fonction des plages de fréquence. +session-frequency.table.frequency = Temps écoulé depuis la dernière session #notes -notes.add-new-note = Add New Note -notes.edit-note = Edit Note -notes.note-details = Note Details +notes.add-new-note = Ajouter une nouvelle note +notes.edit-note = Modifier la note +notes.note-details = Détails de la note notes.note = Note notes.type = Type -notes.owner = Owner -notes.enter-note = Enter your note -notes.visibility = Visibility -notes.date-and-time = Date and Time -notes.color = Color -notes.color-note-description = Select the indicator color of your note -notes.share-with = Share With -notes.shared-with = Shared With -notes.manage-notes = Manage Notes -notes.delete-note = Do you really want to delete note called {0}? -notes.all-notes = All Notes -notes.back-link = Back to Overview -notes.add-note = Add Note -notes.show-notes = Show Notes -notes.hide-notes = Hide Notes -notes.created-message = Note created successfully +notes.owner = Propriétaire +notes.enter-note = Entrez votre note +notes.visibility = Visibilité +notes.date-and-time = Date et heure +notes.color = Couleur +notes.color-note-description = Sélectionnez la couleur de l'indicateur de votre note +notes.share-with = Partager avec +notes.shared-with = Partagé avec +notes.manage-notes = Gérer les notes +notes.delete-note = Voulez-vous vraiment supprimer la note appelée {0} ? +notes.all-notes = Toutes les notes +notes.back-link = Retour à la vue d'ensemble +notes.add-note = Ajouter une note +notes.show-notes = Afficher les notes +notes.hide-notes = Masquer les notes +notes.created-message = Note créée avec succès #session-duration -session-duration.title = SESSION DURATIONS -session-duration.table.duration = Session duration +session-duration.title = DURÉES DES SESSIONS +session-duration.table.duration = Durée de la session #countries -countries.title = Countries -countries.description = An overview of the geographical distribution of your users and their sessions within the selected time period. -web.countries.description = An overview of the geographical distribution of your visitors and their sessions within the selected time period. -countries.table.country = Country -countries.table.city = City -countries.back-to-list = Back to Country List -countries.back-to-map = Back to World Map -countries.google-api-key-remind = Google Maps API key must be setup to view city level data. Click here to setup Google Maps API key. -countries.go-to-countries = Go to Countries +countries.title = Pays +countries.description = Un aperçu de la répartition géographique de vos utilisateurs et de leurs sessions pendant la période sélectionnée. +web.countries.description = Un aperçu de la répartition géographique de vos visiteurs et de leurs sessions pendant la période sélectionnée. +countries.table.country = Pays +countries.table.city = Ville +countries.back-to-list = Retour à la liste des pays +countries.back-to-map = Retour à la carte du monde +countries.google-api-key-remind = La clé API Google Maps doit être configurée pour voir les données au niveau des villes. Cliquez ici pour configurer la clé API Google Maps. +countries.go-to-countries = Aller aux pays #devices -devices.title = DEVICES -devices.table.device = Device -devices.devices-and-types.title = Devices and Types -devices.go-to-technology = Go to Technology +devices.title = APPAREILS +devices.table.device = Appareil +devices.devices-and-types.title = Appareils et types +devices.go-to-technology = Aller à la technologie #analytics users -user-analytics.overview-title = Users Overview -user-analytics.overview-desc = Overview of the main metrics and stats about your audience. -web.user-analytics.overview-title = Visitors Overview +user-analytics.overview-title = Vue d'ensemble des utilisateurs +user-analytics.overview-desc = Vue d'ensemble des principales métriques et statistiques concernant votre audience. +web.user-analytics.overview-title = Vue d'ensemble des visiteurs #resolutions -resolutions.title = Resolutions -resolutions.description = Detailed information on the resolution settings of the devices through which your users access your application within the selected time period. -web.resolutions.description = Detailed information on the resolution settings of the devices through which your visitors access your website within the selected time period. +resolutions.title = Résolutions +resolutions.description = Informations détaillées sur les paramètres de résolution des appareils par lesquels vos utilisateurs accèdent à votre application pendant la période sélectionnée. +web.resolutions.description = Informations détaillées sur les paramètres de résolution des appareils par lesquels vos visiteurs accèdent à votre site web pendant la période sélectionnée. -resolutions.table.resolution = Resolution -resolutions.table.width = Width -resolutions.table.height = Height +resolutions.table.resolution = Résolution +resolutions.table.width = Largeur +resolutions.table.height = Hauteur #device_type -device_type.title = Devices and Types -device_type.description = Details of the device models and types from which your users access your application within the selected time period. -web.device_type.description = Details of the device models and types from which your visitors access your website within the selected time period. -device_type.table.device_type = Device Type +device_type.title = Appareils et types +device_type.description = Détails des modèles et types d'appareils par lesquels vos utilisateurs accèdent à votre application pendant la période sélectionnée. +web.device_type.description = Détails des modèles et types d'appareils par lesquels vos visiteurs accèdent à votre site web pendant la période sélectionnée. +device_type.table.device_type = Type d'appareil device_type.types = Types -device_type.devices = Devices +device_type.devices = Appareils #app-versions -app-versions.title = App Versions -app-versions.versions-for = App versions for -app-versions.as = as -app-versions.description = Detailed information on the application versions of your application accessed by your users within the selected time period. -web.app-versions.description = Detailed information on the website versions of your website accessed by your visitors within the selected time period. -app-versions.table.app-version = App Version +app-versions.title = Versions de l'application +app-versions.versions-for = Versions de l'application pour +app-versions.as = comme +app-versions.description = Informations détaillées sur les versions de l'application de votre application accessibles par vos utilisateurs pendant la période sélectionnée. +web.app-versions.description = Informations détaillées sur les versions du site web de votre site accessibles par vos visiteurs pendant la période sélectionnée. +app-versions.table.app-version = Version de l'application #carriers -carriers.title = Carriers -carriers.table.carrier = Carrier -carriers.description = Detailed information on the network carriers of the devices through which your users access your application within the selected time period. +carriers.title = Opérateurs +carriers.table.carrier = Opérateur +carriers.description = Informations détaillées sur les opérateurs de réseau des appareils par lesquels vos utilisateurs accèdent à votre application pendant la période sélectionnée. #platforms -platforms.title = Platforms -platforms.pie-right = PLATFORM VERSIONS -platforms.table.platform = Platform -platforms.table.platform-version = Platform Version -platforms.table.platform-version-for = Platform Versions for -platforms.description = Details of the platforms on which your users access your application within the selected time period. -web.platforms.description = Details of the platforms on which your visitors access your website within the selected time period. -platforms.platforms-for = Platforms for -platforms.version-distribution = Platforms version distribution +platforms.title = Plateformes +platforms.pie-right = VERSIONS DES PLATEFORMES +platforms.table.platform = Plateforme +platforms.table.platform-version = Version de la plateforme +platforms.table.platform-version-for = Versions de la plateforme pour +platforms.description = Détails des plateformes sur lesquelles vos utilisateurs accèdent à votre application pendant la période sélectionnée. +web.platforms.description = Détails des plateformes sur lesquelles vos visiteurs accèdent à votre site web pendant la période sélectionnée. +platforms.platforms-for = Plateformes pour +platforms.version-distribution = Répartition des versions des plateformes platforms.versions = Versions #events -events.title = Events -events.all-events = All Events -events.stats = Event Stats -events.blueprint-title = MANAGE EVENTS -events.blueprint-general = General -events.blueprint-events-tab-title = EVENTS -events.blueprint-event-group-title = MANAGE EVENT GROUPS -events.blueprint-event-group-new = New Event Group -events.blueprint-event-group-show.all = All Groups -events.blueprint-event-group-show.visible = Visible Groups -events.blueprint-event-group-show.hidden = Hidden Groups -events.blueprint-events-show.all = All Events -events.blueprint-events-show.hidden = Hidden Events -events.blueprint-events-show.visible = Visible Events -events.go-to-events = Go to Events +events.title = Événements +events.all-events = Tous les événements +events.stats = Statistiques des événements +events.blueprint-title = GÉRER LES ÉVÉNEMENTS +events.blueprint-general = Général +events.blueprint-events-tab-title = ÉVÉNEMENTS +events.blueprint-event-group-title = GÉRER LES GROUPES D'ÉVÉNEMENTS +events.blueprint-event-group-new = Nouveau groupe d'événements +events.blueprint-event-group-show.all = Tous les groupes +events.blueprint-event-group-show.visible = Groupes visibles +events.blueprint-event-group-show.hidden = Groupes cachés +events.blueprint-events-show.all = Tous les événements +events.blueprint-events-show.hidden = Événements cachés +events.blueprint-events-show.visible = Événements visibles +events.go-to-events = Aller aux événements -events.blueprint-events-properties-tooltip = Edited properties of this event will be updated on All Events and other plugins. -events.blueprint-event-groups-include-events-tooltip = Select at least 2 events to create an Event Group. New Event Groups will automatically sum all the selected event properties and report them. -events.blueprint-event-groups-properties-tooltip = Edited properties in this Event Group will be updated across All Events and other plugins. +events.blueprint-events-properties-tooltip = Les propriétés modifiées de cet événement seront mises à jour dans Tous les événements et d'autres plugins. +events.blueprint-event-groups-include-events-tooltip = Sélectionnez au moins 2 événements pour créer un groupe d'événements. Les nouveaux groupes d'événements additionneront automatiquement toutes les propriétés d'événements sélectionnées et les rapporteront. +events.blueprint-event-groups-properties-tooltip = Les propriétés modifiées dans ce groupe d'événements seront mises à jour dans Tous les événements et d'autres plugins. -events.blueprint-event-group-included-events = INCLUDED EVENTS -events.blueprint-eventgroups-tab-title = EVENT GROUPS -events.blueprint-edit = Edit -events.blueprint-drawer-title = Edit Event -events.blueprint-drawer-use-description = Use Description -events.general.description = Reorder, edit visibility, delete or change the appearance of a custom event -events.general.event = Event -events.general.event-description = Event description -events.general.action.perform-action = Perform action -events.general.action.delete = Delete -events.general.action.show = Show -events.general.action.hide = Hide -events.general.none-chosen = Select at least one event -events.general.update-not-successful = Updating events failed. -events.general.changes-saved = Changes saved -events.general.cancel = Cancel -events.general.confirm = Confirm -events.general.status = Status +events.blueprint-event-group-included-events = ÉVÉNEMENTS INCLUS +events.blueprint-eventgroups-tab-title = GROUPES D'ÉVÉNEMENTS +events.blueprint-edit = Modifier +events.blueprint-drawer-title = Modifier l'événement +events.blueprint-drawer-use-description = Utiliser la description +events.general.description = Réorganiser, modifier la visibilité, supprimer ou changer l'apparence d'un événement personnalisé +events.general.event = Événement +events.general.event-description = Description de l'événement +events.general.action.perform-action = Effectuer l'action +events.general.action.delete = Supprimer +events.general.action.show = Afficher +events.general.action.hide = Masquer +events.general.none-chosen = Sélectionnez au moins un événement +events.general.update-not-successful = La mise à jour des événements a échoué. +events.general.changes-saved = Modifications enregistrées +events.general.cancel = Annuler +events.general.confirm = Confirmer +events.general.status = Statut events.general.status.visible = Visible -events.general.status.hidden = Hidden -events.general.show.title = Show -events.general.show.all = All -events.general.show.hidden = Hidden +events.general.status.hidden = Caché +events.general.show.title = Afficher +events.general.show.all = Tous +events.general.show.hidden = Caché events.general.show.visible = Visible -events.general.want-delete = You are about to delete multiple events ({0}). Do you want to continue? -events.general.want-delete-this = You are about to delete event called {0}. Do you want to continue? -events.general.want-delete-this-title = Delete an event? -events.general.want-delete-title = Delete events? -events.general.yes-delete-event = Yes, delete event -events.general.yes-delete-events = Yes, delete events -events.general.want-to-discard = You have made changes to this event. Do you want to leave and discard those changes? -events.general.want-to-discard-title = Discard changes? -events.general.events-deleted = Selected events deleted successfully -events.general.no-hidden-events = There are no hidden events -events.general.no-visible-events = There are no visible events -events.back-to-events = Back to all events -events.general.error = Error -events.no-segmentation = No segmentation -events.count = COUNT -events.sum = SUM -events.dur = DURATION -events.table.count = Count -events.table.sum = Sum -events.table.avg-sum = Avg. Sum -events.table.dur = Duration -events.table.avg-dur = Avg. Duration +events.general.want-delete = Vous êtes sur le point de supprimer plusieurs événements ({0}). Voulez-vous continuer ? +events.general.want-delete-this = Vous êtes sur le point de supprimer l'événement appelé {0}. Voulez-vous continuer ? +events.general.want-delete-this-title = Supprimer un événement ? +events.general.want-delete-title = Supprimer des événements ? +events.general.yes-delete-event = Oui, supprimer l'événement +events.general.yes-delete-events = Oui, supprimer les événements +events.general.want-to-discard = Vous avez apporté des modifications à cet événement. Voulez-vous quitter et abandonner ces modifications ? +events.general.want-to-discard-title = Abandonner les modifications ? +events.general.events-deleted = Événements sélectionnés supprimés avec succès +events.general.no-hidden-events = Il n'y a pas d'événements cachés +events.general.no-visible-events = Il n'y a pas d'événements visibles +events.back-to-events = Retour à tous les événements +events.general.error = Erreur +events.no-segmentation = Aucune segmentation +events.count = COMPTE +events.sum = SOMME +events.dur = DURÉE +events.table.count = Compte +events.table.sum = Somme +events.table.avg-sum = Moy. Somme +events.table.dur = Durée +events.table.avg-dur = Moy. Durée events.table.segmentation = Segmentation -events.edit.event-key = Event key -events.edit.event-key-description = Event key as it is sent from the SDK -events.edit.event-name = Event name -events.edit.event-name-description = A display name for this event key to be used throughout the user interface +events.edit.event-key = Clé de l'événement +events.edit.event-key-description = Clé de l'événement telle qu'elle est envoyée par le SDK +events.edit.event-name = Nom de l'événement +events.edit.event-name-description = Un nom d'affichage pour cette clé d'événement à utiliser dans toute l'interface utilisateur events.edit.event-description = Description -events.edit.event-description-description = A short description of this custom event and when it is triggered -events.edit.event-visibility = Event visibility -events.edit.event-visible = Event is visible -events.edit.event-invisible = Event is invisible -events.edit.event-visible-description = If an event is invisible server will continue to record data for it but it will not be displayed in the user interface. -events.edit.display-count = Display name for count -events.edit.display-count-description = A display name for the count property of this event -events.edit.display-sum = Display name for sum -events.edit.display-sum-description = A display name for the optional sum property of this event -events.edit.display-duration = Display name for duration -events.edit.display-duration-description = A display name for the optional duration property of this event. -events.edit.event-properties = Event properties -events.no-event = There are no events tracked for this application! -events.delete-confirm = You are about to delete all data associated with event "{0}". Do you want to continue? -events.delete-confirm-many = You are about to delete all data associated with these events. Do you want to continue? -events.delete.multiple-events = {0} events -events.edit.omit-event-segments = Omit event segments -events.edit.omit-event-segments-description = Choose which segments of this custom event to omit. Omitted segments will not be saved in the future and past data for these segments will be purged immediately after you save these settings. -events.edit.omit-event-segments-description-drill = Data for these segments will still be stored in Drill. -events.edit.omit-event-segments-to-omit = Segments to omit -events.edit.omit-event-select-segments = Select segments -event.edit.omitt-warning = You are about to omit data for some segments of this event. Omitted segments will not be saved in the future, and past data for these segments will be purged immediately after you save these settings. Do you want to continue? -events.overview.title = Overview -events.overview.drawer-title = Configure overview -events.overview.empty = You don't have any items in overview -events.overview.configure = Configure -events.overview.add-item=Add item -events.overview.added-items = Added items -events.overview.choose-event = Choose event -events.overview.choose-property = Choose property -events.overview.table.title-event = Event -events.overview.table.title-property = Property -events.overview.max-c = You can add a maximum of 12 previews in the overview. Please delete some of the previously added items to add new ones. -events.overview.have-already-one = You already have one item with the same event and property in the overview. -events.overview.empty-title = Events overview is empty -events.overview.empty-text-admin = Configure the events overview to visualise your most important custom events at a glance. -events.overview.empty-text-user = Request an admin of this application to configure the events overview to visualise the most important custom events at a glance. -events.overview.save-changes = Save changes +events.edit.event-description-description = Une courte description de cet événement personnalisé et de quand il est déclenché +events.edit.event-visibility = Visibilité de l'événement +events.edit.event-visible = L'événement est visible +events.edit.event-invisible = L'événement est invisible +events.edit.event-visible-description = Si un événement est invisible, le serveur continuera à enregistrer des données pour celui-ci, mais il ne sera pas affiché dans l'interface utilisateur. +events.edit.display-count = Nom d'affichage pour le compte +events.edit.display-count-description = Un nom d'affichage pour la propriété de compte de cet événement +events.edit.display-sum = Nom d'affichage pour la somme +events.edit.display-sum-description = Un nom d'affichage pour la propriété de somme facultative de cet événement +events.edit.display-duration = Nom d'affichage pour la durée +events.edit.display-duration-description = Un nom d'affichage pour la propriété de durée facultative de cet événement. +events.edit.event-properties = Propriétés de l'événement +events.no-event = Aucun événement suivi pour cette application ! +events.delete-confirm = Vous êtes sur le point de supprimer toutes les données associées à l'événement "{0}". Voulez-vous continuer ? +events.delete-confirm-many = Vous êtes sur le point de supprimer toutes les données associées à ces événements. Voulez-vous continuer ? +events.delete.multiple-events = {0} événements +events.edit.omit-event-segments = Omettre les segments d'événements +events.edit.omit-event-segments-description = Choisissez quels segments de cet événement personnalisé omettre. Les segments omis ne seront pas enregistrés dans les données futures et passées pour ces segments seront purgées immédiatement après l'enregistrement de ces paramètres. +events.edit.omit-event-segments-description-drill = Les données pour ces segments seront toujours stockées dans Drill. +events.edit.omit-event-segments-to-omit = Segments à omettre +events.edit.omit-event-select-segments = Sélectionner des segments +event.edit.omitt-warning = Vous êtes sur le point d'omettre des données pour certains segments de cet événement. Les segments omis ne seront pas enregistrés à l'avenir, et les données passées pour ces segments seront purgées immédiatement après l'enregistrement de ces paramètres. Voulez-vous continuer ? +events.overview.title = Vue d'ensemble +events.overview.drawer-title = Configurer la vue d'ensemble +events.overview.empty = Vous n'avez aucun élément dans la vue d'ensemble +events.overview.configure = Configurer +events.overview.add-item=Ajouter un élément +events.overview.added-items = Éléments ajoutés +events.overview.choose-event = Choisir l'événement +events.overview.choose-property = Choisir la propriété +events.overview.table.title-event = Événement +events.overview.table.title-property = Propriété +events.overview.max-c = Vous pouvez ajouter un maximum de 12 aperçus dans la vue d'ensemble. Veuillez supprimer certains des éléments précédemment ajoutés pour en ajouter de nouveaux. +events.overview.have-already-one = Vous avez déjà un élément avec le même événement et la même propriété dans la vue d'ensemble. +events.overview.empty-title = La vue d'ensemble des événements est vide +events.overview.empty-text-admin = Configurez la vue d'ensemble des événements pour visualiser vos événements personnalisés les plus importants en un coup d'œil. +events.overview.empty-text-user = Demandez à un administrateur de cette application de configurer la vue d'ensemble des événements pour visualiser les événements personnalisés les plus importants en un coup d'œil. +events.overview.save-changes = Enregistrer les modifications events.overview.unknown = NA -events.all.empty-title = This application does not have any custom events. -events.all.empty-text = Log some custom events inside your application's code using the SDKs and visit this section later. -events.top-events.title = Top Events By Count -events.top-events.24hours = 24-Hours -events.top-events.30days = 30-Days -events.top-events.yesterday = Yesterday -events.top-events.info-text = Updated {0} hrs ago -events.max-event-key-limit = Maximum limit of unique event keys ({0}) has been reached. Limit can be adjusted. -events.max-segmentation-limit = Maximum limit of segmentations ({0}) in current event "{1}" has been reached. Limit can be adjusted. -events.max-unique-value-limit = Maximum limit of unique values ({0}) in current event segmentation "{1}" has been reached. Limit can be adjusted. +events.all.empty-title = Cette application n'a pas d'événements personnalisés. +events.all.empty-text = Enregistrez quelques événements personnalisés dans le code de votre application à l'aide des SDK et visitez cette section plus tard. +events.top-events.title = Événements les plus fréquents par nombre +events.top-events.24hours = 24 heures +events.top-events.30days = 30 jours +events.top-events.yesterday = Hier +events.top-events.info-text = Mis à jour il y a {0} heures +events.max-event-key-limit = Limite maximale de clés d'événements uniques ({0}) atteinte. La limite peut être ajustée. +events.max-segmentation-limit = Limite maximale de segmentations ({0}) dans l'événement actuel "{1}" atteinte. La limite peut être ajustée. +events.max-unique-value-limit = Limite maximale de valeurs uniques ({0}) dans la segmentation actuelle de l'événement "{1}" atteinte. La limite peut être ajustée. -events.event-group-drawer-create = Create new Event Group -events.event-group-name = Event Group name -events.group-use-description = Use description -events.group-include-events = Include events -events.group-select-events = Select events to include -events.group-select-events-remind = Select events -events.group-visibility = Event Group Visibility -events.group-visibility-description = If an event group is invisible server will continue to record data for it but it will not be displayed in the user interface. -events.group-visibility-checkbox = Event Group is visible -events.group-invisibility-checkbox = Event Group is invisible -events.group-properties = Event Group Properties -events.event-group-count = Display name for count -events.event-group-count-description = A display name for the count property of this event -events.event-group-sum = Display name for sum -events.event-group-sum-description = A display name for the sum property of this event -events.event-group-duration = Display name for duration -events.event-group-duration-description = A display name for the duration property of this event -events.create-group = Create Event Group -events.save-group = Save Event Group -events.edit-your-group = Edit your Event Group +events.event-group-drawer-create = Créer un nouveau groupe d'événements +events.event-group-name = Nom du groupe d'événements +events.group-use-description = Utiliser la description +events.group-include-events = Inclure des événements +events.group-select-events = Sélectionner des événements à inclure +events.group-select-events-remind = Sélectionner des événements +events.group-visibility = Visibilité du groupe d'événements +events.group-visibility-description = Si un groupe d'événements est invisible, le serveur continuera à enregistrer des données pour celui-ci, mais il ne sera pas affiché dans l'interface utilisateur. +events.group-visibility-checkbox = Le groupe d'événements est visible +events.group-invisibility-checkbox = Le groupe d'événements est invisible +events.group-properties = Propriétés du groupe d'événements +events.event-group-count = Nom d'affichage pour le compte +events.event-group-count-description = Un nom d'affichage pour la propriété de compte de cet événement +events.event-group-sum = Nom d'affichage pour la somme +events.event-group-sum-description = Un nom d'affichage pour la propriété de somme de cet événement +events.event-group-duration = Nom d'affichage pour la durée +events.event-group-duration-description = Un nom d'affichage pour la propriété de durée de cet événement +events.create-group = Créer un groupe d'événements +events.save-group = Enregistrer le groupe d'événements +events.edit-your-group = Modifier votre groupe d'événements #export -export.export-as = Export as -export.export-number = Total of {0} items divided into {1} export file(s) -export.select = Select file to export -export.export = Export -export.columns-to-export = Columns to export -export.export-all-columns = Export all columns +export.export-as = Exporter en tant que +export.export-number = Total de {0} éléments répartis sur {1} fichier(s) d'exportation +export.select = Sélectionner le fichier à exporter +export.export = Exporter +export.columns-to-export = Colonnes à exporter +export.export-all-columns = Exporter toutes les colonnes export.documents = documents -export.export-columns-selected-count = {0}/{1} selected -export.format-if-possible = Format timestamps to readable date -export.format-if-possible-explain = Fields which are saved in data base as timestamps will be converted to show as date string like in table. For example: "Mon, 29 Jun 2020 17:14:15" -export.export-started = The export file is being generated. When ready, you will see a notification or can download it in the report manager. -export.export-failed = An error occurred while attempting to export table data. -export.export-finished = Export completed. -export.export-finished-click = Click to download exported file. -export.file-name = File name +export.export-columns-selected-count = {0}/{1} sélectionné(s) +export.format-if-possible = Formater les horodatages en date lisible +export.format-if-possible-explain = Les champs enregistrés dans la base de données en tant qu'horodatages seront convertis pour s'afficher sous forme de chaîne de date comme dans le tableau. Par exemple : "Lun, 29 Juin 2020 17:14:15" +export.export-started = Le fichier d'exportation est en cours de génération. Une fois prêt, vous verrez une notification ou pourrez le télécharger dans le gestionnaire de rapports. +export.export-failed = Une erreur s'est produite lors de la tentative d'exportation des données du tableau. +export.export-finished = Exportation terminée. +export.export-finished-click = Cliquez pour télécharger le fichier exporté. +export.file-name = Nom du fichier #management-applications -management-applications.title = Application Management -management-applications.my-new-app = My new app -management-applications.clear-data = Clear data -management-applications.clear-reset-data = Reset application -management-applications.clear-reset-explanation = Resets the app to its initial clean state, as it was right after creation. -management-applications.clear-all-data = Clear all data -management-applications.clear-all-explanation = Removes collected data but keeps the configurations. -management-applications.clear-1month-data = Clear data older than 1 month -management-applications.clear-3month-data = Clear data older than 3 months -management-applications.clear-6month-data = Clear data older than 6 months -management-applications.clear-1year-data = Clear data older than 1 year -management-applications.clear-2year-data = Clear data older than 2 years -management-applications.yes-clear-app = Yes, clear app data -management-applications.no-clear = No don't clear -management-applications.delete-an-app = Delete application -management-applications.yes-delete-app = Yes, delete the app -management-applications.application-name = Application Name -management-applications.application-name.tip = Enter application name -management-applications.application-details = Show details -management-applications.app-details = App Details -management-applications.application-no-details = Could not retrieve app details -management-applications.type = Application Type -management-applications.type.tip = Choose application type -management-applications.type.hint = All data will be recorded for this application type -management-applications.category = Category -management-applications.category.tip = Select a category -management-applications.app-id = App ID -management-applications.app-id.hint = This ID is used for the read API -management-applications.app-key = App Key -management-applications.app-key.hint = You will need this key for SDK integration. -management-applications.app-key.generate = Will generate automatically -management-applications.app-key-unique = This App Key is already in use -management-applications.time-zone = Time Zone -management-applications.time-zone.tip = Select a country -management-applications.time-zone.hint = All data will be recorded in this timezone -management-applications.country.hint = City information will be only recorded for this country -management-applications.icon = App Icon -management-applications.add-application = Add application -management-applications.clear-confirm-all = You are about to clear all the collected data stored for your application. Do you want to continue? -management-applications.clear-confirm-period = You are about to clear all the collected data stored for your application within a selected period of time. Do you want to continue? -management-applications.clear-confirm-reset = You are about to reset your app to its initial clean state. Do you want to continue? -management-applications.clear-admin = Only administrators of an application can clear it's data. -management-applications.clear-success = Application data is successfully cleared. -management-applications.reset-success = Application is successfully reset. -management-applications.delete-confirm = You are about to delete all the data associated with your application. Do you want to continue? -management-applications.delete-admin = Only administrators of an application can delete it. -management-applications.app-locked = Application is locked. -management-applications.icon-error = Only JPG, PNG, and GIF image formats are allowed. -management-applications.no-app-warning = In order to start collecting data you need to add an application to your account. -management-applications.app-key-change-warning-title = Changing the App key -management-applications.app-key-change-warning = Changing the app key will cause all users from this point on to be recorded as new users even if they used your application before. This action is only recommended if you are migrating an application from another server or changing the app key of a new application. -management-applications.app-key-change-warning-confirm = Continue, change the app key -management-applications.app-key-change-warning-EE = Changing the app key will cause all users from this point on to be recorded as new users even if they used your application before. This action is only recommended if you are migrating an application from another server or changing the app key of a new application. If your intention was to change the app key to stop collecting data for this application, recommended way of doing so is using Filtering Rules plugin. -management-applications.first-app-message2 = Great! You can now embed the Countly SDK into your application and start viewing your stats instantly. Don't forget to get your App Key from above. +management-applications.title = Gestion des applications +management-applications.my-new-app = Ma nouvelle application +management-applications.clear-data = Effacer les données +management-applications.clear-reset-data = Réinitialiser l'application +management-applications.clear-reset-explanation = Réinitialise l'application à son état initial propre, comme elle l'était juste après sa création. +management-applications.clear-all-data = Effacer toutes les données +management-applications.clear-all-explanation = Supprime les données collectées mais conserve les configurations. +management-applications.clear-1month-data = Effacer les données de plus de 1 mois +management-applications.clear-3month-data = Effacer les données de plus de 3 mois +management-applications.clear-6month-data = Effacer les données de plus de 6 mois +management-applications.clear-1year-data = Effacer les données de plus d'un an +management-applications.clear-2year-data = Effacer les données de plus de 2 ans +management-applications.yes-clear-app = Oui, effacer les données de l'application +management-applications.no-clear = Non, ne pas effacer +management-applications.delete-an-app = Supprimer l'application +management-applications.yes-delete-app = Oui, supprimer l'application +management-applications.application-name = Nom de l'application +management-applications.application-name.tip = Entrez le nom de l'application +management-applications.application-details = Afficher les détails +management-applications.app-details = Détails de l'application +management-applications.application-no-details = Impossible de récupérer les détails de l'application +management-applications.type = Type d'application +management-applications.type.tip = Choisissez le type d'application +management-applications.type.hint = Toutes les données seront enregistrées pour ce type d'application +management-applications.category = Catégorie +management-applications.category.tip = Sélectionnez une catégorie +management-applications.app-id = ID de l'application +management-applications.app-id.hint = Cet ID est utilisé pour l'API de lecture +management-applications.app-key = Clé de l'application +management-applications.app-key.hint = Vous aurez besoin de cette clé pour l'intégration du SDK. +management-applications.app-key.generate = Sera généré automatiquement +management-applications.app-key-unique = Cette clé d'application est déjà utilisée +management-applications.time-zone = Fuseau horaire +management-applications.time-zone.tip = Sélectionnez un pays +management-applications.time-zone.hint = Toutes les données seront enregistrées dans ce fuseau horaire +management-applications.country.hint = Les informations sur la ville ne seront enregistrées que pour ce pays +management-applications.icon = Icône de l'application +management-applications.add-application = Ajouter une application +management-applications.clear-confirm-all = Vous êtes sur le point d'effacer toutes les données collectées stockées pour votre application. Voulez-vous continuer ? +management-applications.clear-confirm-period = Vous êtes sur le point d'effacer toutes les données collectées stockées pour votre application dans une période de temps sélectionnée. Voulez-vous continuer ? +management-applications.clear-confirm-reset = Vous êtes sur le point de réinitialiser votre application à son état initial propre. Voulez-vous continuer ? +management-applications.clear-admin = Seuls les administrateurs d'une application peuvent effacer ses données. +management-applications.clear-success = Les données de l'application ont été effacées avec succès. +management-applications.reset-success = L'application a été réinitialisée avec succès. +management-applications.delete-confirm = Vous êtes sur le point de supprimer toutes les données associées à votre application. Voulez-vous continuer ? +management-applications.delete-admin = Seuls les administrateurs d'une application peuvent la supprimer. +management-applications.app-locked = L'application est verrouillée. +management-applications.icon-error = Seuls les formats d'image JPG, PNG et GIF sont autorisés. +management-applications.no-app-warning = Pour commencer à collecter des données, vous devez ajouter une application à votre compte. +management-applications.app-key-change-warning-title = Changement de la clé de l'application +management-applications.app-key-change-warning = Changer la clé de l'application fera en sorte que tous les utilisateurs soient enregistrés comme de nouveaux utilisateurs à partir de ce moment, même s'ils ont déjà utilisé votre application auparavant. Cette action n'est recommandée que si vous migrez une application depuis un autre serveur ou si vous changez la clé de l'application d'une nouvelle application. +management-applications.app-key-change-warning-confirm = Continuer, changer la clé de l'application +management-applications.app-key-change-warning-EE = Changer la clé de l'application fera en sorte que tous les utilisateurs soient enregistrés comme de nouveaux utilisateurs à partir de ce moment, même s'ils ont déjà utilisé votre application auparavant. Cette action n'est recommandée que si vous migrez une application depuis un autre serveur ou si vous changez la clé de l'application d'une nouvelle application. Si votre intention était de changer la clé de l'application pour arrêter de collecter des données pour cette application, la manière recommandée de le faire est d'utiliser le plugin Règles de filtrage. +management-applications.first-app-message2 = Super ! Vous pouvez maintenant intégrer le SDK Countly dans votre application et commencer à voir vos statistiques instantanément. N'oubliez pas de récupérer votre clé d'application ci-dessus. management-applications.types.mobile = Mobile -management-applications.checksum-salt = Salt for checksum -management-applications.checksum-salt.hint = Will only accept requests where the checksum is signed with the same salt in the SDK. -management-applications.app-domain = Website Domain -management-applications.app-creator = App created by -management-applications.app-created-at = Date of creation -management-applications.app-edited-at = Last edited -management-applications.app-last-data = Last data recorded (excluding Data Populator) -management-applications.app-users = Users with privileges -management-applications.global_admins = Global admins -management-applications.admins = Admins -management-applications.users = Users -management-applications.plugins = App settings -management-applications.plugins.save = Save -management-applications.plugins.smth = Something went wrong -management-applications.plugins.ok = OK, I understand -management-applications.plugins.save.nothing = No changes to save -management-applications.plugins.saved.nothing = No changes have been applied to this application -management-applications.plugins.saved.title = Plugin configuration -management-applications.plugins.saved = Changes saved successfully! -management-applications.plugins.error.server = Unknown server error -management-applications.create-first-app-title = Let's add your first application. -management-applications.create-first-app-description = After adding your first application, you will be ready to start collecting data. -management-applications.contact-an-admin = Please contact an administrator -management-applications.dont-access = You don't have access rights to any application. -management-applications.plugins-description = Settings in this section will override global settings for the application -management-applications.application-lock-tooltip = Application lock prevents accidental data purge and data population -management-applications.application-tooltip-locked-text = App is locked. Unlock it to allow changes. -management-applications.application-tooltip-unlocked-text = App is unlocked. Lock it to restrict changes. +management-applications.checksum-salt = Sel pour le checksum +management-applications.checksum-salt.hint = N'acceptera que les requêtes dont le checksum est signé avec le même sel dans le SDK. +management-applications.app-domain = Domaine du site web +management-applications.app-creator = Application créée par +management-applications.app-created-at = Date de création +management-applications.app-edited-at = Dernière modification +management-applications.app-last-data = Dernière donnée enregistrée (hors Data Populator) +management-applications.app-users = Utilisateurs avec privilèges +management-applications.global_admins = Administrateurs globaux +management-applications.admins = Administrateurs +management-applications.users = Utilisateurs +management-applications.plugins = Paramètres de l'application +management-applications.plugins.save = Enregistrer +management-applications.plugins.smth = Quelque chose a mal tourné +management-applications.plugins.ok = OK, je comprends +management-applications.plugins.save.nothing = Aucune modification à enregistrer +management-applications.plugins.saved.nothing = Aucune modification n'a été appliquée à cette application +management-applications.plugins.saved.title = Configuration du plugin +management-applications.plugins.saved = Modifications enregistrées avec succès ! +management-applications.plugins.error.server = Erreur serveur inconnue +management-applications.create-first-app-title = Ajoutons votre première application. +management-applications.create-first-app-description = Après avoir ajouté votre première application, vous serez prêt à commencer à collecter des données. +management-applications.contact-an-admin = Veuillez contacter un administrateur +management-applications.dont-access = Vous n'avez pas de droits d'accès à aucune application. +management-applications.plugins-description = Les paramètres de cette section remplaceront les paramètres globaux pour l'application +management-applications.application-lock-tooltip = Le verrouillage de l'application empêche la purge accidentelle des données et la population des données +management-applications.application-tooltip-locked-text = Application verrouillée. Déverrouillez-la pour autoriser les modifications. +management-applications.application-tooltip-unlocked-text = Application déverrouillée. Verrouillez-la pour restreindre les modifications. #management-users -management-users.read-permission-given-feature = Read permission granted automatically for -management-users.other-permissions-for = Other permissions for -management-users.removed-because-disabled = revoked automatically because of read permission disabled. -management-users.read-permission-all = Read permission automatically granted to all features. -management-users.other-permissions-removed = Other permissions revoked automatically because of read permission disabled. -management-users.permission-set-will-be-removed = Permission set will be removed -management-users.are-you-sure-to-continue = Are you sure to continue? -management-users.grant-user-access-to-apps = Grant User Access to Apps(s) -management-users.grant-user-access-to-apps-desc = Set user permissions in app and feature level -management-users.grant-admin-access-to-apps = Grant Admin Access to Apps(s) -management-users.grant-admin-access-description = User will have admin access to selected app(s) -management-users.add-permission-set = + Add Additional User Permission Set -management-users.profile-picture = Profile Picture -management-users.apps = Apps -management-users.sidebar-title = User Management -management-users.users = Users -management-users.view-title = Manage Users -management-users.editing-your-account = You are about to edit your own account. So you may be logged out automatically if you change something related to your permission. Do you want to continue? -management-users.feature = Feature -management-users.create = Create -management-users.read = Read -management-users.update = Update -management-users.delete = Delete -management-users.edit-user = Edit settings -management-users.save-changes = Save Changes -management-users.create-new-user = Create new user -management-users.remove-permission-set = Remove permission set -management-users.create-user = Create user -management-users.discard-changes = Discard Changes -management-users.discard-confirm = You will lose all the changes that you have made. Are you sure you want to continue? -management-users.permission-settings = Permission settings -management-users.user-has-access-to = User has access to -management-users.role = Role -management-users.global-administrator = Global Administrator -management-users.full-name = Full Name -management-users.enter-full-name = Enter Full Name -management-users.username = Username -management-users.enter-username = Enter Username -management-users.password = Password -management-users.generate-password = Generate password -management-users.enter-password = Enter Password -management-users.generate-password = Generate Password -management-users.change-password = Change password -management-users.role = Role -management-users.drag-and-drop-or = Drag and drop file here or -management-users.click-to-upload = click to upload a file -management-users.browser = browser -management-users.files-to-add-picture = files to add picture -management-users.pp-size-warning = JPG, PNG, and GIF files are allowed. The maximum size is 5 MB. -management-users.remove-image = Remove image +management-users.read-permission-given-feature = Autorisation de lecture accordée automatiquement pour +management-users.other-permissions-for = Autres autorisations pour +management-users.removed-because-disabled = révoqué automatiquement en raison de la désactivation de l'autorisation de lecture. +management-users.read-permission-all = Autorisation de lecture automatiquement accordée à toutes les fonctionnalités. +management-users.other-permissions-removed = Autres autorisations révoquées automatiquement en raison de la désactivation de l'autorisation de lecture. +management-users.permission-set-will-be-removed = L'ensemble des autorisations sera supprimé +management-users.are-you-sure-to-continue = Êtes-vous sûr de vouloir continuer ? +management-users.grant-user-access-to-apps = Accorder l'accès à l'utilisateur aux applications +management-users.grant-user-access-to-apps-desc = Définir les autorisations de l'utilisateur au niveau de l'application et de la fonctionnalité +management-users.grant-admin-access-to-apps = Accorder l'accès administrateur à l'utilisateur aux applications +management-users.grant-admin-access-description = L'utilisateur aura un accès administrateur aux applications sélectionnées +management-users.add-permission-set = + Ajouter un ensemble d'autorisations utilisateur supplémentaire +management-users.profile-picture = Photo de profil +management-users.apps = Applications +management-users.sidebar-title = Gestion des utilisateurs +management-users.users = Utilisateurs +management-users.view-title = Gérer les utilisateurs +management-users.editing-your-account = Vous êtes sur le point de modifier votre propre compte. Vous pourriez donc être déconnecté automatiquement si vous changez quelque chose en rapport avec votre autorisation. Voulez-vous continuer ? +management-users.feature = Fonctionnalité +management-users.create = Créer +management-users.read = Lire +management-users.update = Mettre à jour +management-users.delete = Supprimer +management-users.edit-user = Modifier les paramètres +management-users.save-changes = Enregistrer les modifications +management-users.create-new-user = Créer un nouvel utilisateur +management-users.remove-permission-set = Supprimer l'ensemble des autorisations +management-users.create-user = Créer un utilisateur +management-users.discard-changes = Abandonner les modifications +management-users.discard-confirm = Vous perdrez toutes les modifications que vous avez apportées. Êtes-vous sûr de vouloir continuer ? +management-users.permission-settings = Paramètres des autorisations +management-users.user-has-access-to = L'utilisateur a accès à +management-users.role = Rôle +management-users.global-administrator = Administrateur global +management-users.full-name = Nom complet +management-users.enter-full-name = Entrez le nom complet +management-users.username = Nom d'utilisateur +management-users.enter-username = Entrez le nom d'utilisateur +management-users.password = Mot de passe +management-users.generate-password = Générer un mot de passe +management-users.enter-password = Entrez le mot de passe +management-users.generate-password = Générer un mot de passe +management-users.change-password = Changer le mot de passe +management-users.role = Rôle +management-users.drag-and-drop-or = Faites glisser et déposez le fichier ici ou +management-users.click-to-upload = cliquez pour télécharger un fichier +management-users.browser = navigateur +management-users.files-to-add-picture = fichiers à ajouter comme photo +management-users.pp-size-warning = Les fichiers JPG, PNG et GIF sont autorisés. La taille maximale est de 5 Mo. +management-users.remove-image = Supprimer l'image management-users.email = E-mail -management-users.enter-email = Enter E-mail address -management-users.global-admin = Global Admin -management-users.lock-account = Lock Account -management-users.time-banned = Time Banned -management-users.remove-ban = Remove Ban -management-users.remove-ban-notify-title = Time ban removed. -management-users.remove-ban-notify-message = User time ban removed successfully. -management-users.admin = Admin -management-users.admin-of = Admin of -management-users.admin-of.tip = User is not the administrator of any application... -management-users.user = User -management-users.user-of = User of -management-users.user-of.tip = User does not have view rights to any application... -management-users.no-role = No role -management-users.create-user = Create User -management-users.delete-user = Delete User -management-users.edit = Click to edit -management-users.disable-2fa-user = Disable 2FA -management-users.all-roles = All roles -management-users.not-logged-in-yet = Not logged in yet -management-users.close = Click to close -management-users.password-change-confirm = You have changed {0}'s password. Do you want a notification email to be sent? -management-users.delete-confirm = You are about to delete {0}'s account. Do you want to continue? -management-users.delete-confirm-title = Delete user? -management-users.yes-delete-user = Yes, delete user -management-users.email.invalid = invalid email -management-users.email.exists = email exists -management-users.username.exists = username exists -management-users.password.length = Password must be at least {0} characters long -management-users.password.has-char = Password must contain at least one uppercase letter -management-users.password.has-number = Password must contain at least one number -management-users.password.has-special = Password must contain at least one special character (?_*#!-$@,. etc) -management-users.add-user = Add user -management-users.revoke-access = Revoke Access -management-users.admin-user-alert = You need to assign the user as an admin or user at least to a single app -management-users.revoke-confirm = You are about to remove this user's access to your apps. Do you want to continue? -management-users.email-tip = User will be notified even if there is not an account for this email... -management-users.last_login = Last Login -management-users.created = Created -management-users.created-message = User created successfully! -management-users.removed = Removed -management-users.removed-message = User removed successfully! -management-users.remove-canceled = User remove canceled -management-users.updated = Updated -management-users.updated-message = User information updated successfully! -management-users.confirm-loss-checkboxes = You will lose all marked permissions below. Are you sure you want to continue? -management-users.select-app-first-title = Select app first -management-users.select-app-first-message = You need to select app or apps before you mark permission boxes -management-users.full-name-required = Full name area should be filled -management-users.username-required = Username area should be filled -management-users.email-required = E-mail area should be filled -management-users.email-invalid-format = Please check your email format -management-users.at-least-one-app-required = User should have permission for at least one app -management-users.view-user-logs = View user logs -management-users.this-will-delete-user = This will permanently delete the user. Continue? -management-users.warning = Warning -management-users.future-plugins = User will have this access type to all additional features that might be enabled in the future. -management-users.all-groups = All groups -management-users.group = Group +management-users.enter-email = Entrez l'adresse e-mail +management-users.global-admin = Administrateur global +management-users.lock-account = Verrouiller le compte +management-users.time-banned = Temps de bannissement +management-users.remove-ban = Lever le bannissement +management-users.remove-ban-notify-title = Bannissement temporaire levé. +management-users.remove-ban-notify-message = Le bannissement temporaire de l'utilisateur a été levé avec succès. +management-users.admin = Administrateur +management-users.admin-of = Administrateur de +management-users.admin-of.tip = L'utilisateur n'est l'administrateur d'aucune application... +management-users.user = Utilisateur +management-users.user-of = Utilisateur de +management-users.user-of.tip = L'utilisateur n'a pas de droits de vue sur aucune application... +management-users.no-role = Aucun rôle +management-users.create-user = Créer un utilisateur +management-users.delete-user = Supprimer l'utilisateur +management-users.edit = Cliquez pour modifier +management-users.disable-2fa-user = Désactiver la 2FA +management-users.all-roles = Tous les rôles +management-users.not-logged-in-yet = Pas encore connecté +management-users.close = Cliquez pour fermer +management-users.password-change-confirm = Vous avez changé le mot de passe de {0}. Souhaitez-vous qu'un e-mail de notification soit envoyé ? +management-users.delete-confirm = Vous êtes sur le point de supprimer le compte de {0}. Voulez-vous continuer ? +management-users.delete-confirm-title = Supprimer l'utilisateur ? +management-users.yes-delete-user = Oui, supprimer l'utilisateur +management-users.email.invalid = e-mail invalide +management-users.email.exists = l'e-mail existe +management-users.username.exists = le nom d'utilisateur existe +management-users.password.length = Le mot de passe doit comporter au moins {0} caractères +management-users.password.has-char = Le mot de passe doit contenir au moins une lettre majuscule +management-users.password.has-number = Le mot de passe doit contenir au moins un chiffre +management-users.password.has-special = Le mot de passe doit contenir au moins un caractère spécial (?_*#!-$@,. etc) +management-users.add-user = Ajouter un utilisateur +management-users.revoke-access = Révoquer l'accès +management-users.admin-user-alert = Vous devez attribuer à l'utilisateur le rôle d'administrateur ou d'utilisateur au moins pour une application +management-users.revoke-confirm = Vous êtes sur le point de supprimer l'accès de cet utilisateur à vos applications. Voulez-vous continuer ? +management-users.email-tip = L'utilisateur sera averti même s'il n'y a pas de compte pour cet e-mail... +management-users.last_login = Dernière connexion +management-users.created = Créé +management-users.created-message = Utilisateur créé avec succès ! +management-users.removed = Supprimé +management-users.removed-message = Utilisateur supprimé avec succès ! +management-users.remove-canceled = Suppression de l'utilisateur annulée +management-users.updated = Mis à jour +management-users.updated-message = Informations sur l'utilisateur mises à jour avec succès ! +management-users.confirm-loss-checkboxes = Vous perdrez toutes les autorisations marquées ci-dessous. Êtes-vous sûr de vouloir continuer ? +management-users.select-app-first-title = Sélectionnez d'abord l'application +management-users.select-app-first-message = Vous devez sélectionner une ou plusieurs applications avant de cocher les cases d'autorisation +management-users.full-name-required = Le champ nom complet doit être rempli +management-users.username-required = Le champ nom d'utilisateur doit être rempli +management-users.email-required = Le champ e-mail doit être rempli +management-users.email-invalid-format = Veuillez vérifier le format de votre e-mail +management-users.at-least-one-app-required = L'utilisateur doit avoir l'autorisation pour au moins une application +management-users.view-user-logs = Voir les journaux de l'utilisateur +management-users.this-will-delete-user = Cela supprimera définitivement l'utilisateur. Continuer ? +management-users.warning = Avertissement +management-users.future-plugins = L'utilisateur aura ce type d'accès à toutes les fonctionnalités supplémentaires qui pourraient être activées à l'avenir. +management-users.all-groups = Tous les groupes +management-users.group = Groupe management-users.group-blank = - -management-users.reset-filters = Reset Filters -management-users.search-placeholder = Search in Features -management-users.reset-failed-logins = Reset failed logins -management-users.reset-failed-logins-success = Failed logins reset successfully! -management-users.reset-failed-logins-failed = Failed to reset logins\! -management-users.cannot-delete-own-account = You can not delete your own account -management-users.cannot-revoke-own-admin = You can not revoke your own global admin privileges +management-users.reset-filters = Réinitialiser les filtres +management-users.search-placeholder = Rechercher dans les fonctionnalités +management-users.reset-failed-logins = Réinitialiser les connexions échouées +management-users.reset-failed-logins-success = Connexions échouées réinitialisées avec succès ! +management-users.reset-failed-logins-failed = Échec de la réinitialisation des connexions\! +management-users.cannot-delete-own-account = Vous ne pouvez pas supprimer votre propre compte +management-users.cannot-revoke-own-admin = Vous ne pouvez pas révoquer vos propres privilèges d'administrateur global #date-preset -management.preset = Date presets -management.preset.name = Preset name -management.preset.placeholder = Enter preset name -management.preset.visibility = Visibility +management.preset = Préréglages de date +management.preset.name = Nom du préréglage +management.preset.placeholder = Entrez le nom du préréglage +management.preset.visibility = Visibilité management.preset.visibility.all-users = Public -management.preset.visibility.none = Private -management.preset.visibility.selected-users = Shared -management.preset.user-permissions = User permissions -management.preset.users-edit-permission = Edit permission -management.preset.users-edit-description = Select users who can view and edit the preset -management.preset.enter-user-email = Enter user email -management.preset.sharing-disabled = Adding or editing users is disabled by global administrator -management.preset.users-view-permission = View-only permission -management.preset.users-view-description = Select users who can only view the preset and can't do any editing. -management.preset.user-group-permission = User group permission -management.preset.select-user-group = Select user groups -management.preset.create-button = New date preset -management.preset.manage-button-tooltip = Edit and remove your presets -management.preset.create-new-preset = Create new date preset -management.preset.edit-preset = Edit date preset -management.preset.duplicate-preset = Duplicate date preset -management.preset.date-range = Date range -management.preset.exclude-current-day = Exclude current day -management.preset.exclude-current-day.description = By excluding the current day, results may change as the day has not yet ended. -management.preset.created = Preset created successfully! -management.preset.updated = Preset updated successfully! -management.preset.deleted = Preset deleted successfully! -management.preset.created.error = Something went wrong while creating preset. -management.preset.updated.error = Something went wrong while updating preset. -management.preset.deleted.error = Something went wrong while deleting preset. -management.preset.delete-preset = Delete date preset -management.preset.delete-preset-confirm = Are you sure you want to delete {0} ? -management.preset.delete-preset-confirm-generic = this preset -management.preset.column.name = Name -management.preset.column.range = Date range -management.preset.column.owner = Owner -management.preset.column.visibility = Visibility -management.preset.empty.title = No date presets -management.preset.empty.subtitle = Create a new date preset to save time when selecting date ranges. -management.preset.back-to-home = Back to home +management.preset.visibility.none = Privé +management.preset.visibility.selected-users = Partagé +management.preset.user-permissions = Autorisations utilisateur +management.preset.users-edit-permission = Autorisation de modification +management.preset.users-edit-description = Sélectionnez les utilisateurs qui peuvent voir et modifier le préréglage +management.preset.enter-user-email = Entrez l'e-mail de l'utilisateur +management.preset.sharing-disabled = L'ajout ou la modification d'utilisateurs est désactivé par l'administrateur global +management.preset.users-view-permission = Autorisation de vue seule +management.preset.users-view-description = Sélectionnez les utilisateurs qui ne peuvent voir le préréglage qu'en lecture seule et ne peuvent effectuer aucune modification. +management.preset.user-group-permission = Autorisation de groupe d'utilisateurs +management.preset.select-user-group = Sélectionner les groupes d'utilisateurs +management.preset.create-button = Nouveau préréglage de date +management.preset.manage-button-tooltip = Modifier et supprimer vos préréglages +management.preset.create-new-preset = Créer un nouveau préréglage de date +management.preset.edit-preset = Modifier le préréglage de date +management.preset.duplicate-preset = Dupliquer le préréglage de date +management.preset.date-range = Plage de dates +management.preset.exclude-current-day = Exclure le jour actuel +management.preset.exclude-current-day.description = En excluant le jour actuel, les résultats peuvent changer car la journée n'est pas encore terminée. +management.preset.created = Préréglage créé avec succès ! +management.preset.updated = Préréglage mis à jour avec succès ! +management.preset.deleted = Préréglage supprimé avec succès ! +management.preset.created.error = Une erreur s'est produite lors de la création du préréglage. +management.preset.updated.error = Une erreur s'est produite lors de la mise à jour du préréglage. +management.preset.deleted.error = Une erreur s'est produite lors de la suppression du préréglage. +management.preset.delete-preset = Supprimer le préréglage de date +management.preset.delete-preset-confirm = Êtes-vous sûr de vouloir supprimer {0} ? +management.preset.delete-preset-confirm-generic = ce préréglage +management.preset.column.name = Nom +management.preset.column.range = Plage de dates +management.preset.column.owner = Propriétaire +management.preset.column.visibility = Visibilité +management.preset.empty.title = Aucun préréglage de date +management.preset.empty.subtitle = Créez un nouveau préréglage de date pour gagner du temps lors de la sélection des plages de dates. +management.preset.back-to-home = Retour à l'accueil #user-settings -user-settings.username = Username -user-settings.change-password = Change password -user-settings.old-password = Old password... -user-settings.new-password = New password... -user-settings.password-again = Again... -user-settings.alert = Something is wrong... -user-settings.success = Settings saved successfully! -user-settings.api-key = API Key -user-settings.password-match = Passwords don't match -user-settings.old-password-match = Provide old password to change it -user-settings.old-password-not-match = Old password does not match -user-settings.password-not-old = New password must not be the same as the old one -user-settings.force-password-reset = It is time to change your password. -user-settings.please-correct-input = Please fix errors before submitting the form -user-settings.api-key-length = API key should be exactly 32 characters long -user-settings.api-key-restrict = API key should contain digits and alphabetical characters -user-settings.regenerate-api-key = Regenerate API key -user-settigs.delete-account = Delete account -user-settings.delete-account-title = Delete account? -user-settings.delete-account-confirm = Do you really want to delete your account? You won't be able to recover it. -user-settings.password-mandatory = Password is mandatory. -user-settings.global admin limit = This account is the last global admin account. Can't delete the last global admin account. -user-settings.password not valid = The given password is not valid -user-settings.profile-picture = Profile Picture -user-settings.upload = Upload +user-settings.username = Nom d'utilisateur +user-settings.change-password = Changer le mot de passe +user-settings.old-password = Ancien mot de passe... +user-settings.new-password = Nouveau mot de passe... +user-settings.password-again = Encore... +user-settings.alert = Quelque chose ne va pas... +user-settings.success = Paramètres enregistrés avec succès ! +user-settings.api-key = Clé API +user-settings.password-match = Les mots de passe ne correspondent pas +user-settings.old-password-match = Fournissez l'ancien mot de passe pour le changer +user-settings.old-password-not-match = L'ancien mot de passe ne correspond pas +user-settings.password-not-old = Le nouveau mot de passe ne doit pas être identique à l'ancien +user-settings.force-password-reset = Il est temps de changer votre mot de passe. +user-settings.please-correct-input = Veuillez corriger les erreurs avant de soumettre le formulaire +user-settings.api-key-length = La clé API doit comporter exactement 32 caractères +user-settings.api-key-restrict = La clé API doit contenir des chiffres et des caractères alphabétiques +user-settings.regenerate-api-key = Régénérer la clé API +user-settigs.delete-account = Supprimer le compte +user-settings.delete-account-title = Supprimer le compte ? +user-settings.delete-account-confirm = Voulez-vous vraiment supprimer votre compte ? Vous ne pourrez pas le récupérer. +user-settings.password-mandatory = Le mot de passe est obligatoire. +user-settings.global admin limit = Ce compte est le dernier compte administrateur global. Impossible de supprimer le dernier compte administrateur global. +user-settings.password not valid = Le mot de passe donné n'est pas valide +user-settings.profile-picture = Photo de profil +user-settings.upload = Télécharger #report manager -report-manager.name = Name +report-manager.name = Nom report-manager.desc = Description -report-manager.name-and-desc = Name and Description -report-manager.data = Data -report-manager.period = Period -report-manager.visibility = Visibility -report-maanger.manually-created = Manually Created -report-maanger.automatically-created = Automatically created -report-maanger.manually-created-title = Manually Created Reports -report-maanger.automatically-created-title = Automatically created Reports -report-manager.all-origins = All Origins -report-manager.all-types = All Types -report-manager.all-statuses = All Statuses -report-manager.all-owners = All Owners -report-manager.my-reports = My Reports -report-manager.all-sources = All Data Sources -report-manager.data-source = Data source -report-manager.select-data-source = Select data source -report-manager.runtime-type = Runtime type -report-manager.origin = Origin -report-manager.select-origin = Select origin -report-manager.owner = Owner -report-manager.status = Status -report-manager.app-independent = App Independent -report-manager.reset-filters = Reset filters -report-manager.filters = Filters +report-manager.name-and-desc = Nom et description +report-manager.data = Données +report-manager.period = Période +report-manager.visibility = Visibilité +report-maanger.manually-created = Créé manuellement +report-maanger.automatically-created = Créé automatiquement +report-maanger.manually-created-title = Rapports créés manuellement +report-maanger.automatically-created-title = Rapports créés automatiquement +report-manager.all-origins = Toutes les origines +report-manager.all-types = Tous les types +report-manager.all-statuses = Tous les statuts +report-manager.all-owners = Tous les propriétaires +report-manager.my-reports = Mes rapports +report-manager.all-sources = Toutes les sources de données +report-manager.data-source = Source de données +report-manager.select-data-source = Sélectionner la source de données +report-manager.runtime-type = Type d'exécution +report-manager.origin = Origine +report-manager.select-origin = Sélectionner l'origine +report-manager.owner = Propriétaire +report-manager.status = Statut +report-manager.app-independent = Indépendant de l'application +report-manager.reset-filters = Réinitialiser les filtres +report-manager.filters = Filtres #app-users -app-users.download-debug-info = Download debug information -app-users.export-userdata = Export user's data -app-users.download-export = Download user's exported data -app-users.delete-export = Purge user's exported data -app-users.delete-userdata = Purge selected user's data completely -app-users.delete-userdata-confirm = Do you really want to purge all data associated with this user? -app-users.export-started = Exporting has started successfully. -app-users.export-finished = User data is exported. You can download it now. -app-users.export-finished-click = Click here to download. -app-users.export-failed = There was an error during the export process. There might be more information in logs. -app-users.export-deleted = Export data was purged -app-users.userdata-deleted = User's data has been purged -app-users.yes-purge-data = Yes, purge data -app-users.no-dont-purge = No, don't purge -app-users.purge-confirm-title = Purge user's data completely? -app-users.debug-options = Debug options +app-users.download-debug-info = Télécharger les informations de débogage +app-users.export-userdata = Exporter les données de l'utilisateur +app-users.download-export = Télécharger les données exportées de l'utilisateur +app-users.delete-export = Purger les données exportées de l'utilisateur +app-users.delete-userdata = Purger complètement les données de l'utilisateur sélectionné +app-users.delete-userdata-confirm = Voulez-vous vraiment purger toutes les données associées à cet utilisateur ? +app-users.export-started = L'exportation a commencé avec succès. +app-users.export-finished = Les données de l'utilisateur sont exportées. Vous pouvez les télécharger maintenant. +app-users.export-finished-click = Cliquez ici pour télécharger. +app-users.export-failed = Une erreur s'est produite pendant le processus d'exportation. Il pourrait y avoir plus d'informations dans les journaux. +app-users.export-deleted = Les données d'exportation ont été purgées +app-users.userdata-deleted = Les données de l'utilisateur ont été purgées +app-users.yes-purge-data = Oui, purger les données +app-users.no-dont-purge = Non, ne pas purger +app-users.purge-confirm-title = Purger complètement les données de l'utilisateur ? +app-users.debug-options = Options de débogage #downloading-view -downloading-view.download-title = Your download should start soon -downloading-view.if-not-start = If download doesn't start automatically click here -downloading-view.download-not-available-title = Unable to start download -downloading-view.download-not-available-text = There was no export connected to this link. Export might be already deleted. +downloading-view.download-title = Votre téléchargement devrait commencer bientôt +downloading-view.if-not-start = Si le téléchargement ne démarre pas automatiquement, cliquez ici +downloading-view.download-not-available-title = Impossible de démarrer le téléchargement +downloading-view.download-not-available-text = Aucun exportation n'était connecté à ce lien. L'exportation pourrait déjà être supprimée. #token-manager -token_manager.page-title = Token Manager -token_manager.create-token = Create Token -token_manager.create-new-token = Create New Token -token_manager.table.id = Token ID -token_manager.table.ends = Valid Until -token_manager.table.multi = Multiple times -token_manager.table.owner = Token owner -token_manager.table.app = App -token_manager.table.status = Status -token_manager.table.endpoint = Endpoint -token_manager.table.endpoints = Endpoints -token_manager.table.endpoint-name = Endpoint Name -token_manager.table.endpoint-detail = ENDPOINT DETAILS -token_manager.table.endpoints-description = Given endpoints are interpreted as regular expressions. -token_manager.table.expiration-description = Set expiration time for token +token_manager.page-title = Gestionnaire de jetons +token_manager.create-token = Créer un jeton +token_manager.create-new-token = Créer un nouveau jeton +token_manager.table.id = ID du jeton +token_manager.table.ends = Valide jusqu'à +token_manager.table.multi = Plusieurs fois +token_manager.table.owner = Propriétaire du jeton +token_manager.table.app = Application +token_manager.table.status = Statut +token_manager.table.endpoint = Point de terminaison +token_manager.table.endpoints = Points de terminaison +token_manager.table.endpoint-name = Nom du point de terminaison +token_manager.table.endpoint-detail = DÉTAILS DU POINT DE TERMINAISON +token_manager.table.endpoints-description = Les points de terminaison donnés sont interprétés comme des expressions régulières. +token_manager.table.expiration-description = Définir le temps d'expiration pour le jeton token_manager.table.purpose = Description -token_manager.table.token-description = Token Description -token_manager.table.purpose-desc = Some information to help the user identify created token. -token_manager.table.endpoint-desc = You can limit the token to a single or multiple endpoints. Given endpoints are interpreted as regular expressions. -token_manager.table.multi-desc = Token can be used multiple times. -token_manager.table.apps-title = Token Usage -token_manager.table.apps-limit = Allow token to be used only in some apps -token_manager.table.apps-allow = Allow token to be used in all apps -token_manager.table.limit-limit.label = Limited Time -token_manager.table.limit-limit.text = Token will expire after the time you set -token_manager.table.limit-allow.label = Unlimited Time -token_manager.table.limit-allow.text = Token can be used until it is deleted -token_manager.table.limit-title = Token Expiration -token_manager.table.enter-number = Enter number -token_manager.table.not-expire = No expiry -token_manager.table.all-apps = All apps -token_manager.limit.h = hours -token_manager.limit.d = days -token_manager.limit.m = months -token_manager.delete-token-confirm = Do you really want to delete this token? -token_manager.delete-token-confirm-title = Delete token? -token_manager.yes-delete-token = Yes, delete token -token_manager.delete-error = Deleting token failed -token_manager.select-apps-error = You have to choose apps or set option to "Allow token to be used in all apps" -token_manager.select-expire-error = You have to choose after how long time token expires or set option to "Token can be used until it is deleted" -token_manager.table.delete-token = Delete token -token_manager.table.status-expired = Expired -token_manager.table.status-active = Active -token_manager.copy-token = Click to copy -token_manager.token-coppied = Token Copied -token_manager.query-param = Query Parameters -token_manager.query-param-value = Value -token_manager.query-param-desc = Limit by some parameter values (for example, method=get_events). The value is used as a regex when validating. -token_manager.add-new-endpoint = Add new endpoint -token_manager.add-param = Add parameter -token_manager.parameter = Parameter -token_manager.select-apps = Select Apps -token_manager.select-time-unit = Select time unit -token_manager.token-expiration-time = Expiration Time -token_manager.LoginAuthToken-description = This token is created when creating dashboard screenshots. If you are not currently rendering dashboard images, you can delete this token. -token_manager.LoggedInAuth-description = This token is used for keeping the user's session. Deleting it will log out the user currently using it to keep the session. +token_manager.table.token-description = Description du jeton +token_manager.table.purpose-desc = Quelques informations pour aider l'utilisateur à identifier le jeton créé. +token_manager.table.endpoint-desc = Vous pouvez limiter le jeton à un ou plusieurs points de terminaison. Les points de terminaison donnés sont interprétés comme des expressions régulières. +token_manager.table.multi-desc = Le jeton peut être utilisé plusieurs fois. +token_manager.table.apps-title = Utilisation du jeton +token_manager.table.apps-limit = Autoriser le jeton à être utilisé uniquement dans certaines applications +token_manager.table.apps-allow = Autoriser le jeton à être utilisé dans toutes les applications +token_manager.table.limit-limit.label = Temps limité +token_manager.table.limit-limit.text = Le jeton expirera après le temps que vous avez défini +token_manager.table.limit-allow.label = Temps illimité +token_manager.table.limit-allow.text = Le jeton peut être utilisé jusqu'à ce qu'il soit supprimé +token_manager.table.limit-title = Expiration du jeton +token_manager.table.enter-number = Entrer le nombre +token_manager.table.not-expire = Pas d'expiration +token_manager.table.all-apps = Toutes les applications +token_manager.limit.h = heures +token_manager.limit.d = jours +token_manager.limit.m = mois +token_manager.delete-token-confirm = Voulez-vous vraiment supprimer ce jeton ? +token_manager.delete-token-confirm-title = Supprimer le jeton ? +token_manager.yes-delete-token = Oui, supprimer le jeton +token_manager.delete-error = Échec de la suppression du jeton +token_manager.select-apps-error = Vous devez choisir des applications ou définir l'option "Autoriser le jeton à être utilisé dans toutes les applications" +token_manager.select-expire-error = Vous devez choisir après combien de temps le jeton expire ou définir l'option "Le jeton peut être utilisé jusqu'à ce qu'il soit supprimé" +token_manager.table.delete-token = Supprimer le jeton +token_manager.table.status-expired = Expiré +token_manager.table.status-active = Actif +token_manager.copy-token = Cliquez pour copier +token_manager.token-coppied = Jeton copié +token_manager.query-param = Paramètres de requête +token_manager.query-param-value = Valeur +token_manager.query-param-desc = Limiter par certaines valeurs de paramètres (par exemple, method=get_events). La valeur est utilisée comme une regex lors de la validation. +token_manager.add-new-endpoint = Ajouter un nouveau point de terminaison +token_manager.add-param = Ajouter un paramètre +token_manager.parameter = Paramètre +token_manager.select-apps = Sélectionner des applications +token_manager.select-time-unit = Sélectionner l'unité de temps +token_manager.token-expiration-time = Temps d'expiration +token_manager.LoginAuthToken-description = Ce jeton est créé lors de la création de captures d'écran de tableau de bord. Si vous ne rendez pas actuellement d'images de tableau de bord, vous pouvez supprimer ce jeton. +token_manager.LoggedInAuth-description = Ce jeton est utilisé pour maintenir la session de l'utilisateur. Le supprimer déconnectera l'utilisateur actuellement connecté pour maintenir la session. -version_history.page-title = Countly version history -version_history.current-version = Current version -version_history.package-version = Package version +version_history.page-title = Historique des versions de Countly +version_history.current-version = Version actuelle +version_history.package-version = Version du package version_history.version = Version -version_history.upgraded = Upgraded / installed -version_history.alert-title = Version mismatch -version_history.alert-message = There is a version mismatch between the version in the files and the version in the database. It may indicate that upgrade scripts did not complete properly. -llm.events = LLM Observability +version_history.upgraded = Mis à niveau / installé +version_history.alert-title = Incohérence de version +version_history.alert-message = Il y a une incohérence de version entre la version dans les fichiers et la version dans la base de données. Cela peut indiquer que les scripts de mise à niveau n'ont pas été exécutés correctement. +llm.events = Observabilité LLM internal-events.[CLY]_session = Session -internal-events.[CLY]_llm_interaction = LLM Interaction -internal-events.[CLY]_llm_interaction_feedback = LLM Interaction Feedback -internal-events.[CLY]_llm_tool_used = LLM Tool Used -internal-events.[CLY]_llm_tool_usage_parameter = LLM Tool Usage Parameter +internal-events.[CLY]_llm_interaction = Interaction LLM +internal-events.[CLY]_llm_interaction_feedback = Retour d'interaction LLM +internal-events.[CLY]_llm_tool_used = Outil LLM utilisé +internal-events.[CLY]_llm_tool_usage_parameter = Paramètre d'utilisation de l'outil LLM #jobs -jobs.back-to-jobs-list = Back to jobs list -jobs.job-name = Name -jobs.job-schedule = Schedule -jobs.job-next-run = Next Run -jobs.job-last-run = Last Run -jobs.job-status = Status +jobs.back-to-jobs-list = Retour à la liste des emplois +jobs.job-name = Nom +jobs.job-schedule = Horaire +jobs.job-next-run = Prochain exécution +jobs.job-last-run = Dernière exécution +jobs.job-status = Statut jobs.job-total-scheduled = Total -jobs.job-data = Data -jobs.run-duration = Duration -jobs.suspend = Suspend -jobs.suspend-successful-message = {0} suspended successfully -jobs.schedule = Schedule +jobs.job-data = Données +jobs.run-duration = Durée +jobs.suspend = Suspendre +jobs.suspend-successful-message = {0} a été suspendu avec succès +jobs.schedule = Planifier systemlogs.action.task_manager_task_deleted = Report deleted systemlogs.action.task_manager_task_updated = Report updated systemlogs.action.task_manager_task_created = Report created +systemlogs.action.task_manager_task_deleted = Rapport supprimé +systemlogs.action.task_manager_task_updated = Rapport mis à jour +systemlogs.action.task_manager_task_created = Rapport créé #events-overview -events.overview.title.new = Events Overview -events.overview.title.new.tooltip = A complete summary of all Events being tracked. -events.overview.total.event.count = The total number of Events triggered in the last 30 days. -events.overview.event.per.user = The average number of Events triggered per user in the last 30 days. -events.overview.event.per.session = The average number of Events triggered per session in the last 30 days. -events.overview.event.metrics = An overview of the metrics calculated by the identified Events in the last 30 days. -events.overview.event.monitor.events = A quick summary of selected Events that you wish to monitor. To select Events that you want to highlight here, please click on 'Configure Events'. -events.overview.metrics = Event Metrics -events.overview.monitor = Monitor Events -events.overview.event = EVENT -events.overview.segment = SEGMENT NAME -events.overview.count = Count -events.overview.sum = Sum -events.overview.duration = Duration -events.overview.dur = Dur -events.overview.time.period = TIME PERIOD -events.percentage.of.total = % of Total -events.overview.top.events.by.count = Top Events by Count in the last 30 days -events.overview.updated = Updated -events.overview.total.events.count = Total Event Count -events.overview.events.per.session = Events Per Session -events.overview.events.per.user = Events Per User -events.overview.events.configure.events = Configure Events -events.overview.add.item = Add Item -events.overview.add.to.list = Add to List -events.overview.manage.items = Manage Items -events.overview.last-30days = Last 30 Days +events.overview.title.new = Vue d'ensemble des événements +events.overview.title.new.tooltip = Un résumé complet de tous les événements suivis. +events.overview.total.event.count = Nombre total d'événements déclenchés au cours des 30 derniers jours. +events.overview.event.per.user = Nombre moyen d'événements déclenchés par utilisateur au cours des 30 derniers jours. +events.overview.event.per.session = Nombre moyen d'événements déclenchés par session au cours des 30 derniers jours. +events.overview.event.metrics = Aperçu des métriques calculées par les événements identifiés au cours des 30 derniers jours. +events.overview.event.monitor.events = Un résumé rapide des événements sélectionnés que vous souhaitez surveiller. Pour sélectionner les événements à mettre en avant ici, cliquez sur 'Configurer les événements'. +events.overview.metrics = Métriques d'événements +events.overview.monitor = Surveiller les événements +events.overview.event = ÉVÉNEMENT +events.overview.segment = NOM DU SEGMENT +events.overview.count = Compte +events.overview.sum = Somme +events.overview.duration = Durée +events.overview.dur = Durée +events.overview.time.period = PÉRIODE +events.percentage.of.total = % du total +events.overview.top.events.by.count = Événements les plus fréquents par nombre au cours des 30 derniers jours +events.overview.updated = Mis à jour +events.overview.total.events.count = Nombre total d'événements +events.overview.events.per.session = Événements par session +events.overview.events.per.user = Événements par utilisateur +events.overview.events.configure.events = Configurer les événements +events.overview.add.item = Ajouter un élément +events.overview.add.to.list = Ajouter à la liste +events.overview.manage.items = Gérer les éléments +events.overview.last-30days = 30 derniers jours #all-events -events.all.title.tooltip = Details of the stats of each Event within the selected time period, and their comparison where applicable. -events.all.title.new = All Events -events.all.period = PERIOD -events.all.event = EVENT -events.all.segmentation = SEGMENTATION BY -events.segment.values = SEGMENT VALUE(S) -events.all.search.placeholder = Search in {0} Events -events.all.group = GROUP -events.all.error = Could not fetch data -events.all.count = Count -events.all.sum = Sum -events.all.duration = Duration -events.all.segmentation-search.placeholder = Search segments -events.all.segmentation-values-search.placeholder = Search segment value(s) -events.all.any.segmentation = Any segmentation -events.all.omitted.segments = OMITTED -events.all.drill = Drill -events.drill-drawer.title = Event Drill -events.drill-drawer.save-button = Go to Drill +events.all.title.tooltip = Détails des statistiques de chaque événement pendant la période sélectionnée, et leur comparaison si applicable. +events.all.title.new = Tous les événements +events.all.period = PÉRIODE +events.all.event = ÉVÉNEMENT +events.all.segmentation = SEGMENTATION PAR +events.segment.values = VALEUR(S) DE SEGMENT +events.all.search.placeholder = Rechercher dans {0} événements +events.all.group = GROUPE +events.all.error = Impossible de récupérer les données +events.all.count = Compte +events.all.sum = Somme +events.all.duration = Durée +events.all.segmentation-search.placeholder = Rechercher des segments +events.all.segmentation-values-search.placeholder = Rechercher des valeurs de segment +events.all.any.segmentation = Toute segmentation +events.all.omitted.segments = OMIS +events.all.drill = Analyse +events.drill-drawer.title = Analyse d'événement +events.drill-drawer.save-button = Aller à l'analyse #auto-refresh -auto-refresh.help = Automatic refresh can be adjusted through this switch. -auto-refresh.enable = Enable Auto-refresh -auto-refresh.stop = Stop Auto-refresh -auto-refresh.is = Auto-refresh is -auto-refresh.enabled = Enabled +auto-refresh.help = L'actualisation automatique peut être ajustée via ce bouton. +auto-refresh.enable = Activer l'actualisation automatique +auto-refresh.stop = Arrêter l'actualisation automatique +auto-refresh.is = L'actualisation automatique est +auto-refresh.enabled = Activée initial-setup.application = Application -initial-setup.add-first-application-title = Let's add your first application -initial-setup.add-first-application-byline = After adding your first application, you will be ready to start collecting data. -initial-setup.add-demo-application-title = Let's create a demo app for you! -initial-setup.application-type-label = Select your application type -initial-setup.time-zone-label = Select your time zone -initial-setup.application-sample-label = We will populate some demo data for your app. Which example sounds the best? -initial-setup.create-application = Create Application -initial-setup.continue-data-population = Continue with data population -initial-setup.populating-data = Populating data for your app -initial-setup.consent-title = Before we start... -initial-setup.analytics-blurb-1 = We utilize Countly to understand user interactions and collect feedback, helping us enhance our product continuously. However, your privacy remains our priority. -initial-setup.analytics-blurb-2 = This analysis is done at the server level, so we will not see or collect any individual details or any data you record. The data is reported back only to our dedicated Countly server based in Europe. Please note, you can change your mind at any time in the settings. -initial-setup.analytics-question = Considering our commitment to maintaining your privacy and the potential benefits for product enhancement, would you be comfortable enabling Countly on this server? -initial-setup.analytics-no = No, maybe later -initial-setup.analytics-yes = Yes, enable Countly on this server -initial-setup.newsletter-blurb = We offer a newsletter brimming with recent updates about our product, news from Countly, and information on product analytics. We assure you - our aim is to provide value and insights, not clutter your inbox with unwanted emails. -initial-setup.newsletter-question = Would you be interested in subscribing to our newsletter? -initial-setup.newsletter-no = No, thank you. -initial-setup.newsletter-yes = Yes, subscribe me to the newsletter -initial-setup.quickstart-title = Quick Start Guide +initial-setup.add-first-application-title = Ajoutons votre première application +initial-setup.add-first-application-byline = Après avoir ajouté votre première application, vous serez prêt à commencer à collecter des données. +initial-setup.add-demo-application-title = Créons une application de démonstration pour vous ! +initial-setup.application-type-label = Sélectionnez le type de votre application +initial-setup.time-zone-label = Sélectionnez votre fuseau horaire +initial-setup.application-sample-label = Nous allons remplir votre application avec des données de démonstration. Quel exemple vous semble le mieux ? +initial-setup.create-application = Créer une application +initial-setup.continue-data-population = Continuer avec la population des données +initial-setup.populating-data = Remplissage des données pour votre application +initial-setup.consent-title = Avant de commencer... +initial-setup.analytics-blurb-1 = Nous utilisons Countly pour comprendre les interactions des utilisateurs et recueillir des retours, ce qui nous aide à améliorer continuellement notre produit. Cependant, votre vie privée reste notre priorité. +initial-setup.analytics-blurb-2 = Cette analyse est effectuée au niveau du serveur, nous ne verrons ni ne collecterons aucun détail individuel ou aucune donnée que vous enregistrez. Les données sont uniquement rapportées à notre serveur Countly dédié basé en Europe. Notez que vous pouvez changer d'avis à tout moment dans les paramètres. +initial-setup.analytics-question = Compte tenu de notre engagement à préserver votre vie privée et des avantages potentiels pour l'amélioration du produit, seriez-vous d'accord pour activer Countly sur ce serveur ? +initial-setup.analytics-no = Non, peut-être plus tard +initial-setup.analytics-yes = Oui, activer Countly sur ce serveur +initial-setup.newsletter-blurb = Nous proposons une newsletter riche en mises à jour récentes sur notre produit, des nouvelles de Countly et des informations sur l'analytique produit. Nous vous assurons que notre objectif est d'apporter de la valeur et des idées, et non d'encombrer votre boîte de réception avec des e-mails indésirables. +initial-setup.newsletter-question = Souhaitez-vous vous abonner à notre newsletter ? +initial-setup.newsletter-no = Non, merci. +initial-setup.newsletter-yes = Oui, abonnez-moi à la newsletter +initial-setup.quickstart-title = Guide de démarrage rapide diff --git a/frontend/express/public/localization/help/help_fr.properties b/frontend/express/public/localization/help/help_fr.properties index ed31daa5f9d..24fe72349a3 100644 --- a/frontend/express/public/localization/help/help_fr.properties +++ b/frontend/express/public/localization/help/help_fr.properties @@ -1,93 +1,93 @@ -help.help-mode-welcome = Hover over each item to view a brief explanation.

While in this mode, auto-refreshing of your data is disabled and will be enabled as soon as you turn off help mode. -help.help-mode-welcome-title = Welcome to Help Mode! +help.help-mode-welcome = Survolez chaque élément pour voir une brève explication.

En mode aide, l'actualisation automatique de vos données est désactivée et sera réactivée dès que vous quitterez le mode aide. +help.help-mode-welcome-title = Bienvenue en mode aide ! #dashboard -help.dashboard.total-sessions = The number of times your application is opened. Click this item to see a time series representation of total sessions. -help.dashboard.total-users = The number of unique devices your application is used from. Click this item to see a time series representation of total users. -help.dashboard.new-users = The number of first-time users. Click this item to see a time series representation of new users. -help.dashboard.total-time-spent = The total time users spent using your application. -help.dashboard.avg-time-spent2 = The total time spent using your application divided by the total session count. Click this item to see a time series representation of the average time spent per session. -help.dashboard.reqs-received = The number of write API requests the Countly Server received for this application. Click this item to see a time series representation of requests received. -help.dashboard.avg-reqs-received = The number of write API requests the Countly Server received for this application, divided by the total user count. Click this item to see a time series representation of the average requests per user. -help.dashboard.top-platforms = Shows at most the top three platforms represented by different colors according to the number of sessions from each platform. Hover over each color to see the platform name. -help.dashboard.top-resolutions = Shows at most the top three resolutions represented by different colors according to the number of sessions from each resolution. Hover over each color to see the resolution. -help.dashboard.top-carriers = Shows at most the top three carriers represented by different colors according to the number of sessions from each carrier. Hover over each color to see the carrier name. -help.dashboard.top-users = Shows at most the top three days in which your application reached the maximum number of total users. Hover over each color to see the date. -help.dashboard.map = The world map shows session counts from each country, represented by a tone of green according to the count. Next to the map, you can see a table of the top ten countries together with their session counts (the table is shown only if there is any available data). +help.dashboard.total-sessions = Le nombre de fois que votre application est ouverte. Cliquez sur cet élément pour voir une représentation chronologique des sessions totales. +help.dashboard.total-users = Le nombre d'appareils uniques depuis lesquels votre application est utilisée. Cliquez sur cet élément pour voir une représentation chronologique des utilisateurs totaux. +help.dashboard.new-users = Le nombre de nouveaux utilisateurs. Cliquez sur cet élément pour voir une représentation chronologique des nouveaux utilisateurs. +help.dashboard.total-time-spent = Le temps total passé par les utilisateurs sur votre application. +help.dashboard.avg-time-spent2 = Le temps total passé sur votre application divisé par le nombre total de sessions. Cliquez sur cet élément pour voir une représentation chronologique du temps moyen par session. +help.dashboard.reqs-received = Le nombre de requêtes API d'écriture reçues par le serveur Countly pour cette application. Cliquez sur cet élément pour voir une représentation chronologique des requêtes reçues. +help.dashboard.avg-reqs-received = Le nombre de requêtes API d'écriture reçues par le serveur Countly pour cette application, divisé par le nombre total d'utilisateurs. Cliquez sur cet élément pour voir une représentation chronologique de la moyenne des requêtes par utilisateur. +help.dashboard.top-platforms = Affiche au maximum les trois principales plateformes représentées par différentes couleurs selon le nombre de sessions de chaque plateforme. Survolez chaque couleur pour voir le nom de la plateforme. +help.dashboard.top-resolutions = Affiche au maximum les trois principales résolutions représentées par différentes couleurs selon le nombre de sessions de chaque résolution. Survolez chaque couleur pour voir la résolution. +help.dashboard.top-carriers = Affiche au maximum les trois principaux opérateurs représentés par différentes couleurs selon le nombre de sessions de chaque opérateur. Survolez chaque couleur pour voir le nom de l'opérateur. +help.dashboard.top-users = Affiche au maximum les trois jours où votre application a atteint le plus grand nombre d'utilisateurs. Survolez chaque couleur pour voir la date. +help.dashboard.map = La carte du monde montre le nombre de sessions par pays, représenté par une nuance de vert selon le nombre. À côté de la carte, vous pouvez voir un tableau des dix principaux pays avec leur nombre de sessions (le tableau n'est affiché que s'il y a des données disponibles). #sessions view -help.sessions.total-sessions = The number of times your application is opened. The time series representation of this item is identified by the top border color of this block. -help.sessions.new-sessions = The number of times your application is opened by a first-time user. The time series representation of this item is identified by the top border color of this block. -help.sessions.unique-sessions = The number of times your application is opened from a unique device. The time series representation of this item is identified by the top border color of this block. +help.sessions.total-sessions = Le nombre de fois que votre application est ouverte. La représentation chronologique de cet élément est identifiée par la couleur de la bordure supérieure de ce bloc. +help.sessions.new-sessions = Le nombre de fois que votre application est ouverte par un nouvel utilisateur. La représentation chronologique de cet élément est identifiée par la couleur de la bordure supérieure de ce bloc. +help.sessions.unique-sessions = Le nombre de fois que votre application est ouverte depuis un appareil unique. La représentation chronologique de cet élément est identifiée par la couleur de la bordure supérieure de ce bloc. #users view -help.users.total-users = The number of unique devices. The time series representation of this item is identified by the top border color of this block. -help.users.new-users = The number of first-time users. The time series representation of this item is identified by the top border color of this block. -help.users.returning-users = The number of users that have used your application at least one time before. The time series representation of this item is identified by the top border color of this block. +help.users.total-users = Le nombre d'appareils uniques. La représentation chronologique de cet élément est identifiée par la couleur de la bordure supérieure de ce bloc. +help.users.new-users = Le nombre de nouveaux utilisateurs. La représentation chronologique de cet élément est identifiée par la couleur de la bordure supérieure de ce bloc. +help.users.returning-users = Le nombre d'utilisateurs ayant déjà utilisé votre application au moins une fois. La représentation chronologique de cet élément est identifiée par la couleur de la bordure supérieure de ce bloc. #countries view -help.countries.chart = The world map shows session counts from each country represented by a tone of green according to the count. -help.countries.table = Country: Name of the country.
Total Sessions: The number of times your application is opened by a user from this country.
Total Users: The number of unique devices from which your application is used within this country.
New Users: The number of first-time users from this country.
-help.countries.total-sessions = The number of times your application is opened. -help.countries.total-users = The number of unique devices. -help.countries.new-users = The number of first-time users. +help.countries.chart = La carte du monde montre le nombre de sessions par pays représenté par une nuance de vert selon le nombre. +help.countries.table = Pays : Nom du pays.
Sessions totales : Nombre de fois que votre application est ouverte par un utilisateur de ce pays.
Utilisateurs totaux : Nombre d'appareils uniques depuis lesquels votre application est utilisée dans ce pays.
Nouveaux utilisateurs : Nombre de nouveaux utilisateurs de ce pays.
+help.countries.total-sessions = Le nombre de fois que votre application est ouverte. +help.countries.total-users = Le nombre d'appareils uniques. +help.countries.new-users = Le nombre de nouveaux utilisateurs. #devices view -help.devices.chart = The pie chart on the left shows the percentage of total users from each device (unique device percentages). The pie chart on the right shows the percentage of first-time users from each device. -help.devices.platform-versions2 = Shows at most the top three platform versions represented by different colors according to the number of sessions from each platform version. Hover over each color to see the platform version. +help.devices.chart = Le graphique circulaire de gauche montre le pourcentage d'utilisateurs totaux par appareil (pourcentages d'appareils uniques). Le graphique circulaire de droite montre le pourcentage de nouveaux utilisateurs par appareil. +help.devices.platform-versions2 = Affiche au maximum les trois principales versions de plateforme représentées par différentes couleurs selon le nombre de sessions de chaque version. Survolez chaque couleur pour voir la version de la plateforme. #loyalty view -help.loyalty.chart = The total number of users from each session count segment (1, 2, 3-5, 6-9, 10-19, 20-49, 50-99, 100-499, > 500) is visualized using a bar chart. -help.loyalty.table = Session Count: Session count segment. A user is categorized into one of 1, 2, 3-5, 6-9, 10-19, 20-49, 50-99, 100-499, > 500 according to their total session count.
Number of Users: The number of users (unique devices) that are in a particular session count segment.
Percent: The percentage of users that are in a particular session count segment.
+help.loyalty.chart = Le nombre total d'utilisateurs par segment de nombre de sessions (1, 2, 3-5, 6-9, 10-19, 20-49, 50-99, 100-499, > 500) est visualisé à l'aide d'un graphique à barres. +help.loyalty.table = Nombre de sessions : Segment de nombre de sessions. Un utilisateur est catégorisé dans l'un des segments 1, 2, 3-5, 6-9, 10-19, 20-49, 50-99, 100-499, > 500 selon son nombre total de sessions.
Nombre d'utilisateurs : Nombre d'utilisateurs (appareils uniques) dans un segment particulier.
Pourcentage : Pourcentage d'utilisateurs dans un segment particulier.
#frequency view -help.frequency.chart = The total number of users from each session frequency segment (First session, 1-24 hours, 1 day, 2 days, 3 days, 4 days, 5 days, 6 days, 7 days, 8-14 days, 15-30 days, 30+ days) is visualized using a bar chart. -help.frequency.table = Time after previous session: Time between users' consequent sessions. A user is categorized into one of First session, 1-24 hours, 1 day, 2 days, 3 days, 4 days, 5 days, 6 days, 7 days, 8-14 days, 15-30 days or 30+ days according to their session frequency.
Number of Users: Number of users (unique devices) in this session frequency segment.
Percent: Percentage of users in this session frequency segment.
+help.frequency.chart = Le nombre total d'utilisateurs par segment de fréquence de session (Première session, 1-24 heures, 1 jour, 2 jours, 3 jours, 4 jours, 5 jours, 6 jours, 7 jours, 8-14 jours, 15-30 jours, plus de 30 jours) est visualisé à l'aide d'un graphique à barres. +help.frequency.table = Temps après la session précédente : Temps entre les sessions consécutives des utilisateurs. Un utilisateur est catégorisé dans l'un des segments Première session, 1-24 heures, 1 jour, 2 jours, 3 jours, 4 jours, 5 jours, 6 jours, 7 jours, 8-14 jours, 15-30 jours ou plus de 30 jours selon sa fréquence de session.
Nombre d'utilisateurs : Nombre d'utilisateurs (appareils uniques) dans ce segment de fréquence de session.
Pourcentage : Pourcentage d'utilisateurs dans ce segment de fréquence de session.
#platforms view -help.platform-versions.chart = Pie chart on the left shows percentage of total users from each platform. Pie chart on the right shows percentage of total users from each platform version. You can toggle between iOS and Android to see distribution of platform versions (Toggle button will appear only if there is more than one platform) +help.platform-versions.chart = Le graphique circulaire de gauche montre le pourcentage d'utilisateurs totaux par plateforme. Celui de droite montre le pourcentage d'utilisateurs totaux par version de plateforme. Vous pouvez basculer entre iOS et Android pour voir la distribution des versions (le bouton de bascule n'apparaît que s'il y a plus d'une plateforme). #app versions view -help.app-versions.chart = This page shows different versions of applications, in case they are defined. A stacked chart shows total sessions and new users. The table under the chart shows total sessions, total users and new users, respectively for each application version. +help.app-versions.chart = Cette page affiche les différentes versions des applications, si elles sont définies. Un graphique empilé montre les sessions totales et les nouveaux utilisateurs. Le tableau sous le graphique affiche les sessions totales, les utilisateurs totaux et les nouveaux utilisateurs pour chaque version d'application. #carriers view -help.carriers.chart = Pie chart on the left shows percentage of total users from each carrier. Pie chart on the right shows percentage of first time users from each carrier. +help.carriers.chart = Le graphique circulaire de gauche montre le pourcentage d'utilisateurs totaux par opérateur. Celui de droite montre le pourcentage de nouveaux utilisateurs par opérateur. #manage apps view -help.manage-apps.app-name = Name of your application. Used in several different sections of your dashboard. -help.manage-apps.app-key = Application key of your application that you will use inside the SDKs. This helps Countly Server to identify which application the write request from the SDK is for. Also this key is used in the dashboard to read the data for the selected application. -help.manage-apps.app-category = Category of your application. -help.manage-apps.app-timezone = Timezone that you will view your dashboard from. While saving the write requests from the SDKs to the database this timezone is used so make sure to set this one correct. -help.manage-apps.app-icon = Icon for your application. Used in several different sections of your dashboard. -help.manage-apps.app-add-button = Opens up a form to add a new application. Only users with a global administrator account can perform this action. -help.manage-apps.app-delete-button = Deletes all the data of this application from the database. Only users with a global administrator account can perform this action. -help.manage-apps.app-clear-button = Deletes all the data of this application but does not delete the application entry. You can continue to use the same app_key. Only users with a global administrator account can perform this action. -help.manage-apps.app-edit-button = Activates editing mode for this application. Users with a global administrator account and administrators of this application can perform this action. -help.manage-apps.app-lock-button = Locks this application to prevent accidental delete/clear/reset. Users with a global administrator account and administrators of this application can perform this action. -help.manage-apps.checksum-salt = Providing this value will enable checking request's checksum to prevent parameter tampering. You must configure same salt on SDK side too. -help.manage-apps.app-clear-button-hint = Purge all data or data older than a selected date, but keep the configurations -help.manage-apps.app-delete-button-hint = Delete the application from the system and purge all of the collected data +help.manage-apps.app-name = Nom de votre application. Utilisé dans plusieurs sections de votre tableau de bord. +help.manage-apps.app-key = Clé d'application que vous utiliserez dans les SDK. Cela aide le serveur Countly à identifier à quelle application la requête d'écriture du SDK est destinée. Cette clé est aussi utilisée dans le tableau de bord pour lire les données de l'application sélectionnée. +help.manage-apps.app-category = Catégorie de votre application. +help.manage-apps.app-timezone = Fuseau horaire depuis lequel vous consultez votre tableau de bord. Lors de l'enregistrement des requêtes d'écriture des SDK dans la base de données, ce fuseau horaire est utilisé, donc assurez-vous qu'il est correct. +help.manage-apps.app-icon = Icône de votre application. Utilisée dans plusieurs sections du tableau de bord. +help.manage-apps.app-add-button = Ouvre un formulaire pour ajouter une nouvelle application. Seuls les utilisateurs avec un compte administrateur global peuvent effectuer cette action. +help.manage-apps.app-delete-button = Supprime toutes les données de cette application de la base de données. Seuls les utilisateurs avec un compte administrateur global peuvent effectuer cette action. +help.manage-apps.app-clear-button = Supprime toutes les données de cette application mais ne supprime pas l'entrée de l'application. Vous pouvez continuer à utiliser la même app_key. Seuls les utilisateurs avec un compte administrateur global peuvent effectuer cette action. +help.manage-apps.app-edit-button = Active le mode édition pour cette application. Les administrateurs globaux et les administrateurs de cette application peuvent effectuer cette action. +help.manage-apps.app-lock-button = Verrouille cette application pour éviter une suppression/effacement/réinitialisation accidentelle. Les administrateurs globaux et les administrateurs de cette application peuvent effectuer cette action. +help.manage-apps.checksum-salt = Fournir cette valeur permettra de vérifier le checksum de la requête pour éviter la falsification des paramètres. Vous devez configurer le même sel côté SDK. +help.manage-apps.app-clear-button-hint = Purger toutes les données ou les données antérieures à une date sélectionnée, mais conserver les configurations +help.manage-apps.app-delete-button-hint = Supprimer l'application du système et purger toutes les données collectées #manage users view -help.manage-users.full-name = Full name of the user that will be used in notification emails (for now). -help.manage-users.username = Username of the user that will be used for logging in to the dashboard. -help.manage-users.email = Email of the user that will be used for notification emails. -help.manage-users.global-admin = If the global admin is checked user will have all the rights to all the applications plus user management rights. -help.manage-users.lock-account = If account is locked, user cannot log in into dashboard. -help.manage-users.admin-of = Admin of an application can view and change its settings but can not clear or delete the application data. -help.manage-users.user-of = User of an application can only view the stats for that application and can not perform any administrative task. +help.manage-users.full-name = Nom complet de l'utilisateur qui sera utilisé dans les e-mails de notification (pour l'instant). +help.manage-users.username = Nom d'utilisateur qui sera utilisé pour se connecter au tableau de bord. +help.manage-users.email = E-mail de l'utilisateur qui sera utilisé pour les notifications. +help.manage-users.global-admin = Si l'administrateur global est coché, l'utilisateur aura tous les droits sur toutes les applications ainsi que les droits de gestion des utilisateurs. +help.manage-users.lock-account = Si le compte est verrouillé, l'utilisateur ne peut pas se connecter au tableau de bord. +help.manage-users.admin-of = L'administrateur d'une application peut voir et modifier ses paramètres mais ne peut pas effacer ou supprimer les données de l'application. +help.manage-users.user-of = L'utilisateur d'une application peut seulement voir les statistiques de cette application et ne peut effectuer aucune tâche administrative. #resolutions view -help.resolutions.chart = Pie chart on the left shows percentage of total users from each resolution. Pie chart on the right shows percentage of first time users from each resolution. +help.resolutions.chart = Le graphique circulaire de gauche montre le pourcentage d'utilisateurs totaux par résolution. Celui de droite montre le pourcentage de nouveaux utilisateurs par résolution. #device_type view -help.device_type.chart = Pie chart on the left shows percentage of total users from each device type. Pie chart on the right shows percentage of first time users from each device type. +help.device_type.chart = Le graphique circulaire de gauche montre le pourcentage d'utilisateurs totaux par type d'appareil. Celui de droite montre le pourcentage de nouveaux utilisateurs par type d'appareil. #session durations view -help.durations.chart = Total number of users from each session duration segment (0-10 seconds, 11-30 seconds, 31-60 seconds, 1-3 minutes, 3-10 minutes, 10-30 minutes, 30-60 minutes or > 1 hour) is visualized using a bar chart. -help.durations.table = Session duration: A user is categorized into one of 0-10 seconds, 11-30 seconds, 31-60 seconds, 1-3 minutes, 3-10 minutes, 10-30 minutes, 30-60 minutes or > 1 hour according to their session duration.
Number of Users: Number of users (unique devices) in this session duration segment.
Percent: Percentage of users in this session duration segment.
+help.durations.chart = Le nombre total d'utilisateurs par segment de durée de session (0-10 secondes, 11-30 secondes, 31-60 secondes, 1-3 minutes, 3-10 minutes, 10-30 minutes, 30-60 minutes ou > 1 heure) est visualisé à l'aide d'un graphique à barres. +help.durations.table = Durée de session : Un utilisateur est catégorisé dans l'un des segments 0-10 secondes, 11-30 secondes, 31-60 secondes, 1-3 minutes, 3-10 minutes, 10-30 minutes, 30-60 minutes ou > 1 heure selon sa durée de session.
Nombre d'utilisateurs : Nombre d'utilisateurs (appareils uniques) dans ce segment de durée de session.
Pourcentage : Pourcentage d'utilisateurs dans ce segment de durée de session.
#push -help.manage-apps.push-apn-certificate = Certificate file for Apple Push Notification (APN) service. In order to send Push Notifications, you need to supply at least one .PK12 file for this app. -help.manage-apps.push-gcm-key = Server API Key for Google Cloud Messaging (GCM) service. It is required if you're going to send messages to your Android app users from Countly. You can get one from the Google API Console. +help.manage-apps.push-apn-certificate = Fichier de certificat pour le service Apple Push Notification (APN). Pour envoyer des notifications push, vous devez fournir au moins un fichier .PK12 pour cette application. +help.manage-apps.push-gcm-key = Clé API serveur pour le service Google Cloud Messaging (GCM). Elle est requise si vous souhaitez envoyer des messages à vos utilisateurs Android depuis Countly. Vous pouvez en obtenir une depuis la console Google API. -help.datatables-export = Only visible data will be downloaded +help.datatables-export = Seules les données visibles seront téléchargées diff --git a/frontend/express/public/localization/mail/mail_fr.properties b/frontend/express/public/localization/mail/mail_fr.properties index edcff97a9d0..4d9b12d72a3 100644 --- a/frontend/express/public/localization/mail/mail_fr.properties +++ b/frontend/express/public/localization/mail/mail_fr.properties @@ -1,10 +1,11 @@ -#mail templates -mail.new-member-subject = Your Countly Account -mail.new-member = Hi {0},

Your Countly account on {1} has been created with the following details:

Username: {2}
Password: {3}

Enjoy,
A fellow Countly Admin -mail.new-member-prid = Hi {0},

Your Countly account on {1} has been created with the following details:

Username: {2}
You can set up your password by following this link.
Enjoy,
A fellow Countly Admin -mail.password-change-subject = Countly Account - Password Change -mail.password-change = Hi {0},

Your password for your Countly account on {1} has been changed. Below you can find your updated account details:

Username: {2}
Password: {3}

Best,
A fellow Countly Admin -mail.password-reset-subject = Countly Account - Password Reset -mail.password-reset = Hi {0},

You can reset your Countly account password by following this link.

If you did not request to reset your password, please ignore this email.

Best,
A fellow Countly Admin -mail.time-ban-subject = {0}: Your account is locked -mail.time-ban = Hi {0},

Due to an excessive number of failed login attempts, your account has been blocked. You can use this link to unlock your user and log in to your dashboard once.

Best,
A fellow admin \ No newline at end of file + +#modèles de courriel +mail.new-member-subject = Votre compte Countly +mail.new-member = Bonjour {0},

Votre compte Countly sur {1} a été créé avec les informations suivantes :

Nom d'utilisateur : {2}
Mot de passe : {3}

Profitez-en,
Un administrateur Countly +mail.new-member-prid = Bonjour {0},

Votre compte Countly sur {1} a été créé avec les informations suivantes :

Nom d'utilisateur : {2}
Vous pouvez définir votre mot de passe en suivant ce lien.
Profitez-en,
Un administrateur Countly +mail.password-change-subject = Compte Countly - Changement de mot de passe +mail.password-change = Bonjour {0},

Votre mot de passe pour votre compte Countly sur {1} a été modifié. Vous trouverez ci-dessous les informations mises à jour de votre compte :

Nom d'utilisateur : {2}
Mot de passe : {3}

Cordialement,
Un administrateur Countly +mail.password-reset-subject = Compte Countly - Réinitialisation du mot de passe +mail.password-reset = Bonjour {0},

Vous pouvez réinitialiser le mot de passe de votre compte Countly en suivant ce lien.

Si vous n'avez pas demandé la réinitialisation de votre mot de passe, veuillez ignorer cet e-mail.

Cordialement,
Un administrateur Countly +mail.time-ban-subject = {0} : Votre compte est verrouillé +mail.time-ban = Bonjour {0},

En raison d'un nombre excessif de tentatives de connexion échouées, votre compte a été bloqué. Vous pouvez utiliser ce lien pour déverrouiller votre utilisateur et vous connecter une fois à votre tableau de bord.

Cordialement,
Un administrateur \ No newline at end of file diff --git a/frontend/express/public/localization/pre-login/pre-login_fr.properties b/frontend/express/public/localization/pre-login/pre-login_fr.properties index 8605a441361..e6854429246 100644 --- a/frontend/express/public/localization/pre-login/pre-login_fr.properties +++ b/frontend/express/public/localization/pre-login/pre-login_fr.properties @@ -1,77 +1,83 @@ -#placeholders -placeholder.full-name = Enter your full name -placeholder.username = Username -placeholder.username-email = Username or Email -placeholder.new-password = Enter your new password -placeholder.password = Enter your password -placeholder.email = Enter your email address -placeholder.again = Confirm your new password -placeholder.enter-username = Enter your username -placeholder.enter-password = Enter your password -#login -login.title = Login -login.forgot = Forgot password? -login.result = Login Failed -login.blocked = Your account has been locked due to too many incorrect login attempts. Please wait for a while or contact your system admin. -login.locked = Your account has been locked by an admin. -login.button = Sign In -login.token-expired = Your session has expired. Please log in again. -login.email-adress = Email Address -login.email-adress-or-username = Username or E-mail address -login.sign-in = or Sign In With Your Email -login.password = Password -login.form-header = Sign In -login.error-message = Please enter a valid username or email. -login.terms = Terms -login.privacy = Privacy +#champs de saisie +placeholder.full-name = Entrez votre nom complet +placeholder.username = Nom d'utilisateur +placeholder.username-email = Nom d'utilisateur ou e-mail +placeholder.new-password = Entrez votre nouveau mot de passe +placeholder.password = Entrez votre mot de passe +placeholder.email = Entrez votre adresse e-mail +placeholder.again = Confirmez votre nouveau mot de passe +placeholder.enter-username = Entrez votre nom d'utilisateur +placeholder.enter-password = Entrez votre mot de passe + + +#connexion +login.title = Connexion +login.forgot = Mot de passe oublié ? +login.result = Échec de la connexion +login.blocked = Votre compte a été verrouillé en raison de trop nombreuses tentatives de connexion incorrectes. Veuillez patienter ou contactez votre administrateur système. +login.locked = Votre compte a été verrouillé par un administrateur. +login.button = Se connecter +login.token-expired = Votre session a expiré. Veuillez vous reconnecter. +login.email-adress = Adresse e-mail +login.email-adress-or-username = Nom d'utilisateur ou adresse e-mail +login.sign-in = ou connectez-vous avec votre e-mail +login.password = Mot de passe +login.form-header = Connexion +login.error-message = Veuillez entrer un nom d'utilisateur ou un e-mail valide. +login.terms = Conditions +login.privacy = Confidentialité login.documentation = Documentation -login.help-center = Help Center -login.confirm-password = Confirm Password +login.help-center = Centre d'aide +login.confirm-password = Confirmer le mot de passe + + +#mot de passe oublié +forgot.title = Réinitialiser le mot de passe +forgot.explanation = Veuillez entrer l'adresse e-mail de votre compte ci-dessous afin de recevoir les instructions pour réinitialiser votre mot de passe. +forgot.result = Vous recevrez bientôt un e-mail si l'adresse que vous avez saisie existe dans le système +forgot.button = Envoyer l'e-mail +forgot.invalid-email = Format d'adresse e-mail invalide. +forgot.error = Une erreur s'est produite. Veuillez réessayer plus tard. +forgot.sent-email-title = E-mail de réinitialisation du mot de passe envoyé +forgot.sent-email = Un e-mail a été envoyé à votre adresse, {0}. Suivez les instructions dans l'e-mail pour réinitialiser votre mot de passe. + + +#réinitialisation +reset.explanation = Créez le mot de passe de votre nouveau compte ci-dessous. +reset.result = Vous pouvez vous connecter avec votre nouveau mot de passe ! +reset.invalid = Demande de réinitialisation de mot de passe invalide +reset.dont-match = Les mots de passe ne correspondent pas ! +reset.confirm-password = Confirmer le mot de passe +reset.new-password = Nouveau mot de passe +reset.button = Réinitialiser mon mot de passe +reset.buttonnew = Définir mon mot de passe +management-users.password.requirements = Exigences du mot de passe +management-users.password.length = Au moins {0} caractères +management-users.password.has-char = Au moins une lettre majuscule +management-users.password.has-number = Au moins un chiffre +management-users.password.has-special = Au moins un caractère spécial +management-users.email.invalid = Format d'e-mail invalide +management-users.username.invalid = Le nom d'utilisateur est requis +management-users.full_name.invalid = Le nom complet est requis -#forgot -forgot.title = Reset Password -forgot.explanation = Please enter your account email below in order to receive instructions on resetting your password. -forgot.result = You will receive an email shortly if the email you entered exists in the system -forgot.button = Send Email -forgot.invalid-email = Invalid email address format. -forgot.error = Something went wrong. Please try again later. -forgot.sent-email-title = Password Reset Email Sent -forgot.sent-email = An email has been sent to your email address, {0}. Follow the directions in the email to reset your password. -#reset -reset.explanation = Create your new account password below. -reset.result = You can log in with your new password! -reset.invalid = Invalid password reset request -reset.dont-match = Passwords do not match! -reset.confirm-password = Confirm Password -reset.new-password = New Password -reset.button = Reset my password -reset.buttonnew = Set my password -management-users.password.requirements = Password requirements -management-users.password.length = At least {0} characters long -management-users.password.has-char = At least one uppercase letter -management-users.password.has-number = At least one number -management-users.password.has-special = At least one special character -management-users.email.invalid = Invalid email format -management-users.username.invalid = Must provide username -management-users.full_name.invalid = Must provide full name +#installation +setup.title = Inscription +setup.full-name = Nom complet +setup.username = Nom d'utilisateur +setup.explanation = Vous avez correctement configuré Countly sur votre serveur. Il vous suffit de créer votre compte administrateur pour terminer l'installation. +setup.button = Créer un compte +setup.hint-password-good=Votre mot de passe est bon ! +setup.error-username = Veuillez entrer un nom d'utilisateur valide. +setup.error-full-name = Veuillez entrer un nom complet valide. +setup.error-email = Veuillez entrer une adresse e-mail valide. +setup.error-confirm-password = Le mot de passe de confirmation doit être identique au mot de passe. +setup.ready = Votre serveur Countly est prêt ! +setup.byline = Créons d'abord votre compte utilisateur du tableau de bord +setup.continue-demo-app = Continuer avec une application de démonstration +setup.continue-own-app = Je veux créer ma propre application -#setup -setup.title = Registration -setup.full-name = Full Name -setup.username = Username -setup.explanation = You have successfully set up Countly on your server. You just need to create your administrator account to complete the installation. -setup.button = Create Account -setup.hint-password-good=Your password is good to go! -setup.error-username = Please enter a valid username. -setup.error-full-name = Please enter a valid full name. -setup.error-email = Please enter a valid email address. -setup.error-confirm-password = The confirmation password has to be the same as the password. -setup.ready = Your Countly server is ready! -setup.byline = Let's first create your dashboard user account -setup.continue-demo-app = Continue with a demo app -setup.continue-own-app = I want to create my own app -#logout -logout.inactivity = You have been logged out due to inactivity. +#déconnexion +logout.inactivity = Vous avez été déconnecté en raison d'une inactivité. diff --git a/plugins/browser/frontend/public/localization/browser_fr.properties b/plugins/browser/frontend/public/localization/browser_fr.properties index c08b05e2202..70c410ea0c1 100644 --- a/plugins/browser/frontend/public/localization/browser_fr.properties +++ b/plugins/browser/frontend/public/localization/browser_fr.properties @@ -1,11 +1,12 @@ -#browser -browser.title = Browsers -browser.description = Enable gathering and displaying browser related metrics -browser.page-desc = Details of the browsers from which your visitors access your application, in the selected time period. -browser.table.browser = Browser -browser.table.browser-version = Browser versions for -help.browser.chart = Pie chart on the left shows total visitors from each browser. Pie chart on the right shows new visitors from each browser. The table below shows a breakdown of this data for each browser. -browser.browser-for = Browsers for -browser.version-distribution = Browsers Version Distribution + +#navigateur +browser.title = Navigateurs +browser.description = Activer la collecte et l'affichage des métriques liées aux navigateurs +browser.page-desc = Détails des navigateurs utilisés par vos visiteurs pour accéder à votre application, sur la période sélectionnée. +browser.table.browser = Navigateur +browser.table.browser-version = Versions du navigateur pour +help.browser.chart = Le graphique circulaire de gauche montre le nombre total de visiteurs par navigateur. Celui de droite montre les nouveaux visiteurs par navigateur. Le tableau ci-dessous présente une répartition de ces données pour chaque navigateur. +browser.browser-for = Navigateurs pour +browser.version-distribution = Répartition des versions de navigateurs browser.versions = Versions -browser.drill-data = Drill Data \ No newline at end of file +browser.drill-data = Données détaillées \ No newline at end of file diff --git a/plugins/compare/frontend/public/localization/compare_fr.properties b/plugins/compare/frontend/public/localization/compare_fr.properties index 608107999d2..d6da112953e 100644 --- a/plugins/compare/frontend/public/localization/compare_fr.properties +++ b/plugins/compare/frontend/public/localization/compare_fr.properties @@ -1,47 +1,48 @@ -# e.g. select maximum 10 events to compare -compare.plugin-title = Compare -compare.plugin-description = Extensible plugin to compare multiple apps and custom events. -compare.limit = Select a maximum of {0} {1} to compare -compare.button = Compare -compare.back = Back -compare.results.by = Results by -compare.events.title = COMPARE EVENTS -compare.events.back = BACK TO EVENTS -compare.events.back-dashboard = BACK TO OVERVIEW -compare.events.table = EVENT -compare.events.limit = events -compare.apps.title = Compare Apps -compare.apps.app-select = Compare Apps +# par exemple, sélectionnez au maximum 10 événements à comparer +compare.plugin-title = Comparer +compare.plugin-description = Plugin extensible pour comparer plusieurs applications et événements personnalisés. +compare.limit = Sélectionnez au maximum {0} {1} à comparer +compare.button = Comparer +compare.back = Retour +compare.results.by = Résultats par +compare.events.title = COMPARER LES ÉVÉNEMENTS +compare.events.back = RETOUR AUX ÉVÉNEMENTS +compare.events.back-dashboard = RETOUR À LA VUE D'ENSEMBLE +compare.events.table = ÉVÉNEMENT +compare.events.limit = événements + +compare.apps.title = Comparer les applications +compare.apps.app-select = Comparer les applications compare.apps.table = APPLICATION compare.apps.limit = applications -compare.apps.app-name = App Name -compare.apps.total-unique = Total Visitors/Users -compare.apps.new-unique = New Visitors/Users -compare.apps.all-apps = All apps -compare.apps.maximum.placeholder = Select a maximum of 20 applications to compare -compare.apps.results.by.total.sessions = Total Sessions -compare.apps.results.by.total.visitors = Total Visitors / Users -compare.apps.results.by.new.visitors = New Visitors / Users -compare.apps.results.by.time.spent = Time Spent -compare.apps.results.by.avg.session.duration = Avg. Session Duration -compare.apps.table.name = APP Name -compare.apps.table.total.sessions = TOTAL SESSIONS -compare.apps.table.total.users = TOTAL VISITORS/USERS -compare.apps.table.new.users = NEW VISITORS/USERS -compare.apps.table.time.spent = TIME SPENT -compare.apps.table.avg.session.duration = AVG. SESSION DURATION -compare.apps.metric = METRIC -compare.events.title = Compare Events -compare.events = Compare -compare.events.event = EVENT -compare.events.count = COUNT -compare.events.sum = SUM -compare.events.duration = DURATION -compare.events.avg-duration = AVG. DURATION -compare.events.results.by.count = Count -compare.events.results.by.sum = Sum -compare.events.results.by.duration = Duration -compare.events.results.by.avg.duration = Avg. Duration -compare.events.previous.period = Previous Period -compare.events.metric = METRIC \ No newline at end of file +compare.apps.app-name = Nom de l'application +compare.apps.total-unique = Visiteurs/Utilisateurs totaux +compare.apps.new-unique = Nouveaux visiteurs/utilisateurs +compare.apps.all-apps = Toutes les applications +compare.apps.maximum.placeholder = Sélectionnez au maximum 20 applications à comparer +compare.apps.results.by.total.sessions = Sessions totales +compare.apps.results.by.total.visitors = Visiteurs/Utilisateurs totaux +compare.apps.results.by.new.visitors = Nouveaux visiteurs/utilisateurs +compare.apps.results.by.time.spent = Temps passé +compare.apps.results.by.avg.session.duration = Durée moyenne de session +compare.apps.table.name = Nom de l'application +compare.apps.table.total.sessions = SESSIONS TOTALES +compare.apps.table.total.users = VISITEURS/UTILISATEURS TOTAUX +compare.apps.table.new.users = NOUVEAUX VISITEURS/UTILISATEURS +compare.apps.table.time.spent = TEMPS PASSÉ +compare.apps.table.avg.session.duration = DURÉE MOYENNE DE SESSION +compare.apps.metric = MÉTRIQUE +compare.events.title = Comparer les événements +compare.events = Comparer +compare.events.event = ÉVÉNEMENT +compare.events.count = NOMBRE +compare.events.sum = SOMME +compare.events.duration = DURÉE +compare.events.avg-duration = DURÉE MOYENNE +compare.events.results.by.count = Nombre +compare.events.results.by.sum = Somme +compare.events.results.by.duration = Durée +compare.events.results.by.avg.duration = Durée moyenne +compare.events.previous.period = Période précédente +compare.events.metric = MÉTRIQUE \ No newline at end of file diff --git a/plugins/compliance-hub/frontend/public/localization/compliance-hub_fr.properties b/plugins/compliance-hub/frontend/public/localization/compliance-hub_fr.properties index 9f8df6a0766..fd32d135b38 100644 --- a/plugins/compliance-hub/frontend/public/localization/compliance-hub_fr.properties +++ b/plugins/compliance-hub/frontend/public/localization/compliance-hub_fr.properties @@ -1,41 +1,42 @@ -#consent -compliance_hub.title = Compliance Hub -compliance-hub.plugin-title = Data Compliance Hub -compliance-hub.description = Provides and aggregates features in compliance with GDPR. -compliance_hub.Export-finished = App User Export Finished. -compliance_hub.App-user-deleted = App User Deleted. -compliance_hub.Export-file-deleted = App User Export File Deleted. + +#consentement +compliance_hub.title = Centre de conformité +compliance-hub.plugin-title = Centre de conformité des données +compliance-hub.description = Fournit et regroupe des fonctionnalités conformes au RGPD. +compliance_hub.Export-finished = Exportation de l'utilisateur de l'application terminée. +compliance_hub.App-user-deleted = Utilisateur de l'application supprimé. +compliance_hub.Export-file-deleted = Fichier d'exportation de l'utilisateur de l'application supprimé. compliance_hub.Sessions = Sessions -compliance_hub.Events = Events -compliance_hub.Views = Views -compliance_hub.Scrolls = Scrolls -compliance_hub.Clicks = Clicks -compliance_hub.Forms = Forms -compliance_hub.Crashes = Crashes -compliance_hub.Push = Push +compliance_hub.Events = Événements +compliance_hub.Views = Vues +compliance_hub.Scrolls = Défilements +compliance_hub.Clicks = Clics +compliance_hub.Forms = Formulaires +compliance_hub.Crashes = Crashs +compliance_hub.Push = Notifications push compliance_hub.Attribution = Attribution -compliance_hub.Users = Users -compliance_hub.Star-rating = Star-rating -consent.title = Consents -consent.changes = Changes -consent.opt-i = Opt in -consent.opt-o = Opt out -consent.opt-in = Opted in for {0} feature(s) -consent.opt-out = Opted out of {0} feature(s) -consent.metrics = Metrics -consent.data-compliance = Data compliance metrics -consent.history = Consent history -consent.history-for = Consent history for {0} -consent.go-history = Go to consent history -consent.export-history = Export/Purge history -consent.search-device-id = Search for Device ID -consent.userdata-exports = User data exports. -consent.userdata-purges = User data purges. -consent.type = Consent type -consent.feature = Feature type -consent.metrics-desc = View consent requests (opt-ins or opt-outs) in a time-series graph. -consent.users-desc = View list of users and their consent states -consent.history-desc = View a history of consent changes -consent.exports-desc = View all export and purge actions previously executed -userdata.consents = User's consent history -internal-events.[CLY]_consent = Consent \ No newline at end of file +compliance_hub.Users = Utilisateurs +compliance_hub.Star-rating = Évaluation par étoiles +consent.title = Consentements +consent.changes = Modifications +consent.opt-i = Accepter +consent.opt-o = Refuser +consent.opt-in = Accepté pour {0} fonctionnalité(s) +consent.opt-out = Refusé pour {0} fonctionnalité(s) +consent.metrics = Métriques +consent.data-compliance = Métriques de conformité des données +consent.history = Historique des consentements +consent.history-for = Historique des consentements pour {0} +consent.go-history = Aller à l'historique des consentements +consent.export-history = Historique des exportations/purges +consent.search-device-id = Rechercher l'ID de l'appareil +consent.userdata-exports = Exportations des données utilisateur. +consent.userdata-purges = Purges des données utilisateur. +consent.type = Type de consentement +consent.feature = Type de fonctionnalité +consent.metrics-desc = Voir les demandes de consentement (acceptations ou refus) dans un graphique chronologique. +consent.users-desc = Voir la liste des utilisateurs et leurs états de consentement +consent.history-desc = Voir l'historique des modifications de consentement +consent.exports-desc = Voir toutes les actions d'exportation et de purge précédemment exécutées +userdata.consents = Historique de consentement de l'utilisateur +internal-events.[CLY]_consent = Consentement \ No newline at end of file diff --git a/plugins/consolidate/frontend/public/localization/consolidate_fr.properties b/plugins/consolidate/frontend/public/localization/consolidate_fr.properties index ce49b1006f9..81d6b18c6f8 100644 --- a/plugins/consolidate/frontend/public/localization/consolidate_fr.properties +++ b/plugins/consolidate/frontend/public/localization/consolidate_fr.properties @@ -1,7 +1,7 @@ -#consolidate -consolidate.plugin-title = Consolidate -consolidate.plugin-description = Duplicate data from multiple apps into a single app -consolidate.app = Select apps for consolidation -configs.help.consolidate-app = Select applications from which data will be combined into this application. -configs.help.consolidate-select-apps = Please select the applications from list \ No newline at end of file +#consolidation +consolidate.plugin-title = Consolider +consolidate.plugin-description = Dupliquer les données de plusieurs applications dans une seule application +consolidate.app = Sélectionner les applications à consolider +configs.help.consolidate-app = Sélectionnez les applications dont les données seront combinées dans cette application. +configs.help.consolidate-select-apps = Veuillez sélectionner les applications dans la liste \ No newline at end of file diff --git a/plugins/crashes/frontend/public/localization/crashes_fr.properties b/plugins/crashes/frontend/public/localization/crashes_fr.properties index d5c2a9c2ba6..264af73dec1 100644 --- a/plugins/crashes/frontend/public/localization/crashes_fr.properties +++ b/plugins/crashes/frontend/public/localization/crashes_fr.properties @@ -14,7 +14,7 @@ systemlogs.action.crash_edited_comment = Commentaire de crash modifié systemlogs.action.crash_deleted_comment = Commentaire de crash supprimé systemlogs.action.crash_deleted = Crash supprimé systemlogs.action.crash_group_deleted = Les données du groupe de crash ont été supprimées. -internal-events.[CLY]_crash = Crash rapport de crash ne peut pas être consulté. Raisons possibles : Vous essayez de consulter un rapport de crash auquel vous n'avez pas accès ou le lien vers ce crash est invalide. +internal-events.[CLY]_crash = Le rapport de crash ne peut pas être consulté. Raisons possibles : Vous essayez de consulter un rapport de crash auquel vous n'avez pas accès ou le lien vers ce crash est invalide. crashes.search = Rechercher une erreur crashes.all = Tous crashes.show = Afficher @@ -86,8 +86,8 @@ crashes.new = Nouveau crashes.viewed = Vu crashes.fatality = Fatalité du crash crashes.fatal = Fatal -crashes.nonfatal = Non-fatal -crashes.nonfatal-crashes = Crashs non-fatals +crashes.nonfatal = Non fatal +crashes.nonfatal-crashes = Crashs non fatals crashes.total-per-session = Crashs / Sessions web.crashes.total-per-session = Erreurs / Sessions crashes.min = MIN @@ -229,18 +229,18 @@ configs.help.crashes-activate_custom_field_cleanup_job = Cette tâche essaiera d crashes.home.total = Nombre total d'occurrences de crashs ou de groupes de crashs pour le filtre appliqué, dans la période sélectionnée. crashes.home.unique = Nombre de crashs (fatals ou non fatals) qui se sont produits de façon unique, dans la période sélectionnée. Seule la première occurrence du crash est enregistrée. crashes.home.per-session=Nombre de crashs pour le filtre appliqué se produisant par session, exprimé en pourcentage, dans la période sélectionnée. -systemlogs.action.crash_resolved = Crash Resolved -systemlogs.action.crash_unresolved = Crash Unresolved -systemlogs.action.crash_shared = Crash Shared -systemlogs.action.crash_unshared = Crash Unshared -systemlogs.action.crash_modify_share = Crash Modified Share -systemlogs.action.crash_hidden = Crash Hidden -systemlogs.action.crash_shown = Crash Shown -systemlogs.action.crash_added_comment = Crash Added Comment -systemlogs.action.crash_edited_comment = Crash Edited Comment -systemlogs.action.crash_deleted_comment = Crash Deleted Comment -systemlogs.action.crash_deleted = Crash Deleted -systemlogs.action.crash_group_deleted = Crash group’s data has been deleted. +systemlogs.action.crash_resolved = Crash résolu +systemlogs.action.crash_unresolved = Crash non résolu +systemlogs.action.crash_shared = Crash partagé +systemlogs.action.crash_unshared = Crash non partagé +systemlogs.action.crash_modify_share = Partage de crash modifié +systemlogs.action.crash_hidden = Crash masqué +systemlogs.action.crash_shown = Crash affiché +systemlogs.action.crash_added_comment = Commentaire ajouté au crash +systemlogs.action.crash_edited_comment = Commentaire de crash modifié +systemlogs.action.crash_deleted_comment = Commentaire de crash supprimé +systemlogs.action.crash_deleted = Crash supprimé +systemlogs.action.crash_group_deleted = Les données du groupe de crash ont été supprimées. internal-events.[CLY]_crash = Crash crashes.show-binary-images = Afficher les images binaires crashes.binary-images = Images binaires diff --git a/plugins/dashboards/frontend/public/localization/dashboards_fr.properties b/plugins/dashboards/frontend/public/localization/dashboards_fr.properties index b5b456cc996..09db224e11e 100644 --- a/plugins/dashboards/frontend/public/localization/dashboards_fr.properties +++ b/plugins/dashboards/frontend/public/localization/dashboards_fr.properties @@ -1,218 +1,217 @@ -#No dashboards -dashboards.home-title = Welcome to Dashboards -dashboards.home-description = Dashboards let you visualize data for multiple applications and metrics with ease. By using full-screen mode on a TV, you'll always stay on top of your KPIs. -dashboards.save-dashboard = Save Changes -dashboards.activate-full-screen = Activate full screen mode +dashboards.home-title = Bienvenue sur les tableaux de bord +dashboards.home-description = Les tableaux de bord vous permettent de visualiser facilement les données de plusieurs applications et métriques. En utilisant le mode plein écran sur une TV, vous restez toujours informé de vos KPIs. +dashboards.save-dashboard = Enregistrer les modifications +dashboards.activate-full-screen = Activer le mode plein écran #No widgets -dashboards.empty-dashboard = Your dashboard is empty -dashboards.empty-dashboard-description = Create your own composition of widgets to focus on the metrics most important to your business -dashboards.select-cohorts-multi = Select up to 5 cohorts -dashboards.cohorts-label = Cohorts -dashboards.cohorts-visualization = Visualization -dashboards.bar-chart-multi-cohort = Bar Chart -dashboards.number-selection-cohort = Number -dashboards.over-time-multi-cohort = Over Time -dashboards.bar-chart-selection-cohort-description = Multiple cohorts visualized on a bar chart -dashboards.number-selection-cohort-description = A number widget for a single cohort -dashboards.over-time-selection-cohort-description = Multiple cohorts visualized over time on a bar chart -dashboards.bar-color = Bar color -dashboards.font-color = Font color -dashboards.create-and-add = Create and add widget -dashboards.save-changes = Save Changes - -dashboards.dashboard-theme = Dashboard theme -dashboards.create-email-reports = Create Email Report -dashboards.select_dashboards = Select custom dashboard to receive reports from -dashboards.select-report-date-range = Select dashboard data date range -dashboards.select = Select dashboard -dashboards.select-date-range = Select date range -dashboards.report = Dashboard report -dashboards.period = Period -dashboards.custom-period = Use custom time period -dashboards.custom-cohort-widget-title= Show overall number of users in the chart -dashboards.custom-refresh-rate = Custom refresh rate -dashboards.custom-refresh-rate-description = The refresh rate should be specified in minutes, with a minimum value of 5 minutes. The dashboard will attempt to refresh report-based widgets (such as funnels and drills) according to the specified refresh rate. However, if the calculation of any widget takes longer than set refresh rate period, it will not refresh as frequently as the set rate. -dashboards.email-subject = {0} stats for {1}! -dashbaords.dashboard-theme-1 = Charcoal Blue -dashbaords.dashboard-theme-2 = Deep Violet -dashbaords.dashboard-theme-3 = Dark Green -dashbaords.dashboard-theme-4 = Grey -dashbaords.dashboard-theme-5 = Bright Grey -dashbaords.dashboard-theme-6 = Ruby -dashbaords.dashboard-theme-7 = Deep Blue -dashboards.compared-to-prev-period = compared to prev.period - -dashboards.sharing_status = Allow Dashboard Sharing -configs.help.dashboards-sharing_status = Enable dashboard sharing for users to share a dashboard with other users. If set to off, dashboards cannot be shared with others. -dashboards.access-denied = This dashboard is no longer shared with you or an error has occurred. Please ask your global administrator if you think this is due to an issue. -dashbaords.access-denied-title = Access Denied -dashboards.edit-access-denied = You don't have the edit permission for this dashboard. Please ask your global administrator if you think this is due to an issue. -dashboards.sharing-denied = Dashboard sharing has been disabled. Please ask your global administrator if you think this is due to an issue. -dashboards.widget-warning.time = This widget has data for {0} to {1}. Please select a date range in this period. - -systemlogs.action.widget_added = Widget Added -systemlogs.action.widget_edited = Widget Edited -systemlogs.action.widget_deleted = Widget Deleted -systemlogs.action.dashboard_added = Dashboard Added -systemlogs.action.dashboard_edited = Dashboard Edited -systemlogs.action.dashboard_deleted = Dashboard Deleted - -dashboards.select-color = Text color -dashboards.font-size = Font size -dashboards.text-style = Text style -dashboards.text-alignment = Alignment -dashbords.align.left = Left -dashbords.align.right = Right -dashbords.align.center = Center -dashbords.align.justify = Justify - -dashboards.select-text-decorations = Select text decorations -dashboards.add-hyperlink = Add Hyperlink -dashboards.link-text = Link text -dashboards.link-to = Link To - - -dashboards.default = Dashboards -dashboards.create-dashboard = Create a dashboard - -dashboards.custom-period.select-date-range = Select period +dashboards.empty-dashboard = Votre tableau de bord est vide +dashboards.empty-dashboard-description = Créez votre propre composition de widgets pour vous concentrer sur les métriques les plus importantes pour votre entreprise +dashboards.select-cohorts-multi = Sélectionnez jusqu'à 5 cohortes +dashboards.cohorts-label = Cohortes +dashboards.cohorts-visualization = Visualisation +dashboards.bar-chart-multi-cohort = Diagramme en barres +dashboards.number-selection-cohort = Nombre +dashboards.over-time-multi-cohort = Au fil du temps +dashboards.bar-chart-selection-cohort-description = Plusieurs cohortes visualisées sur un diagramme en barres +dashboards.number-selection-cohort-description = Un widget de nombre pour une seule cohorte +dashboards.over-time-selection-cohort-description = Plusieurs cohortes visualisées au fil du temps sur un diagramme en barres +dashboards.bar-color = Couleur de la barre +dashboards.font-color = Couleur de la police +dashboards.create-and-add = Créer et ajouter un widget +dashboards.save-changes = Enregistrer les modifications + +dashboards.dashboard-theme = Thème du tableau de bord +dashboards.create-email-reports = Créer un rapport par e-mail +dashboards.select_dashboards = Sélectionnez le tableau de bord personnalisé pour recevoir des rapports +dashboards.select-report-date-range = Sélectionnez la plage de dates des données du tableau de bord +dashboards.select = Sélectionner le tableau de bord +dashboards.select-date-range = Sélectionner la plage de dates +dashboards.report = Rapport du tableau de bord +dashboards.period = Période +dashboards.custom-period = Utiliser une période personnalisée +dashboards.custom-cohort-widget-title= Afficher le nombre total d'utilisateurs dans le graphique +dashboards.custom-refresh-rate = Fréquence de rafraîchissement personnalisée +dashboards.custom-refresh-rate-description = La fréquence de rafraîchissement doit être spécifiée en minutes, avec une valeur minimale de 5 minutes. Le tableau de bord tentera de rafraîchir les widgets basés sur les rapports (tels que les entonnoirs et les analyses) selon la fréquence spécifiée. Cependant, si le calcul de tout widget prend plus de temps que la période de rafraîchissement définie, il ne sera pas rafraîchi aussi fréquemment que le taux défini. +dashboards.email-subject = Statistiques {0} pour {1} ! +dashbaords.dashboard-theme-1 = Bleu charbon +dashbaords.dashboard-theme-2 = Violet profond +dashbaords.dashboard-theme-3 = Vert foncé +dashbaords.dashboard-theme-4 = Gris +dashbaords.dashboard-theme-5 = Gris clair +dashbaords.dashboard-theme-6 = Rubis +dashbaords.dashboard-theme-7 = Bleu profond +dashboards.compared-to-prev-period = comparé à la période précédente + +dashboards.sharing_status = Autoriser le partage du tableau de bord +configs.help.dashboards-sharing_status = Activez le partage du tableau de bord pour permettre aux utilisateurs de partager un tableau de bord avec d'autres utilisateurs. Si désactivé, les tableaux de bord ne peuvent pas être partagés. +dashboards.access-denied = Ce tableau de bord n'est plus partagé avec vous ou une erreur s'est produite. Veuillez contacter votre administrateur global si vous pensez que cela est dû à un problème. +dashbaords.access-denied-title = Accès refusé +dashboards.edit-access-denied = Vous n'avez pas la permission de modifier ce tableau de bord. Veuillez contacter votre administrateur global si vous pensez que cela est dû à un problème. +dashboards.sharing-denied = Le partage du tableau de bord a été désactivé. Veuillez contacter votre administrateur global si vous pensez que cela est dû à un problème. +dashboards.widget-warning.time = Ce widget contient des données de {0} à {1}. Veuillez sélectionner une plage de dates dans cette période. + +systemlogs.action.widget_added = Widget ajouté +systemlogs.action.widget_edited = Widget modifié +systemlogs.action.widget_deleted = Widget supprimé +systemlogs.action.dashboard_added = Tableau de bord ajouté +systemlogs.action.dashboard_edited = Tableau de bord modifié +systemlogs.action.dashboard_deleted = Tableau de bord supprimé + +dashboards.select-color = Couleur du texte +dashboards.font-size = Taille de la police +dashboards.text-style = Style du texte +dashboards.text-alignment = Alignement +dashbords.align.left = Gauche +dashbords.align.right = Droite +dashbords.align.center = Centre +dashbords.align.justify = Justifier + +dashboards.select-text-decorations = Sélectionner les décorations du texte +dashboards.add-hyperlink = Ajouter un hyperlien +dashboards.link-text = Texte du lien +dashboards.link-to = Lien vers + + +dashboards.default = Tableaux de bord +dashboards.create-dashboard = Créer un tableau de bord + +dashboards.custom-period.select-date-range = Sélectionner la période #Final localization -dashboards.plugin-title = Dashboards -dashboards.dashboard = Dashboards +dashboards.plugin-title = Tableaux de bord +dashboards.dashboard = Tableaux de bord #Dashboards -dashboards.dashboard-name = Dashboard name -dashboards.create-new-dashboard-heading = Create new dashboard -dashboards.edit-dashboard-heading = Edit dashboard -dashboards.duplicate-dashboard-heading = Duplicate dashboard -dashboards.create-dashboard = Create dashboard -dashboards.save-dashboard = Save dashboard -dashboards.share.all-users = All users -dashboards.share.all-users.description = Share view access to dashboard with all users -dashboards.share.selected-users = Some specific users -dashboards.share.selected-users.description = Share the dashboard with some specific users -dashboards.share.none = Private -dashboards.share.none.description = Share the dashboard with no one -dashboards.share-with = Visibility -dashboards.share-with-tooltip-content = The visibility settings for a dashboard are independent from the user’s global permissions. -dashboards.user-permissions = User permissions -dashboards.user-permissions-tooltip-content = User permissions for a dashboard are independent from the user’s global permissions. -dashboards.user-group-permission = User group permissions -dashboards.user-group-permission-tooltip-content = User group permissions for a dashboard are independent from the user groups global permissions. -dashboards.users-edit-permission = Edit permission -dashboards.users-view-permission = View-only permission -dashboards.enter-user-email = Enter user email -dashboards.users-edit-description = Select users who can view and edit the dashboard -dashboards.users-view-description = Select users who can only view the dashboard and can't do any editing. -dashbaords.sharing-disabled = Adding or editing users is disabled by global administrator - -placeholder.dashboards.dashboard-name = Enter dashboard name -placeholder.dashboards.select-user-group = Select user groups - -dashboards.duplicate-dashboard = Duplicate - -dashboards.yes-delete-dashboard = Yes, delete dashboard -dashboards.delete-dashboard-title = Delete dashboard? -dashboards.delete-dashboard-text = Do you really want to delete dashboard called {0} ? -dashbaords.created = Created -dashbaords.created-by = by {0} +dashboards.dashboard-name = Nom du tableau de bord +dashboards.create-new-dashboard-heading = Créer un nouveau tableau de bord +dashboards.edit-dashboard-heading = Modifier le tableau de bord +dashboards.duplicate-dashboard-heading = Dupliquer le tableau de bord +dashboards.create-dashboard = Créer le tableau de bord +dashboards.save-dashboard = Enregistrer le tableau de bord +dashboards.share.all-users = Tous les utilisateurs +dashboards.share.all-users.description = Partager l'accès en lecture au tableau de bord avec tous les utilisateurs +dashboards.share.selected-users = Certains utilisateurs spécifiques +dashboards.share.selected-users.description = Partager le tableau de bord avec certains utilisateurs spécifiques +dashboards.share.none = Privé +dashboards.share.none.description = Ne partager le tableau de bord avec personne +dashboards.share-with = Visibilité +dashboards.share-with-tooltip-content = Les paramètres de visibilité d'un tableau de bord sont indépendants des autorisations globales de l'utilisateur. +dashboards.user-permissions = Permissions utilisateur +dashboards.user-permissions-tooltip-content = Les permissions utilisateur pour un tableau de bord sont indépendantes des autorisations globales de l'utilisateur. +dashboards.user-group-permission = Permissions du groupe d'utilisateurs +dashboards.user-group-permission-tooltip-content = Les permissions du groupe d'utilisateurs pour un tableau de bord sont indépendantes des autorisations globales du groupe d'utilisateurs. +dashboards.users-edit-permission = Permission de modification +dashboards.users-view-permission = Permission de lecture seule +dashboards.enter-user-email = Saisir l'e-mail de l'utilisateur +dashboards.users-edit-description = Sélectionner les utilisateurs qui peuvent voir et modifier le tableau de bord +dashboards.users-view-description = Sélectionner les utilisateurs qui peuvent uniquement voir le tableau de bord et ne peuvent pas le modifier. +dashbaords.sharing-disabled = L'ajout ou la modification d'utilisateurs est désactivé par l'administrateur global + +placeholder.dashboards.dashboard-name = Saisir le nom du tableau de bord +placeholder.dashboards.select-user-group = Sélectionner les groupes d'utilisateurs + +dashboards.duplicate-dashboard = Dupliquer + +dashboards.yes-delete-dashboard = Oui, supprimer le tableau de bord +dashboards.delete-dashboard-title = Supprimer le tableau de bord ? +dashboards.delete-dashboard-text = Voulez-vous vraiment supprimer le tableau de bord nommé {0} ? +dashbaords.created = Créé +dashbaords.created-by = par {0} #Widgets -dashboards.add-widget = New widget -dashboards.add-new-widget-heading = Add new widget -dashboards.edit-widget-heading = Edit your widget -dashbaords.create-widget = Create widget -dashboards.save-widget = Save widget -dashboards.bold = Bold -dashboards.italic = Italic -dashboards.underline = Underline -dashboards.delete-widget = Yes, delete widget -dashboards.delete-widget-title = Delete widget? -dashboards.delete-widget-text = Do you want to delete the selected widget? - -dashboards.widget-type = Widget Type -dashboards.widget-type.analytics = Analytics +dashboards.add-widget = Nouveau widget +dashboards.add-new-widget-heading = Ajouter un nouveau widget +dashboards.edit-widget-heading = Modifier votre widget +dashbaords.create-widget = Créer un widget +dashboards.save-widget = Enregistrer le widget +dashboards.bold = Gras +dashboards.italic = Italique +dashboards.underline = Souligné +dashboards.delete-widget = Oui, supprimer le widget +dashboards.delete-widget-title = Supprimer le widget ? +dashboards.delete-widget-text = Voulez-vous supprimer le widget sélectionné ? + +dashboards.widget-type = Type de widget +dashboards.widget-type.analytics = Analytique dashboards.widget-type.note = Note -dashboards.widget-type.events = Events -dashboards.widget-type.crash = Crashes +dashboards.widget-type.events = Événements +dashboards.widget-type.crash = Crashs -dashboards.plugin-disabled = {0} plugin has been disabled, either enable it or delete the widget. -dashboards.plugin-invalid-data = The data for {0} widget is invalid. Please delete the widget and create again. +dashboards.plugin-disabled = Le plugin {0} a été désactivé, veuillez l'activer ou supprimer le widget. +dashboards.plugin-invalid-data = Les données du widget {0} sont invalides. Veuillez supprimer le widget et le recréer. -dashboards.widget-type-description = Select the type of widget you want to create -dashboards.add-note = Add note -dashboards.note-placeholder = Write something ... +dashboards.widget-type-description = Sélectionner le type de widget que vous souhaitez créer +dashboards.add-note = Ajouter une note +dashboards.note-placeholder = Écrivez quelque chose ... -dashboards.multiple-apps-count = {0} apps +dashboards.multiple-apps-count = {0} applications #Widgets drawer -dashboards.data-type = Data Type -dashboards.data-type.user-analytics = User Analytics +dashboards.data-type = Type de données +dashboards.data-type.user-analytics = Analytique utilisateur dashboards.data-type.session = Session -dashboards.data-type.technology = Technology -dashboards.data-type.geo = Geo -dashboards.data-type.views = Views +dashboards.data-type.technology = Technologie +dashboards.data-type.geo = Géo +dashboards.data-type.views = Vues dashboards.data-type.sources = Sources -dashboards.metrics-single = Metric -dashboards.metrics-multi = Metrics -dashboards.app-count = App count -dashboards.multiple-apps = Multiple apps -dashboards.single-app = Single app -dashboards.multiple-apps-description = Select single metric from multiple apps -dashboards.single-app-description = Select multiple metrics from a single app -dashbaords.visualization = Visualization -dashbaords.visualization-description = Select visualization type -dashboards.visualization.time-series = Time Series -dashboards.visualization.bar-chart = Bar Chart -dashboards.visualization.pie-chart = Pie Chart -dashboards.visualization.number = Number -dashboards.visualization.table = Table -dashboards.source-apps = Source app(s) -dashboards.custom-widget-title = Use custom widget title -dashboards.additional-settings = Additional Settings - -placeholder.dashboards.select-applications-multi = Select maximum {0} apps -placeholder.dashboards.select-applications-single = Select app -placeholder.dashboards.enter-widget-title = Enter custom widget title - -placeholder.dashbaords.select-data-type = Select data type -placeholder.dashboards.select-metric-single = Select a metric -placeholder.dashboards.select-metric-multi = Select maximum {0} metrics - -dashboards.breakdown = Breakdown -placeholder.dashboards.select-breakdown = Select a breakdown - -dashboards.events = Events -dashboards.event = Event -placeholder.dashboards.select-event-multi = Select maximum {0} events -placeholder.dashboards.select-event-single = Select event +dashboards.metrics-single = Métrique +dashboards.metrics-multi = Métriques +dashboards.app-count = Nombre d'applications +dashboards.multiple-apps = Plusieurs applications +dashboards.single-app = Une seule application +dashboards.multiple-apps-description = Sélectionner une seule métrique parmi plusieurs applications +dashboards.single-app-description = Sélectionner plusieurs métriques d'une seule application +dashbaords.visualization = Visualisation +dashbaords.visualization-description = Sélectionner le type de visualisation +dashboards.visualization.time-series = Série temporelle +dashboards.visualization.bar-chart = Diagramme en barres +dashboards.visualization.pie-chart = Diagramme circulaire +dashboards.visualization.number = Nombre +dashboards.visualization.table = Tableau +dashboards.source-apps = Application(s) source +dashboards.custom-widget-title = Utiliser un titre de widget personnalisé +dashboards.additional-settings = Paramètres supplémentaires + +placeholder.dashboards.select-applications-multi = Sélectionner au maximum {0} applications +placeholder.dashboards.select-applications-single = Sélectionner une application +placeholder.dashboards.enter-widget-title = Saisir le titre du widget personnalisé + +placeholder.dashbaords.select-data-type = Sélectionner le type de données +placeholder.dashboards.select-metric-single = Sélectionner une métrique +placeholder.dashboards.select-metric-multi = Sélectionner au maximum {0} métriques + +dashboards.breakdown = Répartition +placeholder.dashboards.select-breakdown = Sélectionner une répartition + +dashboards.events = Événements +dashboards.event = Événement +placeholder.dashboards.select-event-multi = Sélectionner au maximum {0} événements +placeholder.dashboards.select-event-single = Sélectionner un événement #Error messages -dashboards.error.something-went-wrong = Something went wrong. +dashboards.error.something-went-wrong = Une erreur s'est produite. #Push -dashboards.sent = Push Sent -dashboards.actioned = Push Actioned +dashboards.sent = Push envoyé +dashboards.actioned = Push actionné #Crash -dashboards.crf = Total Fatal Crashes -dashboards.crnf = Total Non-Fatal Crashes -dashboards.cruf = Unique Fatal Crashes -dashboards.crunf = Unique Non-Fatal Crashes -dashboards.crauf = Fatal Crash-Free Users -dashboards.craunf = Non-Fatal Crash-Free Users -dashboards.crfses = Fatal Crash-Free Sessions -dashboards.crnfses = Non-Fatal Crash-Free Sessions -dashboards.send-email = Notify all users via email -dashboards.additional-settings = Additional Settings -dashboards.dashboard-invite-subtitle = A new dashboard on Countly was shared with you. -dashboards.dashboard-invite-content = was shared with you with View permission. Click to access the dashboard. -dashboards.dashbhoard-invite-content-edit = was shared with you with Edit permission. Click to access the dashboard. -dashboards.dashboard-invite-link-text = Go to Dashboard -dashboards.dashboard-invite-title = New dashboard invitation from Countly +dashboards.crf = Total des crashs fatals +dashboards.crnf = Total des crashs non fatals +dashboards.cruf = Crashs fatals uniques +dashboards.crunf = Crashs non fatals uniques +dashboards.crauf = Utilisateurs sans crash fatal +dashboards.craunf = Utilisateurs sans crash non fatal +dashboards.crfses = Sessions sans crash fatal +dashboards.crnfses = Sessions sans crash non fatal +dashboards.send-email = Notifier tous les utilisateurs par e-mail +dashboards.additional-settings = Paramètres supplémentaires +dashboards.dashboard-invite-subtitle = Un nouveau tableau de bord sur Countly a été partagé avec vous. +dashboards.dashboard-invite-content = a été partagé avec vous avec la permission de lecture. Cliquez pour accéder au tableau de bord. +dashboards.dashbhoard-invite-content-edit = a été partagé avec vous avec la permission de modification. Cliquez pour accéder au tableau de bord. +dashboards.dashboard-invite-link-text = Aller au tableau de bord +dashboards.dashboard-invite-title = Nouvelle invitation au tableau de bord depuis Countly diff --git a/plugins/data-manager/frontend/public/localization/data-manager_fr.properties b/plugins/data-manager/frontend/public/localization/data-manager_fr.properties index ef6f832cc47..64b38604e34 100644 --- a/plugins/data-manager/frontend/public/localization/data-manager_fr.properties +++ b/plugins/data-manager/frontend/public/localization/data-manager_fr.properties @@ -1,118 +1,188 @@ -data-manager.plugin-title = Data Manager -data-manager-redaction.title = Data Manager: Redaction -data-manager-transformations.title = Data Manager: Transformations -data-manager.plugin-description = Transform incoming data and configure data types -data-manager.manage-events = Manage Events -data-manager.manage-event-segmentation = Manage Event Segmentation -data-manager.manage-validations = Manage Validations -data-manager.status = Status -data-manager.event-or-property = Related Event/Custom Property -data-manager.transformation-type = Transformation Type +data-manager.plugin-title = Gestionnaire de données +data-manager-redaction.title = Gestionnaire de données : Rédaction +data-manager-transformations.title = Gestionnaire de données : Transformations +data-manager.plugin-description = Transformez les données entrantes et configurez les types de données + +datamanager.group-event.drawer.name.placeholder = Nommez votre Événement +data-manager.import-schema = Importer le Schéma d'Événement +data-manager.export-schema = Exporter le Schéma d'Événement + +configs.data-manager.manage-events = Gérer les Événements +configs.data-manager.validation-settings = Paramètres de Validation + +data-manager.enableValidation = Effectuer des Validations de Schéma pour les Données Entrantes +configs.help.data-manager-enableValidation = Pour l'état désactivé, vous n'obtenez aucune erreur pour les validations d'événements, de segments ou de types de données. Seul le regex PII global fonctionne pour l'état désactivé. + +data-manager.allowUnplannedEvents = Gérer les Événements + +configs.data-manager.manage-events = Gérer les Événements +configs.data-manager.validation-settings = Paramètres de Validation + +data-manager.event-name = Nom de l'événement + +data-manager.segmentLevelValidationAction = Action de Validation au Niveau du Segment +configs.help.data-manager-segmentLevelValidationAction = Action à prendre lorsqu'un regex de niveau segment correspond. + +data-manager.globalValidationAction = Action de Validation Globale +configs.help.data-manager-globalValidationAction = Action à prendre lorsqu'un regex global correspond. +data-manager.globalRegex = Regex de Validation Globale +configs.help.data-manager-globalRegex = Regex global pour correspondre aux données envoyées par le SDK. +data-manager.redactedLabel = Étiquette pour les données supprimées par le Regex de Validation Globale +configs.help.data-manager-redactedLabel = Valeur de masquage pour remplacer les données correspondant au regex global. + +data-manager.manage-events = Gérer les événements +data-manager.manage-event-segmentation = Gérer la segmentation des événements +data-manager.manage-validations = Gérer les validations +data-manager.status = Statut +data-manager.event-or-property = Événement/Propriété personnalisée associé(e) +data-manager.transformation-type = Type de transformation data-manager.transformation = Transformation -data-manager.data-type = Data Type -data-manager.property-name = Property Name -data-manager.property-type = Property Type -data-manager.save-changes = Save Changes -data-manager.discard-changes = Discard Changes -data-manager.new-transformation = + New Transformation +data-manager.data-type = Type de données +data-manager.property-name = Nom de la propriété +data-manager.property-type = Type de propriété +data-manager.save-changes = Enregistrer les modifications +data-manager.discard-changes = Annuler les modifications +data-manager.new-transformation = + Nouvelle transformation data-manager.transformations= Transformations -data-manager.data-types = Data Types -data-manager.all-transformations = All transformations -data-manager.event = Event -data-manager.events = Events +data-manager.data-types = Types de données +data-manager.all-transformations = Toutes les transformations +data-manager.event = Événement +data-manager.events = Événements data-manager.segmentation = Segmentation -data-manager.event-groups = Event Groups +data-manager.event-groups = Groupes d'événements data-manager.validations = Validations -data-manager.user-properties = User Properties -data-manager.custom-property = Custom Property -data-manager.user-property = User Property -data-manager.all-data-sources = All data sources -data-manager.created = Transformation Created! -data-manager.saved = Transformation Saved! -data-manager.make-change-remind = You made 1 change. -data-manager.make-changes-remind = You made {0} changes. -data-manager.status-changed = Status changed -data-manager.delete-transformation = Yes, delete transformation +data-manager.user-properties = Propriétés utilisateur +data-manager.custom-property = Propriété personnalisée +data-manager.user-property = Propriété utilisateur +data-manager.all-data-sources = Toutes les sources de données +data-manager.created = Transformation créée ! +data-manager.saved = Transformation enregistrée ! +data-manager.make-change-remind = Vous avez fait 1 modification. +data-manager.make-changes-remind = Vous avez fait {0} modifications. +data-manager.status-changed = Statut modifié +data-manager.delete-transformation = Oui, supprimer la transformation data-manager.empty-placeholder = - -data-manager.delete-transformation-title = Delete transformation? -data-manager.delete-data-type = Yes, delete property's type -data-manager.delete-data-type-title = Delete property's type? -data-manager.confirm-delete-data-type = Are you sure you want to delete property's type? It will not delete data itself, but will remove property from segmentation inputs. But if SDK sends data again, it will appear here again - -data-manager.validation.error.data_type_mismatch = Data type planned on UI and sent via SDK don't match together. -data-manager.validation.error.unexpected-segment = Segment sent by SDK is not Live/Approved on the UI -data-manager.validation.error.unexpected-event = Event sent by SDK is not Live/Approved on the UI -data-manager.validation.error.unplanned-segment = Segment for event sent by SDK is not planned on UI -data-manager.validation.error.unplanned-event = Event sent by SDK is not planned on UI -data-manager.validation.error.missing_segmentation = Required Segmentation planned on UI not sent via SDK. -data-manager.validation.error.GLOBAL_REGEX = PII data matched by Global Regex found in data sent by SDK. -data-manager.validation.error.SEGMENT_REGEX = PII data matched by Segment level Regex found in data sent by SDK. - -data-manager.name = Name -data-manager.data-type-in-use = Data type in use -data-manager.default-data-type = Default data type -data-manager.default = (Default) -data-manager.related-event = Data Source -data-manager.create-transformation = Create new transformation -data-manager.edit-transformation = Edit transformation -data-manager.what-to-transform = What do you want to transform? -data-manager.how-to-transform = How do you want to transform it? -data-manager.rename-segment = Rename Event segment -data-manager.merge-segment = Merge Event segment -data-manager.rename-property = Rename Custom Property -data-manager.merge-property = Merge Custom Property -data-manager.rename-segment-default = Transformation: Rename event segment -data-manager.select = Select -data-manager.select-event =Select event -data-manager.select-event-segments = Select event segments -data-manager.select-segment-name = New event segment name -data-manager.select-property = Select property -data-manager.select-properties = Select properties -data-manager.select-property-name = Select property name -data-manager.create-transform-button = Create transformation -data-manager.save-transform-button = Save transformation -data-manager.data-types-saved = Data Type changes saved -data-manager.event-label-desc = Select an event, which segmentation you want to edit -data-manager.cp-label-desc = Select custom property to transform -data-manager.new-segment = New segment name +data-manager.delete-transformation-title = Supprimer la transformation ? +data-manager.delete-data-type = Oui, supprimer le type de propriété +data-manager.delete-data-type-title = Supprimer le type de propriété ? +data-manager.confirm-delete-data-type = Êtes-vous sûr de vouloir supprimer le type de propriété ? Cela ne supprimera pas les données elles-mêmes, mais supprimera la propriété des entrées de segmentation. Mais si le SDK envoie des données à nouveau, elles apparaîtront ici à nouveau + +data-manager.validation.error.data_type_mismatch = Le type de données prévu dans l'interface utilisateur et envoyé via le SDK ne correspondent pas. +data-manager.validation.error.unexpected-segment = Le segment envoyé par le SDK n'est pas actif/approuvé dans l'interface utilisateur +data-manager.validation.error.unexpected-event = L'événement envoyé par le SDK n'est pas actif/approuvé dans l'interface utilisateur +data-manager.validation.error.unplanned-segment = Le segment pour l'événement envoyé par le SDK n'est pas planifié dans l'interface utilisateur +data-manager.validation.error.unplanned-event = L'événement envoyé par le SDK n'est pas planifié dans l'interface utilisateur +data-manager.validation.error.missing_segmentation = La segmentation requise planifiée dans l'interface utilisateur n'est pas envoyée via le SDK. +data-manager.validation.error.GLOBAL_REGEX = Données PII correspondant au regex global trouvées dans les données envoyées par le SDK. +data-manager.validation.error.SEGMENT_REGEX = Données PII correspondant au regex de niveau segment trouvées dans les données envoyées par le SDK. + +data-manager.name = Nom +data-manager.data-type-in-use = Type de données en cours d'utilisation +data-manager.default-data-type = Type de données par défaut +data-manager.default = (Par défaut) +data-manager.related-event = Source de données +data-manager.create-transformation = Créer une nouvelle transformation +data-manager.edit-transformation = Modifier la transformation +data-manager.what-to-transform = Que voulez-vous transformer ? +data-manager.how-to-transform = Comment voulez-vous le transformer ? +data-manager.rename-segment = Renommer le segment d'événement +data-manager.merge-segment = Fusionner le segment d'événement +data-manager.rename-property = Renommer la propriété personnalisée +data-manager.merge-property = Fusionner la propriété personnalisée +data-manager.rename-segment-default = Transformation : Renommer le segment d'événement +data-manager.select = Sélectionner +data-manager.select-event = Sélectionner un événement +data-manager.select-event-segments = Sélectionner les segments d'événement +data-manager.select-segment-name = Nouveau nom de segment d'événement +data-manager.select-property = Sélectionner une propriété +data-manager.select-properties = Sélectionner les propriétés +data-manager.select-property-name = Sélectionner le nom de la propriété +data-manager.create-transform-button = Créer la transformation +data-manager.save-transform-button = Enregistrer la transformation +data-manager.data-types-saved = Modifications du type de données enregistrées +data-manager.event-label-desc = Sélectionnez un événement dont vous voulez modifier la segmentation +data-manager.cp-label-desc = Sélectionnez une propriété personnalisée à transformer +data-manager.new-segment = Nouveau nom de segment data-manager.type.d = Date -data-manager.type.n = Number -data-manager.type.bl = Big List -data-manager.type.s = String -data-manager.type.l = List -data-manager.type.a = Array -data-manager.transformations-warning = Transformations only affect the incoming, new data and are not retroactive. - -data-manager.transform = Transform -data-manager.change-category = Change Category -data-manager.change-status = Change Status -data-manager.change-visibility = Change Visibility -data-manager.create-event = Create new Event -data-manager.regenerate = Regenerate Data -data-manager.event-group = Event Group -data-manager.create-group = Create Event Group -data-manager.create-event-transformation = Create new Event transformation -data-manager.create-segment-transformation = Create new Segment transformation - -systemlogs.action.dm-dt-custom = Custom data type changed -systemlogs.action.dm-dt-up = User properties data type changed -systemlogs.action.dm-dt-event-sg = Event segment data type changed -systemlogs.action.dm-transformation = Transformation added -systemlogs.action.dm-toggle-status = Transformation status toggled -systemlogs.action.dm-transformation-delete = Transformation deleted -systemlogs.action.dm-dt-custom-delete = Custom data type deleted -systemlogs.action.dm-dt-up-delete = User property data type deleted -systemlogs.action.dm-dt-event-sg-delete = Event segment data type delete -systemlogs.action.dm-transformation-edit = Transformation edited -systemlogs.action.dm-dt-mask = Property redacted - - -datamanager.group-event.drawer.name.placeholder = Name your Event -data-manager.import-schema = Import Event Schema -data-manager.export-schema = Export Event Schema - -configs.data-manager.manage-events = Manage Events -configs.data-manager.validation-settings = Validation Settings +data-manager.type.n = Nombre +data-manager.type.bl = Grande liste +data-manager.type.s = Chaîne +data-manager.type.l = Liste +data-manager.type.a = Tableau +data-manager.transformations-warning = Les transformations n'affectent que les nouvelles données entrantes et ne sont pas rétroactives. + +data-manager.transform = Transformer +data-manager.change-category = Changer la catégorie +data-manager.change-status = Changer le statut +data-manager.change-visibility = Changer la visibilité +data-manager.create-event = Créer un nouvel événement +data-manager.regenerate = Régénérer les données +data-manager.event-group = Groupe d'événements +data-manager.create-group = Créer un groupe d'événements +data-manager.create-event-transformation = Créer une nouvelle transformation d'événement +data-manager.create-segment-transformation = Créer une nouvelle transformation de segment + +systemlogs.action.dm-dt-custom = Type de données personnalisé modifié +systemlogs.action.dm-dt-up = Type de données des propriétés utilisateur modifié +systemlogs.action.dm-dt-event-sg = Type de données du segment d'événement modifié +systemlogs.action.dm-transformation = Transformation ajoutée +systemlogs.action.dm-toggle-status = Statut de transformation basculé +systemlogs.action.dm-transformation-delete = Transformation supprimée +systemlogs.action.dm-dt-custom-delete = Type de données personnalisé supprimé +systemlogs.action.dm-dt-up-delete = Type de données de propriété utilisateur supprimé +systemlogs.action.dm-dt-event-sg-delete = Type de données de segment d'événement supprimé +systemlogs.action.dm-transformation-edit = Transformation modifiée +systemlogs.action.dm-dt-mask = Propriété rédactée + + +datamanager.group-event.drawer.name.placeholder = Nommez votre événement +data-manager.import-schema = Importer le schéma d'événement +data-manager.export-schema = Exporter le schéma d'événement + +configs.data-manager.manage-events = Gérer les événements +configs.data-manager.validation-settings = Paramètres de validation + +data-manager.enableValidation = Effectuer des validations de schéma pour les données entrantes +configs.help.data-manager-enableValidation = Pour l'état désactivé, vous n'obtenez aucune erreur pour les validations d'événements, de segments ou de types de données. Seul le regex PII global fonctionne pour l'état désactivé. + +data-manager.allowUnplannedEvents = Gérer les événements +configs.help.data-manager-allowUnplannedEvents = Autoriser les événements non planifiés : Les événements non planifiés sont visibles sur toutes les fonctionnalités qui utilisent les données d'événement sur Countly et étiquetés comme "Non planifiés" sur Data Manager. Ne pas autoriser les événements non planifiés : Les événements non planifiés ne sont PAS visibles sur toutes les fonctionnalités qui utilisent les données d'événement sur Countly et étiquetés comme "Non planifiés" sur Data Manager. Cette option est recommandée pour garder vos données propres. + +data-manager.triggerUnplannedError = Déclencher la validation pour les événements non planifiés +configs.help.data-manager-triggerUnplannedError = Vous n'obtenez aucune erreur de validation du Data Manager pour l'état désactivé. L'état activé est fortement recommandé si le paramètre Gérer les événements est sélectionné comme "Ne pas autoriser les événements non planifiés" ci-dessus. + +data-manager.segmentLevelValidationAction = Action de validation au niveau du segment +configs.help.data-manager-segmentLevelValidationAction = Action à prendre lorsqu'un regex de niveau segment correspond. + +data-manager.globalValidationAction = Action de validation globale +configs.help.data-manager-globalValidationAction = Action à prendre lorsqu'un regex global correspond. +data-manager.globalRegex = Regex de validation globale +configs.help.data-manager-globalRegex = Regex global pour correspondre aux données envoyées par le SDK. +data-manager.redactedLabel = Étiquette pour les données supprimées par le regex de validation globale +configs.help.data-manager-redactedLabel = Valeur de masquage pour remplacer les données correspondant au regex global. + +data-manager.global = Global +data-manager.global-description = Peut être vu par tout le monde. +data-manager.private = Privé +data-manager.private-description = Peut être vu par le créateur. +data-manager.uncategorized = Non catégorisé +data-manager.created = Créé +data-manager.approved = Approuvé +data-manager.live = Actif +data-manager.blocked = Bloqué +data-manager.unplanned = Non planifié +data-manager.edit-event = Modifier l'événement +data-manager.create-new-event = Créer un nouvel événement +data-manager.edit-event-group = Modifier le groupe d'événements +data-manager.create-new-event-group = Créer un nouveau groupe d'événements + + +datamanager.group-event.drawer.name.placeholder = Nommez votre Événement +data-manager.import-schema = Importer le Schéma d'Événement +data-manager.export-schema = Exporter le Schéma d'Événement + +configs.data-manager.manage-events = Gérer les Événements +configs.data-manager.validation-settings = Paramètres de Validation data-manager.enableValidation = Perform Schema Validations for Incoming Data configs.help.data-manager-enableValidation = For disabled state, you don’t get any error for events, segments or data type validations. Only global PII regex works for disabled state. @@ -134,251 +204,251 @@ data-manager.redactedLabel = Label for data dropped by Global Validation Regex configs.help.data-manager-redactedLabel = Masking value to replace the data matched by Global Regex. data-manager.global = Global -data-manager.global-description = Can be seen by everyone. -data-manager.private = Private -data-manager.private-description = Can be seen by the creator. -data-manager.uncategorized = Uncategorized -data-manager.created = Created -data-manager.approved = Approved -data-manager.live = Live -data-manager.blocked = Blocked -data-manager.unplanned = Unplanned -data-manager.edit-event = Edit Event -data-manager.create-new-event = Create New Event -data-manager.edit-event-group = Edit Event Group -data-manager.create-new-event-group = Create New Event Group - -data-manager.event-name = Event Name -data-manager.last-modified = Last Modified -data-manager.last-triggered = Last Triggered - - -data-manager.segmentation.details = Segmentation Details -data-manager.segmentation.delete = Delete Segmentation -data-manager.segmentation.required = Required segmentation -data-manager.segmentation.add = + Add Event Segmentation -data-manager.segmentation.type = Segmentation Type -data-manager.segmentation.select.type = Select Segmentation Type -data-manager.event.name = Enter Name -data-manager.segmentation.key = Segmentation Key -data-manager.segmentation.enter.key = Enter Segmentation Key -data-manager.segmentation.description = Segmentation Description -data-manager.segmentation.enter.description = Enter Segmentation Description -data-manager.events.event-details = Event Details -data-manager.events.event-properties = Event Properties -data-manager.events.event-description = Event Description -data-manager.events.enter-event-description = Enter your description -data-manager.events.key = Event Key -data-manager.events.enter-key = Enter Event Key -data-manager.events.key.tooltip = Event Key -data-manager.category = Category -data-manager.category.tooltip = Category -data-manager.search-category = Search Category +data-manager.global-description = Peut être vu par tout le monde. +data-manager.private = Privé +data-manager.private-description = Peut être vu par le créateur. +data-manager.uncategorized = Non catégorisé +data-manager.created = Créé +data-manager.approved = Approuvé +data-manager.live = Actif +data-manager.blocked = Bloqué +data-manager.unplanned = Non planifié +data-manager.edit-event = Modifier l'événement +data-manager.create-new-event = Créer un nouvel événement +data-manager.edit-event-group = Modifier le groupe d'événements +data-manager.create-new-event-group = Créer un nouveau groupe d'événements + +data-manager.event-name = Nom de l'événement +data-manager.last-modified = Dernière modification +data-manager.last-triggered = Dernier déclenchement + + +data-manager.segmentation.details = Détails de la segmentation +data-manager.segmentation.delete = Supprimer la segmentation +data-manager.segmentation.required = Segmentation requise +data-manager.segmentation.add = + Ajouter une segmentation d'événement +data-manager.segmentation.type = Type de segmentation +data-manager.segmentation.select.type = Sélectionner le type de segmentation +data-manager.event.name = Saisir le nom +data-manager.segmentation.key = Clé de segmentation +data-manager.segmentation.enter.key = Saisir la clé de segmentation +data-manager.segmentation.description = Description de la segmentation +data-manager.segmentation.enter.description = Saisir la description de la segmentation +data-manager.events.event-details = Détails de l'événement +data-manager.events.event-properties = Propriétés de l'événement +data-manager.events.event-description = Description de l'événement +data-manager.events.enter-event-description = Saisir votre description +data-manager.events.key = Clé de l'événement +data-manager.events.enter-key = Saisir la clé de l'événement +data-manager.events.key.tooltip = Clé de l'événement +data-manager.category = Catégorie +data-manager.category.tooltip = Catégorie +data-manager.search-category = Rechercher une catégorie data-manager.visible = Visible -data-manager.hidden = Hidden -data-manager.visibility = Visibility -data-manager.display-name-for-count = Display Name for Count -data-manager.display-name-for-count-subheading = A display name for the count property of this event -data-manager.display-name-for-sum = Display Name for Sum -data-manager.display-name-for-sum-subheading = A display name for the sum property of this event -data-manager.display-name-for-duration = Display Name for Duration -data-manager.display-name-for-duration-subheading = A display name for the duration property of this event -data-manager.count = Count -data-manager.sum = Sum -data-manager.duration = Duration -data-manager.omit-segments = Omit Segments -data-manager.omit-segments.tooltip = It allows to delete segmentations from aggregated data only, and keep recording to granular data as string. Omitted segments will not be saved in the future and past data for these segments will be purged immediately after you save these settings. Data for omitted segments will still be stored in Drill. -data-manager.event-segmentation = Event Segmentation -data-manager.transformation-type = Transformation Type -data-manager.transformation-type.tooltip = Transformation Type -data-manager.transformation-permanent-warning = Transformation is permanent, so modifying all the data cannot be reversed. -data-manager.select-events = Select Events -data-manager.select-events.tooltip = Select Events -data-manager.select-view = Select View -data-manager.regular-expression = Regular Expression -data-manager.regular-expression.tooltip = Regular Expression -data-manager.data-type = Data Type -data-manager.data-type.tooltip = Data Type -data-manager.is-event-new = Is event Pre existing or new -data-manager.existing-event = Existing Event -data-manager.new-event = New Event -data-manager.new-event-name = New Event Name -data-manager.transformation-method = Transformation Method -data-manager.transformation-method.tooltip = Select transformation method that will be applied to data -data-manager.transformation-method.subheading = Select transformation method that will be applied to data -data-manager.incoming = Incoming -data-manager.existing = Existing -data-manager.both = Both -data-manager.rename-type = Rename Type -data-manager.rename-type.tooltip = Rename Type -data-manager.rename-with-value = Rename with Specific Value -data-manager.rename-with-regex = Rename with Regex -data-manager.select-segmentation = Select Segmentation -data-manager.select-segmentation.tooltip = Select Segmentation -data-manager.regular-expression-change-value.tooltip = The regular expression to find segmentation values for alteration. Only string-type segmentations can be modified through regular expressions. -data-manager.value-to-replace = Value to Replace -data-manager.value-to-replace.tooltip = Value to replace the regex match with -data-manager.enter-new-value = Enter New Value -data-manager.new-segmentation-name = New Segmentation Name -data-manager.segmentation-name = Segmentation Name -data-manager.segmentation-details = Segmentation Details -data-manager.new-segmentation-name.placeholder = Name -data-manager.select-property = Select Property -data-manager.select-property.tooltip = Select Property -data-manager.select-property.placeholder = Select Property -data-manager.new-property-name = New Property Name -data-manager.last-modified-on = Last modified on +data-manager.hidden = Masqué +data-manager.visibility = Visibilité +data-manager.display-name-for-count = Nom d'affichage pour le comptage +data-manager.display-name-for-count-subheading = Un nom d'affichage pour la propriété de comptage de cet événement +data-manager.display-name-for-sum = Nom d'affichage pour la somme +data-manager.display-name-for-sum-subheading = Un nom d'affichage pour la propriété de somme de cet événement +data-manager.display-name-for-duration = Nom d'affichage pour la durée +data-manager.display-name-for-duration-subheading = Un nom d'affichage pour la propriété de durée de cet événement +data-manager.count = Comptage +data-manager.sum = Somme +data-manager.duration = Durée +data-manager.omit-segments = Omettre les segments +data-manager.omit-segments.tooltip = Il permet de supprimer les segmentations des données agrégées uniquement, et de continuer à enregistrer dans les données granulaires sous forme de chaîne. Les segments omis ne seront pas sauvegardés à l'avenir et les données passées pour ces segments seront purgées immédiatement après avoir sauvegardé ces paramètres. Les données pour les segments omis seront toujours stockées dans Drill. +data-manager.event-segmentation = Segmentation d'événement +data-manager.transformation-type = Type de transformation +data-manager.transformation-type.tooltip = Type de transformation +data-manager.transformation-permanent-warning = La transformation est permanente, donc modifier toutes les données ne peut pas être annulé. +data-manager.select-events = Sélectionner les événements +data-manager.select-events.tooltip = Sélectionner les événements +data-manager.select-view = Sélectionner la vue +data-manager.regular-expression = Expression régulière +data-manager.regular-expression.tooltip = Expression régulière +data-manager.data-type = Type de données +data-manager.data-type.tooltip = Type de données +data-manager.is-event-new = L'événement est-il préexistant ou nouveau +data-manager.existing-event = Événement existant +data-manager.new-event = Nouvel événement +data-manager.new-event-name = Nom du nouvel événement +data-manager.transformation-method = Méthode de transformation +data-manager.transformation-method.tooltip = Sélectionner la méthode de transformation qui sera appliquée aux données +data-manager.transformation-method.subheading = Sélectionner la méthode de transformation qui sera appliquée aux données +data-manager.incoming = Entrant +data-manager.existing = Existant +data-manager.both = Les deux +data-manager.rename-type = Type de renommage +data-manager.rename-type.tooltip = Type de renommage +data-manager.rename-with-value = Renommer avec une valeur spécifique +data-manager.rename-with-regex = Renommer avec une expression régulière +data-manager.select-segmentation = Sélectionner la segmentation +data-manager.select-segmentation.tooltip = Sélectionner la segmentation +data-manager.regular-expression-change-value.tooltip = L'expression régulière pour trouver les valeurs de segmentation à modifier. Seules les segmentations de type chaîne peuvent être modifiées par des expressions régulières. +data-manager.value-to-replace = Valeur à remplacer +data-manager.value-to-replace.tooltip = Valeur pour remplacer la correspondance regex +data-manager.enter-new-value = Saisir une nouvelle valeur +data-manager.new-segmentation-name = Nom de la nouvelle segmentation +data-manager.segmentation-name = Nom de la segmentation +data-manager.segmentation-details = Détails de la segmentation +data-manager.new-segmentation-name.placeholder = Nom +data-manager.select-property = Sélectionner la propriété +data-manager.select-property.tooltip = Sélectionner la propriété +data-manager.select-property.placeholder = Sélectionner la propriété +data-manager.new-property-name = Nom de la nouvelle propriété +data-manager.last-modified-on = Dernière modification le data-manager.description = Description -data-manager.first-triggered = First Triggered -data-manager.segment-name = Segment Name -data-manager.delete-event-permanently = Delete event(s) permanently? -data-manager.delete-event-warning = Warning: This is not reversible -data-manager.delete-events = Delete Events -data-manager.event-group-details = Event Group Details -data-manager.included-events = Included Events -data-manager.delete-event-group-permanently = Delete Event Group permanently? -data-manager.event-group-name = Event Group Name -data-manager.name-event-group-placeholder = Name your event group -data-manager.event-group-description = Event Group Description -data-manager.event-group-visibility = Event Group Visibility -data-manager.event-group-visibility-subheading = If an event group is invisible server will continue to record data for it but it will not be displayed in the user interface. -data-manager.event-group-is-visible = Event Group is visible -data-manager.event-group-properties = Event Group Properties -data-manager.optional = Optional -data-manager.delete-event-group-permanently = Delete Event Group permanently? -data-manager.delete-event-group = Delete Event Group -data-manager.event-search-placeholder = Search in Events -data-manager.manage-categories = Manage Categories -data-manager.last-modified-by = Last modified by -data-manager.delete-segments-permanently = Delete Segment(s) permanently? -data-manager.omit-segments = Omit Segment(s)? -data-manager.omit-segments-subheading = Choose which segments of this custom event to omit. Omitted segments will not be saved in the future and past data for these segments will be purged immediately after you save these settings. -data-manager.omit = Omit -data-manager.related-event = Related Event -data-manager.related-property = Related Property -data-manager.delete-transformation-permanently = Delete Transformation permanently? -data-manager.delete-transformation = Delete Transformation -data-manager.error = Error -data-manager.error-last-triggered = Error Last Triggered -data-manager.occurence-count = Occurences -data-manager.approve = Approve -data-manager.delete-validation = Delete validations? -data-manager.approve-validation = Approve validation? -data-manager.missing-segmentation = Missing Segmentation -data-manager.datatype-mismatch = Data Type Mismatch -data-manager.global-validation = Global Validation -data-manager.segment-validation = Segment Validation -data-manager.drag-drop-file = Drag and drop file here or -data-manager.click-to-upload = Click to upload -data-manager.add-category = Add new category -data-manager.category-name = Category name -data-manager.add-category = Add Category -data-manager.back-to-manage-properties = Back to Manage Properties -data-manager.property-details = Property Details -data-manager.edit-property = Edit Property -data-manager.delete-property-permanent = Delete property permanently? -data-manager.select-data-type = Select Data Type -data-manager.error-first-triggered = Error First Triggered on -data-manager.parent-event = Parent Event -data-manager.request-details = Request Details -data-manager.regeneration-type = Regeneration Type -data-manager.regeneration-type.tooltip = Regeneration Type -data-manager.regeneration-period = Regeneration Period -data-manager.regeneration-period.tooltip = Regeneration Period -data-manager.meta-data = Meta Data -data-manager.aggregated-data = Aggregated Data -data-manager.back-to-manage-segmentation = Back to Manage Segmentation -data-manager.edit-segmentation = Edit Segmentation -data-manager.delete-segment-permanent = Delete Segment permanently? -data-manager.create-new-cta = Create new - - -data-manager.success.loadTransformations = Transformation Created -data-manager.error.loadTransformations = Error while saving Transform -data-manager.success.updateTransformations = Transformation Updated -data-manager.error.updateTransformations = Error while updating transformation -data-manager.success.regeneration = Regeneration Started -data-manager.error.regeneration = Error in regeneration -data-manager.success.status = Status Updated -data-manager.error.status = Error while updating event status -data-manager.success.segment-update = Segment Updated -data-manager.error.segment-update = Error while updating segment -data-manager.success.segment-delete = Segment Deleted -data-manager.error.segment-delete = Error while deleting segment -data-manager.success.transformation-delete = Transformation Deleted -data-manager.error.transformation-delete = Error while deleting transformation -data-manager.success.validation-approve = Approved -data-manager.error.validation-approve = Error while approving validation -data-manager.success.validation-delete = Deleted -data-manager.error.validation-delete = Error while deleting validation -data-manager.success.import = Import Completed -data-manager.error.import = Error during import process -data-manager.error.export = Error during import process -data-manager.success.data-type = Data Type Updated -data-manager.error.data-type = Error while updating data type -data-manager.success.data-type-delete = Data Type Deleted -data-manager.error.data-type-delete = Error while deleting data type -data-manager.success.event-group-delete = Event Group Deleted -data-manager.error.event-group-delete = Error while deleting event group -data-manager.success.event-group-create = Event Group Created -data-manager.error.event-group-create = Error while creating event group -data-manager.success.event-group-update = Event Group Updated -data-manager.error.event-group-update = Error while updating event group -data-manager.success.event-create = Event Created -data-manager.error.event-create = Error while creating event -data-manager.success.event-update = Event Updated -data-manager.error.event-update = Error while updating event -data-manager.success.event-delete = Event Deleted -data-manager.error.event-delete = Error while deleting event -data-manager.success.visibility = Visibility updated -data-manager.success.category-create = Category Created -data-manager.error.category-create = Error while creating category -data-manager.success.category-update = Category Updated -data-manager.error.category-update = Error while updating category -data-manager.success.category-delete = Category Deleted -data-manager.error.category-delete = Error while deleting category -data-manager.success.category-change = Category Changed -data-manager.error.category-change = Error while changing category -data-manager.prevented-type-change = Changing type is not allowed for this property. - -data-manager.data-masking.title = Data Redaction -data-manager.data-masking.text = If the data is redacted, all queries will be processed to remove it from the response -data-manager.data-masking-property-is-masked = Property is redacted -data-manager.data-masking.masked = Redacted +data-manager.first-triggered = Premier déclenchement +data-manager.segment-name = Nom du segment +data-manager.delete-event-permanently = Supprimer définitivement l'événement (les événements) ? +data-manager.delete-event-warning = Attention : Ceci n'est pas réversible +data-manager.delete-events = Supprimer les événements +data-manager.event-group-details = Détails du groupe d'événements +data-manager.included-events = Événements inclus +data-manager.delete-event-group-permanently = Supprimer définitivement le groupe d'événements ? +data-manager.event-group-name = Nom du groupe d'événements +data-manager.name-event-group-placeholder = Nommez votre groupe d'événements +data-manager.event-group-description = Description du groupe d'événements +data-manager.event-group-visibility = Visibilité du groupe d'événements +data-manager.event-group-visibility-subheading = Si un groupe d'événements est invisible, le serveur continuera à enregistrer les données pour lui mais il ne sera pas affiché dans l'interface utilisateur. +data-manager.event-group-is-visible = Le groupe d'événements est visible +data-manager.event-group-properties = Propriétés du groupe d'événements +data-manager.optional = Optionnel +data-manager.delete-event-group-permanently = Supprimer définitivement le groupe d'événements ? +data-manager.delete-event-group = Supprimer le groupe d'événements +data-manager.event-search-placeholder = Rechercher dans les événements +data-manager.manage-categories = Gérer les catégories +data-manager.last-modified-by = Dernière modification par +data-manager.delete-segments-permanently = Supprimer définitivement le(s) segment(s) ? +data-manager.omit-segments = Omettre le(s) segment(s) ? +data-manager.omit-segments-subheading = Choisissez quels segments de cet événement personnalisé omettre. Les segments omis ne seront pas sauvegardés à l'avenir et les données passées pour ces segments seront purgées immédiatement après avoir sauvegardé ces paramètres. +data-manager.omit = Omettre +data-manager.related-event = Événement associé +data-manager.related-property = Propriété associée +data-manager.delete-transformation-permanently = Supprimer définitivement la transformation ? +data-manager.delete-transformation = Supprimer la transformation +data-manager.error = Erreur +data-manager.error-last-triggered = Dernière erreur déclenchée +data-manager.occurence-count = Occurrences +data-manager.approve = Approuver +data-manager.delete-validation = Supprimer les validations ? +data-manager.approve-validation = Approuver la validation ? +data-manager.missing-segmentation = Segmentation manquante +data-manager.datatype-mismatch = Incompatibilité du type de données +data-manager.global-validation = Validation globale +data-manager.segment-validation = Validation de segment +data-manager.drag-drop-file = Glissez et déposez le fichier ici ou +data-manager.click-to-upload = Cliquez pour télécharger +data-manager.add-category = Ajouter une nouvelle catégorie +data-manager.category-name = Nom de la catégorie +data-manager.add-category = Ajouter une catégorie +data-manager.back-to-manage-properties = Retour à la gestion des propriétés +data-manager.property-details = Détails de la propriété +data-manager.edit-property = Modifier la propriété +data-manager.delete-property-permanent = Supprimer définitivement la propriété ? +data-manager.select-data-type = Sélectionner le type de données +data-manager.error-first-triggered = Première erreur déclenchée le +data-manager.parent-event = Événement parent +data-manager.request-details = Détails de la demande +data-manager.regeneration-type = Type de régénération +data-manager.regeneration-type.tooltip = Type de régénération +data-manager.regeneration-period = Période de régénération +data-manager.regeneration-period.tooltip = Période de régénération +data-manager.meta-data = Métadonnées +data-manager.aggregated-data = Données agrégées +data-manager.back-to-manage-segmentation = Retour à la gestion de la segmentation +data-manager.edit-segmentation = Modifier la segmentation +data-manager.delete-segment-permanent = Supprimer définitivement le segment ? +data-manager.create-new-cta = Créer nouveau + + +data-manager.success.loadTransformations = Transformation créée +data-manager.error.loadTransformations = Erreur lors de la sauvegarde de la transformation +data-manager.success.updateTransformations = Transformation mise à jour +data-manager.error.updateTransformations = Erreur lors de la mise à jour de la transformation +data-manager.success.regeneration = Régénération démarrée +data-manager.error.regeneration = Erreur lors de la régénération +data-manager.success.status = Statut mis à jour +data-manager.error.status = Erreur lors de la mise à jour du statut de l'événement +data-manager.success.segment-update = Segment mis à jour +data-manager.error.segment-update = Erreur lors de la mise à jour du segment +data-manager.success.segment-delete = Segment supprimé +data-manager.error.segment-delete = Erreur lors de la suppression du segment +data-manager.success.transformation-delete = Transformation supprimée +data-manager.error.transformation-delete = Erreur lors de la suppression de la transformation +data-manager.success.validation-approve = Approuvé +data-manager.error.validation-approve = Erreur lors de l'approbation de la validation +data-manager.success.validation-delete = Supprimé +data-manager.error.validation-delete = Erreur lors de la suppression de la validation +data-manager.success.import = Import Terminé +data-manager.error.import = Erreur pendant le processus d'import +data-manager.error.export = Erreur pendant le processus d'export +data-manager.success.data-type = Type de Données Mis à Jour +data-manager.error.data-type = Erreur lors de la mise à jour du type de données +data-manager.success.data-type-delete = Type de Données Supprimé +data-manager.error.data-type-delete = Erreur lors de la suppression du type de données +data-manager.success.event-group-delete = Groupe d'Événements Supprimé +data-manager.error.event-group-delete = Erreur lors de la suppression du groupe d'événements +data-manager.success.event-group-create = Groupe d'Événements Créé +data-manager.error.event-group-create = Erreur lors de la création du groupe d'événements +data-manager.success.event-group-update = Groupe d'Événements Mis à Jour +data-manager.error.event-group-update = Erreur lors de la mise à jour du groupe d'événements +data-manager.success.event-create = Événement Créé +data-manager.error.event-create = Erreur lors de la création de l'événement +data-manager.success.event-update = Événement Mis à Jour +data-manager.error.event-update = Erreur lors de la mise à jour de l'événement +data-manager.success.event-delete = Événement Supprimé +data-manager.error.event-delete = Erreur lors de la suppression de l'événement +data-manager.success.visibility = Visibilité mise à jour +data-manager.success.category-create = Catégorie Créée +data-manager.error.category-create = Erreur lors de la création de la catégorie +data-manager.success.category-update = Catégorie Mise à Jour +data-manager.error.category-update = Erreur lors de la mise à jour de la catégorie +data-manager.success.category-delete = Catégorie Supprimée +data-manager.error.category-delete = Erreur lors de la suppression de la catégorie +data-manager.success.category-change = Catégorie Modifiée +data-manager.error.category-change = Erreur lors du changement de catégorie +data-manager.prevented-type-change = Le changement de type n'est pas autorisé pour cette propriété. + +data-manager.data-masking.title = Rédaction de Données +data-manager.data-masking.text = Si les données sont rédactées, toutes les requêtes seront traitées pour les supprimer de la réponse +data-manager.data-masking-property-is-masked = La propriété est rédactée +data-manager.data-masking.masked = Rédacté data-manager.data-masking.unmasked = - -data-manager.data-masking.success-masked = Data redaction changes saved successfully. -data-manager.data-masking.error-masked = Data redaction failed. -data-manager.enableDataMasking = Enable data masking -configs.help.data-manager-enableDataMasking = Once enabled data manager will mask all data from database responses based on settings set in data manager plugin. Data redaction will not happen in plugins: complaince hub and audit logs. - -data-manager.transform-save = Save Transform -data-manager.transform.event-option.merge = Merge by selecting events -data-manager.transform.event-option.merge.description = Merge by selecting events -data-manager.transform.event-option.merge-regex = Merge by Regex -data-manager.transform.event-option.merge-regex.description = Merge by Regex - -data-manager.transform.segment-option.merge = Merge Segmentation -data-manager.transform.segment-option.merge.description = Merge Segmentation -data-manager.transform.segment-option.change-value = Modify Segmentation Value -data-manager.transform.segment-option.change-value.description = Modify Segmentation Value -data-manager.transform.segment-option.rename = Rename Segmentation -data-manager.transform.segment-option.rename.description = Rename Segmentation -data-manager.transform.segment-option.copy-to-user-custom = Copy to Custom User Property -data-manager.transform.segment-option.copy-to-user-custom.description = Copy to Custom User Property - -data-manager.transform.property-option.merge = Merge Custom Property -data-manager.transform.property-option.merge.description = Merge Custom Property -data-manager.transform.property-option.change-value = Modify Custom Property Value -data-manager.transform.property-option.change-value.description = Modify Custom Property Value -data-manager.transform.property-option.rename = Rename Custom Property -data-manager.transform.property-option.rename.description = Rename Custom Property -data-manager.error.event-visibility-error = Cannot Change visibility for unplanned events. +data-manager.data-masking.success-masked = Modifications de rédaction de données sauvegardées avec succès. +data-manager.data-masking.error-masked = La rédaction de données a échoué. +data-manager.enableDataMasking = Activer le masquage de données +configs.help.data-manager-enableDataMasking = Une fois activé, le gestionnaire de données masquera toutes les données des réponses de base de données basées sur les paramètres définis dans le plugin gestionnaire de données. La rédaction de données n'aura pas lieu dans les plugins : hub de conformité et journaux d'audit. + +data-manager.transform-save = Sauvegarder la transformation +data-manager.transform.event-option.merge = Fusionner en sélectionnant les événements +data-manager.transform.event-option.merge.description = Fusionner en sélectionnant les événements +data-manager.transform.event-option.merge-regex = Fusionner par expression régulière +data-manager.transform.event-option.merge-regex.description = Fusionner par expression régulière + +data-manager.transform.segment-option.merge = Fusionner la segmentation +data-manager.transform.segment-option.merge.description = Fusionner la segmentation +data-manager.transform.segment-option.change-value = Modifier la valeur de segmentation +data-manager.transform.segment-option.change-value.description = Modifier la valeur de segmentation +data-manager.transform.segment-option.rename = Renommer la segmentation +data-manager.transform.segment-option.rename.description = Renommer la segmentation +data-manager.transform.segment-option.copy-to-user-custom = Copier vers la propriété utilisateur personnalisée +data-manager.transform.segment-option.copy-to-user-custom.description = Copier vers la propriété utilisateur personnalisée + +data-manager.transform.property-option.merge = Fusionner la propriété personnalisée +data-manager.transform.property-option.merge.description = Fusionner la propriété personnalisée +data-manager.transform.property-option.change-value = Modifier la valeur de propriété personnalisée +data-manager.transform.property-option.change-value.description = Modifier la valeur de propriété personnalisée +data-manager.transform.property-option.rename = Renommer la propriété personnalisée +data-manager.transform.property-option.rename.description = Renommer la propriété personnalisée +data-manager.error.event-visibility-error = Impossible de modifier la visibilité pour les événements non planifiés. data-manager.property-expiration = Expiration -data-manager.property.session-end = Session End -data-manager.error.property-expire = Error in setting Property Expiration - -data-manager.copy-to-user-custom.type = Custom User Property Type -data-manager.copy-to-user-custom.existing= Existing -data-manager.copy-to-user-custom.new = New -data-manager.copy-to-user-custom.select-type = Existing Custom User Property -data-manager.copy-to-user-custom.new-type = New Custom User Property \ No newline at end of file +data-manager.property.session-end = Fin de session +data-manager.error.property-expire = Erreur lors de la définition de l'expiration de la propriété + +data-manager.copy-to-user-custom.type = Type de propriété utilisateur personnalisée +data-manager.copy-to-user-custom.existing= Existant +data-manager.copy-to-user-custom.new = Nouveau +data-manager.copy-to-user-custom.select-type = Propriété utilisateur personnalisée existante +data-manager.copy-to-user-custom.new-type = Nouvelle propriété utilisateur personnalisée \ No newline at end of file diff --git a/plugins/data_migration/frontend/public/localization/data_migration_fr.properties b/plugins/data_migration/frontend/public/localization/data_migration_fr.properties index f50aad25f77..1e907089829 100644 --- a/plugins/data_migration/frontend/public/localization/data_migration_fr.properties +++ b/plugins/data_migration/frontend/public/localization/data_migration_fr.properties @@ -1,172 +1,174 @@ -#titles -data-migration.plugin-title = Data Migration -data-migration.page-title = Data Migration -data-migration.plugin-description = Migrate data from one Countly server to another. -data-migration.import-export-button-title = Export or import data -data-migration.export-data = Export data -data-migration.import-data = Import data -#export data form -data-migration.export-title = Export data +#titres +data-migration.plugin-title = Migration de données +data-migration.page-title = Migration de données +data-migration.plugin-description = Migrer les données d'un serveur Countly à un autre. +data-migration.import-export-button-title = Exporter ou importer des données +data-migration.export-data = Exporter des données +data-migration.import-data = Importer des données + +#formulaire d'exportation de données +data-migration.export-title = Exporter des données data-migration.applications = Applications -data-migration.export-type = Export type -data-migration.export-type-transfer-label = Export and transfer data to another Countly server +data-migration.export-type = Type d'exportation +data-migration.export-type-transfer-label = Exporter et transférer les données vers un autre serveur Countly data-migration.export-type-transfer-description = -data-migration.export-type-download-label = Export and download data +data-migration.export-type-download-label = Exporter et télécharger les données data-migration.export-type-download-description = -data-migration.server-token = Server token -data-migration.server-address=Server address -data-migration.server-token-description = Token generated in target server "Import form" -data-migration.server-address-description= As displayed in your browser. -data-migration.export-data-button = Export data -data-migration.send-export-button = Send export -data-migration.test-connection = Test connection -data-migration.export-other-path = Export folder: -data-migration.export-additional-files = Export crash symbols -data-migration.redirect-traffic = Redirect traffic to new server after migration is completed -data-migration.export-completed-unable-to-delete = Export completed. Unable to delete files -data-migration.export-type-get-export-scripts = Get only database export commands -data-migration.download-auto = Your download will start automatically. -#import data form -data-migration.import-title = Import data -data-migration.import-type = Import type -data-migration.import-from-another-server = Import from another server -data-migration.import-type-token-label = Import data from another server -data-migration.import-type-token-description = In order to import data from another server you must provide source server owner with your server address and the token you'll create now -data-migration.import-type-upload-label = Import from an existing export file +data-migration.server-token = Jeton du serveur +data-migration.server-address=Adresse du serveur +data-migration.server-token-description = Jeton généré dans le serveur cible "Formulaire d'importation" +data-migration.server-address-description= Comme affiché dans votre navigateur. +data-migration.export-data-button = Exporter les données +data-migration.send-export-button = Envoyer l'exportation +data-migration.test-connection = Tester la connexion +data-migration.export-other-path = Dossier d'exportation : +data-migration.export-additional-files = Exporter les symboles de crash +data-migration.redirect-traffic = Rediriger le trafic vers le nouveau serveur après la migration +data-migration.export-completed-unable-to-delete = Exportation terminée. Impossible de supprimer les fichiers +data-migration.export-type-get-export-scripts = Obtenir uniquement les commandes d'exportation de la base de données +data-migration.download-auto = Votre téléchargement commencera automatiquement. +#formulaire d'importation de données +data-migration.import-title = Importer des données +data-migration.import-type = Type d'importation +data-migration.import-from-another-server = Importer depuis un autre serveur +data-migration.import-type-token-label = Importer des données depuis un autre serveur +data-migration.import-type-token-description = Pour importer des données depuis un autre serveur, vous devez fournir au propriétaire du serveur source votre adresse serveur et le jeton que vous allez créer maintenant +data-migration.import-type-upload-label = Importer depuis un fichier d'exportation existant data-migration.import-type-upload-description = -data-migration.select-file = Select file -data-migration.import-from-file = Import uploading previously exported file -data-migration.import-from-server = Import data from another server -data-migration.import-from-file-info = Browse your PC for file -data-migration.import-from-server-info = You need to generate a new token and provide source server owner with your domain name and access token. -data-migration.token = Token -data-migration.create-token = Create token -data-migration.create-another-token = Create another token -data-migration.generated-token = Token has been generated -data-migration.copy-url = Copy URL -data-migration.copy-token = Copy Token -data-migration.tokken-coppied-in-clipboard = Server token copied to the clipboard -data-migration.address-coppied-in-clipboard = Server address copied to the clipboard -data-migration.close-without-copy = If you close this tab, you won't be able to copy this token anymore. Do you want to close it? -data-migration.close-confirm-title = Close tab? -data-migration.cancel = Cancel -data-migration.continue-and-close = Continue and close -data-migration.close = Close -data-migration.upload-title = Upload exported files -data-migration.drag-drop = Drag & drop files here -data-migration.browse = browse -data-migration.upload-description = Upload your export as .tar.gz archive -data-migration.drag-drop-unable = Unable to drag and drop files. +data-migration.select-file = Sélectionner le fichier +data-migration.import-from-file = Importer en téléchargeant un fichier précédemment exporté +data-migration.import-from-server = Importer des données depuis un autre serveur +data-migration.import-from-file-info = Parcourez votre PC pour trouver le fichier +data-migration.import-from-server-info = Vous devez générer un nouveau jeton et fournir au propriétaire du serveur source votre nom de domaine et le jeton d'accès. +data-migration.token = Jeton +data-migration.create-token = Créer un jeton +data-migration.create-another-token = Créer un autre jeton +data-migration.generated-token = Le jeton a été généré +data-migration.copy-url = Copier l'URL +data-migration.copy-token = Copier le jeton +data-migration.tokken-coppied-in-clipboard = Jeton du serveur copié dans le presse-papiers +data-migration.address-coppied-in-clipboard = Adresse du serveur copiée dans le presse-papiers +data-migration.close-without-copy = Si vous fermez cet onglet, vous ne pourrez plus copier ce jeton. Voulez-vous le fermer ? +data-migration.close-confirm-title = Fermer l'onglet ? +data-migration.cancel = Annuler +data-migration.continue-and-close = Continuer et fermer +data-migration.close = Fermer +data-migration.upload-title = Télécharger les fichiers exportés +data-migration.drag-drop = Glissez-déposez les fichiers ici +data-migration.browse = parcourir +data-migration.upload-description = Téléchargez votre exportation au format archive .tar.gz +data-migration.drag-drop-unable = Impossible de glisser-déposer les fichiers. + #tables -data-migration.my-exports = My exports -data-migration.my-imports = My Imports -data-migration.imports = Imports -data-migration.exports = Exports +data-migration.my-exports = Mes exportations +data-migration.my-imports = Mes importations +data-migration.imports = Importations +data-migration.exports = Exportations data-migration.table.app-name = Applications -data-migration.table.step = Step -data-migration.table.status = Status -data-migration.table.last-update = Last update -data-migration.step.exporting = exporting -data-migration.step.packing = Packing -data-migration.step.importing = Importing on target server -data-migration.step.sending = Sending -data-migration.step.awaiting_reply = Importing on target server -data-migration.status.failed = failed -data-migration.status.finished = finished -data-migration.status.complete = complete -data-migration.status.progress = progress -data-migration.no-imports = You don't have any imports -data-migration.no-exports = You don't have any exports -data-migration.no-export-id-given = No exportid given -#export/import table - actions -data-migration.download-log = Download log -data-migration.delete-log = Delete log -data-migration.download-export = Download export -data-migration.delete-export = Delete export -data-migration.export-deleted = Export files deleted -data-migration.delete-import = Delete import -data-migration.yes-delete-export = Yes, delete files -data-migration.stop-export = Stop export -data-migration.resend-export = Send export -#confirms,notifications -data-migration.delete-log-confirm = Do you really want to delete the log file? -data-migration.delete-export-confirm = Do you really want to delete export files? -data-migration.delete-import-confirm = Do you really want to delete the export files and the log file? -data-migration.app-redirected = App({app_name}) is redirected. -data-migration.app-redirected-explanation = All incoming SDK calls for this app are redirected to remote server: -data-migration.app-redirected-remove = Click to go to app settings +data-migration.table.step = Étape +data-migration.table.status = Statut +data-migration.table.last-update = Dernière mise à jour +data-migration.step.exporting = exportation +data-migration.step.packing = Emballage +data-migration.step.importing = Importation sur le serveur cible +data-migration.step.sending = Envoi +data-migration.step.awaiting_reply = Importation sur le serveur cible +data-migration.status.failed = échec +data-migration.status.finished = terminé +data-migration.status.complete = complet +data-migration.status.progress = en cours +data-migration.no-imports = Vous n'avez aucune importation +data-migration.no-exports = Vous n'avez aucune exportation +data-migration.no-export-id-given = Aucun identifiant d'exportation fourni +#actions du tableau export/import +data-migration.download-log = Télécharger le journal +data-migration.delete-log = Supprimer le journal +data-migration.download-export = Télécharger l'exportation +data-migration.delete-export = Supprimer l'exportation +data-migration.export-deleted = Fichiers d'exportation supprimés +data-migration.delete-import = Supprimer l'importation +data-migration.yes-delete-export = Oui, supprimer les fichiers +data-migration.stop-export = Arrêter l'exportation +data-migration.resend-export = Envoyer l'exportation +#confirmations, notifications +data-migration.delete-log-confirm = Voulez-vous vraiment supprimer le fichier journal ? +data-migration.delete-export-confirm = Voulez-vous vraiment supprimer les fichiers d'exportation ? +data-migration.delete-import-confirm = Voulez-vous vraiment supprimer les fichiers d'exportation et le fichier journal ? +data-migration.app-redirected = L'application ({app_name}) est redirigée. +data-migration.app-redirected-explanation = Tous les appels SDK entrants pour cette application sont redirigés vers le serveur distant : +data-migration.app-redirected-remove = Cliquez pour accéder aux paramètres de l'application #form -data-migration.please-wait = Please wait -data-migration.creating-new-token = Creating new token.... -data-migration.complete = Complete -data-migration.new-token-created = New token created -data-migration.error = Error -data-migration.unable-create-token = Unable to generate token +data-migration.please-wait = Veuillez patienter +data-migration.creating-new-token = Création d'un nouveau jeton.... +data-migration.complete = Terminé +data-migration.new-token-created = Nouveau jeton créé +data-migration.error = Erreur +data-migration.unable-create-token = Impossible de générer le jeton #error messages(export) -data-migration.sending-failed-server-address-wrong = Sending failed. Target server address is not valid -data-migration.you-have-valid-export-failed-in-sending = You have valid export failed in sending state -data-migration.exportid_not_provided = Please provide exportid -data-migration.export_not_found = Export with given id not found -data-migration.status-missing = Status missing -data-migration.token_missing = Token missing -data-migration.address_missing = Address missing -data-migration.invalid-app-id = Invalid app id -data-migration.no_app_ids = Please provide at least one app id to export data. -data-migration.some_bad_ids = You don't have any apps with given ids: -data-migration.invalid_app_id = Given app id is/are not valid: -data-migration.apps_not_found = You don't have any apps to export data from. -data-migration.already-running-exporting-process = Already running exporting process -data-migration.you-have-already-exported-data = You have already exported data. -data-migration.export_in_process = You have an ongoing export process with the same data. -data-migration.export_files_missing = You don't have any export files. Please start a new export process. -data-migration.export_before_failed = You have already tried to export files. Data import is failing on the other server. -data-migration.existing_process = You have an ongoing export process for the same apps. If you want to start a new process please delete data from the previous one. -data-migration.failed-generate-scripts = Failed to generate export scripts -data-migration.failed-sending = Your previous export has failed in sending phase. You can try to resend data or delete previously exported data and start a new export process. -data-migration.export-stopped = Export process is stopped. You can delete data and start new process. -data-migration.export-started = Export process has successfully started. -data-migration.target-server-not-valid= Target server address is invalid -data-migration.enter-your-server-address = Enter your server address -data-migration.enter-your-server-token = Enter your server token -data-migration.enter-your-export-folder = Enter your export folder -data-migration.connection-is-valid = Connection is valid -data-migration.invalid-server-path = Invalid path. Countly server is reachable, but it looks like data migration plugin is not enabled on it. -data-migration.export-already-failed = Export already failed -data-migration.export-already-finished = Export already finished -data-migration.export-already-stopped = Export process stopped -data-migration.export-already-sent = Data has already been sent -data-migration.export-already-done = There is already done export for same app(apps). To start new export process previous one has to be deleted. -data-migration.exportid-missing= Missing export ID -data-migration.invalid-exportid = Invalid export ID -data-migration.unable-to-remove-directory = Unable to remove directory -data-migration.unable-to-copy-file = Unable to copy file -data-migration.there-are-no-symbolication-files = There are no symbolication crash files +data-migration.sending-failed-server-address-wrong = Échec de l'envoi. L'adresse du serveur cible n'est pas valide +data-migration.you-have-valid-export-failed-in-sending = Vous avez une exportation valide qui a échoué lors de l'envoi +data-migration.exportid_not_provided = Veuillez fournir un identifiant d'exportation +data-migration.export_not_found = Exportation avec l'identifiant donné introuvable +data-migration.status-missing = Statut manquant +data-migration.token_missing = Jeton manquant +data-migration.address_missing = Adresse manquante +data-migration.invalid-app-id = Identifiant d'application invalide +data-migration.no_app_ids = Veuillez fournir au moins un identifiant d'application pour exporter les données. +data-migration.some_bad_ids = Vous n'avez aucune application avec les identifiants donnés : +data-migration.invalid_app_id = L'identifiant d'application donné n'est pas valide : +data-migration.apps_not_found = Vous n'avez aucune application pour exporter des données. +data-migration.already-running-exporting-process = Processus d'exportation déjà en cours +data-migration.you-have-already-exported-data = Vous avez déjà exporté des données. +data-migration.export_in_process = Vous avez un processus d'exportation en cours avec les mêmes données. +data-migration.export_files_missing = Vous n'avez aucun fichier d'exportation. Veuillez démarrer un nouveau processus d'exportation. +data-migration.export_before_failed = Vous avez déjà essayé d'exporter des fichiers. L'importation de données échoue sur l'autre serveur. +data-migration.existing_process = Vous avez un processus d'exportation en cours pour les mêmes applications. Si vous voulez démarrer un nouveau processus, veuillez supprimer les données du précédent. +data-migration.failed-generate-scripts = Échec de la génération des scripts d'exportation +data-migration.failed-sending = Votre exportation précédente a échoué lors de la phase d'envoi. Vous pouvez essayer de renvoyer les données ou supprimer les données précédemment exportées et démarrer un nouveau processus d'exportation. +data-migration.export-stopped = Le processus d'exportation est arrêté. Vous pouvez supprimer les données et démarrer un nouveau processus. +data-migration.export-started = Le processus d'exportation a démarré avec succès. +data-migration.target-server-not-valid= L'adresse du serveur cible n'est pas valide +data-migration.enter-your-server-address = Saisir l'adresse de votre serveur +data-migration.enter-your-server-token = Saisir le jeton de votre serveur +data-migration.enter-your-export-folder = Saisir votre dossier d'exportation +data-migration.connection-is-valid = La connexion est valide +data-migration.invalid-server-path = Chemin invalide. Le serveur Countly est accessible, mais il semble que le plugin de migration de données ne soit pas activé dessus. +data-migration.export-already-failed = L'exportation a déjà échoué +data-migration.export-already-finished = L'exportation est déjà terminée +data-migration.export-already-stopped = Le processus d'exportation est arrêté +data-migration.export-already-sent = Les données ont déjà été envoyées +data-migration.export-already-done = Il y a déjà une exportation terminée pour la(les) même(s) application(s). Pour démarrer un nouveau processus d'exportation, le précédent doit être supprimé. +data-migration.exportid-missing= Identifiant d'exportation manquant +data-migration.invalid-exportid = Identifiant d'exportation invalide +data-migration.unable-to-remove-directory = Impossible de supprimer le répertoire +data-migration.unable-to-copy-file = Impossible de copier le fichier +data-migration.there-are-no-symbolication-files = Il n'y a aucun fichier de symbolisation de crash #error messages(import) -data-migration.there-is-no-data-to-insert = There is no data for insert -data-migration.import-started = Import process started successfully -data-migration.import-file-missing = Import file is missing. -data-migration.import-process-exist = There is an ongoing import process on target server with same apps. Clear out the data on target server to start a new import process. -data-migration.file-to-big-warning = Chosen file exceeds server limitation for maximum file size. Please modify your server settings to allow uploading bigger files. -data-migration.file-to-big-error = File is too large to upload to the server. Please modify your server settings to allow uploading bigger files. -data-migration.badformat = Uploaded file should be .tar.gz -data-migration.could-not-find-file = Could not find file on server -data-migration.unable-to-delete-log-file = Unable to delete log file +data-migration.there-is-no-data-to-insert = Il n'y a aucune donnée à insérer +data-migration.import-started = Le processus d'importation a démarré avec succès +data-migration.import-file-missing = Le fichier d'importation est manquant. +data-migration.import-process-exist = Il y a un processus d'importation en cours sur le serveur cible avec les mêmes applications. Effacez les données sur le serveur cible pour démarrer un nouveau processus d'importation. +data-migration.file-to-big-warning = Le fichier choisi dépasse la limitation du serveur pour la taille maximale de fichier. Veuillez modifier les paramètres de votre serveur pour permettre le téléchargement de fichiers plus volumineux. +data-migration.file-to-big-error = Le fichier est trop volumineux pour être téléchargé sur le serveur. Veuillez modifier les paramètres de votre serveur pour permettre le téléchargement de fichiers plus volumineux. +data-migration.badformat = Le fichier téléchargé doit être au format .tar.gz +data-migration.could-not-find-file = Impossible de trouver le fichier sur le serveur +data-migration.unable-to-delete-log-file = Impossible de supprimer le fichier journal #systemlogs -systemlogs.action.export_finished = Export Successful -systemlogs.action.export_failed = Export Failed -systemlogs.action.import_finished_response_ok = Import Successful -systemlogs.action.import_finished = Import Successful -systemlogs.action.import_failed = Import Failed -systemlogs.action.import_failed_response_failed = Import Failed. Failed to notify source server. -systemlogs.action.import_failed_response_ok = Import Failed. Source server notified. -systemlogs.action.import_finished_response_failed = Import successful. Failed to notify source server about successful import. -systemlogs.action.app_redirected = App redirected +systemlogs.action.export_finished = Exportation réussie +systemlogs.action.export_failed = Échec de l'exportation +systemlogs.action.import_finished_response_ok = Importation réussie +systemlogs.action.import_finished = Importation réussie +systemlogs.action.import_failed = Échec de l'importation +systemlogs.action.import_failed_response_failed = Échec de l'importation. Échec de la notification au serveur source. +systemlogs.action.import_failed_response_ok = Échec de l'importation. Serveur source notifié. +systemlogs.action.import_finished_response_failed = Importation réussie. Échec de la notification au serveur source concernant l'importation réussie. +systemlogs.action.app_redirected = Application redirigée #for app redirect settings -management-applications.redirect_url= Redirect URL -management-applications.redirect_url.help = Incoming data for this app is redirected to given address. Disable to stop data redirection. -management-applications.table.redirect_not_set = None -management-applications.table.remove_redirect = Remove redirect +management-applications.redirect_url= URL de redirection +management-applications.redirect_url.help = Les données entrantes pour cette application sont redirigées vers l'adresse donnée. Désactivez pour arrêter la redirection des données. +management-applications.table.redirect_not_set = Aucune +management-applications.table.remove_redirect = Supprimer la redirection diff --git a/plugins/dbviewer/frontend/public/localization/dbviewer_fr.properties b/plugins/dbviewer/frontend/public/localization/dbviewer_fr.properties index eb102853b63..b2e9d28123c 100644 --- a/plugins/dbviewer/frontend/public/localization/dbviewer_fr.properties +++ b/plugins/dbviewer/frontend/public/localization/dbviewer_fr.properties @@ -1,49 +1,49 @@ #dbviewer -dbviewer.title = DB Viewer -dbviewer.expand-all = Expand All -dbviewer.collapse-all = Collapse All -dbviewer.description = Provides REST API and Web interface to browse Countly databases -dbviewer.back = Back -dbviewer.search-for-a-collection = Search for a collection -dbviewer.apply-filter = Apply Filter -dbviewer.filter = Filter -dbviewer.remove-filters = Remove filters -dbviewer.export = Export -dbviewer.indexes = Indexes -dbviewer.aggregate = Aggregate -dbviewer.aggregation = Aggregation -dbviewer.show-query-options = Show Query Options -dbviewer.hide-query-options = Hide Query Options -dbviewer.filter-is-applied = Filter is applied -dbviewer.filter-query = Filter Query -dbviewer.invalid-json = Invalid JSON -dbviewer.valid-json = Valid JSON -dbviewer.select-fields-to-return = Select fields to return -dbviewer.select-fields-to-sort = Select field to sort by -dbviewer.sort-options = Sort options -dbviewer.ascending = Ascending -dbviewer.descending = Descending -dbviewer.countly-database = Countly Database -dbviewer.countly-database-description = Main database that stores data such as users and aggregated user actions -dbviewer.countly_drill-database = Countly Drill Database -dbviewer.countly_drill-database-description = Stores granular data about all user actions and their properties -dbviewer.countly_fs-database = Countly File System Database -dbviewer.countly_fs-database-description = File store used by server(s) to store files, such as app icons -dbviewer.countly_out-database = Countly Out Database -dbviewer.countly_out-database-description = Stores data accessed by SDKs, such as remote configurations -dbviewer.generate-aggregate-report= Generate aggregate report -dbviewer.back-to-dbviewer = Back to DB Viewer -dbviewer.invalid-pipeline = Invalid pipeline object, please check pipeline input. -dbviewer.server-error = There was a server error. There might be more information in logs. -dbviewer.removed-warning = Some stages are removed from aggregation pipleine. Following stages are allowed only with global admin rights: -dbviewer.not-found-data = Couldn't find any results -dbviewer.execute-aggregation = Execute Aggregation on {0} -dbviewer.prepare-new-aggregation = Prepare New Aggregation -dbviewer.aggregation-pipeline = Aggregation Pipeline +dbviewer.title = Visualisateur BD +dbviewer.expand-all = Tout développer +dbviewer.collapse-all = Tout réduire +dbviewer.description = Fournit une API REST et une interface Web pour parcourir les bases de données Countly +dbviewer.back = Retour +dbviewer.search-for-a-collection = Rechercher une collection +dbviewer.apply-filter = Appliquer le filtre +dbviewer.filter = Filtre +dbviewer.remove-filters = Supprimer les filtres +dbviewer.export = Exporter +dbviewer.indexes = Index +dbviewer.aggregate = Agrégation +dbviewer.aggregation = Agrégation +dbviewer.show-query-options = Afficher les options de requête +dbviewer.hide-query-options = Masquer les options de requête +dbviewer.filter-is-applied = Le filtre est appliqué +dbviewer.filter-query = Requête de filtre +dbviewer.invalid-json = JSON invalide +dbviewer.valid-json = JSON valide +dbviewer.select-fields-to-return = Sélectionner les champs à retourner +dbviewer.select-fields-to-sort = Sélectionner le champ de tri +dbviewer.sort-options = Options de tri +dbviewer.ascending = Croissant +dbviewer.descending = Décroissant +dbviewer.countly-database = Base de données Countly +dbviewer.countly-database-description = Base de données principale qui stocke les données telles que les utilisateurs et les actions utilisateur agrégées +dbviewer.countly_drill-database = Base de données Countly Drill +dbviewer.countly_drill-database-description = Stocke les données granulaires sur toutes les actions utilisateur et leurs propriétés +dbviewer.countly_fs-database = Base de données du système de fichiers Countly +dbviewer.countly_fs-database-description = Stockage de fichiers utilisé par le(s) serveur(s) pour stocker les fichiers, tels que les icônes d'application +dbviewer.countly_out-database = Base de données Countly Out +dbviewer.countly_out-database-description = Stocke les données accessibles par les SDK, telles que les configurations distantes +dbviewer.generate-aggregate-report= Générer un rapport d'agrégation +dbviewer.back-to-dbviewer = Retour au visualisateur BD +dbviewer.invalid-pipeline = Objet pipeline invalide, veuillez vérifier l'entrée du pipeline. +dbviewer.server-error = Il y a eu une erreur serveur. Il pourrait y avoir plus d'informations dans les journaux. +dbviewer.removed-warning = Certaines étapes sont supprimées du pipeline d'agrégation. Les étapes suivantes ne sont autorisées qu'avec les droits d'administrateur global : +dbviewer.not-found-data = Aucun résultat trouvé +dbviewer.execute-aggregation = Exécuter l'agrégation sur {0} +dbviewer.prepare-new-aggregation = Préparer une nouvelle agrégation +dbviewer.aggregation-pipeline = Pipeline d'agrégation dbviewer.mongotop = Mongotop dbviewer.mongostat = Mongostat -dbviewer.enter-aggregation-pipeline = Enter aggregation pipeline -dbviewer.indexes-of = Indexes of +dbviewer.enter-aggregation-pipeline = Saisir le pipeline d'agrégation +dbviewer.indexes-of = Index de dbviewer.projection = Projection -dbviewer.data = Data \ No newline at end of file +dbviewer.data = Données \ No newline at end of file diff --git a/plugins/density/frontend/public/localization/density_fr.properties b/plugins/density/frontend/public/localization/density_fr.properties index 62dd41ed5c9..77e2ad38b87 100755 --- a/plugins/density/frontend/public/localization/density_fr.properties +++ b/plugins/density/frontend/public/localization/density_fr.properties @@ -1,13 +1,13 @@ #densities -density.title = Densities -density.plugin-title = Density metric -density.page-desc = Details of the display densities of the devices from which your users access your application, based on their pixel ratios, in the selected time period. -web.density.page-desc = Details of the display densities of the devices from which your visitors access your website, based on their pixel ratios, in the selected time period. -density.plugin-description = Enable gathering and displaying screen density metric -density.table.density = Density -sidebar.analytics.densities = Densities -density.densities-for = Densities for -help.density.chart = This chart displays breakdown of density values by platform -density.distribution = Density Distribution +density.title = Densités +density.plugin-title = Métrique de densité +density.page-desc = Détails des densités d'affichage des appareils à partir desquels vos utilisateurs accèdent à votre application, basés sur leurs ratios de pixels, dans la période sélectionnée. +web.density.page-desc = Détails des densités d'affichage des appareils à partir desquels vos visiteurs accèdent à votre site web, basés sur leurs ratios de pixels, dans la période sélectionnée. +density.plugin-description = Activer la collecte et l'affichage de la métrique de densité d'écran +density.table.density = Densité +sidebar.analytics.densities = Densités +density.densities-for = Densités pour +help.density.chart = Ce graphique affiche la répartition des valeurs de densité par plateforme +density.distribution = Distribution de densité density.versions = Versions -density.table-version = Density Version \ No newline at end of file +density.table-version = Version de densité \ No newline at end of file diff --git a/plugins/desktop/frontend/public/localization/desktop_fr.properties b/plugins/desktop/frontend/public/localization/desktop_fr.properties index 0e07fc142f4..efa74d31e09 100644 --- a/plugins/desktop/frontend/public/localization/desktop_fr.properties +++ b/plugins/desktop/frontend/public/localization/desktop_fr.properties @@ -1,4 +1,4 @@ -desktop.plugin-title = Desktop Apps -desktop.plugin-description = Plugin for adding desktop app types to Countly -common.bar.top-languages = Top Languages -management-applications.types.desktop = Desktop \ No newline at end of file +desktop.plugin-title = Applications de bureau +desktop.plugin-description = Plugin pour ajouter les types d'applications de bureau à Countly +common.bar.top-languages = Langues principales +management-applications.types.desktop = Bureau \ No newline at end of file diff --git a/plugins/errorlogs/frontend/public/localization/errorlogs_fr.properties b/plugins/errorlogs/frontend/public/localization/errorlogs_fr.properties index 6c2df3ffb5b..605e4be1329 100644 --- a/plugins/errorlogs/frontend/public/localization/errorlogs_fr.properties +++ b/plugins/errorlogs/frontend/public/localization/errorlogs_fr.properties @@ -1,15 +1,15 @@ #errorlogs -errorlogs.title = Server Logs -errorlogs.description = Display Countly related server logs -errorlogs.clear = Clear Log -errorlogs.download = Download Log -errorlogs.confirm-delete = Are you sure you want to clear the log? -errorlogs.confirm-delete-title = Clear log? -errorlogs.confirm-delete-dashboard-title = Clear Dashboard log? -errorlogs.confirm-delete-dashboard = Do you really want to clear the Dashboard log? -errorlogs.confirm-delete-api-title = Clear API log? -errorlogs.confirm-delete-api = Do you really want to clear the API log? -errorlogs.api-log = Api Log -errorlogs.server-logs = Server Logs -systemlogs.action.errologs_clear = Clear Logs +errorlogs.title = Journaux du serveur +errorlogs.description = Afficher les journaux du serveur liés à Countly +errorlogs.clear = Effacer le journal +errorlogs.download = Télécharger le journal +errorlogs.confirm-delete = Êtes-vous sûr de vouloir effacer le journal ? +errorlogs.confirm-delete-title = Effacer le journal ? +errorlogs.confirm-delete-dashboard-title = Effacer le journal du tableau de bord ? +errorlogs.confirm-delete-dashboard = Voulez-vous vraiment effacer le journal du tableau de bord ? +errorlogs.confirm-delete-api-title = Effacer le journal de l'API ? +errorlogs.confirm-delete-api = Voulez-vous vraiment effacer le journal de l'API ? +errorlogs.api-log = Journal de l'API +errorlogs.server-logs = Journaux du serveur +systemlogs.action.errologs_clear = Effacer les journaux diff --git a/plugins/guides/frontend/public/localization/guides_fr.properties b/plugins/guides/frontend/public/localization/guides_fr.properties index bb9a4eb387f..02a1e930751 100755 --- a/plugins/guides/frontend/public/localization/guides_fr.properties +++ b/plugins/guides/frontend/public/localization/guides_fr.properties @@ -1,33 +1,33 @@ #guides - guides.plugin-title = Countly Guides -guides.plugin-description = Provides guides about Countly's features, including articles and walkthroughs. -guides.overview = Overview -guides.all = All -guides.walkthrough = Walkthrough -guides.walkthroughs = Walkthroughs -guides.watch-walkthrough = Watch walkthrough -guides.walkthroughs.all = All Walkthroughs -guides.walkthroughs.get-started = Get started -guides.walkthroughs.new = What's new? -guides.walkthroughs.home = Home +guides.plugin-description = Fournit des guides sur les fonctionnalités de Countly, incluant des articles et des procédures pas à pas. +guides.overview = Aperçu +guides.all = Tout +guides.walkthrough = Procédure pas à pas +guides.walkthroughs = Procédures pas à pas +guides.watch-walkthrough = Regarder la procédure pas à pas +guides.walkthroughs.all = Toutes les procédures pas à pas +guides.walkthroughs.get-started = Commencer +guides.walkthroughs.new = Quoi de neuf ? +guides.walkthroughs.home = Accueil guides.article = Article guides.articles = Articles -guides.articles.all = All Articles -guides.back-to-guides = Back to Countly Guides -guides.help-center = Help Center -guides.go-to-help-center = Go to Help Center -guides.feedback = Do you have any feedback? -guides.read-more = Read more -guides.see-all = See all +guides.articles.all = Tous les articles +guides.back-to-guides = Retour aux guides Countly +guides.help-center = Centre d'aide +guides.go-to-help-center = Aller au centre d'aide +guides.feedback = Avez-vous des commentaires ? +guides.read-more = Lire plus +guides.see-all = Voir tout + -guides.search.in-guides = Search in Guides -guides.search.in-countly-guides = Search in Countly Guides -guides.search.results-count = {0} results for "{1}" -guides.search.start = Start searching -guides.search.start-description= Type something and press Enter to see the results -guides.search.no-result = ...hmm, there are no results -guides.search.no-result-description = Try adjusting your search to find what you’re looking for +guides.plugin-guides.search.in-guides = Rechercher dans les guides +guides.search.in-countly-guides = Rechercher dans les guides Countly +guides.search.results-count = {0} résultats pour "{1}" +guides.search.start = Commencer la recherche +guides.search.start-description= Tapez quelque chose et appuyez sur Entrée pour voir les résultats +guides.search.no-result = ...hmm, il n'y a aucun résultat +guides.search.no-result-description = Essayez d'ajuster votre recherche pour trouver ce que vous cherchez Guides Countly -guides.view = View Guide -guides.take-the-tour = Take the tour \ No newline at end of file +guides.view = Voir le guide +guides.take-the-tour = Faire la visite \ No newline at end of file diff --git a/plugins/hooks/frontend/public/localization/hooks_fr.properties b/plugins/hooks/frontend/public/localization/hooks_fr.properties index 36b41cf4e76..8775ce93b63 100644 --- a/plugins/hooks/frontend/public/localization/hooks_fr.properties +++ b/plugins/hooks/frontend/public/localization/hooks_fr.properties @@ -1,158 +1,158 @@ hooks.plugin-title = Hooks -hooks.plugin-description = Trigger external HTTP endpoints and receive emails based on incoming data and internal actions -hooks.new-hook = New hook -hooks.drawer-create-title = Create new hook -hooks.hook-name = Hook name -hooks.hook-description = Hook description -hooks.hook-description-note = An optional description that will be visible to all users while viewing this hook. -hooks.for_applications = For application -hooks.trigger = Trigger +hooks.plugin-description = Déclencher des points de terminaison HTTP externes et recevoir des e-mails basés sur les données entrantes et les actions internes +hooks.new-hook = Nouveau hook +hooks.drawer-create-title = Créer un nouveau hook +hooks.hook-name = Nom du hook +hooks.hook-description = Description du hook +hooks.hook-description-note = Une description optionnelle qui sera visible à tous les utilisateurs lors de la visualisation de ce hook. +hooks.for_applications = Pour l'application +hooks.trigger = Déclencheur hooks.effects = Actions -hooks.create-hook = Create hook -hooks.save-hook = Save hook -hooks.set-hook-trigger= Trigger Type -hooks.select-effect = Select Action -hooks.select-trigger = Select trigger -hooks.set-hook-effect = Select Action +hooks.create-hook = Créer un hook +hooks.save-hook = Sauvegarder le hook +hooks.set-hook-trigger= Type de déclencheur +hooks.select-effect = Sélectionner une action +hooks.select-trigger = Sélectionner un déclencheur +hooks.set-hook-effect = Sélectionner une action hooks.applications = Applications -hooks.create-by = Created by -hooks.edit = Edit -hooks.delete = Delete -hooks.trigger-and-effects = Trigger & Actions -hooks.trigger-count = Trigger count -hooks.trigger-last-time = Last Triggered -hooks.save-changes = Save changes -hooks.discard-changes = Discard changes -hooks.make-changes-remind = You made {0} changes. -hooks.make-change-remind = You made 1 change. -hooks.delete-confirm = Confirm that you want to delete this hook. -hooks.edit-your-hook = Edit your hook -hooks.delete-confirm-title = Delete Hook -hooks.batch-size = Action batch procesing size -hooks.pipelineInterval = Action Pipeline Interval -hooks.batchActionSize = Action Batch Processing Size -hooks.refreshRulesPeriod = Refresh Rules Period -hooks.requestLimit = Request Limit -hooks.timeWindowForRequestLimit = Time Window for Request Limit +hooks.create-by = Créé par +hooks.edit = Modifier +hooks.delete = Supprimer +hooks.trigger-and-effects = Déclencheur et actions +hooks.trigger-count = Nombre de déclenchements +hooks.trigger-last-time = Dernier déclenchement +hooks.save-changes = Sauvegarder les modifications +hooks.discard-changes = Ignorer les modifications +hooks.make-changes-remind = Vous avez fait {0} modifications. +hooks.make-change-remind = Vous avez fait 1 modification. +hooks.delete-confirm = Confirmez que vous voulez supprimer ce hook. +hooks.edit-your-hook = Modifier votre hook +hooks.delete-confirm-title = Supprimer le hook +hooks.batch-size = Taille de traitement par lot d'action +hooks.pipelineInterval = Intervalle de pipeline d'action +hooks.batchActionSize = Taille de traitement par lot d'action +hooks.refreshRulesPeriod = Période de rafraîchissement des règles +hooks.requestLimit = Limite de requête +hooks.timeWindowForRequestLimit = Fenêtre de temps pour la limite de requête -configs.help.hooks-pipelineInterval=The interval between each batch of actions. -configs.help.hooks-batchActionSize=The number of actions to be processed in each batch. -configs.help.hooks-refreshRulesPeriod=The interval between each refresh of the rules. -configs.help.hooks-requestLimit=The maximum number of requests that can be sent to the endpoint within the time window. -configs.help.hooks-timeWindowForRequestLimit=The time window for the request limit. +configs.help.hooks-pipelineInterval=L'intervalle entre chaque lot d'actions. +configs.help.hooks-batchActionSize=Le nombre d'actions à traiter dans chaque lot. +configs.help.hooks-refreshRulesPeriod=L'intervalle entre chaque rafraîchissement des règles. +configs.help.hooks-requestLimit=Le nombre maximum de requêtes qui peuvent être envoyées au point de terminaison dans la fenêtre de temps. +configs.help.hooks-timeWindowForRequestLimit=La fenêtre de temps pour la limite de requête. #triggers -hooks.InternalEventTrigger = Internal Actions -hooks.trigger-api-endpoint-uri= API Endpoint +hooks.InternalEventTrigger = Actions internes +hooks.trigger-api-endpoint-uri= Point de terminaison API hooks.trigger-introduction = Introduction -hooks.trigger-api-endpoint-intro-content = Send a GET request with the query string parameter "payload" as a JSON string to the URL below:
{0} -hooks.APIEndPointTrigger = API Endpoint -hooks.internal-event-selector-title = Internal Actions -hooks.internal-event-selector-placeholder = Please select an internal action -hooks.cohort-selector-title = Cohort -hooks.cohort-selector-placeholder = Please select a cohort -hooks.IncomingDataTrigger = Tracked Data -hooks.IncomingData = Tracked Data -hooks.hook-selector-title = Select a hook -hooks.incoming-event=Data to trigger this hook -hooks.any-events = (Any incoming data) -hooks.trigger-instruction = TIPS -hooks.trigger-copy-url = Copy URL -hooks.test-hook=Test hook -hooks.ScheduledTrigger = Scheduled Trigger -hooks.trigger-and-actions = Trigger -> Actions +hooks.trigger-api-endpoint-intro-content = Envoyer une requête GET avec le paramètre de chaîne de requête "payload" comme chaîne JSON à l'URL ci-dessous :
{0} +hooks.APIEndPointTrigger = Point de terminaison API +hooks.internal-event-selector-title = Actions internes +hooks.internal-event-selector-placeholder = Veuillez sélectionner une action interne +hooks.cohort-selector-title = Cohorte +hooks.cohort-selector-placeholder = Veuillez sélectionner une cohorte +hooks.IncomingDataTrigger = Données suivies +hooks.IncomingData = Données suivies +hooks.hook-selector-title = Sélectionner un hook +hooks.incoming-event=Données pour déclencher ce hook +hooks.any-events = (Toutes données entrantes) +hooks.trigger-instruction = CONSEILS +hooks.trigger-copy-url = Copier l'URL +hooks.test-hook=Tester le hook +hooks.ScheduledTrigger = Déclencheur programmé +hooks.trigger-and-actions = Déclencheur -> Actions #efffects -hooks.CustomCodeEffect = Custom Code +hooks.CustomCodeEffect = Code personnalisé -hooks.EmailEffect = Send an email -hooks.SDKEventEffect = SDK Event Action -hooks.CustomCodeEffect = Custom Code -hooks.to-email-address = Email addresses to send the data to -hooks.add-effect =+ Add Action +hooks.EmailEffect = Envoyer un e-mail +hooks.SDKEventEffect = Action d'événement SDK +hooks.CustomCodeEffect = Code personnalisé +hooks.to-email-address = Adresses e-mail auxquelles envoyer les données +hooks.add-effect =+ Ajouter une action -hooks.HTTPEffect = Make an HTTP request -hooks.http-effect-url = URL to send the data to -hooks.select-http-effect-method = HTTP Method -hooks.query-string-or-json-body = Query string (for GET) or request body (for POST) +hooks.HTTPEffect = Faire une requête HTTP +hooks.http-effect-url = URL à laquelle envoyer les données +hooks.select-http-effect-method = Méthode HTTP +hooks.query-string-or-json-body = Chaîne de requête (pour GET) ou corps de requête (pour POST) hooks.http-method-get = GET hooks.http-method-post = POST -hooks.http-effect-description= Use {{payload_json}} to include the entire trigger data as a JSON object in your request body, or {{payload_string}} to include a stringified JSON in your query string. You can also use individual properties within the trigger data, such as {{user}}. +hooks.http-effect-description= Utilisez {{payload_json}} pour inclure toutes les données de déclenchement sous forme d'objet JSON dans votre corps de requête, ou {{payload_string}} pour inclure un JSON stringifié dans votre chaîne de requête. Vous pouvez également utiliser des propriétés individuelles dans les données de déclenchement, telles que {{user}}. -hooks.intro-hooks-trigger = /hooks/trigger will capture triggered data from the selected hook trigger. Output: Trigger output data from selected hook. -hooks.intro-i-app_users-delete= /i/app_users/delete will capture deleted user profiles. Output: Individual user profile data. -hooks.intro-i-app_users-update = /i/app_users/update will capture updated user profiles. Output: Individual user profile data. -hooks.intro-i-app_users-create = /i/app_users/create will capture created user profiles. Output: Individual user profile data. -hooks.intro-cohort-exit = /cohort/exit will capture users who exit from the selected cohort. Output: Individual user profile data. -hooks.intro-cohort-enter = /cohort/enter will capture users who enter into the selected cohort. Output: Individual user profile data. -hooks.intro-incoming-data = Will capture event data when filter rules match. Output: Event data & user profile data. -hooks.copy-notify-message = API Endpoint URL copied. -hooks.copy-notify-title = Copy URL -hooks.Select_country = Select Country -hooks.Select_timezone = Select Timezone +hooks.intro-hooks-trigger = /hooks/trigger capturera les données déclenchées du déclencheur de hook sélectionné. Sortie : Données de sortie de déclenchement du hook sélectionné. +hooks.intro-i-app_users-delete= /i/app_users/delete capturera les profils utilisateur supprimés. Sortie : Données de profil utilisateur individuel. +hooks.intro-i-app_users-update = /i/app_users/update capturera les profils utilisateur mis à jour. Sortie : Données de profil utilisateur individuel. +hooks.intro-i-app_users-create = /i/app_users/create capturera les profils utilisateur créés. Sortie : Données de profil utilisateur individuel. +hooks.intro-cohort-exit = /cohort/exit capturera les utilisateurs qui sortent de la cohorte sélectionnée. Sortie : Données de profil utilisateur individuel. +hooks.intro-cohort-enter = /cohort/enter capturera les utilisateurs qui entrent dans la cohorte sélectionnée. Sortie : Données de profil utilisateur individuel. +hooks.intro-incoming-data = Capturera les données d'événement lorsque les règles de filtre correspondent. Sortie : Données d'événement et données de profil utilisateur. +hooks.copy-notify-message = URL du point de terminaison API copiée. +hooks.copy-notify-title = Copier l'URL +hooks.Select_country = Sélectionner le pays +hooks.Select_timezone = Sélectionner le fuseau horaire -hooks.messages.name.placeholder = Name of your Hook -hooks.plugin-title-desc = An overview of all set up hooks. You can enable or disable any hook by using its respective toggle switch. -hooks.status-all = All Hooks -hooks.status-enabled = Enabled -hooks.status-disabled = Disabled -hooks.all-applications = All Applications +hooks.messages.name.placeholder = Nom de votre hook +hooks.plugin-title-desc = Un aperçu de tous les hooks configurés. Vous pouvez activer ou désactiver n'importe quel hook en utilisant son bouton bascule respectif. +hooks.status-all = Tous les hooks +hooks.status-enabled = Activé +hooks.status-disabled = Désactivé +hooks.all-applications = Toutes les applications hooks.action = Action -hooks.select-application = Select an Application -hooks.description-placeholder = Enter hook description -hooks.name = Name +hooks.select-application = Sélectionner une application +hooks.description-placeholder = Saisir la description du hook +hooks.name = Nom hooks.description = Description -hooks.optional = Optional -hooks.source-application = Source Application -hooks.step1 = Basic Info -hooks.step2 = Trigger +hooks.optional = Optionnel +hooks.source-application = Application source +hooks.step1 = Informations de base +hooks.step2 = Déclencheur hooks.step3 = Actions -hooks.trigger-intro = Set up the details of what will trigger the hook. -hooks.effects-intro = Select the actions the hook will perform upon being triggered. You can add more than one action. +hooks.trigger-intro = Configurez les détails de ce qui déclenchera le hook. +hooks.effects-intro = Sélectionnez les actions que le hook effectuera lors du déclenchement. Vous pouvez ajouter plus d'une action. -hooks.test-hook = HOOK TESTING -hooks.test-hook-intro = Test your hooks to verify payloads or check if your hook setup is working properly before taking it live. -hooks.test-hook-button = Test your hook setup -hooks.remove-action = Remove action -hooks.send-email = Email addresses to send the data to -hooks.http-intro = Query string (for GET) or request body (for POST) -hooks.trigger-via = Trigger Type -hooks.api-trigger-intro = Send a GET request with query string parameter "payload" as a JSON string -hooks.copy-url = Copy URL -hooks.incoming-data = Data to trigger this hook -hooks.filter-rule = Use Filtering Rule -hooks.scheduled-trigger-intro = Select the frequency and time to set the period to trigger the hook automatically -hooks.back-to-hooks=Back to Hooks -hooks.filtering-tips = Description for filtering rule -hooks.edit = Edit -hooks.delete = Delete -hooks.app-desc=Select the app for which the hook will be created. -hooks.detail-title = Hook Details -hooks.trigger-count=Trigger Count -hooks.trigger-and-effect = Trigger and Actions -hooks.trigger-time = Last Trigger Time -hooks.download-stacktrace = Download Stacktrace -hooks.stacktrace = Error Logs -hooks.time=Time -hooks.action-step = Action Step -hooks.trigger-data = Trigger Data -hooks.action-data = Action Data -hooks.trigger-tips = Set up the details of what will trigger the hook. -hooks.actions-tips = Select the actions the hook will perform upon being triggered. You can add more than one action. -hooks.application-tips = The app(s) for which you want to create a hook. -hooks.trigger-count-tips = Number of times the hook has been triggered. -hooks.trigger-action-tips = Identifies the trigger for the hook and the actions that show the method through which data will be sent. -hooks.trigger-save-failed = Hook could not be saved. +hooks.test-hook = TEST DE HOOK +hooks.test-hook-intro = Testez vos hooks pour vérifier les charges utiles ou vérifier si votre configuration de hook fonctionne correctement avant de la mettre en ligne. +hooks.test-hook-button = Tester votre configuration de hook +hooks.remove-action = Supprimer l'action +hooks.send-email = Adresses e-mail auxquelles envoyer les données +hooks.http-intro = Chaîne de requête (pour GET) ou corps de requête (pour POST) +hooks.trigger-via = Type de déclencheur +hooks.api-trigger-intro = Envoyer une requête GET avec le paramètre de chaîne de requête "payload" comme chaîne JSON +hooks.copy-url = Copier l'URL +hooks.incoming-data = Données pour déclencher ce hook +hooks.filter-rule = Utiliser une règle de filtrage +hooks.scheduled-trigger-intro = Sélectionnez la fréquence et l'heure pour définir la période de déclenchement automatique du hook +hooks.back-to-hooks=Retour aux hooks +hooks.filtering-tips = Description de la règle de filtrage +hooks.edit = Modifier +hooks.delete = Supprimer +hooks.app-desc=Sélectionnez l'application pour laquelle le hook sera créé. +hooks.detail-title = Détails du hook +hooks.trigger-count=Nombre de déclenchements +hooks.trigger-and-effect = Déclencheur et actions +hooks.trigger-time = Heure du dernier déclenchement +hooks.download-stacktrace = Télécharger la trace de pile +hooks.stacktrace = Journaux d'erreur +hooks.time=Heure +hooks.action-step = Étape d'action +hooks.trigger-data = Données de déclenchement +hooks.action-data = Données d'action +hooks.trigger-tips = Configurez les détails de ce qui déclenchera le hook. +hooks.actions-tips = Sélectionnez les actions que le hook effectuera lors du déclenchement. Vous pouvez ajouter plus d'une action. +hooks.application-tips = La ou les applications pour lesquelles vous voulez créer un hook. +hooks.trigger-count-tips = Nombre de fois que le hook a été déclenché. +hooks.trigger-action-tips = Identifie le déclencheur du hook et les actions qui montrent la méthode par laquelle les données seront envoyées. +hooks.trigger-save-failed = Le hook n'a pas pu être sauvegardé. -systemlogs.action.hook_created = Hook Created -systemlogs.action.hook_updated = Hook Updated -systemlogs.action.hook_status_updated = Hook Status Updated -systemlogs.action.hook_deleted = Hook Deleted +systemlogs.action.hook_created = Hook créé +systemlogs.action.hook_updated = Hook mis à jour +systemlogs.action.hook_status_updated = Statut du hook mis à jour +systemlogs.action.hook_deleted = Hook supprimé # HTTP Headers related texts -hooks.http-headers = HTTP Headers -hooks.add-http-header = Add HTTP Header -hooks.remove-http-header = Remove Header -hooks.header-key = Header Key -hooks.header-value = Header Value +hooks.http-headers = En-têtes HTTP +hooks.add-http-header = Ajouter un en-tête HTTP +hooks.remove-http-header = Supprimer l'en-tête +hooks.header-key = Clé d'en-tête +hooks.header-value = Valeur d'en-tête diff --git a/plugins/locale/frontend/public/localization/locale_fr.properties b/plugins/locale/frontend/public/localization/locale_fr.properties index e64d8445a6c..59db3b2ba6e 100644 --- a/plugins/locale/frontend/public/localization/locale_fr.properties +++ b/plugins/locale/frontend/public/localization/locale_fr.properties @@ -1,8 +1,8 @@ #languages -languages.title = Languages -languages.table.language = Language -sidebar.analytics.languages = Languages -help.languages.chart = Details of the application's languages your users use in the selected time period, based on their default device language settings. +languages.title = Langues +languages.table.language = Langue +sidebar.analytics.languages = Langues +help.languages.chart = Détails des langues de l'application que vos utilisateurs utilisent dans la période sélectionnée, basés sur leurs paramètres de langue par défaut de l'appareil. -locale.plugin-title = Languages -locale.plugin-description = Displays device locale and language metrics. \ No newline at end of file +locale.plugin-title = Langues +locale.plugin-description = Affiche les métriques de localisation et de langue de l'appareil. \ No newline at end of file diff --git a/plugins/logger/frontend/public/localization/logger_fr.properties b/plugins/logger/frontend/public/localization/logger_fr.properties index f6a379f88c4..04636c84471 100644 --- a/plugins/logger/frontend/public/localization/logger_fr.properties +++ b/plugins/logger/frontend/public/localization/logger_fr.properties @@ -1,43 +1,43 @@ #logger -logger.title = Incoming Data Logs -logger.description = Logs requests made to the write API to review and debug incoming data. -logger.all = All Requests -logger.event = Events +logger.title = Journaux de données entrantes +logger.description = Journalise les requêtes faites à l'API d'écriture pour examiner et déboguer les données entrantes. +logger.all = Toutes les requêtes +logger.event = Événements logger.session = Sessions -logger.metric = Metrics -logger.consent = Consents +logger.metric = Métriques +logger.consent = Consentements logger.type = Type -logger.timestamp = Request Time -logger.requests = Request Received -logger.version = App Version -logger.device = Device -logger.location = Location +logger.timestamp = Heure de la requête +logger.requests = Requête reçue +logger.version = Version de l'application +logger.device = Appareil +logger.location = Localisation logger.info = Information -logger.details = Details -logger.user-details = User Details -logger.remote-config = Remote Config +logger.details = Détails +logger.user-details = Détails de l'utilisateur +logger.remote-config = Configuration distante logger.performance-monitoring = Performance -logger.crashes = Crashes -logger.sdk = SDK info -logger.request-header = Headers -logger.request-payload = Data -logger.request-reponse = Response -logger.request-canceled = Request Canceled -logger.problems = Problems occurred. -logger.collection-description = Only up to the last {0} incoming data logs are stored -logger.capped-remind = Your collection is not capped yet. Please note that this may slow down system performance. -logger.state = Set incoming data logging state -logger.limit = Set incoming data logging limit per minute -logger.state-on = On -logger.state-off = Off -logger.state-automatic = Automatic -logger.state-off-warning = Incoming data logging is turned off. You can change it on the settings page. -logger.platform = Platform -logger.device-id = Device Id -logger.location = Location -logger.request-query = Request query -logger.request-header = Request header +logger.crashes = Plantages +logger.sdk = Info SDK +logger.request-header = En-têtes +logger.request-payload = Données +logger.request-reponse = Réponse +logger.request-canceled = Requête annulée +logger.problems = Des problèmes sont survenus. +logger.collection-description = Seuls les {0} derniers journaux de données entrantes sont stockés +logger.capped-remind = Votre collection n'est pas encore plafonnée. Veuillez noter que cela peut ralentir les performances du système. +logger.state = Définir l'état de journalisation des données entrantes +logger.limit = Définir la limite de journalisation des données entrantes par minute +logger.state-on = Activé +logger.state-off = Désactivé +logger.state-automatic = Automatique +logger.state-off-warning = La journalisation des données entrantes est désactivée. Vous pouvez la modifier sur la page des paramètres. +logger.platform = Plateforme +logger.device-id = ID de l'appareil +logger.location = Localisation +logger.request-query = Requête de la demande +logger.request-header = En-tête de la requête logger.version = Version -configs.help.logger-state = If the incoming data logging state is set to "On", only the last 1000 requests will be saved. When the state is set to "Automatic", requests will continue to be logged until the limit per minute is reached. -configs.help.logger-limit = Incoming data logging will turn off automatically when the number of requests logged per minute limit is reached. This will apply only when request logger state is set to "Automatic". \ No newline at end of file +configs.help.logger-state = Si l'état de journalisation des données entrantes est défini sur "Activé", seules les 1000 dernières requêtes seront sauvegardées. Lorsque l'état est défini sur "Automatique", les requêtes continueront d'être journalisées jusqu'à ce que la limite par minute soit atteinte. +configs.help.logger-limit = La journalisation des données entrantes se désactivera automatiquement lorsque le nombre de requêtes journalisées par minute atteint la limite. Ceci s'appliquera uniquement lorsque l'état du journaliseur de requêtes est défini sur "Automatique". \ No newline at end of file diff --git a/plugins/mobile/frontend/public/localization/mobile_fr.properties b/plugins/mobile/frontend/public/localization/mobile_fr.properties index ad0f5db8255..89782eb17bf 100644 --- a/plugins/mobile/frontend/public/localization/mobile_fr.properties +++ b/plugins/mobile/frontend/public/localization/mobile_fr.properties @@ -1,10 +1,10 @@ #mobile -mobile.plugin-title = Mobile Apps -mobile.plugin-description = Enable Analytics for Mobile apps +mobile.plugin-title = Applications mobiles +mobile.plugin-description = Activer les analyses pour les applications mobiles #revenue -mobile.revenue.tooltip = IAP event key is the custom event key that you track in app purchases with. Click for more information about revenue analytics. -mobile.placeholder.iap-event-key = Enter IAP event keys (optional) -mobile.placeholder.iap-help = if your app uses in-app purchases -mobile.management-applications.iap-event = IAP Event Keys -mobile.systemlogs.action.iap_updated = IAP Events Updated \ No newline at end of file +mobile.revenue.tooltip = La clé d'événement IAP est la clé d'événement personnalisée avec laquelle vous suivez les achats dans l'application. Cliquez pour plus d'informations sur les analyses de revenus. +mobile.placeholder.iap-event-key = Saisir les clés d'événement IAP (optionnel) +mobile.placeholder.iap-help = si votre application utilise des achats intégrés +mobile.management-applications.iap-event = Clés d'événement IAP +mobile.systemlogs.action.iap_updated = Événements IAP mis à jour \ No newline at end of file diff --git a/plugins/onboarding/frontend/public/localization/onboarding_fr.properties b/plugins/onboarding/frontend/public/localization/onboarding_fr.properties index 24b57998ccb..ab619361d18 100644 --- a/plugins/onboarding/frontend/public/localization/onboarding_fr.properties +++ b/plugins/onboarding/frontend/public/localization/onboarding_fr.properties @@ -1,3 +1,3 @@ #onboarding -onboarding.plugin-title = Onboarding -onboarding.plugin-description = Shows informational popups such as the what's new popup displayed after a Countly upgrade +onboarding.plugin-title = Intégration +onboarding.plugin-description = Affiche des fenêtres contextuelles informatives telles que la fenêtre "Quoi de neuf" affichée après une mise à niveau de Countly diff --git a/plugins/plugins/frontend/public/localization/plugins_fr.properties b/plugins/plugins/frontend/public/localization/plugins_fr.properties index 227e38e26ef..71a905c741d 100644 --- a/plugins/plugins/frontend/public/localization/plugins_fr.properties +++ b/plugins/plugins/frontend/public/localization/plugins_fr.properties @@ -1,247 +1,259 @@ #plugins -plugins.title = Feature Management -plugins.configs = Settings -plugins.user-configs = Account Settings -plugins.user-account = My Account -plugins.all = All Features +plugins.title = Gestion des fonctionnalités +plugins.configs = Paramètres +plugins.user-confconfigs.api-export_limit = Liconfigs.no-search-result = ...hmm, il n'y a aucun résultat +configs.no-search-result-description = Essayez configs.help.frontend-use_google = Désactivez cette option si vous êtes dans un pays où les services Google sont bloqués. Si désactivé, certains services Google (par exemple les cartes) ne seront pas visibles. +configs.help.frontend-code = Afficher les liens pour le générateur de code Countly sous la page de création de nouvelle application. +configs.help.security-dashboard_additional_headers = Ajouter des en-têtes pour que Countly les utilise sur les réponses du tableau de bord par défaut (un en-tête par nouvelle ligne) +configs.help.security-api_additional_headers = Ajouter des en-têtes pour que Countly les utilise sur les réponses API par défaut (un en-tête par nouvelle ligne) +configs.help.security-password_min = Nombre minimum de caractères utilisés dans le mot de passester votre recherche pour trouver ce que vous cherchez +configs.user-level-configuration = Configuration au niveau utilisateur +configs.table-description = Les paramètres de cette section remplaceront les paramètres globaux pour l'utilisateur +configs.security-dashboard_rate_limit_window = Temps limite de taux du tableau de bord (secondes)d'export de documents +configs.api-reports_regenerate_interval = Intervalle de régénération pour les rapports +configs.api-data_retention_period = Nombre de jours de conservation des données granulaires +configs.help.api-reports_regenerate_interval = Intervalle minimal de régénération de rapport. Si une régénération de rapport prend plus de temps que la durée sélectionnée, elle sera régénérée lors du prochain intervalle le plus proche +configs.api-prevent_duplicate_requests = Empêcher les requêtes dupliquées Paramètres du compte +plugins.user-account = Mon compte +plugins.all = Toutes les fonctionnalités plugins.state = Action -plugins.status = State -plugins.enabled = Enabled -plugins.enable = Enable -plugins.disabled = Disabled -plugins.disable = Disable -plugins.name = Feature name +plugins.status = État +plugins.enabled = Activé +plugins.enable = Activer +plugins.disabled = Désactivé +plugins.disable = Désactiver +plugins.name = Nom de la fonctionnalité plugins.description = Description plugins.version = Version plugins.support = Support -plugins.homepage = Homepage -plugins.wait = This might take a while -plugins.processing = Processing changes -plugins.success = Success -plugins.restart = Restarting Countly... -plugins.applying = Applying changes... -plugins.apply = Apply Changes -plugins.yes-i-want-to-apply-changes = Yes I want to apply changes -plugins-apply-changes-to-plugins = Apply changes to plugins? -plugins.back = Back -plugins.back-to-settings = Back to settings -plugins.search-settings = Search in settings -plugins.hold-on = Hold on -plugins.retry = Try again later -plugins.finish = to finish changes -plugins.seconds = seconds -plugins.error = Error occurred -plugins.errors = Some errors occurred -plugins.errors-msg = Check logs for more information -plugins.confirm = Disabling plugin will also disable the functionality that plugin is providing. Are you sure you want to proceed? -plugins.will-restart = Countly will reload after the changes take effect -plugins.please-wait = Please wait until the process is completed -plugins.dependents = Dependent Features -plugins.disable-descendants = Disabling {0} will cause dependent plugins ({1}) to be disabled as well. Do you want to continue? -plugins.enable-ancestors = Enabling {0} will cause depended plugins ({1}) to be enabled as well. Do you want to continue? -plugins.yes-i-want-to-continue = Yes I want to continue -plugins.indirect-status-change = Indirect status change -plugins.no-access = You do not have any access to any app, contact administrator. +plugins.homepage = Page d'accueil +plugins.wait = Cela peut prendre un moment +plugins.processing = Traitement des modifications +plugins.success = Succès +plugins.restart = Redémarrage de Countly... +plugins.applying = Application des modifications... +plugins.apply = Appliquer les modifications +plugins.yes-i-want-to-apply-changes = Oui, je veux appliquer les modifications +plugins-apply-changes-to-plugins = Appliquer les modifications aux plugins ? +plugins.back = Retour +plugins.back-to-settings = Retour aux paramètres +plugins.search-settings = Rechercher dans les paramètres +plugins.hold-on = Patientez +plugins.retry = Réessayer plus tard +plugins.finish = pour terminer les modifications +plugins.seconds = secondes +plugins.error = Une erreur s'est produite +plugins.errors = Certaines erreurs se sont produites +plugins.errors-msg = Consultez les journaux pour plus d'informations +plugins.confirm = La désactivation du plugin désactivera également la fonctionnalité que le plugin fournit. Êtes-vous sûr de vouloir continuer ? +plugins.will-restart = Countly redémarrera après que les modifications prennent effet +plugins.please-wait = Veuillez patienter jusqu'à ce que le processus soit terminé +plugins.dependents = Fonctionnalités dépendantes +plugins.disable-descendants = La désactivation de {0} entraînera également la désactivation des plugins dépendants ({1}). Voulez-vous continuer ? +plugins.enable-ancestors = L'activation de {0} entraînera également l'activation des plugins requis ({1}). Voulez-vous continuer ? +plugins.yes-i-want-to-continue = Oui, je veux continuer +plugins.indirect-status-change = Changement d'état indirect +plugins.no-access = Vous n'avez accès à aucune application, contactez l'administrateur. -configs.not-changed = Settings not changed -configs.not-saved = Could not save changes -configs.changed = Settings changed -configs.saved = Changes were successfully saved -configs.frontend = Frontend +configs.not-changed = Paramètres non modifiés +configs.not-saved = Impossible d'enregistrer les modifications +configs.changed = Paramètres modifiés +configs.saved = Les modifications ont été enregistrées avec succès +configs.frontend = Interface utilisateur configs.api = API -configs.regenerate = Regenerate -configs.logger = Incoming Data Logs -configs.apps = Apps -configs.logs = Logs -configs.security = Security -configs.frontend-google_maps_api_key = Google Maps Javascript API key -configs.frontend-production = Production mode -configs.frontend-session_timeout = Session timeout -configs.frontend-theme = Theme -configs.frontend-use_google = Use Google Services -configs.no-theme = Default Theme -configs.frontend-code = Show Code Generator for SDK integration -configs.frontend-offline_mode = Offline mode +configs.regenerate = Régénérer +configs.logger = Journaux de données entrantes +configs.apps = Applications +configs.logs = Journaux +configs.security = Sécurité +configs.frontend-google_maps_api_key = Clé API Google Maps Javascript +configs.frontend-production = Mode production +configs.frontend-session_timeout = Délai d'expiration de session +configs.frontend-theme = Thème +configs.frontend-use_google = Utiliser les services Google +configs.no-theme = Thème par défaut +configs.frontend-code = Afficher le générateur de code pour l'intégration SDK +configs.frontend-offline_mode = Mode hors ligne configs.frontend-countly_tracking = Countly -configs.frontend-self_tracking = Self-tracking using Countly -configs.frontend-self_tracking.none = -- Not tracked -- -configs.security-login_tries = Allowed login attempts -configs.security-login_wait = Incorrect login block time increment -configs.security-dashboard_additional_headers = Additional Dashboard HTTP Response headers +configs.frontend-self_tracking = Auto-suivi avec Countly +configs.frontend-self_tracking.none = -- Non suivi -- +configs.security-login_tries = Tentatives de connexion autorisées +configs.security-login_wait = Incrément de temps de blocage pour connexion incorrecte +configs.security-dashboard_additional_headers = En-têtes HTTP de réponse supplémentaires du tableau de bord configs.security-robotstxt = Robots.txt -configs.security-proxy_hostname = Proxy Hostname -configs.security-proxy_port = Proxy Port -configs.security-proxy_username = Proxy Username -configs.security-proxy_password = Proxy Password -configs.security-proxy_type = Proxy Type -configs.security-password_min = Minimum password length -configs.security-password_char = Password must contain an uppercase character -configs.security-password_number = Password must contain a number -configs.security-password_symbol = Password must contain a special symbol -configs.security-password_expiration = Password expiration (in days) -configs.security-password_rotation = Password rotation -configs.security-password_autocomplete = Password autocomplete -configs.api-domain = Server URL (used in outgoing emails) -configs.api-safe = Safer API responses -configs.api-session_duration_limit = Maximal Session Duration -configs.api-city_data = Track city data -configs.api-country_data = Track country data -configs.api-trim_trailing_ending_spaces= Trim trailing and ending spaces -configs.api-array_list_limit = Max length of array-type properties -configs.api-event_limit = Max unique event keys -configs.api-event_segmentation_limit = Max segmentation in each event -configs.api-event_segmentation_value_limit = Max unique values in each segmentation -configs.api-sync_plugins = Sync plugin states -configs.api-session_cooldown = Session cooldown (seconds) -configs.api-total_users = Total users -configs.api-metric_limit = Metric limit -configs.api-metric_changes = Record metric changes -configs.api-request_threshold = Request threshold (seconds) +configs.security-proxy_hostname = Nom d'hôte du proxy +configs.security-proxy_port = Port du proxy +configs.security-proxy_username = Nom d'utilisateur du proxy +configs.security-proxy_password = Mot de passe du proxy +configs.security-proxy_type = Type de proxy +configs.security-password_min = Longueur minimale du mot de passe +configs.security-password_char = Le mot de passe doit contenir une majuscule +configs.security-password_number = Le mot de passe doit contenir un chiffre +configs.security-password_symbol = Le mot de passe doit contenir un symbole spécial +configs.security-password_expiration = Expiration du mot de passe (en jours) +configs.security-password_rotation = Rotation du mot de passe +configs.security-password_autocomplete = Autocomplétion du mot de passe +configs.api-domain = URL du serveur (utilisée dans les e-mails sortants) +configs.api-safe = Réponses API plus sûres +configs.api-session_duration_limit = Durée maximale de session +configs.api-city_data = Suivre les données de ville +configs.api-country_data = Suivre les données de pays +configs.api-trim_trailing_ending_spaces= Supprimer les espaces de début et de fin +configs.api-array_list_limit = Longueur max des propriétés de type tableau +configs.api-event_limit = Clés d'événements uniques max +configs.api-event_segmentation_limit = Segmentation max dans chaque événement +configs.api-event_segmentation_value_limit = Valeurs uniques max dans chaque segmentation +configs.api-sync_plugins = Synchroniser les états des plugins +configs.api-session_cooldown = Délai de refroidissement de session (secondes) +configs.api-total_users = Utilisateurs totaux +configs.api-metric_limit = Limite de métriques +configs.api-metric_changes = Enregistrer les changements de métriques +configs.api-request_threshold = Seuil de requête (secondes) configs.api-export_limit = Document export limit configs.api-reports_regenerate_interval = Regeneration interval for reports configs.api-data_retention_period = Number of days granular data will be retained for configs.help.api-reports_regenerate_interval = Minimum report regeneration interval. If a report regeneration takes longer than the selected duration, it’ll be regenerated in the next closest interval configs.api-prevent_duplicate_requests = Prevent duplicate requests -configs.api-offline_mode = Offline mode -configs.api-batch_period = Batch write frequency -configs.api-batch_processing = Batch processing -configs.api-user_merge_paralel = Count of lined up merges to be processed in paralel -configs.help.api-user_merge_paralel = Do not increase this number unless server is suffering from long queue of unfinished merges. As more will be processed in paralel it will increase used resources. It is highly recommended to recheck SDK implementation instead of increasing paralel processing. -configs.api-batch_on_master = Batch writes on single process -configs.api-batch_read_processing = Cache reads for SDK API calls -configs.api-batch_read_on_master = Cached reads shared on single processs -configs.api-batch_read_ttl = Cached reads Time To Live -configs.api-batch_read_period = Cached reads update period -configs.security-api_additional_headers = Additional API HTTP Response headers -configs.apps-country = Default Country -configs.apps-category = Default Category -configs.apps-timezone = Application Timezone -configs.account-settings = Account Settings -configs.core = Core +configs.api-offline_mode = Mode hors ligne +configs.api-batch_period = Fréquence d'écriture par lot +configs.api-batch_processing = Traitement par lots +configs.api-user_merge_paralel = Nombre de fusions en file d'attente à traiter en parallèle +configs.help.api-user_merge_paralel = N'augmentez pas ce nombre à moins que le serveur ne souffre d'une longue file d'attente de fusions non terminées. Plus il y en aura traitées en parallèle, plus cela augmentera les ressources utilisées. Il est fortement recommandé de revérifier l'implémentation du SDK au lieu d'augmenter le traitement parallèle. +configs.api-batch_on_master = Écritures par lots sur un seul processus +configs.api-batch_read_processing = Cache des lectures pour les appels API SDK +configs.api-batch_read_on_master = Lectures mises en cache partagées sur un seul processus +configs.api-batch_read_ttl = Durée de vie des lectures mises en cache +configs.api-batch_read_period = Période de mise à jour des lectures mises en cache +configs.security-api_additional_headers = En-têtes HTTP de réponse API supplémentaires +configs.apps-country = Pays par défaut +configs.apps-category = Catégorie par défaut +configs.apps-timezone = Fuseau horaire de l'application +configs.account-settings = Paramètres du compte +configs.core = Noyau configs.plugins = Plugins -configs.search-settings = Search in settings -configs.start-search= Start searching -configs.start-search-description= Type something and press enter to see the results +configs.search-settings = Rechercher dans les paramètres +configs.start-search= Commencer la recherche +configs.start-search-description= Tapez quelque chose et appuyez sur Entrée pour voir les résultats configs.no-search-result = ...hmm, there are no results configs.no-search-result-description = Try adjusting your search to find what you’re looking for configs.user-level-configuration = User Level Configuration configs.table-description = Settings in this section will override global settings for the user configs.security-dashboard_rate_limit_window = Dashboard Rate Limit Time (seconds) -configs.security-dashboard_rate_limit_requests = Dashboard Request Rate Limit -configs.danger-zone = Danger Zone -configs.password = Password -configs.fill-required-fields = Please fill all required fields -configs.delete-account = Delete Account -configs.cannot-be-undone = This action cannot be undone. -configs.will-permanently-delete = This will permanently delete your entire account. -configs.confirm-for-delete = If you want to delete your account, enter your password to confirm. -configs.cancel = Cancel -configs.delete-my-account = Delete my account -configs.change-password = Change password -configs.current-password = Current Password -configs.new-password = New Password -configs.confirmation = Confirm new password -configs.password-specification-1 = Use a password at least 15 letters long or at least -configs.password-specification-2 = 8 characters long with mixed letters and numbers. +configs.security-dashboard_rate_limit_requests = Limite de taux de requêtes du tableau de bord +configs.danger-zone = Zone de danger +configs.password = Mot de passe +configs.fill-required-fields = Veuillez remplir tous les champs obligatoires +configs.delete-account = Supprimer le compte +configs.cannot-be-undone = Cette action ne peut pas être annulée. +configs.will-permanently-delete = Ceci supprimera définitivement votre compte entier. +configs.confirm-for-delete = Si vous voulez supprimer votre compte, entrez votre mot de passe pour confirmer. +configs.cancel = Annuler +configs.delete-my-account = Supprimer mon compte +configs.change-password = Changer le mot de passe +configs.current-password = Mot de passe actuel +configs.new-password = Nouveau mot de passe +configs.confirmation = Confirmer le nouveau mot de passe +configs.password-specification-1 = Utilisez un mot de passe d'au moins 15 lettres ou au moins +configs.password-specification-2 = 8 caractères avec des lettres et des chiffres mélangés. configs.access_control_origin = Access-Control-Origin -configs.allow_access_control_origin = Allow Access-Control-Origin by listing separate origin (including https://) per line +configs.allow_access_control_origin = Autoriser Access-Control-Origin en listant une origine séparée (incluant https://) par ligne -configs.api.description = Main API settings -configs.api.batch = Batch processing -configs.api.cache = Cache management -configs.api.limits = Data limits -configs.api.others = Other API settings +configs.api.description = Paramètres API principaux +configs.api.batch = Traitement par lots +configs.api.cache = Gestion du cache +configs.api.limits = Limites de données +configs.api.others = Autres paramètres API -configs.overwritten.user = My account settings override this value -configs.overwritten.app = Application settings override this value +configs.overwritten.user = Les paramètres de mon compte remplacent cette valeur +configs.overwritten.app = Les paramètres de l'application remplacent cette valeur -configs.logs.default-level = Default Log Level for the rest -configs.logs.modules = Logging for separate features +configs.logs.default-level = Niveau de journal par défaut pour le reste +configs.logs.modules = Journalisation pour les fonctionnalités séparées -configs.logs.debug = Debug Level -configs.logs.info = Info Level -configs.logs.warn = Warning Level -configs.logs.error = Error Level -configs.logs.default = Default Level -configs.api-send_test_email = Send a test email to me +configs.logs.debug = Niveau de débogage +configs.logs.info = Niveau d'information +configs.logs.warn = Niveau d'avertissement +configs.logs.error = Niveau d'erreur +configs.logs.default = Niveau par défaut +configs.api-send_test_email = M'envoyer un e-mail de test -configs.delete_avatar_failed = Deleting avatar failed +configs.delete_avatar_failed = La suppression de l'avatar a échoué -configs.help.api-send_test_email = This will send an email to your email address stored in Countly. -configs.help.api-send_test_email_delivered = Test email successfully sent! -configs.help.api-send_test_email_failed = Sending test e-mail failed! -configs.help.api-send_test_email_subject = Countly test email -configs.help.api-send_test_email_message = Hi,

This is Countly test e-mail and it has been successfully delivered.


Enjoy,
A fellow Countly Admin +configs.help.api-send_test_email = Ceci enverra un e-mail à votre adresse e-mail stockée dans Countly. +configs.help.api-send_test_email_delivered = E-mail de test envoyé avec succès ! +configs.help.api-send_test_email_failed = L'envoi de l'e-mail de test a échoué ! +configs.help.api-send_test_email_subject = E-mail de test Countly +configs.help.api-send_test_email_message = Bonjour,

Ceci est un e-mail de test Countly et il a été livré avec succès.


Profitez-en,
Un autre administrateur Countly -configs.help.frontend-offline_mode = When enabled, Countly doesn’t connect to Intercom to enable in app chat, Google services to enable Google maps and Countly services to track anonymized service usage. -configs.help.frontend-countly_tracking = When enabled, Countly will be activated on this server to perform server-level analytics and gather user feedback to aid us in continuous product improvement. Personal user data/details or the data you process using this server will never be collected or analyzed. All data is sent exclusively to our dedicated Countly server located in Europe. -configs.help.frontend-production = Initial load of dashboard should be faster, due to smaller files and smaller file amount, but when developing a plugin, you need to regenerate them to see changes -configs.help.frontend-theme = Selected theme will be available server-wide, for all apps and users -configs.help.frontend-session_timeout = User will be forced to logout after session timeout (in minutes) of inactivity. If you want to disable force logout, set to 0. -configs.help.frontend-self_tracking = If you want to track usage of this server and users that are using the dashboard, select an app where to collect this data. Make sure to create a new app specifically for this purpose, or else you would merge collected data with existing. Data will only be stored on this server and will not be sent anywhere else. By selecting an app, you will enabling tracking of this server and it will count towards your datapoint quota. The scale of datapoints will depend on your user count and often usage of this dashboard. -configs.help.security-login_tries = Account will be blocked for some time after provided number of incorrect login attempts. See below for time increments. -configs.help.security-login_wait = Incremental period of time account is blocked after provided number of incorrect login attempts (in seconds) -configs.help.security-password_rotation = Amount of previous passwords user should not be able to reuse -configs.help.security-password_autocomplete = Enable or disable autocomplete on prelogin forms -configs.help.security-robotstxt = Customize to tell search robots what is indexable and what is not -configs.help.security-proxy_hostname = Add your proxy hostname -configs.help.security-proxy_port = Add your proxy port number -configs.help.security-proxy_username = Add your proxy username -configs.help.security-proxy_password = Add your proxy password -configs.help.security-proxy_type = Choose your proxy type -configs.help.api-offline_mode = When enabled, API connections are disabled for email report news, checking new SDKs, pinging external IPs, checking new blogs and making Intercom connections. -configs.help.api-domain = This is the full qualified domain name used in outgoing emails. It should be in the form of http://SERVERNAME or https://SERVERNAME -configs.help.api-safe = If enabled, server will verify key parameters and respond with error or success. This increases server overhead, so use with care. -configs.help.api-session_duration_limit = Maximum session duration value in seconds allowed in any request. If a request contains a session duration higher than this value, it will be capped. -configs.help.api-city_data = Enable tracking city level data in dashboard. If disabled, city information will no longer be added or updated for users. -configs.help.api-country_data = Enable tracking country level data in dashboard. If disabled, country information will no longer be added or updated for users. -configs.help.api-trim_trailing_ending_spaces = If enabled, all trailing and ending spaces will be trimmed from all incoming data. -configs.help.api-event_limit = Maximum number of event keys stored in database. Increasing this number may seriously affect your server performance. -configs.help.api-array_list_limit = If an event segment or custom user property value is an array and its length exceeds the maximum array length set in this setting, only the first n values (where n is the maximum array length) will be retained and any additional values will be discarded. -configs.help.api-event_segmentation_limit = Maximum number of segmentations per custom events. Increasing this number may affect your server performance. -configs.help.api-event_segmentation_value_limit = Maximum number of unique values in each segmentation. Increasing this number may affect your server performance. -configs.help.api-sync_plugins = Toggling plugin will propagate state to all servers with same database. Enabling would propagate plugin state to all server, but also have more overhead performing plugin state checks. -configs.help.api-session_cooldown = Time between session end and start when server will extend previous session instead of new -configs.help.api-total_users = If enabled, total users API will be enabled and used to override estimated total user counts in all reports. Enabling this will provide extra overhead, so consult Countly before enabling for highly loaded servers. -configs.help.api-data_retention_period = Specifies how long to keep granular data before deleting it (0 means never delete it). This setting will only delete granular level data and will not affect aggregated data you see in sections such as Overview and Analytics. -configs.help.api-metric_limit = Number of different metric values per annual period. Increasing this number may affect your server performance. -configs.help.api-metric_changes = Recording changes is required by Total users correction. Disable it if you know you won't be using Total users correction -configs.help.api-request_threshold = Time before switching to report manager if a drill, funnel or other similar dashboard functionality request takes too long to complete. This should not be longer than HTTP timeout, which by default is 60 seconds or you won't get any response. -configs.help.api-export_limit = Amount of lines in a CSV, PDF or CSV document exported in single file -configs.help.api-prevent_duplicate_requests = Stores and compares request hash to prevent duplicate requests -configs.help.api-batch_period = How often to commit batch writes to database (in seconds) -configs.help.api-batch_processing = Combine aggregated data writes together and commit to database with specific frequency -configs.help.api-batch_on_master = If enabled, all processes will send data to single process to commit to database. Helps if you have many CPU cores per instance -configs.help.api-batch_read_processing = Some reads that happen on each SDK call can be cached for reusing -configs.help.api-batch_read_on_master = This will share all cached reads on single proces instead of each process having their own cache. Helps if you have many CPU cores per instance -configs.help.api-batch_read_ttl = How long should cache be kept if unused (in seconds) -configs.help.api-batch_read_period = How often should cache be updated (in seconds) -configs.help.apps-country = Default country to be used when creating app with API and without a country -configs.help.apps-category = Default category to be used, when creating app with API and without a category -configs.help.logs-debug = Log fine-grained informational events that are most useful to debug an application -configs.help.logs-info = Log informational messages that highlight the progress of the application -configs.help.logs-warn = Log potentially harmful situations -configs.help.logs-error = Log error events that might still allow the application to continue running -configs.help.logs-default = Level of debug info of each module by default to output into log file under /log directory -configs.help.crashes-report_limit = Number of reports to display in each crash group's page +configs.help.frontend-offline_mode = Lorsque activé, Countly ne se connecte pas à Intercom pour activer le chat dans l'application, aux services Google pour activer Google Maps et aux services Countly pour suivre l'utilisation anonymisée du service. +configs.help.frontend-countly_tracking = Lorsque activé, Countly sera activé sur ce serveur pour effectuer des analyses au niveau du serveur et recueillir les commentaires des utilisateurs pour nous aider dans l'amélioration continue du produit. Les données/détails personnels des utilisateurs ou les données que vous traitez en utilisant ce serveur ne seront jamais collectées ou analysées. Toutes les données sont envoyées exclusivement à notre serveur Countly dédié situé en Europe. +configs.help.frontend-production = Le chargement initial du tableau de bord devrait être plus rapide, en raison de fichiers plus petits et d'un nombre de fichiers plus petit, mais lors du développement d'un plugin, vous devez les régénérer pour voir les changements +configs.help.frontend-theme = Le thème sélectionné sera disponible pour tout le serveur, pour toutes les applications et tous les utilisateurs +configs.help.frontend-session_timeout = L'utilisateur sera forcé de se déconnecter après le délai d'expiration de session (en minutes) d'inactivité. Si vous voulez désactiver la déconnexion forcée, définissez à 0. +configs.help.frontend-self_tracking = Si vous voulez suivre l'utilisation de ce serveur et les utilisateurs qui utilisent le tableau de bord, sélectionnez une application où collecter ces données. Assurez-vous de créer une nouvelle application spécifiquement à cette fin, sinon vous fusionneriez les données collectées avec celles existantes. Les données ne seront stockées que sur ce serveur et ne seront envoyées nulle part ailleurs. En sélectionnant une application, vous activerez le suivi de ce serveur et cela comptera dans votre quota de points de données. L'échelle des points de données dépendra de votre nombre d'utilisateurs et de l'utilisation fréquente de ce tableau de bord. +configs.help.security-login_tries = Le compte sera bloqué pendant un certain temps après le nombre fourni de tentatives de connexion incorrectes. Voir ci-dessous pour les incréments de temps. +configs.help.security-login_wait = Période de temps incrémentielle pendant laquelle le compte est bloqué après le nombre fourni de tentatives de connexion incorrectes (en secondes) +configs.help.security-password_rotation = Nombre de mots de passe précédents que l'utilisateur ne devrait pas pouvoir réutiliser +configs.help.security-password_autocomplete = Activer ou désactiver l'autocomplétion sur les formulaires de pré-connexion +configs.help.security-robotstxt = Personnaliser pour dire aux robots de recherche ce qui est indexable et ce qui ne l'est pas +configs.help.security-proxy_hostname = Ajoutez le nom d'hôte de votre proxy +configs.help.security-proxy_port = Ajoutez le numéro de port de votre proxy +configs.help.security-proxy_username = Ajoutez le nom d'utilisateur de votre proxy +configs.help.security-proxy_password = Ajoutez le mot de passe de votre proxy +configs.help.security-proxy_type = Choisissez votre type de proxy +configs.help.api-offline_mode = Lorsque activé, les connexions API sont désactivées pour les nouvelles des rapports par e-mail, la vérification de nouveaux SDK, le ping d'IP externes, la vérification de nouveaux blogs et les connexions Intercom. +configs.help.api-domain = Ceci est le nom de domaine entièrement qualifié utilisé dans les e-mails sortants. Il devrait être sous la forme http://NOMSERVEUR ou https://NOMSERVEUR +configs.help.api-safe = Si activé, le serveur vérifiera les paramètres clés et répondra avec erreur ou succès. Ceci augmente la charge du serveur, donc utilisez avec précaution. +configs.help.api-session_duration_limit = Valeur maximale de durée de session en secondes autorisée dans toute requête. Si une requête contient une durée de session supérieure à cette valeur, elle sera plafonnée. +configs.help.api-city_data = Activer le suivi des données au niveau ville dans le tableau de bord. Si désactivé, les informations de ville ne seront plus ajoutées ou mises à jour pour les utilisateurs. +configs.help.api-country_data = Activer le suivi des données au niveau pays dans le tableau de bord. Si désactivé, les informations de pays ne seront plus ajoutées ou mises à jour pour les utilisateurs. +configs.help.api-trim_trailing_ending_spaces = Si activé, tous les espaces de début et de fin seront supprimés de toutes les données entrantes. +configs.help.api-event_limit = Nombre maximum de clés d'événements stockées dans la base de données. Augmenter ce nombre peut sérieusement affecter les performances de votre serveur. +configs.help.api-array_list_limit = Si un segment d'événement ou une valeur de propriété utilisateur personnalisée est un tableau et que sa longueur dépasse la longueur maximale de tableau définie dans ce paramètre, seules les premières n valeurs (où n est la longueur maximale de tableau) seront conservées et toutes les valeurs supplémentaires seront supprimées. +configs.help.api-event_segmentation_limit = Nombre maximum de segmentations par événements personnalisés. Augmenter ce nombre peut affecter les performances de votre serveur. +configs.help.api-event_segmentation_value_limit = Nombre maximum de valeurs uniques dans chaque segmentation. Augmenter ce nombre peut affecter les performances de votre serveur. +configs.help.api-sync_plugins = Basculer le plugin propagera l'état à tous les serveurs avec la même base de données. L'activation propagerait l'état du plugin à tous les serveurs, mais aurait aussi plus de charge pour effectuer les vérifications d'état des plugins. +configs.help.api-session_cooldown = Temps entre la fin et le début de session quand le serveur étendra la session précédente au lieu d'une nouvelle +configs.help.api-total_users = Si activé, l'API des utilisateurs totaux sera activée et utilisée pour remplacer les comptes estimés d'utilisateurs totaux dans tous les rapports. Activer ceci fournira une charge supplémentaire, donc consultez Countly avant d'activer pour des serveurs très chargés. +configs.help.api-data_retention_period = Spécifie combien de temps conserver les données granulaires avant de les supprimer (0 signifie ne jamais les supprimer). Ce paramètre ne supprimera que les données de niveau granulaire et n'affectera pas les données agrégées que vous voyez dans des sections comme Aperçu et Analytique. +configs.help.api-metric_limit = Nombre de valeurs de métriques différentes par période annuelle. Augmenter ce nombre peut affecter les performances de votre serveur. +configs.help.api-metric_changes = L'enregistrement des changements est requis par la correction des utilisateurs totaux. Désactivez-le si vous savez que vous n'utiliserez pas la correction des utilisateurs totaux +configs.help.api-request_threshold = Temps avant de basculer vers le gestionnaire de rapports si une requête de drill, entonnoir ou autre fonctionnalité similaire du tableau de bord prend trop de temps à se terminer. Ceci ne devrait pas être plus long que le délai d'expiration HTTP, qui par défaut est de 60 secondes ou vous n'obtiendrez aucune réponse. +configs.help.api-export_limit = Nombre de lignes dans un document CSV, PDF ou CSV exporté dans un seul fichier +configs.help.api-prevent_duplicate_requests = Stocke et compare le hachage de requête pour empêcher les requêtes dupliquées +configs.help.api-batch_period = À quelle fréquence engager les écritures par lots dans la base de données (en secondes) +configs.help.api-batch_processing = Combiner les écritures de données agrégées ensemble et les engager dans la base de données avec une fréquence spécifique +configs.help.api-batch_on_master = Si activé, tous les processus enverront des données à un seul processus pour les engager dans la base de données. Aide si vous avez beaucoup de cœurs CPU par instance +configs.help.api-batch_read_processing = Certaines lectures qui se produisent à chaque appel SDK peuvent être mises en cache pour la réutilisation +configs.help.api-batch_read_on_master = Ceci partagera toutes les lectures mises en cache sur un seul processus au lieu que chaque processus ait son propre cache. Aide si vous avez beaucoup de cœurs CPU par instance +configs.help.api-batch_read_ttl = Combien de temps le cache devrait-il être conservé s'il n'est pas utilisé (en secondes) +configs.help.api-batch_read_period = À quelle fréquence le cache devrait-il être mis à jour (en secondes) +configs.help.apps-country = Pays par défaut à utiliser lors de la création d'une application avec l'API et sans pays +configs.help.apps-category = Catégorie par défaut à utiliser lors de la création d'une application avec l'API et sans catégorie +configs.help.logs-debug = Journaliser les événements informationnels détaillés qui sont les plus utiles pour déboguer une application +configs.help.logs-info = Journaliser les messages informationnels qui mettent en évidence le progrès de l'application +configs.help.logs-warn = Journaliser les situations potentiellement dangereuses +configs.help.logs-error = Journaliser les événements d'erreur qui pourraient encore permettre à l'application de continuer à fonctionner +configs.help.logs-default = Niveau des informations de débogage de chaque module par défaut à afficher dans le fichier journal sous le répertoire /log +configs.help.crashes-report_limit = Nombre de rapports à afficher dans la page de chaque groupe de plantages configs.help.frontend-use_google = Disable this option, if you are in the country where Google services are blocked. If disabled, certain Google services (e.g maps) won’t be visible. configs.help.frontend-code = Display links for Countly Code generator under new app creation page. configs.help.security-dashboard_additional_headers = Add headers for Countly to use on Dashboard responses by default (one header per new line) configs.help.security-api_additional_headers = Add headers for Countly to use on API responses by default (one header per new line) configs.help.security-password_min = Minimum number of characters used in the password -configs.help.security-password_char = If enabled, provided passwords must contain at least one uppercase character. -configs.help.security-password_number = If enabled, provided passwords must contain at least one digit (e.g 0..9) -configs.help.security-password_symbol = If enabled, provided passwords must contain at least one special symbol (not a number or latin character) -configs.help.security-password_expiration = Number of days after which user must reset password -configs.help.user-level-configuration = Allow separate dashboard users to change these configs for their account only. -configs.help.security-dashboard_rate_limit_window = Will start blocking if request amount is reached in this time window -configs.help.security-dashboard_rate_limit_requests = How many requests to allow per time window? -configs.help.push-proxyhost = Hostname or IP address of HTTP CONNECT proxy server to use for communication with APN & FCM when sending push notifications. -configs.help.push-proxyport = Port number of the proxy server -configs.help.push-proxyuser = (if needed) Username for proxy server HTTP Basic authentication -configs.help.push-proxypass = (if needed) Password for proxy server HTTP Basic authentication -configs.help.push-proxyunauthorized = (if needed) Allow self signed certificates without CA installed +configs.help.security-password_char = Si activé, les mots de passe fournis doivent contenir au moins une majuscule. +configs.help.security-password_number = Si activé, les mots de passe fournis doivent contenir au moins un chiffre (par exemple 0..9) +configs.help.security-password_symbol = Si activé, les mots de passe fournis doivent contenir au moins un symbole spécial (pas un chiffre ou un caractère latin) +configs.help.security-password_expiration = Nombre de jours après lesquels l'utilisateur doit réinitialiser le mot de passe +configs.help.user-level-configuration = Permettre aux utilisateurs séparés du tableau de bord de modifier ces configurations pour leur compte uniquement. +configs.help.security-dashboard_rate_limit_window = Commencera à bloquer si le nombre de requêtes est atteint dans cette fenêtre de temps +configs.help.security-dashboard_rate_limit_requests = Combien de requêtes autoriser par fenêtre de temps ? +configs.help.push-proxyhost = Nom d'hôte ou adresse IP du serveur proxy HTTP CONNECT à utiliser pour la communication avec APN et FCM lors de l'envoi de notifications push. +configs.help.push-proxyport = Numéro de port du serveur proxy +configs.help.push-proxyuser = (si nécessaire) Nom d'utilisateur pour l'authentification HTTP Basic du serveur proxy +configs.help.push-proxypass = (si nécessaire) Mot de passe pour l'authentification HTTP Basic du serveur proxy +configs.help.push-proxyunauthorized = (si nécessaire) Autoriser les certificats auto-signés sans autorité de certification installée -systemlogs.action.change_configs = Setting Changed -systemlogs.action.change_plugins = Plugins Changed +systemlogs.action.change_configs = Paramètre modifié +systemlogs.action.change_plugins = Plugins modifiés diff --git a/plugins/populator/frontend/public/localization/populator_fr.properties b/plugins/populator/frontend/public/localization/populator_fr.properties index d081e33002c..b134b884bab 100644 --- a/plugins/populator/frontend/public/localization/populator_fr.properties +++ b/plugins/populator/frontend/public/localization/populator_fr.properties @@ -1,216 +1,220 @@ #populator -populator.plugin-title = Data Populator -populator.plugin-description = Populate a Countly app with random data (typically for testing or demonstration) -populator.title = Populate Data -populator.amount-users = Amount of user -populator.date-range = Date range -populator.date-from = Date from -populator.date-to = Date to -populator.start = Generate Demo Data -populator.stop = Stop Generating -populator.bulk = Bulk requests queued -populator.users = Users generated -populator.events = Events generated -populator.sessions = Sessions generated -populator.extends = Sessions extended -populator.duration = Total session duration -populator.requests = Requests generated -populator.push-users = Messaging enabled users -populator.purchases = Purchases made -populator.crashes = Crashes occured -populator.maxtime = Maximum time to run (seconds) -populator.warning1 = This plugin populates data for {0} -populator.warning2 = Make sure your app doesn't involve real data, otherwise it will conflict with generated data. -populator.help = Select the start and end dates of user activities and press "Start Generating". Countly populator will generate user data and emulate their behaviour with sessions, events, etc. The longer you let populator run, the more frequent sessions and events users will have in the selected time period. To stop process, simply click "Stop Generating" button. -populator.yes-populate-data = Yes, populate data -populator.no-populate-data = No, don't do that -populator.demo-data = Demo data -populator.warning3 = This feature generates random, non-real sample data for your current application. Do not populate data if the current application has collected real user data. -populator.warning4 = Do not forget to create another application, or completely remove pregenerated data, before sending production level data. -populator.tooltip = Populate app with random data for demo after creation -populator.templates-tooltip = Manage your templates for data population -populator.success = Click on Continue to refresh the page and go to dashboard. -populator.generating = Generating ... -populator.sub-title = Generate data for your app in an easy way -populator.description = This plugin will start generating completely randomized, non-real sample data for your current application. It will help you understand how your Countly user interface will look like, once you start collecting real data. Do not forget to create another application, or completely remove pregenerated data, before sending production level data. -populator.finished-confirm-title = Finished populating data -populator.finished-confirm-sub-title = Your data is ready to go. Do you want to go to the Home to see it? -populator.go-to-homepage = Yes, take me to the Home -populator.cancel = No, stay in Data Populator -populator.locked-title = Application is locked -populator.locked-description = In order to use data populator you have to unlock this application from Application Management. -systemlogs.action.populator_run = Populator Started -populator.populator-tab-title = Populate -populator.templates-tab-title = Templates -populator.templates-view-title = App Templates -populator.template = Template +populator.plugin-title = Générateur de données +populator.plugin-description = Peupler une application Countly avec des données aléatoires (généralement pour populator.number-of-runs-tooltip = Chaque exécution passera par chaque utilisateur unique dans l'environnement/modèle et déclenchera une séquence par utilisateur +populator.data-template = Modèle de données +populator.data-template-tooltip = Choisissez un modèle pour le peuplement de données. Si vous ne trouvez pas de modèle approprié, vous pouvez en créer un nouveau depuis l'onglet "Modèles" ci-dessus. +populator.environment = Environnement +populator.environment-tooltip = Choisissez un environnement pour le peuplement de données. Si aucun environnement n'est disponible, initiez le générateur avec un modèle d'abord puis sauvegardez pour créer un environnement. Les environnements vous permettent d'exécuter le générateur avec un ensemble d'utilisateurs cohérent, garantissant des données uniformes sur plusieurs exécutions.ests ou la démonstration) +populator.title = Peupler les données +populator.amount-users = Nombre d'utilisateurs +populator.date-range = Plage de dates +populator.date-from = Date de début +populator.date-to = Date de fin +populator.start = Générer des données de démonstration +populator.stop = Arrêter la génération +populator.bulk = Requêtes groupées en file d'attente +populator.users = Utilisateurs générés +populator.events = Événements générés +populator.sessions = Sessions générées +populator.extends = Sessions étendues +populator.duration = Durée totale de session +populator.requests = Requêtes générées +populator.push-users = Utilisateurs avec messagerie activée +populator.purchases = Achats effectués +populator.crashes = Plantages survenus +populator.maxtime = Temps maximum d'exécution (secondes) +populator.warning1 = Ce plugin peuple les données pour {0} +populator.warning2 = Assurez-vous que votre application n'implique pas de vraies données, sinon cela entrera en conflit avec les données générées. +populator.help = Sélectionnez les dates de début et de fin des activités utilisateur et appuyez sur "Commencer la génération". Le générateur Countly générera des données utilisateur et émulera leur comportement avec des sessions, événements, etc. Plus vous laissez le générateur fonctionner longtemps, plus les utilisateurs auront de sessions et d'événements fréquents dans la période sélectionnée. Pour arrêter le processus, cliquez simplement sur le bouton "Arrêter la génération". +populator.yes-populate-data = Oui, peupler les données +populator.no-populate-data = Non, ne pas faire ça +populator.demo-data = Données de démonstration +populator.warning3 = Cette fonctionnalité génère des données d'exemple aléatoires et non réelles pour votre application actuelle. Ne peuplez pas de données si l'application actuelle a collecté de vraies données utilisateur. +populator.warning4 = N'oubliez pas de créer une autre application, ou de supprimer complètement les données prégénérées, avant d'envoyer des données de niveau production. +populator.tooltip = Peupler l'application avec des données aléatoires pour la démonstration après création +populator.templates-tooltip = Gérer vos modèles pour le peuplement de données +populator.success = Cliquez sur Continuer pour actualiser la page et aller au tableau de bord. +populator.generating = Génération en cours... +populator.sub-title = Générer des données pour votre application de manière facile +populator.description = Ce plugin commencera à générer des données d'exemple complètement aléatoires et non réelles pour votre application actuelle. Cela vous aidera à comprendre à quoi ressemblera votre interface utilisateur Countly, une fois que vous commencerez à collecter de vraies données. N'oubliez pas de créer une autre application, ou de supprimer complètement les données prégénérées, avant d'envoyer des données de niveau production. +populator.finished-confirm-title = Fin du peuplement des données +populator.finished-confirm-sub-title = Vos données sont prêtes. Voulez-vous aller à l'accueil pour les voir ? +populator.go-to-homepage = Oui, emmenez-moi à l'accueil +populator.cancel = Non, rester dans le générateur de données +populator.locked-title = Application verrouillée +populator.locked-description = Pour utiliser le générateur de données, vous devez déverrouiller cette application depuis la gestion des applications. +systemlogs.action.populator_run = Générateur démarré +populator.populator-tab-title = Peupler +populator.templates-tab-title = Modèles +populator.templates-view-title = Modèles d'application +populator.template = Modèle populator.template-type = Type -populator.number-of-user-props = Number of User Properties -populator.number-of-users = Number of Users -populator.number-of-events = Events -populator.number-of-views = Views -populator.number-of-sequences = Sequences -populator.generated-on = Generated On -populator.edited-by = Edited by -populator.number-of-events = Number of Events -populator.create-new-template = Create New Template -populator.save-template = Save template -populator.save-environment = Save environment -populator.save-template-tooltip = By selecting this option, populated users and their attributes will be stored in an environment. Environments enable you to execute the populator with a consistent user set, ensuring uniform data across multiple runs. -populator.save = Save -populator.existing-environment-warning = There is already an environment called {0} that was associated with this template. If you want to continue, existing template will be overridden -populator.override-it = Yes, override it -populator.discard-changes = Discard changes -populator.create-template = Create Template -populator.drawer-title-edit = Edit Template -populator.drawer-title-duplicate = Duplicate Template -populator.drawer-save-template = Save Template -populator.template-name = Template Name -populator.custom-user-props = Custom User Properties -populator.events = Events -populator.add-custom-user-prop = + Add a Custom User Property -populator.add-custom-prop = + Add a Custom Property -populator-add-custom-prop-detail = Custom User Property Details -populator.add-segmentation = + Add Segmentation -populator.add-event = + Add Event -populator.event-name = Event Name -populator.event-details = Event Details -populator.user-prop-key = Key -populator.user-prop-values = Values (Comma separated) +populator.number-of-user-props = Nombre de propriétés utilisateur +populator.number-of-users = Nombre d'utilisateurs +populator.number-of-events = Événements +populator.number-of-views = Vues +populator.number-of-sequences = Séquences +populator.generated-on = Généré le +populator.edited-by = Modifié par +populator.number-of-events = Nombre d'événements +populator.create-new-template = Créer un nouveau modèle +populator.save-template = Sauvegarder le modèle +populator.save-environment = Sauvegarder l'environnement +populator.save-template-tooltip = En sélectionnant cette option, les utilisateurs peuplés et leurs attributs seront stockés dans un environnement. Les environnements vous permettent d'exécuter le générateur avec un ensemble d'utilisateurs cohérent, garantissant des données uniformes sur plusieurs exécutions. +populator.save = Sauvegarder +populator.existing-environment-warning = Il y a déjà un environnement appelé {0} qui était associé à ce modèle. Si vous voulez continuer, le modèle existant sera remplacé +populator.override-it = Oui, le remplacer +populator.discard-changes = Ignorer les modifications +populator.create-template = Créer un modèle +populator.drawer-title-edit = Modifier le modèle +populator.drawer-title-duplicate = Dupliquer le modèle +populator.drawer-save-template = Sauvegarder le modèle +populator.template-name = Nom du modèle +populator.custom-user-props = Propriétés utilisateur personnalisées +populator.events = Événements +populator.add-custom-user-prop = + Ajouter une propriété utilisateur personnalisée +populator.add-custom-prop = + Ajouter une propriété personnalisée +populator-add-custom-prop-detail = Détails de la propriété utilisateur personnalisée +populator.add-segmentation = + Ajouter une segmentation +populator.add-event = + Ajouter un événement +populator.event-name = Nom de l'événement +populator.event-details = Détails de l'événement +populator.user-prop-key = Clé +populator.user-prop-values = Valeurs (séparées par des virgules) populator.segmentation-key = Segmentation -populator.segmentation-values = Values (Comma separated) -populator.remove-event = Remove event -populator.template-type-default = Default -populator.template-type-custom = Custom -populator.duration-help-title = Use Duration property -populator.duration-help-subtitle = Duration property is for measuring the time it takes for a user to complete actions inside the app. -populator.sum-help-title = Use Sum property -populator.sum-help-subtitle = Sum property is a floating point number to track an additional numeric value for your event. -populator.app-template = App template -populator.select-template = Select an app template -populator.edit = Edit -populator.duplicate = Duplicate -populator.delete = Delete -populator.failed-to-fetch-templates = Failed to fetch templates -populator.failed-to-fetch-template = Failed to fetch template with id "{0}" -populator.failed-to-edit-template = Failed to edit template with id "{0}" -populator.failed-to-remove-template = Failed to remove template with id "{0}" -populator.failed-to-create-template = Failed to create template -populator.template-name-placeholder = Enter template name -populator.select-a-template-first = Please select a template to generate data with -populator.generating-data = Generating your data -populator.enter-your-key = Enter your key -populator.enter-your-event-name = Enter event name -populator.enter-your-values = Enter your values -populator.delete-property = Delete Property -populator.delete-event = Delete Event -populator.go-application-manager = Go to Application Manager -populator.delete-template-header = Delete Template -populator.delete-template-description = Are you sure you want to delete {0} template? -populator-success-create-template = Template created successfully. -populator-success-delete-template = Template deleted successfully. -populator-success-edit-template = Template edited successfully. +populator.segmentation-values = Valeurs (séparées par des virgules) +populator.remove-event = Supprimer l'événement +populator.template-type-default = Défaut +populator.template-type-custom = Personnalisé +populator.duration-help-title = Utiliser la propriété Durée +populator.duration-help-subtitle = La propriété Durée est pour mesurer le temps qu'il faut à un utilisateur pour accomplir des actions dans l'application. +populator.sum-help-title = Utiliser la propriété Somme +populator.sum-help-subtitle = La propriété Somme est un nombre à virgule flottante pour suivre une valeur numérique supplémentaire pour votre événement. +populator.app-template = Modèle d'application +populator.select-template = Sélectionner un modèle d'application +populator.edit = Modifier +populator.duplicate = Dupliquer +populator.delete = Supprimer +populator.failed-to-fetch-templates = Échec de récupération des modèles +populator.failed-to-fetch-template = Échec de récupération du modèle avec l'id "{0}" +populator.failed-to-edit-template = Échec de modification du modèle avec l'id "{0}" +populator.failed-to-remove-template = Échec de suppression du modèle avec l'id "{0}" +populator.failed-to-create-template = Échec de création du modèle +populator.template-name-placeholder = Saisir le nom du modèle +populator.select-a-template-first = Veuillez sélectionner un modèle pour générer des données +populator.generating-data = Génération de vos données +populator.enter-your-key = Saisir votre clé +populator.enter-your-event-name = Saisir le nom de l'événement +populator.enter-your-values = Saisir vos valeurs +populator.delete-property = Supprimer la propriété +populator.delete-event = Supprimer l'événement +populator.go-application-manager = Aller au gestionnaire d'applications +populator.delete-template-header = Supprimer le modèle +populator.delete-template-description = Êtes-vous sûr de vouloir supprimer le modèle {0} ? +populator-success-create-template = Modèle créé avec succès. +populator-success-delete-template = Modèle supprimé avec succès. +populator-success-edit-template = Modèle modifié avec succès. -populator-template.settings-of-your = Settings of your {0} -populator-template.users = Users -populator-template.events = Events -populator-template.views = Views -populator-template.sequences = Sequences -populator-template.behavior = Behavior -populator-template.select-settings = Select settings of your {0} for the population. {1} -populator-template.select-settings-sequence = Events or view properties are required to create sequences. -populator-template.unique-users = Unique users -populator-template.unique-users-tooltip = Number of unique users that will be generated -populator-template.platforms = Platforms -populator-template.platforms-tooltip = Select application platforms that will be generated -populator-template.property-details = Property Details -populator-template.empty-unset = Empty/Unset -populator-template.add-another-value = + Add Another Value -populator-template.add-condition = Add Condition -populator-template.property = Property -populator.template.select-a-user-property = Select a user property -populator-template.property-value = Property Value -populator.template.select-a-user-property-value = Select a user property value -populator-template.error-while-removing-value = There is no value to remove -populator-template.warning-while-removing-condition = You must have at least one value -populator-template.delete-condition = Delete Condition -populator-template.condition-is = Condition (If {0} = {1} ) -populator-template.condition-is-not = Condition (If {0} ≠ {1} ) -populator-template.condition-already-exists = Condition already exists -populator-template.probability = Probability -populator-template.probability-tooltip = Probability of the related value -populator-template.values = Value -populator-template.values-tooltip = Value of the user property -populator-template.user-prop-name = Name -populator-template.user-prop-name-tooltip = Name of the user property -populator-template.user-property-name-placeholder = Enter user property name -populator-template.add-sequence = + Add Sequence -populator-template.sequence-incremental = Sequence {0} -populator-template.steps = Steps -populator-template.add-step = + Add Step -populator.template.select-a-step-property = Select a step property -populator.template.select-a-step-property-value = Select {0} name -populator-template.event-details = Event Details -populator-template.event-name-tooltip = Name of the event -populator-template.enter-your-event-name = Enter your event name -populator-template.segment-details = Segment Details -populator-template.segment-name = Segment Name -populator-template.segment-name-tooltip = Name of the segment -populator-template.segment-values = Segment Value -populator-template.segment-values-tooltip = Value of the segment -populator-template.view-name = View Name -populator-template.view-name-tooltip = Name of the view -populator-template.enter-your-view-name = Enter your view name -populator-template.add-view = + Add View -populator-template.view-details = View Details -populator-template.warning-duplicate-value = {0} value duplicated in {1} section. Please update your value -populator-template.warning-duplicate-name = {0} name duplicated in {1} section. Please update the name -populator.number-of-runs = Number of runs +populator-template.settings-of-your = Paramètres de votre {0} +populator-template.users = Utilisateurs +populator-template.events = Événements +populator-template.views = Vues +populator-template.sequences = Séquences +populator-template.behavior = Comportement +populator-template.select-settings = Sélectionnez les paramètres de votre {0} pour le peuplement. {1} +populator-template.select-settings-sequence = Les propriétés d'événements ou de vues sont requises pour créer des séquences. +populator-template.unique-users = Utilisateurs uniques +populator-template.unique-users-tooltip = Nombre d'utilisateurs uniques qui seront générés +populator-template.platforms = Plateformes +populator-template.platforms-tooltip = Sélectionnez les plateformes d'application qui seront générées +populator-template.property-details = Détails de la propriété +populator-template.empty-unset = Vide/Non défini +populator-template.add-another-value = + Ajouter une autre valeur +populator-template.add-condition = Ajouter une condition +populator-template.property = Propriété +populator.template.select-a-user-property = Sélectionner une propriété utilisateur +populator-template.property-value = Valeur de propriété +populator.template.select-a-user-property-value = Sélectionner une valeur de propriété utilisateur +populator-template.error-while-removing-value = Il n'y a pas de valeur à supprimer +populator-template.warning-while-removing-condition = Vous devez avoir au moins une valeur +populator-template.delete-condition = Supprimer la condition +populator-template.condition-is = Condition (Si {0} = {1} ) +populator-template.condition-is-not = Condition (Si {0} ≠ {1} ) +populator-template.condition-already-exists = La condition existe déjà +populator-template.probability = Probabilité +populator-template.probability-tooltip = Probabilité de la valeur associée +populator-template.values = Valeur +populator-template.values-tooltip = Valeur de la propriété utilisateur +populator-template.user-prop-name = Nom +populator-template.user-prop-name-tooltip = Nom de la propriété utilisateur +populator-template.user-property-name-placeholder = Saisir le nom de la propriété utilisateur +populator-template.add-sequence = + Ajouter une séquence +populator-template.sequence-incremental = Séquence {0} +populator-template.steps = Étapes +populator-template.add-step = + Ajouter une étape +populator.template.select-a-step-property = Sélectionner une propriété d'étape +populator.template.select-a-step-property-value = Sélectionner le nom de {0} +populator-template.event-details = Détails de l'événement +populator-template.event-name-tooltip = Nom de l'événement +populator-template.enter-your-event-name = Saisir le nom de votre événement +populator-template.segment-details = Détails du segment +populator-template.segment-name = Nom du segment +populator-template.segment-name-tooltip = Nom du segment +populator-template.segment-values = Valeur du segment +populator-template.segment-values-tooltip = Valeur du segment +populator-template.view-name = Nom de la vue +populator-template.view-name-tooltip = Nom de la vue +populator-template.enter-your-view-name = Saisir le nom de votre vue +populator-template.add-view = + Ajouter une vue +populator-template.view-details = Détails de la vue +populator-template.warning-duplicate-value = Valeur {0} dupliquée dans la section {1}. Veuillez mettre à jour votre valeur +populator-template.warning-duplicate-name = Nom {0} dupliqué dans la section {1}. Veuillez mettre à jour le nom +populator.number-of-runs = Nombre d'exécutions populator.number-of-runs-tooltip = Each run will go through each unique user in the environment/template and will trigger one sequence per user populator.data-template = Data template populator.data-template-tooltip = Choose a template for data population. If you can't find a suitable template, you can create a new one from the “Templates” tab above.' populator.environment = Environment populator.environment-tooltip = Choose an environment for data population. If no environments are available, initiate the populator with a template first and then save to create an environment. Environments enable you to execute the populator with a consistent user set, ensuring uniform data across multiple runs. -populator.select-template = Select a template -populator.select-environment = Select an evironment -populator.save-as-environment = Enter an environment name -populator.pop-with-temp = Populate with Template -populator.pop-with-env = Populate with Environment -populator-template.general = General -populator-template.time-between-runs = Time between runs -populator-template.hour = hour(s) -populator-template.sequence-probabilities = Sequence Probabilities -populator-template.random-sequence = Random Sequence -populator-template.error-while-adding-condition = There is an error while adding condition -populator-template.disabled-switch-message = You need to add at least a user property and a sequence to add behavior -populator-template.warning-message-when-adding-empty-value = You are not allowed to add empty values twice! -populator.failed-to-fetch-environments = There was an error while fetching environments -populator.delete-environment = Delete Environment -populator.user-name = User Name -populator.platform = Platform -populator.device = Device -populator.back-to-template = Back to Template -populator.environment-delete-warning-title = Delete Environment -populator.environment-delete-warning-description = Are you sure you want to delete {0} environment? -populator-success-delete-environment = Environment deleted successfully -populator.failed-to-delete-environment = There was an error while deleting environment -populator.no-data-fetch-environment = No data found for this environment -populator.warning-environment-users = In this environment, {0} detected users exist, but a total of {1} users are expected based on the template. {2} additional users will be created to meet the target. -populator-template.delete-warning-used-in-condition = The value that you are deleting is being used {0} condition. Please edit them before deleting. -populator.failed-message-regenerate-metadata = Failed to regenerate metadata -populator-template.warning-probability-validation-users-condition = In the users section, sum of the values under {0} condition does not equal to 100 for {1} name -populator-template.warning-probability-validation-users = In the users section, sum of the values does not equal to 100 for {0} name -populator-template.warning-probability-validation-events = In the {0} section, sum of the values does not equal to 100 for {1} segment name -populator-template.warning-probability-validation-events-condition = In the {0} section, sum of the values under {1} condition does not equal to 100 for {2} segment name -populator-template.warning-probability-validation = Sum of the values under the {1} key in the {0} section does not equal 100 -populator-template.warning-probability-validation-behavior = In the behavior section, sum of the values of sequences does not equal to 100 -populator-template.warning-probability-validation-behavior-condition = In the behavior section, sum of the values does not equal to 100 under {0} condition -populator-template.condition-value-tooltip = The value you expect to be created if the condition is met -populator.select-environment = Select an environment -populator.warning-generate-users = Populator can't fully support generating data in given timerange for selected template. There is high chance of having more sessions/events towards end of period. You can modify chosen period and populate then -populator.warning-generate-users-header = There is a high chance of spike -populator-template.add-step-tooltip = Events or view properties are required to add steps to sequences. -populator.error-salt = You should remove the salt for checksum value from application settings to continue using the populator -populator.include-features = Include Features -populator.select-features = Select features -populator.include-features-tooltip = The selected features will be populated with sample data +populator.select-template = Sélectionner un modèle +populator.select-environment = Sélectionner un environnement +populator.save-as-environment = Saisir un nom d'environnement +populator.pop-with-temp = Peupler avec un modèle +populator.pop-with-env = Peupler avec un environnement +populator-template.general = Général +populator-template.time-between-runs = Temps entre les exécutions +populator-template.hour = heure(s) +populator-template.sequence-probabilities = Probabilités de séquence +populator-template.random-sequence = Séquence aléatoire +populator-template.error-while-adding-condition = Il y a une erreur lors de l'ajout de condition +populator-template.disabled-switch-message = Vous devez ajouter au moins une propriété utilisateur et une séquence pour ajouter un comportement +populator-template.warning-message-when-adding-empty-value = Vous n'êtes pas autorisé à ajouter des valeurs vides deux fois ! +populator.failed-to-fetch-environments = Il y a eu une erreur lors de la récupération des environnements +populator.delete-environment = Supprimer l'environnement +populator.user-name = Nom d'utilisateur +populator.platform = Plateforme +populator.device = Appareil +populator.back-to-template = Retour au modèle +populator.environment-delete-warning-title = Supprimer l'environnement +populator.environment-delete-warning-description = Êtes-vous sûr de vouloir supprimer l'environnement {0} ? +populator-success-delete-environment = Environnement supprimé avec succès +populator.failed-to-delete-environment = Il y a eu une erreur lors de la suppression de l'environnement +populator.no-data-fetch-environment = Aucune donnée trouvée pour cet environnement +populator.warning-environment-users = Dans cet environnement, {0} utilisateurs détectés existent, mais un total de {1} utilisateurs sont attendus selon le modèle. {2} utilisateurs supplémentaires seront créés pour atteindre l'objectif. +populator-template.delete-warning-used-in-condition = La valeur que vous supprimez est utilisée dans {0} condition. Veuillez les modifier avant de supprimer. +populator.failed-message-regenerate-metadata = Échec de la régénération des métadonnées +populator-template.warning-probability-validation-users-condition = Dans la section utilisateurs, la somme des valeurs sous la condition {0} n'égale pas 100 pour le nom {1} +populator-template.warning-probability-validation-users = Dans la section utilisateurs, la somme des valeurs n'égale pas 100 pour le nom {0} +populator-template.warning-probability-validation-events = Dans la section {0}, la somme des valeurs n'égale pas 100 pour le nom de segment {1} +populator-template.warning-probability-validation-events-condition = Dans la section {0}, la somme des valeurs sous la condition {1} n'égale pas 100 pour le nom de segment {2} +populator-template.warning-probability-validation = La somme des valeurs sous la clé {1} dans la section {0} n'égale pas 100 +populator-template.warning-probability-validation-behavior = Dans la section comportement, la somme des valeurs des séquences n'égale pas 100 +populator-template.warning-probability-validation-behavior-condition = Dans la section comportement, la somme des valeurs n'égale pas 100 sous la condition {0} +populator-template.condition-value-tooltip = La valeur que vous attendez à être créée si la condition est remplie +populator.select-environment = Sélectionner un environnement +populator.warning-generate-users = Le générateur ne peut pas entièrement supporter la génération de données dans la plage de temps donnée pour le modèle sélectionné. Il y a une forte probabilité d'avoir plus de sessions/événements vers la fin de la période. Vous pouvez modifier la période choisie et peupler ensuite +populator.warning-generate-users-header = Il y a une forte probabilité de pic +populator-template.add-step-tooltip = Les propriétés d'événements ou de vues sont requises pour ajouter des étapes aux séquences. +populator.error-salt = Vous devez supprimer le salt pour la valeur de somme de contrôle des paramètres d'application pour continuer à utiliser le générateur +populator.include-features = Inclure les fonctionnalités +populator.select-features = Sélectionner les fonctionnalités +populator.include-features-tooltip = Les fonctionnalités sélectionnées seront peuplées avec des données d'exemple diff --git a/plugins/push/frontend/public/localization/push_fr.properties b/plugins/push/frontend/public/localization/push_fr.properties index e3c2aee5220..e69968441de 100755 --- a/plugins/push/frontend/public/localization/push_fr.properties +++ b/plugins/push/frontend/public/localization/push_fr.properties @@ -1,467 +1,467 @@ -push-notification.title = Push Notifications -push-notification.description = An overview of all push notifications sent, along with the user actions performed in response. -push-notification.one-time = One-time Notifications -push-notification.automated = Automated Notifications -push-notification.transactional = API Notifications -push-notification.total-app-users = Total App Users -push-notification.enabled-users = Notification-enabled Users -push-notification.enabled-users-percentage = Enabled Users Percentage -push-notification.enabled-users-percentage-description = The number of users who have agreed to receive notifications, expressed as a percentage of the total number of app users. -push-notification.platform-filter-label-one-time = One-time notifications for -push-notification.platform-filter-label-automatic = Automatic notifications for -push-notification.platform-filter-label-transactional = Transactional notifications for -push-notification.platform-filter-all = All Platforms +push-notification.title = Notifications push +push-notification.description = Un aperçu de toutes les notifications push envoyées, ainsi que des actions utilisateur effectuées en réponse. +push-notification.one-time = Notifications ponctuelles +push-notification.automated = Notifications automatisées +push-notification.transactional = Notifications API +push-notification.total-app-users = Utilisateurs totaux de l'application +push-notification.enabled-users = Utilisateurs avec notifications activées +push-notification.enabled-users-percentage = Pourcentage d'utilisateurs activés +push-notification.enabled-users-percentage-description = Le nombre d'utilisateurs qui ont accepté de recevoir des notifications, exprimé en pourcentage du nombre total d'utilisateurs de l'application. +push-notification.platform-filter-label-one-time = Notifications ponctuelles pour +push-notification.platform-filter-label-automatic = Notifications automatiques pour +push-notification.platform-filter-label-transactional = Notifications transactionnelles pour +push-notification.platform-filter-all = Toutes les plateformes push-notification.platform-filter-android = Android push-notification.platform-filter-ios = IOS -push-notification.status-filter-all = All Messages -push-notification.create-button = New Message -push-notification.time-period = TIME PERIOD -push-notification.created-by = Created by -push-notification.unknown-error = Unknown error occurred. Please try again later or contact support team. -push-notification.sent-serie-name = Notifications Sent -push-notification.sent-serie-description = Total number of notifications sent in the selected time period. -push-notification.actions-performed-serie-name = Actions Performed -push-notification.actions-performed-serie-description = Total number of user actions performed in response to sent notifications within the selected time period. -push-notification.table-notification-name = Notification name -push-notification.table-status = Status -push-notification.table-created = Created -push-notification.table-date-sent = Date Sent/Scheduled -push-notification.table-sent = Sent -push-notification.table-actioned = Actioned -push-notification.table-created-by = Created By -push-notification.table-message-content = Message Content -push-notification.duplicate = Duplicate -push-notification.delete = Delete -push-notification.resend = Resend -push-notification.approve = Approve -push-notification.reject = Reject -push-notification.start = Start -push-notification.stop = Stop -push-notification.edit-draft = Edit Draft -push-notification.edit = Edit -push-notification.sent = Sent -push-notification.sending = Sending -push-notification.created = Created -push-notification.draft = Draft -push-notification.waiting-for-approval = Waiting for approval -push-notification.aborted = Aborted -push-notification.failed = Failed -push-notification.stopped = Stopped -push-notification.scheduled = Scheduled -push-notification.rejected = Rejected -push-notification.time-chart-period-weekly = Weekly -push-notification.time-chart-period-monthly = Monthly -push-notification.time-chart-period-daily= Daily -push-notification.now = Now -push-notification.right-before-sending-the-message = Right before sending the message -push-notification.segmented-push-enabled-users = Segmented push-enabled users -push-notification.delivery-type = Delivery Type -push-notification.delivery-timeframe = Delivery Timeframe -push-notification.delivery-timeframe-description = Select the time to start sending automated notifications to users. -push-notification.trigger-type = Trigger Type -push-notification.ios-badge-number-setting = IOS badge number -push-notification.ios-json-data-setting = IOS JSON data -push-notification.ios-user-data-setting = IOS user data -push-notification.android-badge-number-setting = Android badge number -push-notification.android-json-data-setting = Android JSON data -push-notification.android-user-data-setting = Android user data -internal-events.[CLY]_push_sent = Push sent -internal-events.[CLY]_push_action = Push action +push-notification.status-filter-all = Tous les messages +push-notification.create-button = Nouveau message +push-notification.time-period = PÉRIODE +push-notification.created-by = Créé par +push-notification.unknown-error = Une erreur inconnue s'est produite. Veuillez réessayer plus tard ou contacter l'équipe de support. +push-notification.sent-serie-name = Notifications envoyées +push-notification.sent-serie-description = Nombre total de notifications envoyées dans la période sélectionnée. +push-notification.actions-performed-serie-name = Actions effectuées +push-notification.actions-performed-serie-description = Nombre total d'actions utilisateur effectuées en réponse aux notifications envoyées dans la période sélectionnée. +push-notification.table-notification-name = Nom de la notification +push-notification.table-status = Statut +push-notification.table-created = Créé +push-notification.table-date-sent = Date d'envoi/programmée +push-notification.table-sent = Envoyé +push-notification.table-actioned = Action effectuée +push-notification.table-created-by = Créé par +push-notification.table-message-content = Contenu du message +push-notification.duplicate = Dupliquer +push-notification.delete = Supprimer +push-notification.resend = Renvoyer +push-notification.approve = Approuver +push-notification.reject = Rejeter +push-notification.start = Démarrer +push-notification.stop = Arrêter +push-notification.edit-draft = Modifier le brouillon +push-notification.edit = Modifier +push-notification.sent = Envoyé +push-notification.sending = Envoi en cours +push-notification.created = Créé +push-notification.draft = Brouillon +push-notification.waiting-for-approval = En attente d'approbation +push-notification.aborted = Abandonné +push-notification.failed = Échec +push-notification.stopped = Arrêté +push-notification.scheduled = Programmé +push-notification.rejected = Rejeté +push-notification.time-chart-period-weekly = Hebdomadaire +push-notification.time-chart-period-monthly = Mensuel +push-notification.time-chart-period-daily= Quotidien +push-notification.now = Maintenant +push-notification.right-before-sending-the-message = Juste avant d'envoyer le message +push-notification.segmented-push-enabled-users = Utilisateurs segmentés avec push activé +push-notification.delivery-type = Type de livraison +push-notification.delivery-timeframe = Créneau de livraison +push-notification.delivery-timeframe-description = Sélectionnez l'heure pour commencer à envoyer des notifications automatisées aux utilisateurs. +push-notification.trigger-type = Type de déclencheur +push-notification.ios-badge-number-setting = Numéro de badge iOS +push-notification.ios-json-data-setting = Données JSON iOS +push-notification.ios-user-data-setting = Données utilisateur iOS +push-notification.android-badge-number-setting = Numéro de badge Android +push-notification.android-json-data-setting = Données JSON Android +push-notification.android-user-data-setting = Données utilisateur Android +internal-events.[CLY]_push_sent = Push envoyé +internal-events.[CLY]_push_action = Action push push-notification.android = Android push-notification.ios = iOS # Drawer -push-notification.drawer-step-one = Info & Targeting -push-notification.drawer-step-two = Delivery -push-notification.drawer-step-three = Push Content -push-notification.drawer-step-four = Review -push-notification.save = Save -push-notification.send-for-approval = Send for approval -push-notification.save-as-draft = Save as draft -push-notification.create-one-time-notification = Create One-Time Push Notification -push-notification.create-automated-notification = Create Automated Push Notification -push-notification.create-transactional-notification = Create API Push Notification -push-notification.notification-name = Notification Name -push-notification.notification-name-description = Set the name of push notification (optional). -push-notification.enter-notification-name = Enter Notification Name -push-notification.platforms = Platforms +push-notification.drawer-step-one = Info et ciblage +push-notification.drawer-step-two = Livraison +push-notification.drawer-step-three = Contenu push +push-notification.drawer-step-four = Révision +push-notification.save = Enregistrer +push-notification.send-for-approval = Envoyer pour approbation +push-notification.save-as-draft = Enregistrer comme brouillon +push-notification.create-one-time-notification = Créer une notification push ponctuelle +push-notification.create-automated-notification = Créer une notification push automatisée +push-notification.create-transactional-notification = Créer une notification push API +push-notification.notification-name = Nom de la notification +push-notification.notification-name-description = Définir le nom de la notification push (optionnel). +push-notification.enter-notification-name = Entrer le nom de la notification +push-notification.platforms = Plateformes push-notification.android = Android push-notification.ios = iOS -push-notification.targeting = Targeting -push-notification.targeting-tooltip = Select how to target the users who will receive the notification. -push-notification.all-push-enabled-users = All push-enabled users -push-notification.all-push-enabled-users-description = Send to all users who have enabled receiving notifications. -push-notification.use-segmentation = Use segmentation -push-notification.use-segmentation-description = Send to users based on specific segmentation such as cohorts or locations. -push-notification.push-enabled-users = Push-enabled users -push-notification.send-to-users-in-cohorts = Send to the users currently in selected cohort(s) -push-notification.send-to-users-in-cohorts-description = Select cohort(s) of users who qualify to receive the notification. -push-notification.send-to-users-in-locations = Send to the users currently in selected Geolocation(s) -push-notification.send-to-users-in-locations-description = Select geolocation(s) of users to whom you want to send the notification (e.g. users located in France). -push-notification.select-event-to-set-trigger = Select one or more events to set the trigger -push-notification.select-event-to-set-trigger-description = Select one or more events to set the trigger. -push-notification.select-cohort-to-set-trigger = Select one or more cohorts to set the trigger -push-notification.select-cohort-to-set-trigger-description = Recalculation of cohorts above will trigger sending process automatically. -push-notification.select-location = Please select a location -push-notification.when-to-determine-users = When to determine the users? -push-notification.when-to-determine-users-tooltip = When to determine the number of push-enabled users who will receive the notification. -push-notification.determine-users-before = Determine users right before sending the message -push-notification.determine-users-now = Determine users now -push-notification.triggers = Triggers -push-notification.triggers-description = Select the user behavior that will trigger the message sending process automatically. -push-notification.cohorts-entry = Cohort(s) entry -push-notification.cohorts-entry-description = Triggered when a user enters any of the cohorts you select. -push-notification.cohorts-exit = Cohort(s) exit -push-notification.cohorts-exit-description = Triggered when a user exits from any of the cohorts you select. -push-notification.performed-events = Performed Event(s) -push-notification.performed-events-description = Triggered when user performs a selected event. -push-notification.select-event = Please select an event -push-notification.cohorts = Cohort(s) -push-notification.geolocations = Geolocation(s) -push-notification.events = Event(s) -push-notification.delivery-date-calculation = Delivery date calculation -push-notification.behavior-trigger-not-met = Behavior when trigger condition is no longer met -push-notification.start-date = Start date -push-notification.set-start-date = Set Start Date -push-notification.set-start-date-tooltip = Select the time you want the notification to be sent to users. -push-notification.timezone-description = Select whether your push notification needs to adjust for timezone differences. -push-notification.end-date = End date -push-notification.set-end-date = Set End Date -push-notification.set-end-date-tooltip = Select the date when the automatic push notifications will stop being sent. -push-notification.delivery-method = Delivery Method -push-notification.delivery-method-description = Select how soon the push notifications will be sent after the user enters a cohort. -push-notification.capping = Capping -push-notification.capping-tooltip = Select if there will be a limit in the number of automated push notifications sent to a user. -push-notification.no-capping = No Capping -push-notification.no-capping-description = Notification is sent whenever users entered to or exited from cohort. -push-notification.relative-to-the-date-event-server = Relative to the date event arrived to the server -push-notification.relative-to-the-date-event-device = Relative to the date event occurred on a device -push-notification.send-anyway = Send anyway -push-notification.cancel-when-user-exits-cohort = Cancel when user exits selected cohort(s) -push-notification.cancel-when-user-exits-cohort-description = Stops sending the message if the user is no longer in the selected cohort(s). -push-notification.send-now = Send now -push-notification.send-now-description = Send the push notification immediately, once composition is complete. -push-notification.scheduled = Scheduled -push-notification.schedule-for-later = Schedule for later -push-notification.delivery-time = Delivery Time -push-notification.delivery-time-tooltip = Set an optional delivery time for your message -push-notification.timezone = Timezone -push-notification.timezone-tooltip = Select whether your push notification needs to adjust for timezone differences. -push-notification.deliver-to-all-users-same-time = Deliver to all users at the same time -push-notification.deliver-to-all-users-same-time-description = Send to all users at a specific time. This may lead to users in different timezones receiving the notification at different hours of the day or night. -push-notification.deliver-to-all-users-device-time = Deliver in user's local time as per device timezone -push-notification.deliver-to-all-users-device-time-description = Send to users at a specific time in their own timezone and on the time settings of the user's device. -push-notification.what-if-past-scheduled = What if the user is past the scheduled time? -push-notification.what-if-past-scheduled-tooltip = Select what happens if a user is past the scheduled time of the push notification. -push-notification.do-not-send-message = Do not send the message -push-notification.deliver-next-day = Deliver the message next day -push-notification.immediately = Immediately -push-notification.immediately-description = Deliver this message as soon as the triggering cohort is recalculated. -push-notification.delayed = Delayed -push-notification.days = Days -push-notification.hours = Hours -push-notification.capped = Capped -push-notification.capped-description = Push notifications will no longer be sent when a certain number of notifications is reached. -push-notification.maximum-messages-per-user = Maximum messages per user -push-notification.maximum-messages-per-user-tooltip = Set a limit for the number of automatic push notifications. +push-notification.targeting = Ciblage +push-notification.targeting-tooltip = Sélectionner comment cibler les utilisateurs qui recevront la notification. +push-notification.all-push-enabled-users = Tous les utilisateurs avec push activé +push-notification.all-push-enabled-users-description = Envoyer à tous les utilisateurs qui ont activé la réception de notifications. +push-notification.use-segmentation = Utiliser la segmentation +push-notification.use-segmentation-description = Envoyer aux utilisateurs basé sur une segmentation spécifique comme les cohortes ou les localisations. +push-notification.push-enabled-users = Utilisateurs avec push activé +push-notification.send-to-users-in-cohorts = Envoyer aux utilisateurs actuellement dans la/les cohorte(s) sélectionnée(s) +push-notification.send-to-users-in-cohorts-description = Sélectionner la/les cohorte(s) d'utilisateurs qui sont qualifiés pour recevoir la notification. +push-notification.send-to-users-in-locations = Envoyer aux utilisateurs actuellement dans la/les géolocalisation(s) sélectionnée(s) +push-notification.send-to-users-in-locations-description = Sélectionner la/les géolocalisation(s) des utilisateurs à qui vous voulez envoyer la notification (ex: utilisateurs situés en France). +push-notification.select-event-to-set-trigger = Sélectionner un ou plusieurs événements pour définir le déclencheur +push-notification.select-event-to-set-trigger-description = Sélectionner un ou plusieurs événements pour définir le déclencheur. +push-notification.select-cohort-to-set-trigger = Sélectionner une ou plusieurs cohortes pour définir le déclencheur +push-notification.select-cohort-to-set-trigger-description = Le recalcul des cohortes ci-dessus déclenchera automatiquement le processus d'envoi. +push-notification.select-location = Veuillez sélectionner une localisation +push-notification.when-to-determine-users = Quand déterminer les utilisateurs ? +push-notification.when-to-determine-users-tooltip = Quand déterminer le nombre d'utilisateurs avec push activé qui recevront la notification. +push-notification.determine-users-before = Déterminer les utilisateurs juste avant d'envoyer le message +push-notification.determine-users-now = Déterminer les utilisateurs maintenant +push-notification.triggers = Déclencheurs +push-notification.triggers-description = Sélectionner le comportement utilisateur qui déclenchera automatiquement le processus d'envoi de message. +push-notification.cohorts-entry = Entrée de cohorte(s) +push-notification.cohorts-entry-description = Déclenché quand un utilisateur entre dans l'une des cohortes que vous sélectionnez. +push-notification.cohorts-exit = Sortie de cohorte(s) +push-notification.cohorts-exit-description = Déclenché quand un utilisateur sort de l'une des cohortes que vous sélectionnez. +push-notification.performed-events = Événement(s) effectué(s) +push-notification.performed-events-description = Déclenché quand l'utilisateur effectue un événement sélectionné. +push-notification.select-event = Veuillez sélectionner un événement +push-notification.cohorts = Cohorte(s) +push-notification.geolocations = Géolocalisation(s) +push-notification.events = Événement(s) +push-notification.delivery-date-calculation = Calcul de la date de livraison +push-notification.behavior-trigger-not-met = Comportement quand la condition de déclencheur n'est plus remplie +push-notification.start-date = Date de début +push-notification.set-start-date = Définir la date de début +push-notification.set-start-date-tooltip = Sélectionner l'heure à laquelle vous voulez que la notification soit envoyée aux utilisateurs. +push-notification.timezone-description = Sélectionner si votre notification push doit s'ajuster aux différences de fuseau horaire. +push-notification.end-date = Date de fin +push-notification.set-end-date = Définir la date de fin +push-notification.set-end-date-tooltip = Sélectionner la date à laquelle les notifications push automatiques arrêteront d'être envoyées. +push-notification.delivery-method = Méthode de livraison +push-notification.delivery-method-description = Sélectionner avec quelle rapidité les notifications push seront envoyées après qu'un utilisateur entre dans une cohorte. +push-notification.capping = Limitation +push-notification.capping-tooltip = Sélectionner s'il y aura une limite dans le nombre de notifications push automatisées envoyées à un utilisateur. +push-notification.no-capping = Aucune limitation +push-notification.no-capping-description = La notification est envoyée à chaque fois que les utilisateurs entrent ou sortent de la cohorte. +push-notification.relative-to-the-date-event-server = Relatif à la date d'arrivée de l'événement sur le serveur +push-notification.relative-to-the-date-event-device = Relatif à la date d'occurrence de l'événement sur l'appareil +push-notification.send-anyway = Envoyer quand même +push-notification.cancel-when-user-exits-cohort = Annuler quand l'utilisateur sort de la/les cohorte(s) sélectionnée(s) +push-notification.cancel-when-user-exits-cohort-description = Arrête l'envoi du message si l'utilisateur n'est plus dans la/les cohorte(s) sélectionnée(s). +push-notification.send-now = Envoyer maintenant +push-notification.send-now-description = Envoyer la notification push immédiatement, une fois la composition terminée. +push-notification.scheduled = Programmé +push-notification.schedule-for-later = Programmer pour plus tard +push-notification.delivery-time = Heure de livraison +push-notification.delivery-time-tooltip = Définir une heure de livraison optionnelle pour votre message +push-notification.timezone = Fuseau horaire +push-notification.timezone-tooltip = Sélectionner si votre notification push doit s'ajuster aux différences de fuseau horaire. +push-notification.deliver-to-all-users-same-time = Livrer à tous les utilisateurs en même temps +push-notification.deliver-to-all-users-same-time-description = Envoyer à tous les utilisateurs à une heure spécifique. Ceci peut amener les utilisateurs dans différents fuseaux horaires à recevoir la notification à différentes heures du jour ou de la nuit. +push-notification.deliver-to-all-users-device-time = Livrer à l'heure locale de l'utilisateur selon le fuseau horaire de l'appareil +push-notification.deliver-to-all-users-device-time-description = Envoyer aux utilisateurs à une heure spécifique dans leur propre fuseau horaire et selon les paramètres d'heure de l'appareil de l'utilisateur. +push-notification.what-if-past-scheduled = Que faire si l'utilisateur a dépassé l'heure programmée ? +push-notification.what-if-past-scheduled-tooltip = Sélectionner ce qui se passe si un utilisateur a dépassé l'heure programmée de la notification push. +push-notification.do-not-send-message = Ne pas envoyer le message +push-notification.deliver-next-day = Livrer le message le jour suivant +push-notification.immediately = Immédiatement +push-notification.immediately-description = Livrer ce message dès que la cohorte déclencheuse est recalculée. +push-notification.delayed = Différé +push-notification.days = Jours +push-notification.hours = Heures +push-notification.capped = Limité +push-notification.capped-description = Les notifications push ne seront plus envoyées quand un certain nombre de notifications est atteint. +push-notification.maximum-messages-per-user = Maximum de messages par utilisateur +push-notification.maximum-messages-per-user-tooltip = Définir une limite pour le nombre de notifications push automatiques. push-notification.messages = Messages -push-notification.minimum-time-between-messages = Minimum time between messages -push-notification.minimum-time-between-messages-tooltip = Set the minimum period of time during which notifications will be sent, in order to avoid spamming the user. -push-notification.expiration-time = Expiration Time -push-notification.expiration-time-tooltip = Set the number of days after which push notifications that have been undelivered due to device connectivity issues or other errors will stop retrying to be delivered. -push-notification.notification-type = NOTIFICATION TYPE -push-notification.compose-message = Compose Message -push-notification.compose-message-tooltip = Fill in the details of the message you wish to send to your users. -push-notification.allow-to-set-different-content = Allow to set different message content for different localizations -push-notification.default-message-is-required = Default message is required -push-notification.content-message = Content message -push-notification.silent-message = Silent message -push-notification.message-title = Message title -push-notification.add-variable = Add Variable -push-notification.message-content = Message Content -push-notification.clear-and-shorter-messages = Clear and shorter messages generally have more conversations... -push-notification.buttons = Buttons -push-notification.buttons-tooltip = Set the text for each action button as well as the link or page to which it should lead users. -push-notification.add-first-button = +Add First button -push-notification.add-second-button = +Add Second button -push-notification.enter-x-button = Enter xButton -push-notification.enter-button-url = Enter Button URL or Deeplink -push-notification.media-url = Media URL -push-notification.media-url-description = Add media to your message - put in the URL of the image you would like to include. -push-notification.enter-media-url = Enter Media URL -push-notification.platform-settings = Platform Settings -push-notification.platform-settings-description = Set media and other message specifications specific to the platform on which your users will see the message. -push-notification.sound-file-name = Sound File Name -push-notification.enter-sound-file-name = Enter sound file name -push-notification.sound-file-name-description = Add a custom sound file that will ring with your message. -push-notification.add-badge-number = Add Badge Number -push-notification.enter-badge-number = Enter badge number -push-notification.add-badge-number-description = Android platforms require additional steps. Please refer to Android SDK. -push-notification.media-url-platform-description = Add the URL for media specific to the platform. This will override the media included in the previous drawer. -push-notification.subtitle = Subtitle -push-notification.enter-your-subtitle = Enter your subtitle -push-notification.subtitle-description = Add a subheading for your message. -push-notification.set-content-available = Set content-available -push-notification.set-content-available-description = Sets the apns-priority header to 5 and content-available property of request body to 1 for the IOS application to receive notifications while the app is in the background -push-notification.on-click-url = On Click URL -push-notification.enter-on-click-url = Enter on click URL -push-notification.on-click-url-description = Add URL link that is opened when user taps a message in drawer. -push-notification.send-json = Send JSON -push-notification.enter-json-data = Enter JSON data -push-notification.send-json-description = Add app-specific JSON data along with standard content. -push-notification.send-user-data = Send User Data -push-notification.select-user-data = Select user data -push-notification.send-user-data-description = Select user properties to send in your notification payload. -push-notification.icon = Icon -push-notification.icon-description = Set Android notification icon. -push-notification.enter-icon = Enter icon -push-notification.review-message = Review Mesage -push-notification.review-message-tooltip = Review all the details of your push notification. -push-notification.message-name = Message name -push-notification.review-title = Title -push-notification.content = Content -push-notification.button-text = Button Text -push-notification.button-url = Button URL -push-notification.ios-media-url = iOS Media URL -push-notification.android-media-url = Android Media URL -push-notification.ios-badge-number = IOS badge number -push-notification.ios-json-data = iOS JSON data -push-notification.ios-user-data = iOS user data -push-notification.android-badge-number = Android badge number -push-notification.android-json-data = Android JSON data -push-notification.android-user-data = Android user data -push-notification.current-number-of-users = Current number of users -push-notification.when-to-determine = When to determine -push-notification.when-to-determine-description = When to determine the number of push-enabled users who will receive the notification. -push-notification.delivery = Delivery -push-notification.delivery-description = Select the time you want the notification to be sent to users. -push-notification.scheduled-for = Scheduled for -push-notification.message-will-expire-after = Message will expire after {0} days and {1} hours +push-notification.minimum-time-between-messages = Temps minimum entre les messages +push-notification.minimum-time-between-messages-tooltip = Définir la période de temps minimum pendant laquelle les notifications seront envoyées, afin d'éviter de spammer l'utilisateur. +push-notification.expiration-time = Délai d'expiration +push-notification.expiration-time-tooltip = Définir le nombre de jours après lesquels les notifications push qui n'ont pas été livrées à cause de problèmes de connectivité ou d'autres erreurs arrêteront d'essayer d'être livrées. +push-notification.notification-type = TYPE DE NOTIFICATION +push-notification.compose-message = Composer le message +push-notification.compose-message-tooltip = Remplir les détails du message que vous souhaitez envoyer à vos utilisateurs. +push-notification.allow-to-set-different-content = Permettre de définir un contenu de message différent pour différentes localisations +push-notification.default-message-is-required = Message par défaut requis +push-notification.content-message = Message de contenu +push-notification.silent-message = Message silencieux +push-notification.message-title = Titre du message +push-notification.add-variable = Ajouter une variable +push-notification.message-content = Contenu du message +push-notification.clear-and-shorter-messages = Les messages clairs et courts ont généralement plus de conversions... +push-notification.buttons = Boutons +push-notification.buttons-tooltip = Définir le texte pour chaque bouton d'action ainsi que le lien ou la page vers laquelle il devrait diriger les utilisateurs. +push-notification.add-first-button = +Ajouter le premier bouton +push-notification.add-second-button = +Ajouter le second bouton +push-notification.enter-x-button = Entrer xBouton +push-notification.enter-button-url = Entrer l'URL du bouton ou deeplink +push-notification.media-url = URL du média +push-notification.media-url-description = Ajouter un média à votre message - insérer l'URL de l'image que vous aimeriez inclure. +push-notification.enter-media-url = Entrer l'URL du média +push-notification.platform-settings = Paramètres de plateforme +push-notification.platform-settings-description = Définir les médias et autres spécifications de message spécifiques à la plateforme sur laquelle vos utilisateurs verront le message. +push-notification.sound-file-name = Nom du fichier son +push-notification.enter-sound-file-name = Entrer le nom du fichier son +push-notification.sound-file-name-description = Ajouter un fichier son personnalisé qui sonnera avec votre message. +push-notification.add-badge-number = Ajouter un numéro de badge +push-notification.enter-badge-number = Entrer le numéro de badge +push-notification.add-badge-number-description = Les plateformes Android nécessitent des étapes supplémentaires. Veuillez vous référer au SDK Android. +push-notification.media-url-platform-description = Ajouter l'URL pour le média spécifique à la plateforme. Ceci remplacera le média inclus dans le tiroir précédent. +push-notification.subtitle = Sous-titre +push-notification.enter-your-subtitle = Entrer votre sous-titre +push-notification.subtitle-description = Ajouter un sous-titre pour votre message. +push-notification.set-content-available = Définir content-available +push-notification.set-content-available-description = Définit l'en-tête apns-priority à 5 et la propriété content-available du corps de requête à 1 pour que l'application iOS reçoive les notifications pendant que l'app est en arrière-plan +push-notification.on-click-url = URL au clic +push-notification.enter-on-click-url = Entrer l'URL au clic +push-notification.on-click-url-description = Ajouter un lien URL qui s'ouvre quand l'utilisateur tape un message dans le tiroir. +push-notification.send-json = Envoyer JSON +push-notification.enter-json-data = Entrer les données JSON +push-notification.send-json-description = Ajouter des données JSON spécifiques à l'app avec le contenu standard. +push-notification.send-user-data = Envoyer les données utilisateur +push-notification.select-user-data = Sélectionner les données utilisateur +push-notification.send-user-data-description = Sélectionner les propriétés utilisateur à envoyer dans votre payload de notification. +push-notification.icon = Icône +push-notification.icon-description = Définir l'icône de notification Android. +push-notification.enter-icon = Entrer l'icône +push-notification.review-message = Réviser le message +push-notification.review-message-tooltip = Réviser tous les détails de votre notification push. +push-notification.message-name = Nom du message +push-notification.review-title = Titre +push-notification.content = Contenu +push-notification.button-text = Texte du bouton +push-notification.button-url = URL du bouton +push-notification.ios-media-url = URL du média iOS +push-notification.android-media-url = URL du média Android +push-notification.ios-badge-number = Numéro de badge iOS +push-notification.ios-json-data = Données JSON iOS +push-notification.ios-user-data = Données utilisateur iOS +push-notification.android-badge-number = Numéro de badge Android +push-notification.android-json-data = Données JSON Android +push-notification.android-user-data = Données utilisateur Android +push-notification.current-number-of-users = Nombre actuel d'utilisateurs +push-notification.when-to-determine = Quand déterminer +push-notification.when-to-determine-description = Quand déterminer le nombre d'utilisateurs avec push activé qui recevront la notification. +push-notification.delivery = Livraison +push-notification.delivery-description = Sélectionner l'heure à laquelle vous voulez que la notification soit envoyée aux utilisateurs. +push-notification.scheduled-for = Programmé pour +push-notification.message-will-expire-after = Le message expirera après {0} jours et {1} heures push-notification.maximum-messages = Maximum {0} messages -push-notification.minimum-days-and-hours = Minimum {0} days and {1} hours between messages +push-notification.minimum-days-and-hours = Minimum {0} jours et {1} heures entre les messages push-notification.confirmation = Confirmation -push-notification.testing = TESTING -push-notification.you-can-send-the-test-message = You can send the test message to test users -push-notification.testing-tooltip = Sends the push notification to applications' test users -push-notification.send-to-test-users = Send to test users +push-notification.testing = TEST +push-notification.you-can-send-the-test-message = Vous pouvez envoyer le message de test aux utilisateurs de test +push-notification.testing-tooltip = Envoie la notification push aux utilisateurs de test de l'application +push-notification.send-to-test-users = Envoyer aux utilisateurs de test push-notification.confirmation-uppercase = CONFIRMATION -push-notification.confirmation-uppercase-description = CONFIRMATION description -push-notification.save-push-stats = Keep individual push records for each user -push-notification.debugging = DEBUGGING -push-notification.push-stats-warning = This options enables the storage of each push record inside "push_stats" collection for every message per device for debug purposes. Please enable this option with caution since it can fill up the database quickly. -push-notification.i-am-ready-to-send = I am ready to send this message to real-users -push-notification.was-successfully-saved = Push notification message was successfully saved -push-notification.was-successfully-sent-to-test-users = Push notification message was successfully sent to test users -push-notification.was-successfully-approved = Push notification has been successfully approved -push-notification.was-successfully-rejected = Push notification has been successfully rejected -push-notification.was-successfully-deleted = Push notification was successfully deleted -push-notification.was-successfully-started = Push notification was successfully started -push-notification.was-successfully-stopped = Push notification was successfully stopped +push-notification.confirmation-uppercase-description = Description de CONFIRMATION +push-notification.save-push-stats = Conserver les enregistrements push individuels pour chaque utilisateur +push-notification.debugging = DÉBOGAGE +push-notification.push-stats-warning = Cette option active le stockage de chaque enregistrement push dans la collection "push_stats" pour chaque message par appareil à des fins de débogage. Veuillez activer cette option avec précaution car elle peut remplir rapidement la base de données. +push-notification.i-am-ready-to-send = Je suis prêt à envoyer ce message aux vrais utilisateurs +push-notification.was-successfully-saved = Le message de notification push a été sauvegardé avec succès +push-notification.was-successfully-sent-to-test-users = Le message de notification push a été envoyé avec succès aux utilisateurs de test +push-notification.was-successfully-approved = La notification push a été approuvée avec succès +push-notification.was-successfully-rejected = La notification push a été rejetée avec succès +push-notification.was-successfully-deleted = La notification push a été supprimée avec succès +push-notification.was-successfully-started = La notification push a été démarrée avec succès +push-notification.was-successfully-stopped = La notification push a été arrêtée avec succès # Add user property -push-notification.event-properties = Event Properties -push-notification.user-properties = User Properties -push-notification.custom-properties = Custom Properties -push-notification.add-user-property = Add User Property -push-notification.api-property = Add User Property -push-notification.search-in-properties = Search in Properties -push-notification.select-property = Select Property -push-notification.enter-value = Enter Value -push-notification.start-with-capital-letter = Make user property start with capital letter -push-notification.fallback-value = Fallback value -push-notification.fallback-value-desc = Default value which will be used in case user profile doesn't have this variable -push-notification.remove = Remove -push-notification.confirm = Confirm -push-notification.internal-properties = Internal Properties -push-notification.external-properties = External Properties -push-notification-fallback-value-description = User's "{0}" property which falls back to "{1}" +push-notification.event-properties = Propriétés d'événement +push-notification.user-properties = Propriétés utilisateur +push-notification.custom-properties = Propriétés personnalisées +push-notification.add-user-property = Ajouter une propriété utilisateur +push-notification.api-property = Ajouter une propriété utilisateur +push-notification.search-in-properties = Rechercher dans les propriétés +push-notification.select-property = Sélectionner une propriété +push-notification.enter-value = Entrer une valeur +push-notification.start-with-capital-letter = Faire commencer la propriété utilisateur par une majuscule +push-notification.fallback-value = Valeur de secours +push-notification.fallback-value-desc = Valeur par défaut qui sera utilisée au cas où le profil utilisateur n'aurait pas cette variable +push-notification.remove = Supprimer +push-notification.confirm = Confirmer +push-notification.internal-properties = Propriétés internes +push-notification.external-properties = Propriétés externes +push-notification-fallback-value-description = Propriété "{0}" de l'utilisateur qui revient à "{1}" # Details -push-notification-details.back-to = Back to Push Notifications -push-notification-details.localization-filter-label = LOCALIZATION -push-notification-details.localization-filter-all = All Localizations -push-notification-details.summary-header = Notification Summary -push-notification-details.summary-header-description = Overview of the notification message and its details. -push-notification-details.message-tab = Message Content -push-notification-details.targeting-tab = Targeting & Delivery -push-notification-details.errors-tab = Errors -push-notification-details.users-targeted-chart = Users Targeted -push-notification-details.sent-messages-chart = Sent Messages -push-notification-details.and-label = and -push-notification-details.message-id = Message ID -push-notification-details.results-for = Results for -push-notification-details.created = Created -push-notification-details.created-by = Created {0} by {1} +push-notification-details.back-to = Retour aux notifications push +push-notification-details.localization-filter-label = LOCALISATION +push-notification-details.localization-filter-all = Toutes les localisations +push-notification-details.summary-header = Résumé de la notification +push-notification-details.summary-header-description = Aperçu du message de notification et de ses détails. +push-notification-details.message-tab = Contenu du message +push-notification-details.targeting-tab = Ciblage et livraison +push-notification-details.errors-tab = Erreurs +push-notification-details.users-targeted-chart = Utilisateurs ciblés +push-notification-details.sent-messages-chart = Messages envoyés +push-notification-details.and-label = et +push-notification-details.message-id = ID du message +push-notification-details.results-for = Résultats pour +push-notification-details.created = Créé +push-notification-details.created-by = Créé {0} par {1} -push-notification-details.message-title = Title -push-notification-details.message-content = Content -push-notification-details.message-first-button-label = First Button Text -push-notification-details.message-first-button-url = First Button URL -push-notification-details.message-second-button-label = Second Button Text -push-notification-details.message-second-button-url = Second Button URL -push-notification-details.message-media-url = Media URL -push-notification-details.ios-message-media-url = IOS media URL -push-notification-details.android-message-media-url = Android media URL +push-notification-details.message-title = Titre +push-notification-details.message-content = Contenu +push-notification-details.message-first-button-label = Texte du premier bouton +push-notification-details.message-first-button-url = URL du premier bouton +push-notification-details.message-second-button-label = Texte du second bouton +push-notification-details.message-second-button-url = URL du second bouton +push-notification-details.message-media-url = URL du média +push-notification-details.ios-message-media-url = URL du média iOS +push-notification-details.android-message-media-url = URL du média Android -push-notification-details.targeting-sub-header = Targeting -push-notification-details.targeted-users = Targeted users -push-notification-details.geolocation = Geolocation -push-notification-details.when-to-determine = When to determine -push-notification-details.delivery-sub-header = Delivery -push-notification-details.delivery-type = Delivery type -push-notification-details.scheduled-for = Scheduled for -push-notification-details.expiration-time = Expiration time -push-notification-details.message-expires-after = Message expires after {0} day(s) and {1} hour(s) -push-notification-details.no-errors-found = No errors were found -push-notification.users-targeted = Users Targeted -push-notification.users-targeted-description = Total number of users targeted to receive the selected notification. -push-notification.sent-notifications = Sent Notifications -push-notification.sent-notifications-description = Total number of notifications sent. -push-notification.clicked-notifications = Clicked Notifications -push-notification.clicked-notifications-description = Total number of notifications clicked on or reacted to. -push-notification.failed = Failed -push-notification.failed-description = Total number of notifications that failed to get delivered. -push-notification.no-errors-found = There are no errors found -push-notification.affected-users = Affected Users +push-notification-details.targeting-sub-header = Ciblage +push-notification-details.targeted-users = Utilisateurs ciblés +push-notification-details.geolocation = Géolocalisation +push-notification-details.when-to-determine = Quand déterminer +push-notification-details.delivery-sub-header = Livraison +push-notification-details.delivery-type = Type de livraison +push-notification-details.scheduled-for = Programmé pour +push-notification-details.expiration-time = Délai d'expiration +push-notification-details.message-expires-after = Le message expire après {0} jour(s) et {1} heure(s) +push-notification-details.no-errors-found = Aucune erreur trouvée +push-notification.users-targeted = Utilisateurs ciblés +push-notification.users-targeted-description = Nombre total d'utilisateurs ciblés pour recevoir la notification sélectionnée. +push-notification.sent-notifications = Notifications envoyées +push-notification.sent-notifications-description = Nombre total de notifications envoyées. +push-notification.clicked-notifications = Notifications cliquées +push-notification.clicked-notifications-description = Nombre total de notifications cliquées ou ayant reçu une réaction. +push-notification.failed = Échec +push-notification.failed-description = Nombre total de notifications qui ont échoué à être livrées. +push-notification.no-errors-found = Aucune erreur trouvée +push-notification.affected-users = Utilisateurs affectés push-notification.error-description = Description -push-notification.error-code = Error Code -push-notification.users = Users -push-notification.back-to-push-notification-details = Back to push notification +push-notification.error-code = Code d'erreur +push-notification.users = Utilisateurs +push-notification.back-to-push-notification-details = Retour aux détails de notification push # Mobile Preview Component -push-notification.mobile-preview-default-app-name = Your application name -push-notification.mobile-preview-default-title = Your message title -push-notification.mobile-preview-default-content = Your message content +push-notification.mobile-preview-default-app-name = Nom de votre application +push-notification.mobile-preview-default-title = Titre de votre message +push-notification.mobile-preview-default-content = Contenu de votre message # Application settings -push-notification.ios-settings = iOS settings -push-notification.authentication-type = Authentication type -push-notification.key-file-p8 = Key file (P8) -push-notification.key-file-p12 = Sandbox + Production certificate (P12) -push-notification.key-file-already-uploaded = Key file {0} is already uploaded -push-notification.choose-file = Choose File -push-notification.key-id = Key ID -push-notification.team-id = Team ID -push-notification.bundle-id = Bundle ID -push-notification.passphrase = Passphrase +push-notification.ios-settings = Paramètres iOS +push-notification.authentication-type = Type d'authentification +push-notification.key-file-p8 = Fichier de clé (P8) +push-notification.key-file-p12 = Certificat Sandbox + Production (P12) +push-notification.key-file-already-uploaded = Le fichier de clé {0} est déjà téléchargé +push-notification.choose-file = Choisir un fichier +push-notification.key-id = ID de clé +push-notification.team-id = ID d'équipe +push-notification.bundle-id = ID de bundle +push-notification.passphrase = Phrase de passe push-notification.android-settings = Android (Google FCM) -push-notification.firebase-service-account-json = Service account JSON file -push-notification.service-account-file-already-uploaded = Service account JSON file is already uploaded +push-notification.firebase-service-account-json = Fichier JSON du compte de service +push-notification.service-account-file-already-uploaded = Le fichier JSON du compte de service est déjà téléchargé push-notification.huawei-settings = Android (Huawei Push Kit) -push-notification.huawei-app-id = App ID -push-notification.huawei-app-secret = App Secret -push-notification.rate-limit = Rate limit -push-notification.maximum-notifications-per-period = Maximum number of notifications scheduled per period -push-notification.period-in-seconds = Period duration (seconds) -push-notification.test-users = Test users -push-notification.test-users-description = Test users description -push-notification.define-new-user = +Define New User -push-notification.user-definition = User Definition -push-notification.user-definition-description = You can send test notifications to users defined as test users before sending push notifications -push-notification.see-user-list = See User List -push-notification.define-new-user-title = Define New User -push-notification.add-test-users-label = Add Users -push-notification.definition-type = Definition Type -push-notification.define-with-user-id = Define with User ID -push-notification.define-with-cohort = Define with Cohort -push-notification.enter-user-id = Enter User ID -push-notification.select-one-or-more-cohorts = Select one or more cohorts to set the trigger -push-notification.select-one-or-more-cohorts-description = Recalculation of cohorts above will trigger sending process automatically. -push-notification.select-cohort = Please select a cohort -push-notification.user-list = User List -push-notification.username = Username -push-notification.user-id = User ID -push-notification.cohort-name = Cohort Name -push-notification.cancel = Cancel -push-notification.i-understand-delete-key = I understand, delete this key -push-notification.delete-key = Delete Key -push-notification.test-users-were-successfully-removed = Test users have been successfully removed -push-notification.test-users-were-successfully-added = Test users have been successfully added +push-notification.huawei-app-id = ID de l'app +push-notification.huawei-app-secret = Secret de l'app +push-notification.rate-limit = Limite de taux +push-notification.maximum-notifications-per-period = Nombre maximum de notifications programmées par période +push-notification.period-in-seconds = Durée de la période (secondes) +push-notification.test-users = Utilisateurs de test +push-notification.test-users-description = Description des utilisateurs de test +push-notification.define-new-user = +Définir un nouvel utilisateur +push-notification.user-definition = Définition utilisateur +push-notification.user-definition-description = Vous pouvez envoyer des notifications de test aux utilisateurs définis comme utilisateurs de test avant d'envoyer des notifications push +push-notification.see-user-list = Voir la liste des utilisateurs +push-notification.define-new-user-title = Définir un nouvel utilisateur +push-notification.add-test-users-label = Ajouter des utilisateurs +push-notification.definition-type = Type de définition +push-notification.define-with-user-id = Définir avec l'ID utilisateur +push-notification.define-with-cohort = Définir avec une cohorte +push-notification.enter-user-id = Entrer l'ID utilisateur +push-notification.select-one-or-more-cohorts = Sélectionner une ou plusieurs cohortes pour définir le déclencheur +push-notification.select-one-or-more-cohorts-description = Le recalcul des cohortes ci-dessus déclenchera automatiquement le processus d'envoi. +push-notification.select-cohort = Veuillez sélectionner une cohorte +push-notification.user-list = Liste des utilisateurs +push-notification.username = Nom d'utilisateur +push-notification.user-id = ID utilisateur +push-notification.cohort-name = Nom de la cohorte +push-notification.cancel = Annuler +push-notification.i-understand-delete-key = Je comprends, supprimer cette clé +push-notification.delete-key = Supprimer la clé +push-notification.test-users-were-successfully-removed = Les utilisateurs de test ont été supprimés avec succès +push-notification.test-users-were-successfully-added = Les utilisateurs de test ont été ajoutés avec succès #Global settinsg -push.plugin-title = Push Notifications -push.proxyhost = Proxy Hostname -push.proxypass = Proxy Password -push.proxyport = Proxy Port -push.proxyuser = Proxy Username -push.proxyhttp = Do NOT use HTTPS when connecting to proxy server -push.proxyunauthorized = Do NOT check proxy HTTPS certificate -push.sendahead = Send notifications scheduled up to this many ms into the future -push.connection_retries = Number of connection retries -push.connection_factor = Time factor for exponential backoff between retries -push.pool_pushes = Number of notifications in stream batches -push.pool_bytes = Bytes in binary stream batches -push.pool_concurrency = Maximum number of same type connections -push.pool_pools = Maximum number of connections in total -push.default_content_available = Set content-available to 1 by default for IOS +push.plugin-title = Notifications push +push.proxyhost = Nom d'hôte du proxy +push.proxypass = Mot de passe du proxy +push.proxyport = Port du proxy +push.proxyuser = Nom d'utilisateur du proxy +push.proxyhttp = NE PAS utiliser HTTPS lors de la connexion au serveur proxy +push.proxyunauthorized = NE PAS vérifier le certificat HTTPS du proxy +push.sendahead = Envoyer les notifications programmées jusqu'à ce nombre de ms dans le futur +push.connection_retries = Nombre de tentatives de connexion +push.connection_factor = Facteur de temps pour le backoff exponentiel entre les tentatives +push.pool_pushes = Nombre de notifications dans les lots de flux +push.pool_bytes = Octets dans les lots de flux binaires +push.pool_concurrency = Nombre maximum de connexions du même type +push.pool_pools = Nombre maximum de connexions au total +push.default_content_available = Définir content-available à 1 par défaut pour iOS #Drawer from other views -push-notification.send-message-to-users = Send message to users -push-notification.select-max-two-metrics = Select maximum 2 metrics +push-notification.send-message-to-users = Envoyer un message aux utilisateurs +push-notification.select-max-two-metrics = Sélectionner maximum 2 métriques # Error codes -push-notification.error-code.400.desc = 400 Bad request -push-notification.error-code.401.desc = 401 Not authorized Please make sure your push notifications credentials are valid. -push-notification.error-code.403.desc = 403 Not authenticated. Please make sure your push notifications credentials are valid. -push-notification.error-code.405.desc = 405 Bad Method -push-notification.error-code.413.desc = 413 Payload too large. Please decrease notification payload size. -push-notification.error-code.429.desc = 429 Too many requests. Please try again later. -push-notification.error-code.500.desc = 500 Server error. Please try again later. -push-notification.error-code.503.desc = 503 Shutdown. Please try again later. -push-notification.error-code.Rejected.desc = The message was in inactive stated during sending. -push-notification.error-code.NoAudience.desc = There're no users to send this notification to. Possibly the filters of this message are too strict. -push-notification.error-code.NoApp.desc = App not found when sending the notification. -push-notification.error-code.NoMessage.desc = The message was not found when sending the notification. -push-notification.error-code.NoCredentials.desc = Push notification credentials were not found when sending the notification. -push-notification.error-code.NoConnection.desc = Failed to connect to push notifications provider, please check APN / FCM / HPK are available from Countly host. In case you use proxy server, please check it's up and running. -push-notification.error-code.NoProxyConnection.desc = Failed to connect to push notifications provider while using proxy server. Please check proxy server settings. -push-notification.error-code.TooLateToSend.desc = Countly was unable to send these notifications in time (1 hour from scheduled date). -push-notification.error-code.ExpiredCreds.desc = Push Notification credentials have probably expired. Please upload new credentials. -push-notification.error-code.BadDeviceToken.desc = The push token received from your app by Countly Server was rejected by APNS as invalid. Please make sure you set `pushTestMode` property on the SDK's initial configuration correctly. Also please make sure provisioning profile (Development or Distribution) is valid, bundle ID is correct and entitlements are properly set. -push-notification.error-code.MissingTopic.desc = The server failed to parse the certificate, please ensure you use universal certificate and contact support if you do. -push-notification.error-code.DeviceTokenNotForTopic.desc = APNS certificate doesn't correspond to the Bundle ID of your application. -push-notification.error-code.TopicDisallowed.desc = Sending Push Notifications to this topic is not allowed. Apple rejects sending Push Notifications to this topic. Most probably there is no such app in Certificates, Identifiers & Profiles portal. -push-notification.error-code.InvalidProviderToken.desc = Please check your Auth key file, Team ID & Bundle ID - some of those is invalid. -push-notification.error-code.MissingRegistration.desc = Please contact customer support. -push-notification.error-code.InvalidRegistration.desc = Probably you modified the way SDK handles FCM tokens. Please ensure you do it right or contact support. -push-notification.error-code.InvalidParameters.desc = Invalid request parameters. Please send server logs to Countly support. -push-notification.error-code.MismatchSenderId.desc = Invalid Sender ID. Most probably SDK competes for tokens with other Firebase SDK you have in your app. Please override the way our SDK or another SDK get a token so they would end up using the same token. -push-notification.error-code.MessageTooBig.desc = Message was too large and Google declined to deliver it. -push-notification.error-code.InvalidDataKey.desc = Message contains invalid data key, please check: -push-notification.error-code.InvalidTtl.desc = Please contact customer support. -push-notification.error-code.DeviceMessageRateExceeded.desc = You send messages to the same device more often than Google allows, please do that less often. -push-notification.error-code.TopicsMessageRateExceeded.desc = You send messages to the same topic more often than Google allows, please do that less often. -push-notification.error-code.Unavailable.desc = Google server unexpectedly returned HTTP error 200 Unavailable. Please try again later. -push-notification.error-code.InternalServerError.desc = Google server unexpectedly returned HTTP error 200 InternalServerError. Please try again later. -push-notification.error-code.NotRegistered.desc = FCM token expired -push-notification.error-code.InvalidRegistration.desc = FCM token is invalid -push-notification.error-code.InvalidPackageName.desc = Your application package name doesn't correspond to package name specified in FCM -push-notification.error-code.IllegalToken.desc = Huawei token is expired or invalid -push-notification.error-code.MessageBodyTooBig.desc = Message body is too big for a Huawei notification -push-notification.error-code.TooManyTokens.desc = Too many tokens are being sent to Huawei, please contact Countly support. -push-notification.error-code.NotAuthorizedPriority.desc = You are not authorized to send high-priority Huawei notifications. -push-notification.error-code.InternalHuaweiError.desc = Internal Huawei server error. +push-notification.error-code.400.desc = 400 Mauvaise requête +push-notification.error-code.401.desc = 401 Non autorisé. Veuillez vous assurer que vos identifiants de notifications push sont valides. +push-notification.error-code.403.desc = 403 Non authentifié. Veuillez vous assurer que vos identifiants de notifications push sont valides. +push-notification.error-code.405.desc = 405 Mauvaise méthode +push-notification.error-code.413.desc = 413 Payload trop large. Veuillez diminuer la taille du payload de notification. +push-notification.error-code.429.desc = 429 Trop de requêtes. Veuillez réessayer plus tard. +push-notification.error-code.500.desc = 500 Erreur serveur. Veuillez réessayer plus tard. +push-notification.error-code.503.desc = 503 Arrêt. Veuillez réessayer plus tard. +push-notification.error-code.Rejected.desc = Le message était dans un état inactif pendant l'envoi. +push-notification.error-code.NoAudience.desc = Il n'y a pas d'utilisateurs à qui envoyer cette notification. Peut-être que les filtres de ce message sont trop stricts. +push-notification.error-code.NoApp.desc = App non trouvée lors de l'envoi de la notification. +push-notification.error-code.NoMessage.desc = Le message n'a pas été trouvé lors de l'envoi de la notification. +push-notification.error-code.NoCredentials.desc = Les identifiants de notification push n'ont pas été trouvés lors de l'envoi de la notification. +push-notification.error-code.NoConnection.desc = Échec de connexion au fournisseur de notifications push, veuillez vérifier que APN / FCM / HPK sont accessibles depuis l'hôte Countly. Si vous utilisez un serveur proxy, veuillez vérifier qu'il est en marche. +push-notification.error-code.NoProxyConnection.desc = Échec de connexion au fournisseur de notifications push lors de l'utilisation du serveur proxy. Veuillez vérifier les paramètres du serveur proxy. +push-notification.error-code.TooLateToSend.desc = Countly n'a pas pu envoyer ces notifications à temps (1 heure à partir de la date programmée). +push-notification.error-code.ExpiredCreds.desc = Les identifiants de notification push ont probablement expiré. Veuillez télécharger de nouveaux identifiants. +push-notification.error-code.BadDeviceToken.desc = Le token push reçu de votre app par le serveur Countly a été rejeté par APNS comme invalide. Veuillez vous assurer de définir correctement la propriété `pushTestMode` dans la configuration initiale du SDK. Veuillez aussi vous assurer que le profil de provisioning (Development ou Distribution) est valide, que le bundle ID est correct et que les entitlements sont correctement définis. +push-notification.error-code.MissingTopic.desc = Le serveur a échoué à analyser le certificat, veuillez vous assurer d'utiliser un certificat universel et contactez le support si vous le faites. +push-notification.error-code.DeviceTokenNotForTopic.desc = Le certificat APNS ne correspond pas au Bundle ID de votre application. +push-notification.error-code.TopicDisallowed.desc = L'envoi de notifications push à ce sujet n'est pas autorisé. Apple rejette l'envoi de notifications push à ce sujet. Il n'y a probablement pas une telle app dans le portail Certificates, Identifiers & Profiles. +push-notification.error-code.InvalidProviderToken.desc = Veuillez vérifier votre fichier de clé d'authentification, l'ID d'équipe et l'ID de bundle - certains de ceux-ci sont invalides. +push-notification.error-code.MissingRegistration.desc = Veuillez contacter le support client. +push-notification.error-code.InvalidRegistration.desc = Vous avez probablement modifié la façon dont le SDK gère les tokens FCM. Veuillez vous assurer de le faire correctement ou contactez le support. +push-notification.error-code.InvalidParameters.desc = Paramètres de requête invalides. Veuillez envoyer les logs du serveur au support Countly. +push-notification.error-code.MismatchSenderId.desc = ID d'expéditeur invalide. Le SDK entre probablement en compétition pour les tokens avec un autre SDK Firebase que vous avez dans votre app. Veuillez remplacer la façon dont notre SDK ou un autre SDK obtient un token afin qu'ils finissent par utiliser le même token. +push-notification.error-code.MessageTooBig.desc = Le message était trop large et Google a refusé de le livrer. +push-notification.error-code.InvalidDataKey.desc = Le message contient une clé de données invalide, veuillez vérifier : +push-notification.error-code.InvalidTtl.desc = Veuillez contacter le support client. +push-notification.error-code.DeviceMessageRateExceeded.desc = Vous envoyez des messages au même appareil plus souvent que Google ne le permet, veuillez le faire moins souvent. +push-notification.error-code.TopicsMessageRateExceeded.desc = Vous envoyez des messages au même sujet plus souvent que Google ne le permet, veuillez le faire moins souvent. +push-notification.error-code.Unavailable.desc = Le serveur Google a retourné de manière inattendue l'erreur HTTP 200 Unavailable. Veuillez réessayer plus tard. +push-notification.error-code.InternalServerError.desc = Le serveur Google a retourné de manière inattendue l'erreur HTTP 200 InternalServerError. Veuillez réessayer plus tard. +push-notification.error-code.NotRegistered.desc = Token FCM expiré +push-notification.error-code.InvalidRegistration.desc = Token FCM invalide +push-notification.error-code.InvalidPackageName.desc = Le nom de package de votre application ne correspond pas au nom de package spécifié dans FCM +push-notification.error-code.IllegalToken.desc = Le token Huawei est expiré ou invalide +push-notification.error-code.MessageBodyTooBig.desc = Le corps du message est trop volumineux pour une notification Huawei +push-notification.error-code.TooManyTokens.desc = Trop de tokens sont envoyés à Huawei, veuillez contacter le support Countly. +push-notification.error-code.NotAuthorizedPriority.desc = Vous n'êtes pas autorisé à envoyer des notifications Huawei haute priorité. +push-notification.error-code.InternalHuaweiError.desc = Erreur interne du serveur Huawei. -push-notification.error-code.TooLateToSend.desc = Push Notification messages have been discarded because time of arrival would be at least 60 minutes later than expected. -push-notification.error-code.del = Message deleted -push-notification.error-code.del.desc = Push Notification messages have been discarded due to the message being deleted. -push-notification.error-code.consent = Consent cancelled -push-notification.error-code.consent.desc = Push Notification messages have been removed from the queue because of removed push consent. -push-notification.error-code.purge.desc = Push Notification messages have been removed from the queue because user data has been purged. -push-notification.error-code.aborted = Aborted -push-notification.error-code.aborted.desc = Push Notification messages have been removed from the queue after an nonrecoverable error. Please check our Troubleshooting documentation. Please read the following instructions if you want to re-send the push notification to users who have not received it. -push-notification.error-code.ExpiredToken = Expired Token -push-notification.error-code.ExpiredToken.desc = The token expired for affected number of users. +push-notification.error-code.TooLateToSend.desc = Les messages de notification push ont été rejetés car l'heure d'arrivée serait au moins 60 minutes plus tard que prévu. +push-notification.error-code.del = Message supprimé +push-notification.error-code.del.desc = Les messages de notification push ont été rejetés car le message a été supprimé. +push-notification.error-code.consent = Consentement annulé +push-notification.error-code.consent.desc = Les messages de notification push ont été supprimés de la file d'attente à cause du retrait du consentement push. +push-notification.error-code.purge.desc = Les messages de notification push ont été supprimés de la file d'attente car les données utilisateur ont été purgées. +push-notification.error-code.aborted = Abandonné +push-notification.error-code.aborted.desc = Les messages de notification push ont été supprimés de la file d'attente après une erreur non récupérable. Veuillez consulter notre documentation de Dépannage. Veuillez lire les instructions suivantes si vous voulez renvoyer la notification push aux utilisateurs qui ne l'ont pas reçue. +push-notification.error-code.ExpiredToken = Token expiré +push-notification.error-code.ExpiredToken.desc = Le token a expiré pour le nombre affecté d'utilisateurs. # System Logs -systemlogs.action.push_message_created = Push Notification created -systemlogs.action.push_message_draft = Draft Push Notification created -systemlogs.action.push_credentials_update = Push Credentials updated -systemlogs.action.push_message_deleted = Push Notification deleted -systemlogs.action.push_message_updated = Push Notification updated -systemlogs.action.push_message_activated = Push Notification activated -systemlogs.action.push_message_deactivated = Push Notification deactivated -systemlogs.action.push_message_test = Test Push Notification sent +systemlogs.action.push_message_created = Notification push créée +systemlogs.action.push_message_draft = Brouillon de notification push créé +systemlogs.action.push_credentials_update = Identifiants push mis à jour +systemlogs.action.push_message_deleted = Notification push supprimée +systemlogs.action.push_message_updated = Notification push mise à jour +systemlogs.action.push_message_activated = Notification push activée +systemlogs.action.push_message_deactivated = Notification push désactivée +systemlogs.action.push_message_test = Notification push de test envoyée # Error messages -push-notification.no-credentials = No push credentials found for {0} platform +push-notification.no-credentials = Aucun identifiant push trouvé pour la plateforme {0} diff --git a/plugins/recaptcha/frontend/public/localization/recaptcha_fr.properties b/plugins/recaptcha/frontend/public/localization/recaptcha_fr.properties index 408d74992ff..103f80aa957 100644 --- a/plugins/recaptcha/frontend/public/localization/recaptcha_fr.properties +++ b/plugins/recaptcha/frontend/public/localization/recaptcha_fr.properties @@ -1,9 +1,9 @@ recaptcha.title = Recaptcha -recaptcha.description = Display recaptcha on incorrect login -recaptcha.site_key = Site Key -recaptcha.secret_key = Secret Key -recaptcha.enable = Enable Recaptcha -configs.help.recaptcha-enable = Enable or Disable Recaptcha -configs.help.recaptcha-site_key = Get site key from Recaptcha -configs.help.recaptcha-secret_key = Get secret key from Recaptcha -recaptcha.incorrect = Please verify you are not a robot. \ No newline at end of file +recaptcha.description = Afficher recaptcha lors de connexion incorrecte +recaptcha.site_key = Clé de site +recaptcha.secret_key = Clé secrète +recaptcha.enable = Activer Recaptcha +configs.help.recaptcha-enable = Activer ou désactiver Recaptcha +configs.help.recaptcha-site_key = Obtenir la clé de site depuis Recaptcha +configs.help.recaptcha-secret_key = Obtenir la clé secrète depuis Recaptcha +recaptcha.incorrect = Veuillez vérifier que vous n'êtes pas un robot. \ No newline at end of file diff --git a/plugins/remote-config/frontend/public/localization/remote-config_fr.properties b/plugins/remote-config/frontend/public/localization/remote-config_fr.properties index 13e241e76ee..06d940ffc6e 100644 --- a/plugins/remote-config/frontend/public/localization/remote-config_fr.properties +++ b/plugins/remote-config/frontend/public/localization/remote-config_fr.properties @@ -1,112 +1,112 @@ -remote-config.title = Remote Config -remote-config.plugin-description = Change the behaviour and appearance of your application using server side parameters -sidebar.remote-config = Remote Config -remote-config.maximum_allowed_parameters = Maximum number of parameters -remote-config.conditions_per_paramaeters = Maximum number of conditions -configs.remote-config = Remote Config -configs.help.remote-config.maximum_allowed_parameters = Set maximum number of parameters that are allowed per parameter by any application -configs.help.remote-config.conditions_per_paramaeters = Set maximum number of conditions that are allowed per parameter by any application -remote-config.parameters = Parameters +remote-config.title = Configuration à distance +remote-config.plugin-description = Modifier le comportement et l'apparence de votre application en utilisant des paramètres côté serveur +sidebar.remote-config = Configuration à distance +remote-config.maximum_allowed_parameters = Nombre maximum de paramètres +remote-config.conditions_per_paramaeters = Nombre maximum de conditions +configs.remote-config = Configuration à distance +configs.help.remote-config.maximum_allowed_parameters = Définir le nombre maximum de paramètres autorisés par paramètre pour toute application +configs.help.remote-config.conditions_per_paramaeters = Définir le nombre maximum de conditions autorisées par paramètre pour toute application +remote-config.parameters = Paramètres remote-config.conditions = Conditions -remote-config.add-parameters = Add parameter -remote-config.add-conditions = Add condition -remote-config.add-condition = + Add condition -remote-config.parameter = Parameter +remote-config.add-parameters = Ajouter un paramètre +remote-config.add-conditions = Ajouter une condition +remote-config.add-condition = + Ajouter une condition +remote-config.parameter = Paramètre remote-config.condition = Condition remote-config.description = Description -remote-config.add-description = Add description -placeholder.add-description = Add a description -remote-config.name = Name -remote-config.definition = Definition -remote-config.used-in-parameters = Used in parameters -remote-config.used-in-parameters-text = {0} parameters affected -remote-config.add-parameter-title = Add Parameter -remote-config.edit-parameter-title = Edit parameter -remote-config.add-condition-title = Add condition -remote-config.edit-condition-title = Edit condition -remote-config.select-condition = Select Condition -remote-config.parameter-key = Parameter key -placeholder.parameter-key-name = Parameter key name -remote-config.default-value = Default Value -placeholder.set-default-value = Enter value -remote-config.delete-parameter-title = Delete parameter? -remote-config.delete-condition-title = Delete condition? -remote-config.yes-delete-parameter = Yes, delete parameter -remote-config.yes-delete-condition = Yes, delete condition -remote-config.confirm-parameter-delete = Are you sure you want to delete the parameter {0} ? -remote-config.confirm-condition-delete = Are you sure you want to delete the condition {0} ? -remote-config.condition-name = Condition name -remote-config.color = Color -placeholder.condition-name = Example: logo path -remote-config.condition-definition = Condition definition -remote-config.condition-definition.description = Condition definition -remote-config.have-already-one = You have already added this condition to the parameter -remote-config.create-condition = Create condition -remote-config.add-new-condition = Add new condition -remote-config.random-percentile = Random percentile -remote-config.seed = Seed (Optional) -remote-config.seed-value = Seed value -remote-config.seed-value-default = Default -remote-config.seed-value-description = Leave blank to use the default seed value to address same users within given percentage ranges across conditions and parameters. Use a custom seed value to randomize percentiles. -placeholder.seed-value = Seed value -remote-config.param-key-error = Parameter key contains an invalid character. Parameter keys must start with an underscore or English letter character [A-Z, a-z], and may also include numbers. -remote-config.condition-key-error = Condition name contains an invalid character. Condition name must have English letter characters [A-Z, a-z] and numbers only. -remote-config.maximum_parameters_added = You have reached the maximum parameters limit. Cannot add more parameters. -remote-config.maximum_conditions_added = You have reached the maximum conditions limit per parameter. Cannot add more conditions. +remote-config.add-description = Ajouter une description +placeholder.add-description = Ajouter une description +remote-config.name = Nom +remote-config.definition = Définition +remote-config.used-in-parameters = Utilisé dans les paramètres +remote-config.used-in-parameters-text = {0} paramètres affectés +remote-config.add-parameter-title = Ajouter un paramètre +remote-config.edit-parameter-title = Modifier un paramètre +remote-config.add-condition-title = Ajouter une condition +remote-config.edit-condition-title = Modifier une condition +remote-config.select-condition = Sélectionner une condition +remote-config.parameter-key = Clé de paramètre +placeholder.parameter-key-name = Nom de clé de paramètre +remote-config.default-value = Valeur par défaut +placeholder.set-default-value = Entrer une valeur +remote-config.delete-parameter-title = Supprimer le paramètre ? +remote-config.delete-condition-title = Supprimer la condition ? +remote-config.yes-delete-parameter = Oui, supprimer le paramètre +remote-config.yes-delete-condition = Oui, supprimer la condition +remote-config.confirm-parameter-delete = Êtes-vous sûr de vouloir supprimer le paramètre {0} ? +remote-config.confirm-condition-delete = Êtes-vous sûr de vouloir supprimer la condition {0} ? +remote-config.condition-name = Nom de la condition +remote-config.color = Couleur +placeholder.condition-name = Exemple : chemin du logo +remote-config.condition-definition = Définition de condition +remote-config.condition-definition.description = Définition de condition +remote-config.have-already-one = Vous avez déjà ajouté cette condition au paramètre +remote-config.create-condition = Créer une condition +remote-config.add-new-condition = Ajouter une nouvelle condition +remote-config.random-percentile = Percentile aléatoire +remote-config.seed = Graine (Optionnel) +remote-config.seed-value = Valeur de graine +remote-config.seed-value-default = Par défaut +remote-config.seed-value-description = Laisser vide pour utiliser la valeur de graine par défaut pour adresser les mêmes utilisateurs dans les plages de pourcentage données entre conditions et paramètres. Utiliser une valeur de graine personnalisée pour randomiser les percentiles. +placeholder.seed-value = Valeur de graine +remote-config.param-key-error = La clé de paramètre contient un caractère invalide. Les clés de paramètre doivent commencer par un underscore ou une lettre anglaise [A-Z, a-z], et peuvent aussi inclure des chiffres. +remote-config.condition-key-error = Le nom de condition contient un caractère invalide. Le nom de condition doit avoir uniquement des lettres anglaises [A-Z, a-z] et des chiffres. +remote-config.maximum_parameters_added = Vous avez atteint la limite maximum de paramètres. Impossible d'ajouter plus de paramètres. +remote-config.maximum_conditions_added = Vous avez atteint la limite maximum de conditions par paramètre. Impossible d'ajouter plus de conditions. -systemlogs.action.rc_rollout = Config Rolled Out -systemlogs.action.rc_parameter_created = Remote Config Parameter Created -systemlogs.action.rc_parameter_edited = Remote Config Parameter Edited -systemlogs.action.rc_parameter_removed = Remote Config Parameter Removed -systemlogs.action.rc_condition_created = Remote Config Condition Created -systemlogs.action.rc_condition_edited = Remote Config Condition Edited -systemlogs.action.rc_condition_removed = Remote Config Condition Removed -remote-config-running = Remote Config is running -remote-config-stopped = Remote Config is stopped -remote-config.condition.name.placeholder = Enter condition name -remote-config.condition.color.tag = Color Tag -remote-config.condition.color.tag.description = Color Tag -remote-config.conditions.parameter.affected = parameter affected -remote-config.conditions.random.percentile = Random Percentile -remote-config.use.description = Use description -remote-config.conditions.description = Condition description -remote-config.conditions.description.placeholder = Enter condition description -remote-config.parameter-key.description = Parameter description -remote-config.parameter-key.placeholder = Enter parameter key name -remote-config.parameter.description = Parameter description -remote-config.parameter.description.placeholder = Enter parameter description -remote-config.default-value.description = Default value -remote-config.default-value.placeholder = Enter default value -remote-config.parameter.conditions.description = Conditions description -remote-config.expiration.time = USE EXPIRATION TIME -remote-config.expiration.time.description = Set expiration time for parameter -remote-config.expiration.time.error = Must be at least one day -remote-config.parameter.status = Status -remote-config.parameter.ab.status = A/B Testing Status -remote-config.parameter.created = Created -remote-config.expire.date = Expire date -remote-config.start = Start -remote-config.stop = Stop -remote-config.enable = Enable -remote-config.disable = Disable -remote-config.parameter.running = Running -remote-config.percentage = Percentage -remote-config.parameter.stopped = Stopped -remote-config.parameter.expired = Expired -remote-config.parameter.enabled = Enabled -remote-config.parameter.disabled = Disabled -remote-config.parameter.action-tooltip-content = Actions are not allowed when the parameter is in use in an experiment -remote-config.json.editor = JSON Editor -remote-config.json.invalid = Invalid JSON code -remote-config.json.valid = Valid JSON code +systemlogs.action.rc_rollout = Configuration déployée +systemlogs.action.rc_parameter_created = Paramètre de configuration à distance créé +systemlogs.action.rc_parameter_edited = Paramètre de configuration à distance modifié +systemlogs.action.rc_parameter_removed = Paramètre de configuration à distance supprimé +systemlogs.action.rc_condition_created = Condition de configuration à distance créée +systemlogs.action.rc_condition_edited = Condition de configuration à distance modifiée +systemlogs.action.rc_condition_removed = Condition de configuration à distance supprimée +remote-config-running = La configuration à distance est en cours d'exécution +remote-config-stopped = La configuration à distance est arrêtée +remote-config.condition.name.placeholder = Entrer le nom de la condition +remote-config.condition.color.tag = Étiquette de couleur +remote-config.condition.color.tag.description = Étiquette de couleur +remote-config.conditions.parameter.affected = paramètre affecté +remote-config.conditions.random.percentile = Percentile aléatoire +remote-config.use.description = Utiliser la description +remote-config.conditions.description = Description de la condition +remote-config.conditions.description.placeholder = Entrer la description de la condition +remote-config.parameter-key.description = Description du paramètre +remote-config.parameter-key.placeholder = Entrer le nom de la clé de paramètre +remote-config.parameter.description = Description du paramètre +remote-config.parameter.description.placeholder = Entrer la description du paramètre +remote-config.default-value.description = Valeur par défaut +remote-config.default-value.placeholder = Entrer la valeur par défaut +remote-config.parameter.conditions.description = Description des conditions +remote-config.expiration.time = UTILISER DÉLAI D'EXPIRATION +remote-config.expiration.time.description = Définir le délai d'expiration pour le paramètre +remote-config.expiration.time.error = Doit être au moins un jour +remote-config.parameter.status = Statut +remote-config.parameter.ab.status = Statut de test A/B +remote-config.parameter.created = Créé +remote-config.expire.date = Date d'expiration +remote-config.start = Démarrer +remote-config.stop = Arrêter +remote-config.enable = Activer +remote-config.disable = Désactiver +remote-config.parameter.running = En cours +remote-config.percentage = Pourcentage +remote-config.parameter.stopped = Arrêté +remote-config.parameter.expired = Expiré +remote-config.parameter.enabled = Activé +remote-config.parameter.disabled = Désactivé +remote-config.parameter.action-tooltip-content = Les actions ne sont pas autorisées quand le paramètre est utilisé dans une expérience +remote-config.json.editor = Éditeur JSON +remote-config.json.invalid = Code JSON invalide +remote-config.json.valid = Code JSON valide remote-config.json.format = Format -remote-config.parameter.conditions.placeholder = Search in conditions -remote-config.parameter.conditions.add.value = + Add value for condition -remote-config.parameter.conditions.new.condition = New Condition +remote-config.parameter.conditions.placeholder = Rechercher dans les conditions +remote-config.parameter.conditions.add.value = + Ajouter une valeur pour la condition +remote-config.parameter.conditions.new.condition = Nouvelle condition remote-config.type.d = Date -remote-config.type.n = Number -remote-config.type.bl = Big List -remote-config.type.s = String -remote-config.type.l = List -remote-config.percent.of.total = of Total -remote-config.parameter.conditions.add.new.condition = Add New Condition +remote-config.type.n = Nombre +remote-config.type.bl = Grande liste +remote-config.type.s = Chaîne +remote-config.type.l = Liste +remote-config.percent.of.total = du total +remote-config.parameter.conditions.add.new.condition = Ajouter une nouvelle condition diff --git a/plugins/reports/frontend/public/localization/reports_fr.properties b/plugins/reports/frontend/public/localization/reports_fr.properties index 715fc47d6e8..970c326b0ce 100644 --- a/plugins/reports/frontend/public/localization/reports_fr.properties +++ b/plugins/reports/frontend/public/localization/reports_fr.properties @@ -1,149 +1,149 @@ -reports.title = Email Reports -reports.description = Receive email reports about all data points and dashboards -reports.frequency = Frequency -reports.select_frequency = Select Frequency -reports.time = Time -reports.select_time = Select Time -reports.timezone = Time Zone -reports.select_timezone = Select Time Zone -reports.apps = App(s) -reports.emails = Emails -reports.metrics = Data -reports.include-metrics = Data included in reports -reports.create = Create new report -reports.delete = Delete report -reports.send = Send now -reports.preview = Preview -reports.sent = Report was successfully sent -reports.daily = Daily -reports.weekly = Weekly -reports.monthly = Monthly -reports.time-daily = today -reports.time-weekly = this week -reports.hour = Hour +reports.title = Rapports par e-mail +reports.description = Recevoir des rapports par e-mail sur tous les points de données et tableaux de bord +reports.frequency = Fréquence +reports.select_frequency = Sélectionner la fréquence +reports.time = Heure +reports.select_time = Sélectionner l'heure +reports.timezone = Fuseau horaire +reports.select_timezone = Sélectionner le fuseau horaire +reports.apps = Application(s) +reports.emails = E-mails +reports.metrics = Données +reports.include-metrics = Données incluses dans les rapports +reports.create = Créer un nouveau rapport +reports.delete = Supprimer le rapport +reports.send = Envoyer maintenant +reports.preview = Aperçu +reports.sent = Le rapport a été envoyé avec succès +reports.daily = Quotidien +reports.weekly = Hebdomadaire +reports.monthly = Mensuel +reports.time-daily = aujourd'hui +reports.time-weekly = cette semaine +reports.hour = Heure reports.minutes = Minutes -reports.dow = Day of the week -reports.monday = Monday -reports.tuesday = Tuesday -reports.wednesday = Wednesday -reports.thursday = Thursday -reports.friday = Friday -reports.saturday = Saturday -reports.sunday = Sunday -reports.at = at -reports.on = on -reports.every-month = every month -reports.confirm = Are you sure you want to delete this report called {0}? -reports.delete-report-title = Delete report? -reports.yes-delete-report = Yes, delete report -reports.help-emails = One email per line -reports.help-apps = Select at least one app -reports.analytics = Analytics -reports.events = Events -reports.views = Views -reports.revenue = Revenue +reports.dow = Jour de la semaine +reports.monday = Lundi +reports.tuesday = Mardi +reports.wednesday = Mercredi +reports.thursday = Jeudi +reports.friday = Vendredi +reports.saturday = Samedi +reports.sunday = Dimanche +reports.at = à +reports.on = le +reports.every-month = chaque mois +reports.confirm = Êtes-vous sûr de vouloir supprimer ce rapport appelé {0} ? +reports.delete-report-title = Supprimer le rapport ? +reports.yes-delete-report = Oui, supprimer le rapport +reports.help-emails = Un e-mail par ligne +reports.help-apps = Sélectionner au moins une application +reports.analytics = Analyses +reports.events = Événements +reports.views = Vues +reports.revenue = Revenus reports.push = Push reports.crash = Crash -reports.total_sessions = Total Sessions -reports.total_users = Total Users -reports.new_users = New Users -reports.total_time = Time Spent (min) -reports.avg_time = Avg. Time Spent (min) -reports.paying_users = Paying users -reports.messaging_users = Push enabled users -reports.returning_users = Returning users -reports.new_crashes = New Crashes -reports.unique_crashes = Unique Crashes -reports.total_crashes = Total Crashes -reports.fatal_crashes = Fatal Crashes -reports.non_fatal_crashes = Non-fatal crashes -reports.resolved_upgrades = Resolved upgrades -reports.purchases_c = Purchases -reports.purchases_s = Amount -reports.push_sent = Sent notifications -reports.push_open = Delivered notifications -reports.push_action = Actions taken -reports.settings = Report settings -reports.to-dashboard = Go to your dashboard -reports.your = Your {0} Report {1} -reports.subject-week = You had {0} new users this week! -reports.subject-day = You had {0} new users today! -reports.subject-month = You had {0} new users in the previous month! -reports.more = more -reports.report = {0} Report -reports.too-long = Sending message took too long. Message may not be sent. -reports.sent-by = Sent by -reports.view-in-browser = View in browser -reports.get-help = Get help -reports.metric-metric = Metric -reports.metric-count = Count -reports.metric-change = Change -reports.metric-event = Event +reports.total_sessions = Sessions totales +reports.total_users = Utilisateurs totaux +reports.new_users = Nouveaux utilisateurs +reports.total_time = Temps passé (min) +reports.avg_time = Temps moyen passé (min) +reports.paying_users = Utilisateurs payants +reports.messaging_users = Utilisateurs avec push activé +reports.returning_users = Utilisateurs qui reviennent +reports.new_crashes = Nouveaux crashes +reports.unique_crashes = Crashes uniques +reports.total_crashes = Crashes totaux +reports.fatal_crashes = Crashes fatals +reports.non_fatal_crashes = Crashes non fatals +reports.resolved_upgrades = Mises à niveau résolues +reports.purchases_c = Achats +reports.purchases_s = Montant +reports.push_sent = Notifications envoyées +reports.push_open = Notifications livrées +reports.push_action = Actions effectuées +reports.settings = Paramètres du rapport +reports.to-dashboard = Aller à votre tableau de bord +reports.your = Votre rapport {0} {1} +reports.subject-week = Vous avez eu {0} nouveaux utilisateurs cette semaine ! +reports.subject-day = Vous avez eu {0} nouveaux utilisateurs aujourd'hui ! +reports.subject-month = Vous avez eu {0} nouveaux utilisateurs le mois précédent ! +reports.more = plus +reports.report = Rapport {0} +reports.too-long = L'envoi du message a pris trop de temps. Le message pourrait ne pas être envoyé. +reports.sent-by = Envoyé par +reports.view-in-browser = Voir dans le navigateur +reports.get-help = Obtenir de l'aide +reports.metric-metric = Métrique +reports.metric-count = Nombre +reports.metric-change = Changement +reports.metric-event = Événement reports.metric-crash = Crash reports.metric-occurrences = Occurrences -reports.comment-error = There was an error while sending the report +reports.comment-error = Il y a eu une erreur lors de l'envoi du rapport -systemlogs.action.reports_create = Email Report Created -systemlogs.action.reports_edited = Email Report Edited -systemlogs.action.reports_deleted = Email Report Deleted -systemlogs.action.reports_unsubscribe = Email Report Unsubscribed -systemlogs.action.reports_subscribe = Email Report Subscribed -reports.Save_Changes = Save Changes -reports.Create_New_Report = Create New E-mail Report -reports.create_new_report_title =Create New Report -reports.edit_report_title = Edit e-mail report -reports.report_name = E-mail report name -reports.emails-title = E-mails to send report to -report.report-title = Report Name -report.status = status -reports.apps_desc = Applications to receive reports from -reports.select-time = Time to receive reports -reports.report-type = Report Type -reports.core = Core report -reports.enable-plugin = Enable {0} plugin to see data -reports.not-valid = The report data is not valid -reports.Select_apps = Select Applications -reports.select_dow = Select Day of Week -reports.report-name = Enter Report Name -reports.report-email = Add e-mails of report recipients -reports.daily-description = On selected time -reports.weekly-description = On selected time and day -reports.monthly-description = 1st of every month -reports.eports.include-events = Select Events to Include +systemlogs.action.reports_create = Rapport par e-mail créé +systemlogs.action.reports_edited = Rapport par e-mail modifié +systemlogs.action.reports_deleted = Rapport par e-mail supprimé +systemlogs.action.reports_unsubscribe = Rapport par e-mail désabonné +systemlogs.action.reports_subscribe = Rapport par e-mail réabonné +reports.Save_Changes = Enregistrer les modifications +reports.Create_New_Report = Créer un nouveau rapport par e-mail +reports.create_new_report_title = Créer un nouveau rapport +reports.edit_report_title = Modifier le rapport par e-mail +reports.report_name = Nom du rapport par e-mail +reports.emails-title = E-mails pour envoyer le rapport +report.report-title = Nom du rapport +report.status = statut +reports.apps_desc = Applications pour recevoir les rapports +reports.select-time = Heure pour recevoir les rapports +reports.report-type = Type de rapport +reports.core = Rapport principal +reports.enable-plugin = Activer le plugin {0} pour voir les données +reports.not-valid = Les données du rapport ne sont pas valides +reports.Select_apps = Sélectionner les applications +reports.select_dow = Sélectionner le jour de la semaine +reports.report-name = Entrer le nom du rapport +reports.report-email = Ajouter les e-mails des destinataires du rapport +reports.daily-description = À l'heure sélectionnée +reports.weekly-description = À l'heure et au jour sélectionnés +reports.monthly-description = Le 1er de chaque mois +reports.eports.include-events = Sélectionner les événements à inclure reports.performance = Performance -report.report-created-by-me = Created By Me -reports.secretKey = Secret key for unsubscribe link -reports.unsubscribe = Unsubscribe -configs.help.reports-secretKey = Secret key must be 32 character for AES 256 +report.report-created-by-me = Créé par moi +reports.secretKey = Clé secrète pour le lien de désabonnement +reports.unsubscribe = Se désabonner +configs.help.reports-secretKey = La clé secrète doit faire 32 caractères pour AES 256 -reports.unsubscribe-title = You have successfully unsubscribed. -reports.unsubscribe-subtitle = You'll no longer receive email report for {0}, but you can change your decision at any time. -reports.unsubscribe-hint = Did you unsubscribe by accident? -reports.unsubscribe-button = Resubscribe +reports.unsubscribe-title = Vous vous êtes désabonné avec succès. +reports.unsubscribe-subtitle = Vous ne recevrez plus de rapport par e-mail pour {0}, mais vous pouvez changer d'avis à tout moment. +reports.unsubscribe-hint = Vous êtes-vous désabonné par accident ? +reports.unsubscribe-button = Se réabonner -reports.subscribe-title = You have successfully re-subscribed. -reports.subscribe-subtitle = You will continue to receive email reports, but you can change your decision at any time. -reports.subscribe-hint = Do you want to unsubscribe again? -reports.subscribe-button = Unsubscribe -reports.select-events = Select Events to Include -reports.Select_metrics = Select Data -reports.email-to-receive =E-mails to Send Report to -reports.email-placeholder= Add e-mails of report recipients -reports.tips=Create automatic reports to receive e-mails periodically.Visualize and manage all existing
e-mail reports set up. -reports.timezone-desc = Select the time zone that will apply to the time determined for sending the e-mail report. -reports.time-desc= Select at what time will Countly send the e-mail report. -reports.frequency-desc = Select how often will Countly send the e-mail report. -reports.select-apps= Applications to Receive Reports from -reports.daily-desc=On selected time -reports.weekly-desc=On selected time and day -reports.monthly-desc=1st of every month -reports.type-tips=Select a report type. -reports.save-report-success = Successfully saved report -reports.save-report-status-success =Successfully update reports status -reports.empty-title= ...hmm, seems empty here -reports.empty-action-button-title=+ Create New Report -reports.empty-subtitle= Create reports to receive e-mails periodically. -reports.Select-timezone=Select Time Zone -reports.Select-dow=Select a Day of the Week -reports.Select-time=Select Time -reports.send-pdf = Send as pdf attachment \ No newline at end of file +reports.subscribe-title = Vous vous êtes réabonné avec succès. +reports.subscribe-subtitle = Vous continuerez à recevoir des rapports par e-mail, mais vous pouvez changer d'avis à tout moment. +reports.subscribe-hint = Voulez-vous vous désabonner à nouveau ? +reports.subscribe-button = Se désabonner +reports.select-events = Sélectionner les événements à inclure +reports.Select_metrics = Sélectionner les données +reports.email-to-receive = E-mails pour envoyer le rapport +reports.email-placeholder = Ajouter les e-mails des destinataires du rapport +reports.tips = Créer des rapports automatiques pour recevoir des e-mails périodiquement. Visualiser et gérer tous les
rapports par e-mail existants configurés. +reports.timezone-desc = Sélectionner le fuseau horaire qui s'appliquera à l'heure déterminée pour l'envoi du rapport par e-mail. +reports.time-desc = Sélectionner à quelle heure Countly enverra le rapport par e-mail. +reports.frequency-desc = Sélectionner à quelle fréquence Countly enverra le rapport par e-mail. +reports.select-apps = Applications pour recevoir les rapports +reports.daily-desc = À l'heure sélectionnée +reports.weekly-desc = À l'heure et au jour sélectionnés +reports.monthly-desc = Le 1er de chaque mois +reports.type-tips = Sélectionner un type de rapport. +reports.save-report-success = Rapport enregistré avec succès +reports.save-report-status-success = Statut du rapport mis à jour avec succès +reports.empty-title = ...hmm, semble vide ici +reports.empty-action-button-title = + Créer un nouveau rapport +reports.empty-subtitle = Créer des rapports pour recevoir des e-mails périodiquement. +reports.Select-timezone = Sélectionner le fuseau horaire +reports.Select-dow = Sélectionner un jour de la semaine +reports.Select-time = Sélectionner l'heure +reports.send-pdf = Envoyer en pièce jointe PDF \ No newline at end of file diff --git a/plugins/sdk/frontend/public/localization/sdk_fr.properties b/plugins/sdk/frontend/public/localization/sdk_fr.properties index 505879c78ea..b598cd592c2 100644 --- a/plugins/sdk/frontend/public/localization/sdk_fr.properties +++ b/plugins/sdk/frontend/public/localization/sdk_fr.properties @@ -1,4 +1,4 @@ #sdk -sdk.plugin-title = SDK Manager -sdk.plugin-description = SDK configuration and data +sdk.plugin-title = Gestionnaire SDK +sdk.plugin-description = Configuration et données SDK diff --git a/plugins/server-stats/frontend/public/localization/server-stats_fr.properties b/plugins/server-stats/frontend/public/localization/server-stats_fr.properties index e716c5742bf..b610614aea9 100644 --- a/plugins/server-stats/frontend/public/localization/server-stats_fr.properties +++ b/plugins/server-stats/frontend/public/localization/server-stats_fr.properties @@ -1,30 +1,30 @@ -server-stats.plugin-title = Server Stats -server-stats.plugin-description = Data point (sessions + events) counter -server-stats.data-points = Data Points -server-stats.data-points-description = Sessions, events (custom events + internal events generated by plugins) and data points (sessions + events) for the selected period -server-stats.sessions-description = Count of sessions. If data for this period is not available, then there will be '-'. Total data points for this period will always be accurate. -server-stats.events-description = Count of events. If data for this period is not available, then there will be '-'. Total data points for this period will always be accurate. -server-stats.data-points.punch-card-tooltip = Max: {0}, Min: {1}, Avg: {2} -server-stats.data-points.punch-card-title = DATA POINTS (HOURS) → -server-stats.data-points-last_hours = Top applications by data points in the last 2 hours -server-stats.all-datapoints = All Datapoints -server-stats.total-datapoints = Total Data Points -server-stats.consolidated-datapoints = Consolidated Datapoints -server-stats.natural-datapoints = Natural Datapoints -server-stats.datapoint-change = Change in Data Points -server-stats.event-breakdown = Event Breakdown +server-stats.plugin-title = Statistiques du serveur +server-stats.plugin-description = Compteur de points de données (sessions + événements) +server-stats.data-points = Points de données +server-stats.data-points-description = Sessions, événements (événements personnalisés + événements internes générés par les plugins) et points de données (sessions + événements) pour la période sélectionnée +server-stats.sessions-description = Nombre de sessions. Si les données pour cette période ne sont pas disponibles, alors il y aura '-'. Le total des points de données pour cette période sera toujours exact. +server-stats.events-description = Nombre d'événements. Si les données pour cette période ne sont pas disponibles, alors il y aura '-'. Le total des points de données pour cette période sera toujours exact. +server-stats.data-points.punch-card-tooltip = Max : {0}, Min : {1}, Moy : {2} +server-stats.data-points.punch-card-title = POINTS DE DONNÉES (HEURES) → +server-stats.data-points-last_hours = Top applications par points de données dans les 2 dernières heures +server-stats.all-datapoints = Tous les points de données +server-stats.total-datapoints = Total des points de données +server-stats.consolidated-datapoints = Points de données consolidés +server-stats.natural-datapoints = Points de données naturels +server-stats.datapoint-change = Changement dans les points de données +server-stats.event-breakdown = Répartition des événements # Text required for data table, independant from other plugins -server-stats.app-name = App Name +server-stats.app-name = Nom de l'application server-stats.sessions = Sessions -server-stats.events = Non-Session Data Points +server-stats.events = Points de données non-session server-stats.crashes = Crashes -server-stats.views = Views -server-stats.actions = Heatmaps Actions +server-stats.views = Vues +server-stats.actions = Actions Heatmaps server-stats.nps = NPS -server-stats.surveys = Surveys -server-stats.ratings = Ratings -server-stats.apm = APM Traces -server-stats.custom = Custom Events -server-stats.cs = Consent event -server-stats.ps = Push Sent event -server-stats.push = Push Action event +server-stats.surveys = Enquêtes +server-stats.ratings = Évaluations +server-stats.apm = Traces APM +server-stats.custom = Événements personnalisés +server-stats.cs = Événement de consentement +server-stats.ps = Événement push envoyé +server-stats.push = Événement d'action push diff --git a/plugins/slipping-away-users/frontend/public/localization/slipping-away-users_fr.properties b/plugins/slipping-away-users/frontend/public/localization/slipping-away-users_fr.properties index e4c9d0a519a..85ff4b2385f 100644 --- a/plugins/slipping-away-users/frontend/public/localization/slipping-away-users_fr.properties +++ b/plugins/slipping-away-users/frontend/public/localization/slipping-away-users_fr.properties @@ -1,23 +1,23 @@ -slipping-away-users.title= Slipping Away -slipping-away-users.description = Overview of the total number of users who haven't had a session on your application, distributed in categories of 7, 14, 30, 60, and 90 days. Granular data on these users can be made visible by activating User Profiles. -web.slipping-away-users.description = Overview of the total number of visitors who haven't had a session on your website, distributed in categories of 7, 14, 30, 60, and 90 days. Granular data on these visitors can be made visible by activating Visitor Profiles. -slipping-away-users.barchart-description= Users who haven't had a session for more than -web.slipping-away-users.barchart-description = Visitors who haven't had a session for more than -slipping-away-users.serie-item = {0} days -slipping-away-users.table-period= No sessions in (days) -slipping-away-users.table-count= Slipping away user count -web.slipping-away-users.table-count= Slipping away visitor count -slipping-away-users.table-percentage= Percentage -slipping-away-users.table-user-list= View Users -web.slipping-away-users.table-user-list= View Visitors -slipping-away-users.table-no-users= No users -web.slipping-away-users.table-no-users= No visitors +slipping-away-users.title= Utilisateurs perdus +slipping-away-users.description = Aperçu du nombre total d'utilisateurs qui n'ont pas eu de session sur votre application, répartis en catégories de 7, 14, 30, 60 et 90 jours. Les données granulaires sur ces utilisateurs peuvent être rendues visibles en activant les profils utilisateur. +web.slipping-away-users.description = Aperçu du nombre total de visiteurs qui n'ont pas eu de session sur votre site web, répartis en catégories de 7, 14, 30, 60 et 90 jours. Les données granulaires sur ces visiteurs peuvent être rendues visibles en activant les profils visiteur. +slipping-away-users.barchart-description= Utilisateurs qui n'ont pas eu de session depuis plus de +web.slipping-away-users.barchart-description = Visiteurs qui n'ont pas eu de session depuis plus de +slipping-away-users.serie-item = {0} jours +slipping-away-users.table-period= Aucune session depuis (jours) +slipping-away-users.table-count= Nombre d'utilisateurs perdus +web.slipping-away-users.table-count= Nombre de visiteurs perdus +slipping-away-users.table-percentage= Pourcentage +slipping-away-users.table-user-list= Voir les utilisateurs +web.slipping-away-users.table-user-list= Voir les visiteurs +slipping-away-users.table-no-users= Aucun utilisateur +web.slipping-away-users.table-no-users= Aucun visiteur #Configuration page -slipping-away-users.config-title = Slipping Away -slipping-away-users.config-first-threshold = First threshold (days) -slipping-away-users.config-second-threshold = Second threshold (days) -slipping-away-users.config-third-threshold = Third threshold (days) -slipping-away-users.config-fourth-threshold = Fourth threshold (days) -slipping-away-users.config-fifth-threshold = Fifth threshold (days) +slipping-away-users.config-title = Utilisateurs perdus +slipping-away-users.config-first-threshold = Premier seuil (jours) +slipping-away-users.config-second-threshold = Deuxième seuil (jours) +slipping-away-users.config-third-threshold = Troisième seuil (jours) +slipping-away-users.config-fourth-threshold = Quatrième seuil (jours) +slipping-away-users.config-fifth-threshold = Cinquième seuil (jours) -slipping-away-users.back-to-slipping-away = Back to Slipping Away Users +slipping-away-users.back-to-slipping-away = Retour aux utilisateurs perdus diff --git a/plugins/sources/frontend/public/localization/sources_fr.properties b/plugins/sources/frontend/public/localization/sources_fr.properties index 3c144d4e51b..936be3e8d5c 100644 --- a/plugins/sources/frontend/public/localization/sources_fr.properties +++ b/plugins/sources/frontend/public/localization/sources_fr.properties @@ -1,19 +1,19 @@ #sources sources.title = Sources sidebar.acquisition = Sources -sources.description = Overview of the source of traffic to your mobile application (where the user discovered the app) or website application (how the user came to your website). +sources.description = Aperçu de la source de trafic vers votre application mobile (où l'utilisateur a découvert l'application) ou application web (comment l'utilisateur est arrivé sur votre site web). sources.source = Source sources.direct = Direct -sources.organic = Organic -sources.sources_length_limit = Maximum character length for source name -configs.help.sources-sources_length_limit = Set limit for source name length. The characters beyond the limitation value will be ignored. -help.sources.chart = Pie chart on the left shows total visitors from each source (referral URL). Pie chart on the right shows new visitors from each source. The table below shows a breakdown of this data for each source. Click on each line on a table to see a list of paths. -sources.drill_data = Drill Data -sources.plugin-settings = Plugin Settings -sources.go-to-acquisition = Go to Acquisition +sources.organic = Organique +sources.sources_length_limit = Longueur maximale de caractères pour le nom de source +configs.help.sources-sources_length_limit = Définir la limite pour la longueur du nom de source. Les caractères au-delà de la valeur limite seront ignorés. +help.sources.chart = Le graphique en secteurs à gauche montre le total des visiteurs de chaque source (URL de référence). Le graphique en secteurs à droite montre les nouveaux visiteurs de chaque source. Le tableau ci-dessous montre une répartition de ces données pour chaque source. Cliquer sur chaque ligne du tableau pour voir une liste de chemins. +sources.drill_data = Données détaillées +sources.plugin-settings = Paramètres du plugin +sources.go-to-acquisition = Aller à l'acquisition #keywords -keywords.title = Search Terms -keywords.top_terms = Top Searched Terms -keywords.total = of Total -keywords.go-to-keywords = Go to Search Terms -keywords.description = Applicable to web applications, this higlights the search terms that drive traffic to your website. \ No newline at end of file +keywords.title = Termes de recherche +keywords.top_terms = Termes les plus recherchés +keywords.total = du total +keywords.go-to-keywords = Aller aux termes de recherche +keywords.description = Applicable aux applications web, ceci met en évidence les termes de recherche qui génèrent du trafic vers votre site web. \ No newline at end of file diff --git a/plugins/star-rating/frontend/public/localization/star-rating_fr.properties b/plugins/star-rating/frontend/public/localization/star-rating_fr.properties index 7c6008da171..b8ff6dff33b 100644 --- a/plugins/star-rating/frontend/public/localization/star-rating_fr.properties +++ b/plugins/star-rating/frontend/public/localization/star-rating_fr.properties @@ -1,217 +1,217 @@ k#star -star-rating.plugin-title = Ratings -star-rating.plugin-description = Collect 1 to 5 star ratings from your application users. -star.all-ratings=All Ratings -star.all-versions=All Versions -star.all-platforms=All Platforms -star.all-widgets=All Widgets -star.menu-title= Ratings -star.all-app-versions = All App Versions -star.cumulative=CUMULATIVE -star.time-series=TIME SERIES -star.one-star=Very Dissatisfied -star.two-star=Somewhat Dissatisfied -star.three-star=Neither Satisfied Nor Dissatisfied -star.four-star=Somewhat Satisfied -star.five-star=Very Satisfied -star.total-ratings=TOTAL RATINGS -star.median-rating=MEDIAN RATING +star-rating.plugin-title = Évaluations +star-rating.plugin-description = Collectez des évaluations de 1 à 5 étoiles des utilisateurs de votre application. +star.all-ratings=Toutes les évaluations +star.all-versions=Toutes les versions +star.all-platforms=Toutes les plateformes +star.all-widgets=Tous les widgets +star.menu-title= Évaluations +star.all-app-versions = Toutes les versions de l'application +star.cumulative=CUMULATIF +star.time-series=SÉRIES TEMPORELLES +star.one-star=Très insatisfait +star.two-star=Plutôt insatisfait +star.three-star=Ni satisfait ni insatisfait +star.four-star=Plutôt satisfait +star.five-star=Très satisfait +star.total-ratings=TOTAL DES ÉVALUATIONS +star.median-rating=ÉVALUATION MÉDIANE star.date=date -star.rating=Rating -star.ratings=Ratings -star.reset-filters = Reset filters -star.number-of-ratings=NUMBER OF RATINGS -star.number-of-ratings-cap= Number of ratings -star.percentage=PERCENTAGE -star.percentage-cap=Percentage -star.change=Change -star-rating.trigger-size.small=Small -star-rating.trigger-size.medium=Medium -star-rating.trigger-size.large=Large -star-rating.trigger-position.center-left=Center left -star-rating.trigger-position.center-right=Center right -star-rating.trigger-position.bottom-left=Bottom left -star-rating.trigger-position.bottom-right=Bottom right +star.rating=Évaluation +star.ratings=Évaluations +star.reset-filters = Réinitialiser les filtres +star.number-of-ratings=NOMBRE D'ÉVALUATIONS +star.number-of-ratings-cap= Nombre d'évaluations +star.percentage=POURCENTAGE +star.percentage-cap=Pourcentage +star.change=Changement +star-rating.trigger-size.small=Petit +star-rating.trigger-size.medium=Moyen +star-rating.trigger-size.large=Grand +star-rating.trigger-position.center-left=Centre gauche +star-rating.trigger-position.center-right=Centre droite +star-rating.trigger-position.bottom-left=Bas gauche +star-rating.trigger-position.bottom-right=Bas droite feedback.widget = Widget -feedback.active = Running -feedback.disabled = Stopped -feedback.ratings-tab-table-title = Ratings -feedback.select-rating = Select rating -feedback.select-version = Select version -feedback.select-platform = Select platform -feedback.select-widget = Select widget -feedback.popup-header-text = What's your opinion about this page? -feedback.popup-comment-callout = Add comment -feedback.popup-email-callout = Contact me via e-mail -feedback.popup-button-callout = Submit feedback -feedback.button-callout = Button Callout -feedback.thank-you-message = Thank you Message -feedback.type-button-callout = Type your button callout -feedback.type-thank-you-message = Type your thank you message -feedback.popup-thanks-message = Thank you for your feedback -feedback.trigger-button-text = Feedback -feedback.next-step = Next step -feedback.previous-step = Previous step -feedback.complete = Complete -feedback.target-pages = Target Pages -feedback.target-devices = Target Devices -feedback.preview = Preview -feedback.trigger-button-preview = Trigger Button Preview -feedback.popup-preview = Popup preview -feedback.please-select-device = Please select device -feedback.at-least-one-device = At least one device should selected -feedback.successfully-updated = Successfully updated -feedback.somethings-went-wrong = Somethings went wrong -feedback.successfully-updated-message = Ratings widget updated successfully -feedback.update-fail-message = Ratings widget couldn't updated -feedback.successfully-created = Successfully created -feedback.successfully-removed = Successfully removed -feedback.successfully-created-message = Ratings widget created -feedback.create-fail-message = Ratings widget couldn't created -feedback.created-at = Created at -feedback.ratings = Ratings -feedback.comments = Comments -feedback.delete-a-widget = Delete a widget? -feedback.delete-a-widget-description = You are about to delete all the data associated with your widget. Do you want to continue? -feedback.yes-delete-widget = Delete widget +feedback.active = En cours +feedback.disabled = Arrêté +feedback.ratings-tab-table-title = Évaluations +feedback.select-rating = Sélectionner l'évaluation +feedback.select-version = Sélectionner la version +feedback.select-platform = Sélectionner la plateforme +feedback.select-widget = Sélectionner le widget +feedback.popup-header-text = Quelle est votre opinion sur cette page ? +feedback.popup-comment-callout = Ajouter un commentaire +feedback.popup-email-callout = Me contacter par e-mail +feedback.popup-button-callout = Soumettre le commentaire +feedback.button-callout = Texte du bouton +feedback.thank-you-message = Message de remerciement +feedback.type-button-callout = Tapez le texte de votre bouton +feedback.type-thank-you-message = Tapez votre message de remerciement +feedback.popup-thanks-message = Merci pour votre commentaire +feedback.trigger-button-text = Commentaire +feedback.next-step = Étape suivante +feedback.previous-step = Étape précédente +feedback.complete = Terminer +feedback.target-pages = Pages cibles +feedback.target-devices = Appareils cibles +feedback.preview = Aperçu +feedback.trigger-button-preview = Aperçu du bouton déclencheur +feedback.popup-preview = Aperçu de la popup +feedback.please-select-device = Veuillez sélectionner un appareil +feedback.at-least-one-device = Au moins un appareil doit être sélectionné +feedback.successfully-updated = Mis à jour avec succès +feedback.somethings-went-wrong = Quelque chose s'est mal passé +feedback.successfully-updated-message = Widget d'évaluations mis à jour avec succès +feedback.update-fail-message = Le widget d'évaluations n'a pas pu être mis à jour +feedback.successfully-created = Créé avec succès +feedback.successfully-removed = Supprimé avec succès +feedback.successfully-created-message = Widget d'évaluations créé +feedback.create-fail-message = Le widget d'évaluations n'a pas pu être créé +feedback.created-at = Créé le +feedback.ratings = Évaluations +feedback.comments = Commentaires +feedback.delete-a-widget = Supprimer un widget ? +feedback.delete-a-widget-description = Vous êtes sur le point de supprimer toutes les données associées à votre widget. Voulez-vous continuer ? +feedback.yes-delete-widget = Supprimer le widget feedback.email = E-mail -feedback.comment = Comment -feedback.time = Time -feedback.rating = Rating -feedback.widgets = Rating Widgets -feedback.add-new-widget = Add New Widget -feedback.add-widget = Add new widget -feedback.results-for = Results for -feedback.ratings-rate = Ratings Rate -feedback.times-shown = Times Shown -feedback.edit-widget = Edit Widget -feedback.start-widget = Start Widget -feedback.status = Status -feedback.stop-widget = Stop Widget -feedback.delete-widget = Delete Widget -feedback.popup-preview = Popup preview -feedback.ratings-popup = Ratings Popup -feedback.thank-you-page = Thank you page -feedback.widget-appearance = Widget appearance -feedback.trigger-button-size = Trigger Button Size -feedback.position-on-the-page = Position on the Page -feedback.trigger-button-appearance = Trigger button appearance -feedback.devices-targeting = Devices & Targeting -feedback.header-text-title = Header text -feedback.comment-callout-title = Use "Add comment" option -feedback.email-callout-title = Use "Contact me via e-mail" option -feedback.button-callout-title = Button callout -feedback.thanks-message-title = Thank you message -feedback.position-on-the-page = Position on the page -feedback.middle-right = Center right -feedback.middle-left = Center left -feedback.bottom-right = Bottom right -feedback.bottom-left = Bottom left -feedback.trigger-text = Trigger text -feedback.button-color = Ratings button color -feedback.font-color = Font Color -feedback.drop-message = Drag and drop file here or -feedback.click-to-upload = click to upload -feedback.remove-file = Remove File -feedback.main-color = Main Color +feedback.comment = Commentaire +feedback.time = Heure +feedback.rating = Évaluation +feedback.widgets = Widgets d'évaluation +feedback.add-new-widget = Ajouter un nouveau widget +feedback.add-widget = Ajouter un nouveau widget +feedback.results-for = Résultats pour +feedback.ratings-rate = Taux d'évaluations +feedback.times-shown = Fois affiché +feedback.edit-widget = Modifier le widget +feedback.start-widget = Démarrer le widget +feedback.status = Statut +feedback.stop-widget = Arrêter le widget +feedback.delete-widget = Supprimer le widget +feedback.popup-preview = Aperçu de la popup +feedback.ratings-popup = Popup d'évaluations +feedback.thank-you-page = Page de remerciement +feedback.widget-appearance = Apparence du widget +feedback.trigger-button-size = Taille du bouton déclencheur +feedback.position-on-the-page = Position sur la page +feedback.trigger-button-appearance = Apparence du bouton déclencheur +feedback.devices-targeting = Appareils et ciblage +feedback.header-text-title = Texte d'en-tête +feedback.comment-callout-title = Utiliser l'option "Ajouter un commentaire" +feedback.email-callout-title = Utiliser l'option "Me contacter par e-mail" +feedback.button-callout-title = Texte du bouton +feedback.thanks-message-title = Message de remerciement +feedback.position-on-the-page = Position sur la page +feedback.middle-right = Centre droite +feedback.middle-left = Centre gauche +feedback.bottom-right = Bas droite +feedback.bottom-left = Bas gauche +feedback.trigger-text = Texte du déclencheur +feedback.button-color = Couleur du bouton d'évaluations +feedback.font-color = Couleur de police +feedback.drop-message = Glissez et déposez le fichier ici ou +feedback.click-to-upload = cliquez pour télécharger +feedback.remove-file = Supprimer le fichier +feedback.main-color = Couleur principale feedback.logo = Logo -feedback.select-device-types = Select device types -feedback.where-to-collect-feedback = Where to collect ratings? -feedback.all-pages = On all pages -feedback.selected-pages = On selected pages -feedback.internalName = Internal Name -feedback.internalName.placeholder = Enter an Internal Name -feedback.internalName.description = This name is internal and will not be shown to your end user. -feedback.consent = Add user consent +feedback.select-device-types = Sélectionner les types d'appareils +feedback.where-to-collect-feedback = Où collecter les évaluations ? +feedback.all-pages = Sur toutes les pages +feedback.selected-pages = Sur les pages sélectionnées +feedback.internalName = Nom interne +feedback.internalName.placeholder = Entrer un nom interne +feedback.internalName.description = Ce nom est interne et ne sera pas montré à votre utilisateur final. +feedback.consent = Ajouter le consentement utilisateur feedback.question = Question -feedback.rating-symbol = Rating Symbol -feedback.rating-score = Rating Score +feedback.rating-symbol = Symbole d'évaluation +feedback.rating-score = Score d'évaluation feedback.pages = Pages -feedback.show-detail = Show Detail -feedback.detail = Detail -feedback.responses = Responses -feedback.ratings-widget-name = Ratings Widget Name -feedback.ratings-widget-internal-name = Internal Name +feedback.show-detail = Afficher les détails +feedback.detail = Détail +feedback.responses = Réponses +feedback.ratings-widget-name = Nom du widget d'évaluations +feedback.ratings-widget-internal-name = Nom interne feedback.emojis = Emojis -feedback.thumbs = Thumbs -feedback.stars = Stars -feedback.buttons.heading = Buttons -feedback.use-add-comment-option = Use "Add comment" option -feedback.use-contact-email-option = Use "Contact me via e-mail" option -feedback.type-your-option-name = Enter your option name -feedback.type-your-question = Type your question here -feedback.type-pages = Type pages (e.g /product) to show ratings widget -feedback.hide-sticker = Hide sticker -feedback.widget-enabled-successfully = Widget enabled successfully -feedback.widget-disabled-successfully = Widget disabled successfully -feedback.widget-id-copied = Widget id has been copied to clipboard! -feedback.widget-id = Widget ID -feedback.code-copied = Code has been copied to clipboard! -feedback.set-feedback-active = Set widget active -feedback.show-instructions = Show installation instructions -feedback.edit = Edit widget -feedback.settings = Settings +feedback.thumbs = Pouces +feedback.stars = Étoiles +feedback.buttons.heading = Boutons +feedback.use-add-comment-option = Utiliser l'option "Ajouter un commentaire" +feedback.use-contact-email-option = Utiliser l'option "Me contacter par e-mail" +feedback.type-your-option-name = Entrer le nom de votre option +feedback.type-your-question = Tapez votre question ici +feedback.type-pages = Tapez les pages (ex: /produit) pour afficher le widget d'évaluations +feedback.hide-sticker = Masquer l'autocollant +feedback.widget-enabled-successfully = Widget activé avec succès +feedback.widget-disabled-successfully = Widget désactivé avec succès +feedback.widget-id-copied = L'ID du widget a été copié dans le presse-papiers ! +feedback.widget-id = ID du widget +feedback.code-copied = Le code a été copié dans le presse-papiers ! +feedback.set-feedback-active = Activer le widget +feedback.show-instructions = Afficher les instructions d'installation +feedback.edit = Modifier le widget +feedback.settings = Paramètres feedback.segmentation = Segmentation -feedback.total-ratings = Total Ratings -feedback.average-ratings-score = Average Ratings Score -feedback.delete = Delete widget -feedback.sticker-size-small = Small -feedback.sticker-size-medium = Medium -feedback.sticker-size-large = Large -feedback.trigger-size-title = Trigger button size -feedback.back-to-rating-widgets = Back to Rating Widgets -internal-events.[CLY]_star_rating = Ratings -feedback.targeting = Targeting -reports.star-rating = Ratings -feedback.rating = Rating -feedback.number-of-ratings = Number of Ratings -feedback.percentage = Percentage -feedback.add-countly-to-your-app = Add Countly user ratings plugin to your app -feedback.add-countly-to-your-app-description-1 = Countly user ratings feature needs Countly web SDK to be inserted in your web site. -feedback.add-countly-to-your-app-description-2 = In order for user ratings widget to appear, you also need to add: -feedback.add-countly-to-your-app-description-3 = Countly user ratings feature needs Countly iOS/Android SDK to be inserted in your mobile app. -feedback.copy-code = Copy code -feedback.go-to-documentation = You can go to documentation from here. -feedback.instruction-for-integration = Please go to documentation, copy the code snippet above and insert this one line. After you are done, please refresh your web page to see the widget call to action button. -feedback.instruction-for-mobile-integration = Please go to documentation page for more information. -feedback.visibility = Visibility -feedback.show-only-selected-pages = Show ratings widget only on selected pages -ratings.tooltip.total-ratings = Total number of Ratings received from users. -ratings.tooltip.ratings = An overview of all ratings widgets set up in your application, including active and stopped ratings. -ratings.tooltip.widget-detail-times-shown = Number of times the Ratings widget was shown to targeted users. -ratings.tooltip.average-ratings-score = Average Ratings received calculated by Sum of Ratings / Ratings Count -ratings.tooltip.logo = Add your own company or app logo to customize your ratings widget. Please limit logo file with PNG or JPEG file types. Uploaded logo will be scaled to 140 x 50 pixels. -ratings.tooltip.drawer-visibility = When checked, the Ratings sticker will be hidden from view and will only be visible upon a user-based action trigger from code. -ratings.tooltip.widget-detail-ratings = Number of Ratings surveys received. -ratings.tooltip.widget-detail-rate = Rate of ratings calculated by Ratings Count / Times Shown -ratings.tooltip.drawer-logo = Add your own company or app logo to customize your ratings widget. Please limit logo file with PNG or JPEG file types. Uploaded logo will be scaled to 140 x 50 pixels. -ratings.empty.title = Create your first Ratings Widget -ratings.empty.body = Create a Ratings Widget to collect, store, search, and track user feedback from web and mobile applications. +feedback.total-ratings = Total des évaluations +feedback.average-ratings-score = Score moyen des évaluations +feedback.delete = Supprimer le widget +feedback.sticker-size-small = Petit +feedback.sticker-size-medium = Moyen +feedback.sticker-size-large = Grand +feedback.trigger-size-title = Taille du bouton déclencheur +feedback.back-to-rating-widgets = Retour aux widgets d'évaluation +internal-events.[CLY]_star_rating = Évaluations +feedback.targeting = Ciblage +reports.star-rating = Évaluations +feedback.rating = Évaluation +feedback.number-of-ratings = Nombre d'évaluations +feedback.percentage = Pourcentage +feedback.add-countly-to-your-app = Ajouter le plugin d'évaluations utilisateur Countly à votre application +feedback.add-countly-to-your-app-description-1 = La fonctionnalité d'évaluations utilisateur Countly nécessite que le SDK web Countly soit inséré dans votre site web. +feedback.add-countly-to-your-app-description-2 = Pour que le widget d'évaluations utilisateur apparaisse, vous devez aussi ajouter : +feedback.add-countly-to-your-app-description-3 = La fonctionnalité d'évaluations utilisateur Countly nécessite que le SDK iOS/Android Countly soit inséré dans votre application mobile. +feedback.copy-code = Copier le code +feedback.go-to-documentation = Vous pouvez aller à la documentation depuis ici. +feedback.instruction-for-integration = Veuillez aller à la documentation, copier l'extrait de code ci-dessus et insérer cette ligne. Après avoir terminé, veuillez actualiser votre page web pour voir le bouton d'appel à l'action du widget. +feedback.instruction-for-mobile-integration = Veuillez aller à la page de documentation pour plus d'informations. +feedback.visibility = Visibilité +feedback.show-only-selected-pages = Afficher le widget d'évaluations uniquement sur les pages sélectionnées +ratings.tooltip.total-ratings = Nombre total d'évaluations reçues des utilisateurs. +ratings.tooltip.ratings = Un aperçu de tous les widgets d'évaluations configurés dans votre application, y compris les évaluations actives et arrêtées. +ratings.tooltip.widget-detail-times-shown = Nombre de fois où le widget d'évaluations a été montré aux utilisateurs ciblés. +ratings.tooltip.average-ratings-score = Évaluations moyennes reçues calculées par Somme des évaluations / Nombre d'évaluations +ratings.tooltip.logo = Ajoutez votre propre logo d'entreprise ou d'application pour personnaliser votre widget d'évaluations. Veuillez limiter le fichier logo aux types de fichiers PNG ou JPEG. Le logo téléchargé sera redimensionné à 140 x 50 pixels. +ratings.tooltip.drawer-visibility = Quand coché, l'autocollant d'évaluations sera masqué de la vue et ne sera visible que lors d'un déclencheur d'action basé sur l'utilisateur depuis le code. +ratings.tooltip.widget-detail-ratings = Nombre d'enquêtes d'évaluations reçues. +ratings.tooltip.widget-detail-rate = Taux d'évaluations calculé par Nombre d'évaluations / Fois affiché +ratings.tooltip.drawer-logo = Ajoutez votre propre logo d'entreprise ou d'application pour personnaliser votre widget d'évaluations. Veuillez limiter le fichier logo aux types de fichiers PNG ou JPEG. Le logo téléchargé sera redimensionné à 140 x 50 pixels. +ratings.empty.title = Créez votre premier widget d'évaluations +ratings.empty.body = Créez un widget d'évaluations pour collecter, stocker, rechercher et suivre les commentaires utilisateur depuis les applications web et mobiles. #Surveys/ Logo -surveys.appearance.logo.option.default = Use default logo -surveys.appearance.logo.option.custom = Upload a custom logo -surveys.appearance.logo.option.no.logo = Dont use a logo -feedback.main_color.description = Choose the main color of the widget -feedback.main_color-title = Main Color -feedback.font_color.description = Choose the font color of the widget -feedback.font_color-title = Font Color +surveys.appearance.logo.option.default = Utiliser le logo par défaut +surveys.appearance.logo.option.custom = Télécharger un logo personnalisé +surveys.appearance.logo.option.no.logo = Ne pas utiliser de logo +feedback.main_color.description = Choisir la couleur principale du widget +feedback.main_color-title = Couleur principale +feedback.font_color.description = Choisir la couleur de police du widget +feedback.font_color-title = Couleur de police feedback.logo-title = Logo -feedback.logo.description = Add your own company or app logo to customize your survey. Please limit logo file with PNG or JPEG file types. Uploaded logo will be scaled to 140 x 50 pixels. -feedback.imagef-error = Invalid image format. Please choose a JPG (JPEG), GIF or PNG file. -feedback.imagefico-error = Invalid image format. Please choose a ICO, GIF or PNG file. -feedback.imagee-error = Reading file failed. -feedback.image-error = Image should not be larger than 1.5 MB. -feedback.error = Error -feedback.title = Feedback -feedbackApp.main_color = Main Color -feedbackApp.font_color = Font Color +feedback.logo.description = Ajoutez votre propre logo d'entreprise ou d'application pour personnaliser votre enquête. Veuillez limiter le fichier logo aux types de fichiers PNG ou JPEG. Le logo téléchargé sera redimensionné à 140 x 50 pixels. +feedback.imagef-error = Format d'image invalide. Veuillez choisir un fichier JPG (JPEG), GIF ou PNG. +feedback.imagefico-error = Format d'image invalide. Veuillez choisir un fichier ICO, GIF ou PNG. +feedback.imagee-error = Échec de lecture du fichier. +feedback.image-error = L'image ne doit pas dépasser 1,5 Mo. +feedback.error = Erreur +feedback.title = Commentaire +feedbackApp.main_color = Couleur principale +feedbackApp.font_color = Couleur de police feedbackApp.feedback_logo = Logo -feedback.delete-logo = Delete Logo -feedback.choose-file = Choose File -feedback.logo-preview = Logo Preview -feedback.view.user = View User -rating.drawer.consent.text = Text -rating.drawer.consent.placeholder = I agree to terms & conditions and privacy policy -rating.drawer.consent.links = Link(s) -rating.drawer.consent.add.link = + Add link -rating.drawer.links.tooltip = Matching link texts inside the consent text are modified to be links +feedback.delete-logo = Supprimer le logo +feedback.choose-file = Choisir un fichier +feedback.logo-preview = Aperçu du logo +feedback.view.user = Voir l'utilisateur +rating.drawer.consent.text = Texte +rating.drawer.consent.placeholder = J'accepte les conditions générales et la politique de confidentialité +rating.drawer.consent.links = Lien(s) +rating.drawer.consent.add.link = + Ajouter un lien +rating.drawer.links.tooltip = Les textes de lien correspondants dans le texte de consentement sont modifiés pour être des liens diff --git a/plugins/systemlogs/frontend/public/localization/systemlogs_fr.properties b/plugins/systemlogs/frontend/public/localization/systemlogs_fr.properties index b03d01bba77..ed09ebf0244 100644 --- a/plugins/systemlogs/frontend/public/localization/systemlogs_fr.properties +++ b/plugins/systemlogs/frontend/public/localization/systemlogs_fr.properties @@ -1,80 +1,80 @@ #system logs -systemlogs.title = Audit Logs -systemlogs.description = Logs user actions and data access on the dashboard. -systemlogs.user = User +systemlogs.title = Journaux d'audit +systemlogs.description = Enregistre les actions utilisateur et l'accès aux données sur le tableau de bord. +systemlogs.user = Utilisateur systemlogs.action = Action -systemlogs.timestamp = Time -systemlogs.ip-address = IP Address +systemlogs.timestamp = Heure +systemlogs.ip-address = Adresse IP systemlogs.info = Information -systemlogs.view-user-actions = View User Actions -systemlogs.all-users = All Users -systemlogs.all-actions = All Actions -systemlogs.no-data = No additional data to display -systemlogs.has-data = With the following data -systemlogs.changed-data = The following data was changed -systemlogs.field = Field -systemlogs.value = Value -systemlogs.before = Before -systemlogs.after = After -systemlogs.for-app = For App -systemlogs.for-user = For User -systemlogs.for-appuser = For App User -systemlogs.for-campaign = For Campaign -systemlogs.for-crash = For Crash -systemlogs.for-id = For ID -systemlogs.data = Data -configs.systemlogs-preventIPTracking = Disable IP Tracking -configs.help.systemlogs-preventIPTracking = Do not record the IP address of actions taken by the users. +systemlogs.view-user-actions = Voir les actions utilisateur +systemlogs.all-users = Tous les utilisateurs +systemlogs.all-actions = Toutes les actions +systemlogs.no-data = Aucune donnée supplémentaire à afficher +systemlogs.has-data = Avec les données suivantes +systemlogs.changed-data = Les données suivantes ont été modifiées +systemlogs.field = Champ +systemlogs.value = Valeur +systemlogs.before = Avant +systemlogs.after = Après +systemlogs.for-app = Pour l'application +systemlogs.for-user = Pour l'utilisateur +systemlogs.for-appuser = Pour l'utilisateur de l'application +systemlogs.for-campaign = Pour la campagne +systemlogs.for-crash = Pour le crash +systemlogs.for-id = Pour l'ID +systemlogs.data = Données +configs.systemlogs-preventIPTracking = Désactiver le suivi IP +configs.help.systemlogs-preventIPTracking = Ne pas enregistrer l'adresse IP des actions effectuées par les utilisateurs. -systemlogs.action.logout = Logout -systemlogs.action.password_reset = Password Reset -systemlogs.action.password_request = Password Request -systemlogs.action.login_success = Login Successful -systemlogs.action.login_failed = Login Failed -systemlogs.action.api-key_success = API Key Retrieved -systemlogs.action.api-key_failed = API Key Retrieval Failed -systemlogs.action.mobile_login_success = Mobile Login Successful -systemlogs.action.mobile_login_failed = Mobile Login Failed -systemlogs.action.account_settings_updated = Account Settings Updated -systemlogs.action.app_created = App Created -systemlogs.action.app_updated = App Updated -systemlogs.action.app_locked = App Locked -systemlogs.action.app_unlocked = App Unlocked -systemlogs.action.app_deleted = App Deleted -systemlogs.action.app_reset = App Reset -systemlogs.action.clear_all = App Clear Data -systemlogs.action.app_clear_old_data = App Old Data Cleared -systemlogs.action.user_created = User Created -systemlogs.action.user_updated = User Updated -systemlogs.action.user_deleted = User Deleted -systemlogs.action.graph_note_created = Graph Note Created -systemlogs.action.graph_note_deleted = Graph Note Deleted -systemlogs.action.events_updated = Events Updated -systemlogs.action.event_deleted = Event Deleted -systemlogs.action.export_app_user_deleted = App User export file deleted -systemlogs.action.export_app_user_started = App User Export Started. -systemlogs.action.export_app_user = App User Export Finished. -systemlogs.action.app_user_created = App User Created -systemlogs.action.app_user_updated = App User Updated -systemlogs.action.app_user_deleted = App User Deleted -systemlogs.action.token_login_failed = Login Using Token Failed -systemlogs.action.token_login_successfull = Login Using Token Successful -systemlogs.action.user_account_deleted = User has deleted their account. -systemlogs.action.feedback_widget_created = Feedback widget created -systemlogs.action.feedback_widget_edited = Feedback widget edited -systemlogs.action.feedback_widget_removed = Feedback widget removed -systemlogs.action.feedback_widget_removed_with_data = Feedback widget removed with data -systemlogs.action.populator_template_created = Populator template created -systemlogs.action.populator_template_removed = Populator template removed -systemlogs.action.populator_template_edited = Populator template edited -systemlogs.action.view_recalculation_finished = View recalculation finished. -systemlogs.action.view_segments_ommit = View Segments Omitted -systemlogs.action.view_segments_ommit_complete = View Segments Omission Complete. -systemlogs.action.cb-content_asset-updated = Content Builder Asset Updated -systemlogs.action.cb-content_asset-uploaded = Content Builder Asset Uploaded -systemlogs.action.cb-content_asset-deleted = Content Builder Asset Deleted -systemlogs.action.cb-content_block-edit = Content Builder Block Edited -systemlogs.action.cb-content_block-create = Content Builder Block Created -systemlogs.action.cb-content_block-delete = Content Builder Block Deleted -systemlogs.action.journey-engine-event-created = Journey Engine Event Created \ No newline at end of file +systemlogs.action.logout = Déconnexion +systemlogs.action.password_reset = Réinitialisation du mot de passe +systemlogs.action.password_request = Demande de mot de passe +systemlogs.action.login_success = Connexion réussie +systemlogs.action.login_failed = Connexion échouée +systemlogs.action.api-key_success = Clé API récupérée +systemlogs.action.api-key_failed = Échec de récupération de clé API +systemlogs.action.mobile_login_success = Connexion mobile réussie +systemlogs.action.mobile_login_failed = Connexion mobile échouée +systemlogs.action.account_settings_updated = Paramètres de compte mis à jour +systemlogs.action.app_created = Application créée +systemlogs.action.app_updated = Application mise à jour +systemlogs.action.app_locked = Application verrouillée +systemlogs.action.app_unlocked = Application déverrouillée +systemlogs.action.app_deleted = Application supprimée +systemlogs.action.app_reset = Application réinitialisée +systemlogs.action.clear_all = Données de l'application effacées +systemlogs.action.app_clear_old_data = Anciennes données de l'application effacées +systemlogs.action.user_created = Utilisateur créé +systemlogs.action.user_updated = Utilisateur mis à jour +systemlogs.action.user_deleted = Utilisateur supprimé +systemlogs.action.graph_note_created = Note de graphique créée +systemlogs.action.graph_note_deleted = Note de graphique supprimée +systemlogs.action.events_updated = Événements mis à jour +systemlogs.action.event_deleted = Événement supprimé +systemlogs.action.export_app_user_deleted = Fichier d'export utilisateur d'application supprimé +systemlogs.action.export_app_user_started = Export utilisateur d'application démarré. +systemlogs.action.export_app_user = Export utilisateur d'application terminé. +systemlogs.action.app_user_created = Utilisateur d'application créé +systemlogs.action.app_user_updated = Utilisateur d'application mis à jour +systemlogs.action.app_user_deleted = Utilisateur d'application supprimé +systemlogs.action.token_login_failed = Connexion avec jeton échouée +systemlogs.action.token_login_successfull = Connexion avec jeton réussie +systemlogs.action.user_account_deleted = L'utilisateur a supprimé son compte. +systemlogs.action.feedback_widget_created = Widget de commentaire créé +systemlogs.action.feedback_widget_edited = Widget de commentaire modifié +systemlogs.action.feedback_widget_removed = Widget de commentaire supprimé +systemlogs.action.feedback_widget_removed_with_data = Widget de commentaire supprimé avec données +systemlogs.action.populator_template_created = Modèle de générateur créé +systemlogs.action.populator_template_removed = Modèle de générateur supprimé +systemlogs.action.populator_template_edited = Modèle de générateur modifié +systemlogs.action.view_recalculation_finished = Recalcul de vue terminé. +systemlogs.action.view_segments_ommit = Segments de vue omis +systemlogs.action.view_segments_ommit_complete = Omission de segments de vue terminée. +systemlogs.action.cb-content_asset-updated = Ressource Content Builder mise à jour +systemlogs.action.cb-content_asset-uploaded = Ressource Content Builder téléchargée +systemlogs.action.cb-content_asset-deleted = Ressource Content Builder supprimée +systemlogs.action.cb-content_block-edit = Bloc Content Builder modifié +systemlogs.action.cb-content_block-create = Bloc Content Builder créé +systemlogs.action.cb-content_block-delete = Bloc Content Builder supprimé +systemlogs.action.journey-engine-event-created = Événement Journey Engine créé \ No newline at end of file diff --git a/plugins/times-of-day/frontend/public/localization/times-of-day_fr.properties b/plugins/times-of-day/frontend/public/localization/times-of-day_fr.properties index f7f36af7c48..f6d2c35ec73 100755 --- a/plugins/times-of-day/frontend/public/localization/times-of-day_fr.properties +++ b/plugins/times-of-day/frontend/public/localization/times-of-day_fr.properties @@ -1,29 +1,29 @@ -times-of-day.title = Times of Day -times-of-day.description = Shows a scatter plot chart with the times and days of session and event occurrences in your application, based on users' local time. -times-of-day.results-for = Results for -times-of-day.total-users = Total users -times-of-day.between = between +times-of-day.title = Moments de la journée +times-of-day.description = Affiche un graphique en nuage de points avec les heures et jours d'occurrence des sessions et événements dans votre application, basé sur l'heure locale des utilisateurs. +times-of-day.results-for = Résultats pour +times-of-day.total-users = Total des utilisateurs +times-of-day.between = entre -times-of-day.sunday = Sunday -times-of-day.monday = Monday -times-of-day.tuesday = Tuesday -times-of-day.wednesday = Wednesday -times-of-day.thursday = Thursday -times-of-day.friday = Friday -times-of-day.saturday = Saturday +times-of-day.sunday = Dimanche +times-of-day.monday = Lundi +times-of-day.tuesday = Mardi +times-of-day.wednesday = Mercredi +times-of-day.thursday = Jeudi +times-of-day.friday = Vendredi +times-of-day.saturday = Samedi -times-of-day.all-time = All Time -times-of-day.last-three-months = Last 3 Months -times-of-day.previous-month = Previous Month -times-of-day.this-month = This Month +times-of-day.all-time = Tout le temps +times-of-day.last-three-months = 3 derniers mois +times-of-day.previous-month = Mois précédent +times-of-day.this-month = Ce mois -times-of-day.table-hours-period = Hours +times-of-day.table-hours-period = Heures -times-of-day.times = Times -times-of-day.period = Period -times-of-day.select = Select a period +times-of-day.times = Heures +times-of-day.period = Période +times-of-day.select = Sélectionner une période -times-of-day.time-period = Time period -times-of-day.event = Event +times-of-day.time-period = Période de temps +times-of-day.event = Événement times-of-day.sessions = Sessions \ No newline at end of file diff --git a/plugins/two-factor-auth/frontend/public/localization/two-factor-auth_fr.properties b/plugins/two-factor-auth/frontend/public/localization/two-factor-auth_fr.properties index d3a1b7224b6..da56962bacb 100644 --- a/plugins/two-factor-auth/frontend/public/localization/two-factor-auth_fr.properties +++ b/plugins/two-factor-auth/frontend/public/localization/two-factor-auth_fr.properties @@ -1,42 +1,42 @@ # When adding new values run 'countly task locales' and then 'countly restart' to make sure these new values are added #two-factor-auth -two-factor-auth.plugin-title = Two Factor Authentication -two-factor-auth.plugin-description = Time based second factor authentication for use with Microsoft and Google Authenticator apps -two-factor-auth.login.placeholder = Two Factor Code -two-factor-auth.login.code = Login Error: The Two Factor Code you entered is incorrect. Please try again. -two-factor-auth.login.setup = Login Error: Two Factor Authentication has not been setup for this account, please contact your Administrator to help you set it up. You will not be able to log in until you have set up Two Factor Authentication. -two-factor-auth.two-factor-authentication = Two Factor Authentication -two-factor-auth.globally_enabled = Enforce globally -two-factor-auth.confirm = Confirm -two-factor-auth.prompt = Please enter verification code -configs.help.two-factor-auth-globally_enabled = When enabled, users without Two Factor Authentication enabled will be asked to set it up. -two-factor-auth.global_enable_setup = This option is only available when your own account has Two Factor Authentication enabled. -two-factor-auth.enable = Enable -two-factor-auth.disable = Disable -two-factor-auth.disable_2fa = Disable 2FA -two-factor-auth.setup_auth = Configure Two Factor Authentication -two-factor-auth.setup_auth_to_continue = Please configure two factor authentication to continue -two-factor-auth.resetup_2fa = Re-setup Two Factor Authentication -two-factor-auth.disable_global_first = Two Factor Authentication is enabled and enforced by your administrator. Contact your administrator to disable it globally. -two-factor-auth.invalid = Error: You entered an invalid code -two-factor-auth.title = Two Factor Authentication Setup -two-factor-auth.setup_title = 2FA set up -two-factor-auth.setup_message = Two Factor Authentication has been successfully setup for your account -two-factor-auth.failsetup_title = Failed to setup 2FA -two-factor-auth.failsetup_message = Two Factor Authentication setup failed with the message "{0}" -two-factor-auth.disable_title = 2FA disabled -two-factor-auth.disable_message = Two Factor Authentication has been disabled for your account -two-factor-auth.disable_user_message = Two Factor Authentication has been disabled for the user -two-factor-auth.faildisable_title = Failed to disable 2FA -two-factor-auth.faildisable_message = Disabling Two Factor Authentication failed with the message "{0}" -two-factor-auth.install_app = Install Google / Microsoft authenticator on your smartphone (Android, iOS, Windows). -two-factor-auth.scan_qr = To add / renew time based password, open the authenticator app and scan the QR code below. -two-factor-auth.secret_token = Secret Token -two-factor-auth.enter_otp = Enter the time based password generated by the app below and click confirm to activate. -two-factor-auth.enter_otp_short = Enter generated password -two-factor-auth.confirm_disable_title = Disable 2FA? -two-factor-auth.confirm_disable = You are about to disable Two Factor Authentication for your account. Do you want to continue? -two-factor-auth.confirm_disable_admin = You are about to disable Two Factor Authentication for {0}. Do you want to continue? +two-factor-auth.plugin-title = Authentification à Deux Facteurs +two-factor-auth.plugin-description = Authentification à second facteur basée sur le temps pour utilisation avec les applications Microsoft et Google Authenticator +two-factor-auth.login.placeholder = Code à Deux Facteurs +two-factor-auth.login.code = Erreur de Connexion : Le Code à Deux Facteurs que vous avez saisi est incorrect. Veuillez réessayer. +two-factor-auth.login.setup = Erreur de Connexion : L'Authentification à Deux Facteurs n'a pas été configurée pour ce compte, veuillez contacter votre Administrateur pour vous aider à la configurer. Vous ne pourrez pas vous connecter tant que vous n'aurez pas configuré l'Authentification à Deux Facteurs. +two-factor-auth.two-factor-authentication = Authentification à Deux Facteurs +two-factor-auth.globally_enabled = Appliquer globalement +two-factor-auth.confirm = Confirmer +two-factor-auth.prompt = Veuillez saisir le code de vérification +configs.help.two-factor-auth-globally_enabled = Lorsque activé, les utilisateurs sans Authentification à Deux Facteurs activée seront invités à la configurer. +two-factor-auth.global_enable_setup = Cette option n'est disponible que lorsque votre propre compte a l'Authentification à Deux Facteurs activée. +two-factor-auth.enable = Activer +two-factor-auth.disable = Désactiver +two-factor-auth.disable_2fa = Désactiver 2FA +two-factor-auth.setup_auth = Configurer l'Authentification à Deux Facteurs +two-factor-auth.setup_auth_to_continue = Veuillez configurer l'authentification à deux facteurs pour continuer +two-factor-auth.resetup_2fa = Reconfigurer l'Authentification à Deux Facteurs +two-factor-auth.disable_global_first = L'Authentification à Deux Facteurs est activée et appliquée par votre administrateur. Contactez votre administrateur pour la désactiver globalement. +two-factor-auth.invalid = Erreur : Vous avez saisi un code invalide +two-factor-auth.title = Configuration de l'Authentification à Deux Facteurs +two-factor-auth.setup_title = Configuration 2FA +two-factor-auth.setup_message = L'Authentification à Deux Facteurs a été configurée avec succès pour votre compte +two-factor-auth.failsetup_title = Échec de la configuration 2FA +two-factor-auth.failsetup_message = La configuration de l'Authentification à Deux Facteurs a échoué avec le message "{0}" +two-factor-auth.disable_title = 2FA désactivée +two-factor-auth.disable_message = L'Authentification à Deux Facteurs a été désactivée pour votre compte +two-factor-auth.disable_user_message = L'Authentification à Deux Facteurs a été désactivée pour l'utilisateur +two-factor-auth.faildisable_title = Échec de la désactivation 2FA +two-factor-auth.faildisable_message = La désactivation de l'Authentification à Deux Facteurs a échoué avec le message "{0}" +two-factor-auth.install_app = Installez Google / Microsoft authenticator sur votre smartphone (Android, iOS, Windows). +two-factor-auth.scan_qr = Pour ajouter / renouveler le mot de passe basé sur le temps, ouvrez l'application authenticator et scannez le code QR ci-dessous. +two-factor-auth.secret_token = Jeton Secret +two-factor-auth.enter_otp = Saisissez le mot de passe basé sur le temps généré par l'application ci-dessous et cliquez sur confirmer pour activer. +two-factor-auth.enter_otp_short = Saisissez le mot de passe généré +two-factor-auth.confirm_disable_title = Désactiver 2FA ? +two-factor-auth.confirm_disable = Vous êtes sur le point de désactiver l'Authentification à Deux Facteurs pour votre compte. Voulez-vous continuer ? +two-factor-auth.confirm_disable_admin = Vous êtes sur le point de désactiver l'Authentification à Deux Facteurs pour {0}. Voulez-vous continuer ? -systemlogs.action.two_factor_auth_enabled = Enabled 2FA -systemlogs.action.two_factor_auth_disabled = Disabled 2FA +systemlogs.action.two_factor_auth_enabled = 2FA activée +systemlogs.action.two_factor_auth_disabled = 2FA désactivée diff --git a/plugins/views/frontend/public/localization/views_fr.properties b/plugins/views/frontend/public/localization/views_fr.properties index e1032118f7f..8a8c8b494ea 100644 --- a/plugins/views/frontend/public/localization/views_fr.properties +++ b/plugins/views/frontend/public/localization/views_fr.properties @@ -1,79 +1,79 @@ #views -views.title = Views -views.description = Overview of the data trends and metrics for the pages or screens viewed on your application, in the selected time period. -views.title-desc = Overview of the data trends and metrics for the pages or screens viewed on your application, in the selected time period. -views.table.view = View -views.table.edit-views = Edit views -views.total-visits = Total Visits -views.visits = Views -views.starts = Landings -views.exits = Exits -views.bounces = Bounces -views.duration = Duration -views.avg-duration = Avg. time -views.action-map = Heatmap -views.select-action-type = Select Heatmap type -views.empty-graph = Select one or more views from the table below to see the chart -views.maximum-items = Maximum number of views to be compared -views.all-segments = All Segments -views.cannot-load = Can''t load view -views.delete-confirm-title = Delete this view? -views.delete-many-confirm-title = Delete selected views? -views.yes-delete-view = Yes, delete this view -views.yes-delete-many-view = Yes, delete selected views -views.delete-confirm = Do you really want to delete view called {0}? -views.delete-confirm-many = Do you really want to delete views called {0}? -views.back-to-views = Back to views -views.view-limit = View Limit -views.error-update-views = There was error on server when trying to update views. -views.deleting-view-error = View deletion failed. Refresh page and try again. -views.view-names-updated = Display names for views updated. -configs.help.views-view_limit = Configure how many different view values will be reported (all time) -views.view_name_limit = View Name Length Limit -views.segment_limit = View Segment Limit -views.segment_value_limit = View Segment Value Limit -configs.help.views-segment_value_limit = Configure the value limt for view segments. Having value over 100 will most likely result in segment ommision from aggregated data as about 100 values is maximum that can be stored in agregated views segment model. -configs.help.views-view_name_limit = Limit view names to the provided amount of characters and not longer -configs.help.views-segment_limit = Views plugin powered by Drill, allows you to further segment (e.g. view name, domain etc) your analysis. Configure a limit for view segments. -views.select = Select maximum 2 metrics -views.segment-key = Segment key -views.segment-value = Segment value -views.widget-type = Views -views.heading = Page Views -views.u = Total Users -views.n = New Users -views.t = Total Visits -views.d = Avg. Time -views.s = Landings -views.e = Exits -views.b = Bounces -views.br = Bounce Rate -views.uvc = Unique Views -views.scr = Avg. scroll -views.total_page_views.title = Total Views -views.total_page_views.desc = The total number of pages viewed, in the selected time period. -views.unique_page_views.desc = Number of times a page is viewed in your application for the first time by users during a session, in the selected time period. -views.bounce_rate.desc = Number of users who have landed on a page without visiting other pages -web.views.bounce_rate.desc = Number of visitors who have landed on a page without visiting other pages, calculated as a percentage over the total number of visitors who landed on the page, in the selected time period. -views.based-on = Views based on -views.for = for -views.display-name = Display name -views.go-to-views = Go to Views -views.selected-views = Selected views -views.scrolling-avg = Avg. scroll -internal-events.[CLY]_view = View +views.title = Vues +views.description = Aperçu des tendances de données et métriques pour les pages ou écrans consultés dans votre application, sur la période sélectionnée. +views.title-desc = Aperçu des tendances de données et métriques pour les pages ou écrans consultés dans votre application, sur la période sélectionnée. +views.table.view = Vue +views.table.edit-views = Modifier les vues +views.total-visits = Visites Totales +views.visits = Vues +views.starts = Arrivées +views.exits = Sorties +views.bounces = Rebonds +views.duration = Durée +views.avg-duration = Durée moy. +views.action-map = Carte de Chaleur +views.select-action-type = Sélectionner le type de carte de chaleur +views.empty-graph = Sélectionnez une ou plusieurs vues dans le tableau ci-dessous pour voir le graphique +views.maximum-items = Nombre maximum de vues à comparer +views.all-segments = Tous les Segments +views.cannot-load = Impossible de charger la vue +views.delete-confirm-title = Supprimer cette vue ? +views.delete-many-confirm-title = Supprimer les vues sélectionnées ? +views.yes-delete-view = Oui, supprimer cette vue +views.yes-delete-many-view = Oui, supprimer les vues sélectionnées +views.delete-confirm = Voulez-vous vraiment supprimer la vue appelée {0} ? +views.delete-confirm-many = Voulez-vous vraiment supprimer les vues appelées {0} ? +views.back-to-views = Retour aux vues +views.view-limit = Limite de Vue +views.error-update-views = Il y a eu une erreur sur le serveur lors de la tentative de mise à jour des vues. +views.deleting-view-error = La suppression de la vue a échoué. Actualisez la page et réessayez. +views.view-names-updated = Noms d'affichage pour les vues mis à jour. +configs.help.views-view_limit = Configurer combien de valeurs de vue différentes seront rapportées (tout le temps) +views.view_name_limit = Limite de Longueur du Nom de Vue +views.segment_limit = Limite de Segment de Vue +views.segment_value_limit = Limite de Valeur de Segment de Vue +configs.help.views-segment_value_limit = Configurer la limite de valeur pour les segments de vue. Avoir une valeur supérieure à 100 résultera très probablement en omission de segment des données agrégées car environ 100 valeurs est le maximum qui peut être stocké dans le modèle de segment de vues agrégées. +configs.help.views-view_name_limit = Limiter les noms de vue au nombre de caractères fourni et pas plus long +configs.help.views-segment_limit = Le plugin Views alimenté par Drill, vous permet de segmenter davantage (par exemple nom de vue, domaine etc) votre analyse. Configurer une limite pour les segments de vue. +views.select = Sélectionner maximum 2 métriques +views.segment-key = Clé de segment +views.segment-value = Valeur de segment +views.widget-type = Vues +views.heading = Vues de Page +views.u = Utilisateurs Totaux +views.n = Nouveaux Utilisateurs +views.t = Visites Totales +views.d = Durée Moy. +views.s = Arrivées +views.e = Sorties +views.b = Rebonds +views.br = Taux de Rebond +views.uvc = Vues Uniques +views.scr = Défilement moy. +views.total_page_views.title = Vues Totales +views.total_page_views.desc = Le nombre total de pages consultées, sur la période sélectionnée. +views.unique_page_views.desc = Nombre de fois qu'une page est consultée dans votre application pour la première fois par les utilisateurs pendant une session, sur la période sélectionnée. +views.bounce_rate.desc = Nombre d'utilisateurs qui ont atterri sur une page sans visiter d'autres pages +web.views.bounce_rate.desc = Nombre de visiteurs qui ont atterri sur une page sans visiter d'autres pages, calculé en pourcentage sur le nombre total de visiteurs qui ont atterri sur la page, sur la période sélectionnée. +views.based-on = Vues basées sur +views.for = pour +views.display-name = Nom d'affichage +views.go-to-views = Aller aux Vues +views.selected-views = Vues sélectionnées +views.scrolling-avg = Défilement moy. +internal-events.[CLY]_view = Vue internal-events.[CLY]_action = Action -systemlogs.action.view_deleted = View Deleted -systemlogs.action.view_segments_ommit_complete = View segment ommiting complete -systemlogs.action.view_segments_ommit = View segment ommiting start -views.omit-segments-confirm = Do you want to omit selected segments for all views in this app? -views.max-views-limit = Maximum limit of unique views ({0}) has been reached. Limit can be adjusted on the Views configurations page. -views.drill-drawer.title = Drill views -views.drill-drawer.save-button = Go to Drill -views.drill-drawer.views = VIEW(S) -views.drill-drawer.search-view-name = Search view name +systemlogs.action.view_deleted = Vue Supprimée +systemlogs.action.view_segments_ommit_complete = Omission de segment de vue terminée +systemlogs.action.view_segments_ommit = Début d'omission de segment de vue +views.omit-segments-confirm = Voulez-vous omettre les segments sélectionnés pour toutes les vues dans cette app ? +views.max-views-limit = La limite maximale de vues uniques ({0}) a été atteinte. La limite peut être ajustée sur la page de configurations des Vues. +views.drill-drawer.title = Percer les vues +views.drill-drawer.save-button = Aller à Drill +views.drill-drawer.views = VUE(S) +views.drill-drawer.search-view-name = Rechercher nom de vue #views-per-session -views-per-session.title = Views per Session -views-per-session.description = Number of screens or pages that your users viewed in your application, in the selected time period, distributed into frequency ranges. -views-per-session.table-views-buckets = Views per session \ No newline at end of file +views-per-session.title = Vues par Session +views-per-session.description = Nombre d'écrans ou pages que vos utilisateurs ont consultés dans votre application, sur la période sélectionnée, distribués en plages de fréquence. +views-per-session.table-views-buckets = Vues par session \ No newline at end of file diff --git a/plugins/vue-example/frontend/public/localization/vue-example_fr.properties b/plugins/vue-example/frontend/public/localization/vue-example_fr.properties index 5554e4a93f2..8217207a2fa 100644 --- a/plugins/vue-example/frontend/public/localization/vue-example_fr.properties +++ b/plugins/vue-example/frontend/public/localization/vue-example_fr.properties @@ -1,3 +1,3 @@ -vue-example.table=Table -vue-example.time-graph=Time Graph -vue-example.add-new-row=Add new row \ No newline at end of file +vue-example.table=Tableau +vue-example.time-graph=Graphique Temporel +vue-example.add-new-row=Ajouter nouvelle ligne \ No newline at end of file diff --git a/plugins/web/frontend/public/localization/web_fr.properties b/plugins/web/frontend/public/localization/web_fr.properties index b090ac62c92..6c5c3623526 100644 --- a/plugins/web/frontend/public/localization/web_fr.properties +++ b/plugins/web/frontend/public/localization/web_fr.properties @@ -1,91 +1,91 @@ management-applications.types.web = Web web.sidebar.acquisition = Acquisition -web.latest-visitors = Latest Visitors -web.last-seen = Last Seen -web.time-spent = Total time spent -web.total-sessions = Total visits -web.never = Never -web.all-websites = All Websites -common.bar.top-browsers = Top Browsers +web.latest-visitors = Derniers Visiteurs +web.last-seen = Vu la Dernière Fois +web.time-spent = Temps total passé +web.total-sessions = Visites totales +web.never = Jamais +web.all-websites = Tous les Sites Web +common.bar.top-browsers = Top Navigateurs common.bar.top-sources = Top Sources -web.from-source = From Source -web.browser = Browser -web.drill.lv = Web Page -web.views.title = Page Views +web.from-source = De la Source +web.browser = Navigateur +web.drill.lv = Page Web +web.views.title = Vues de Page web.views.view = Page -web.views.total_page_views.title = Total Page Views -web.views.uvc = Unique Page Views -web.crashes.title = Errors -web.crashes.unresolved-crashes = Unresolved errors -web.crashes.groupid = Error ID -web.crashes.crashed = Errored -web.crashes.last-crash = Last Error -web.crashes.online = Errored when online -web.crashes.muted = Errored while Muted -web.crashes.background = Errored in Background -web.crashes.back-to-crashes = Back to errors -web.crashes.back-to-crash = Back to error -web.crashes.crashes-by = Error occurrences by -web.crashes.unique = Unique Errors -web.crashes.rate = Error rate -web.crashes.top-crash = Top error type -web.crashes.new-crashes = New Errors -web.crashes.fatality = Error Fatality -web.crashes.nonfatal-crashes = Non fatal Errors -web.crashes.confirm-delete = Are you sure you want to delete this error? -web.drill.crash = Error -web.drill.crash-segments = Error Segments -web.userdata.crashes = Unresolved Errors -web.common.total-users = TOTAL VISITORS -web.common.new-users = NEW VISITORS -web.common.returning-users = RETURNING VISITORS -web.common.number-of-users = Number of Visitors -web.common.table.total-users = Total Visitors -web.common.table.new-users = New Visitors -web.common.table.returning-users = Returning Visitors -web.common.bar.top-users = TOP VISITORS -web.sidebar.analytics.user-loyalty = Visitor Loyalty -web.sidebar.analytics.users = Visitor Analytics -web.users.title = VISITORS -web.crashes.users = Visitors -web.crashes.affected-users = Affected visitors -web.crashes.public-users = Display affected visitors publicly -web.crashes.total-per-session =Errors/Sessions -web.crashes.free-users = Error Free Users -web.crashes.free-sessions = Error Free Sessions -web.drill.users = Visitors -web.drill.times-users = Times/Visitors -web.drill.sum-users = Sum/Visitors -web.funnels.total-users = TOTAL VISITORS -web.funnels.users = VISITORS -web.common.online-users = Online Visitors -web.live.new-users = NEW VISITORS -web.populator.amount-users = Amount of visitors -web.sidebar.engagement.retention = Retention -web.retention.users-first-session = Visitor's first session -web.userdata.title = Visitor Profiles -web.userdata.total-user-tooltip = The overall number of visitors (unique devices/IDs) who have visited your website. -web.common.table.new-users-desc = The number of first-time visitors (unique devices/IDs) in the selected time period. -web.userdata.users = Visitor Profiles -web.userdata.user = Visitor -web.userdata.back-to-list = Back to Visitor List -web.userdata.no-users = No visitors found -web.attribution.per-user = Per Visitor -web.attribution.user-conversion = Visitor Conversion (%) -web.attribution.organic = Organic visitors are visitors, that did not come from any of created campaigns -web.reports.total_users = Total Visitors -web.reports.new_users = New Visitors -web.reports.paying_users = Paying visitors -web.reports.messaging_users = Push enabled visitors -web.reports.returning_users = Returning visitors -web.common.per-user = per visitor -web.common.per-paying-user = per paying visitor -web.common.users = visitors +web.views.total_page_views.title = Vues de Page Totales +web.views.uvc = Vues de Page Uniques +web.crashes.title = Erreurs +web.crashes.unresolved-crashes = Erreurs non résolues +web.crashes.groupid = ID d'Erreur +web.crashes.crashed = En erreur +web.crashes.last-crash = Dernière Erreur +web.crashes.online = En erreur quand en ligne +web.crashes.muted = En erreur en mode silencieux +web.crashes.background = En erreur en arrière-plan +web.crashes.back-to-crashes = Retour aux erreurs +web.crashes.back-to-crash = Retour à l'erreur +web.crashes.crashes-by = Occurrences d'erreur par +web.crashes.unique = Erreurs Uniques +web.crashes.rate = Taux d'erreur +web.crashes.top-crash = Type d'erreur principal +web.crashes.new-crashes = Nouvelles Erreurs +web.crashes.fatality = Fatalité d'Erreur +web.crashes.nonfatal-crashes = Erreurs Non Fatales +web.crashes.confirm-delete = Êtes-vous sûr de vouloir supprimer cette erreur ? +web.drill.crash = Erreur +web.drill.crash-segments = Segments d'Erreur +web.userdata.crashes = Erreurs Non Résolues +web.common.total-users = VISITEURS TOTAUX +web.common.new-users = NOUVEAUX VISITEURS +web.common.returning-users = VISITEURS DE RETOUR +web.common.number-of-users = Nombre de Visiteurs +web.common.table.total-users = Visiteurs Totaux +web.common.table.new-users = Nouveaux Visiteurs +web.common.table.returning-users = Visiteurs de Retour +web.common.bar.top-users = TOP VISITEURS +web.sidebar.analytics.user-loyalty = Fidélité des Visiteurs +web.sidebar.analytics.users = Analyse des Visiteurs +web.users.title = VISITEURS +web.crashes.users = Visiteurs +web.crashes.affected-users = Visiteurs affectés +web.crashes.public-users = Afficher les visiteurs affectés publiquement +web.crashes.total-per-session = Erreurs/Sessions +web.crashes.free-users = Utilisateurs Sans Erreur +web.crashes.free-sessions = Sessions Sans Erreur +web.drill.users = Visiteurs +web.drill.times-users = Fois/Visiteurs +web.drill.sum-users = Somme/Visiteurs +web.funnels.total-users = VISITEURS TOTAUX +web.funnels.users = VISITEURS +web.common.online-users = Visiteurs En Ligne +web.live.new-users = NOUVEAUX VISITEURS +web.populator.amount-users = Quantité de visiteurs +web.sidebar.engagement.retention = Rétention +web.retention.users-first-session = Première session du visiteur +web.userdata.title = Profils de Visiteur +web.userdata.total-user-tooltip = Le nombre total de visiteurs (appareils/IDs uniques) qui ont visité votre site web. +web.common.table.new-users-desc = Le nombre de visiteurs pour la première fois (appareils/IDs uniques) dans la période sélectionnée. +web.userdata.users = Profils de Visiteur +web.userdata.user = Visiteur +web.userdata.back-to-list = Retour à la Liste des Visiteurs +web.userdata.no-users = Aucun visiteur trouvé +web.attribution.per-user = Par Visiteur +web.attribution.user-conversion = Conversion de Visiteur (%) +web.attribution.organic = Les visiteurs organiques sont des visiteurs qui ne proviennent d'aucune des campagnes créées +web.reports.total_users = Visiteurs Totaux +web.reports.new_users = Nouveaux Visiteurs +web.reports.paying_users = Visiteurs payants +web.reports.messaging_users = Visiteurs avec push activé +web.reports.returning_users = Visiteurs de retour +web.common.per-user = par visiteur +web.common.per-paying-user = par visiteur payant +web.common.users = visiteurs web.attribution.installs = Conversions -web.attribution.cost-install = per conversion -web.sources.title = Traffic Sources -web.sources.source = Traffic Source -web.plugin-title = Web Analytics -web.plugin-description = Enable Analytics for websites -management-applications.app-domain = Website Domain -placeholder.app-domain-key = Enter website domain (optional) \ No newline at end of file +web.attribution.cost-install = par conversion +web.sources.title = Sources de Trafic +web.sources.source = Source de Trafic +web.plugin-title = Analyse Web +web.plugin-description = Activer l'Analyse pour les sites web +management-applications.app-domain = Domaine du Site Web +placeholder.app-domain-key = Saisir le domaine du site web (optionnel) \ No newline at end of file From 0e0357aae0a959639507df2924b097ced9bbda5d Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Wed, 23 Jul 2025 17:38:31 +0300 Subject: [PATCH 014/344] cleanup --- french_localization_files.txt | 36 ----------------------------------- 1 file changed, 36 deletions(-) delete mode 100644 french_localization_files.txt diff --git a/french_localization_files.txt b/french_localization_files.txt deleted file mode 100644 index d93a517a161..00000000000 --- a/french_localization_files.txt +++ /dev/null @@ -1,36 +0,0 @@ -/Users/ar2rsawseen/git/countly-server/frontend/express/public/localization/help/help_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/compare/frontend/public/localization/compare_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/compliance-hub/frontend/public/localization/compliance-hub_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/consolidate/frontend/public/localization/consolidate_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/crashes/frontend/public/localization/crashes_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/dashboards/frontend/public/localization/dashboards_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/data_migration/frontend/public/localization/data_migration_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/data-manager/frontend/public/localization/data-manager_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/dbviewer/frontend/public/localization/dbviewer_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/density/frontend/public/localization/density_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/desktop/frontend/public/localization/desktop_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/errorlogs/frontend/public/localization/errorlogs_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/guides/frontend/public/localization/guides_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/hooks/frontend/public/localization/hooks_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/locale/frontend/public/localization/locale_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/logger/frontend/public/localization/logger_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/mobile/frontend/public/localization/mobile_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/onboarding/frontend/public/localization/onboarding_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/plugins/frontend/public/localization/plugins_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/populator/frontend/public/localization/populator_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/push/frontend/public/localization/push_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/recaptcha/frontend/public/localization/recaptcha_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/remote-config/frontend/public/localization/remote-config_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/reports/frontend/public/localization/reports_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/sdk/frontend/public/localization/sdk_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/server-stats/frontend/public/localization/server-stats_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/slipping-away-users/frontend/public/localization/slipping-away-users_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/sources/frontend/public/localization/sources_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/star-rating/frontend/public/localization/star-rating_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/system-utility/frontend/public/localization/system-utility_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/systemlogs/frontend/public/localization/systemlogs_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/times-of-day/frontend/public/localization/times-of-day_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/two-factor-auth/frontend/public/localization/two-factor-auth_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/views/frontend/public/localization/views_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/vue-example/frontend/public/localization/vue-example_fr.properties -/Users/ar2rsawseen/git/countly-server/plugins/web/frontend/public/localization/web_fr.properties From f265cd7bcafb69c6564a0eae5e2b73b7933baded Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Fri, 25 Jul 2025 08:45:39 +0700 Subject: [PATCH 015/344] [remote-config] Rename numeric string list to app version list --- .../frontend/public/javascripts/countly.views.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/remote-config/frontend/public/javascripts/countly.views.js b/plugins/remote-config/frontend/public/javascripts/countly.views.js index 191c2fc5e75..cdfa31e9d0e 100644 --- a/plugins/remote-config/frontend/public/javascripts/countly.views.js +++ b/plugins/remote-config/frontend/public/javascripts/countly.views.js @@ -217,7 +217,7 @@ label: "#6C47FF" }, colorTag: COLOR_TAG, - modifyPropType: { 'up.av': countlyQueryBuilder.PropertyType.NUMERIC_STRING_LIST }, + modifyPropType: { 'up.av': countlyQueryBuilder.PropertyType.APP_VERSION_LIST }, }; }, computed: { @@ -652,7 +652,7 @@ label: "#6C47FF" }, colorTag: COLOR_TAG, - modifyPropType: { 'up.av': countlyQueryBuilder.PropertyType.NUMERIC_STRING_LIST }, + modifyPropType: { 'up.av': countlyQueryBuilder.PropertyType.APP_VERSION_LIST }, }; }, methods: { From 5c7170d557f40104cc74d4f3d0370aaef24f572e Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Mon, 28 Jul 2025 09:22:34 +0700 Subject: [PATCH 016/344] Update changelog --- CHANGELOG.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e16e9d8d41..ca0abc34d9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ Features: - [plugins] Add configuration warning tags to settings UI +- [remote-config] Add support for comparing newer/older app version in conditions Fixes: - [remote-config] Fix condition matching with complex conditions @@ -12,9 +13,6 @@ Fixes: Enterprise Fixes: - [ldap] Error handling in ldap plugin on search error -Features: -- [remote-config] Add support for comparing newer/older app version in conditions - ## Version 25.03.11 Fixes: @@ -22,13 +20,10 @@ Fixes: - [core] Fix user analytics widget chart - [crashes] Fix free session and free user calculation - [dashboards] Delete associated widgets and reports when a dashboard is removed - -Features: - [star-rating] Fix widget close post message - [core] Adjust level and update content of app version log - [populator] Update getVersion to generate valid semantic version - Enterprise Fixes: - [crash_symbolication] Remove auto symbolication setting - [drill] Fix drill meta get filter @@ -44,7 +39,6 @@ Dependencies: - Bump sharp from 0.34.2 to 0.34.3 - Bump supertest from 7.1.1 to 7.1.3 - ## Version 25.03.10 Enterprise Fixes: - [okta] Fix body parser middleware version mismatch causing OKTA authentication break From fb48d019f64d45c87bb633f0455cc5a914cc68c4 Mon Sep 17 00:00:00 2001 From: Savas Date: Tue, 29 Jul 2025 17:58:53 +0000 Subject: [PATCH 017/344] Added cy.scrollPageToCenter(); in line 841 and cy.scrollPageToBottom(); in 915 in configuration.js file --- .../lib/dashboard/manage/configurations/configurations.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) mode change 100644 => 100755 ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js diff --git a/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js b/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js old mode 100644 new mode 100755 index d2a9f7d4480..12a1df25bf9 --- a/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js +++ b/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js @@ -837,7 +837,8 @@ const verifyPageElements = () => { isChecked: true }); - cy.scrollPageToBottom(); + // cy.scrollPageToBottom(); + cy.scrollPageToCenter(); cy.verifyElement({ labelElement: configurationsListBoxElements({ subFeature: SETTINGS.SECURITY.PASSWORD_EXPIRATION }).SELECTED_SUBFEATURE_TITLE, @@ -912,6 +913,8 @@ const verifyPageElements = () => { labelText: "If enabled, provided passwords must contain at least one special symbol (not a number or latin character)", }); + cy.scrollPageToBottom(); + cy.verifyElement({ element: configurationsListBoxElements({ subFeature: SETTINGS.SECURITY.PASSWORD_SYMBOL }).SELECTED_SUBFEATURE_CHECKBOX, isChecked: true From 98e1de0f154adf7c5c49c28e6c63bde196b709f1 Mon Sep 17 00:00:00 2001 From: Gabriel Oliveira Pinto Date: Wed, 30 Jul 2025 10:17:24 +0100 Subject: [PATCH 018/344] Update CHANGELOG.md --- CHANGELOG.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 29e619106c3..9bcc5b0c4e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,4 @@ -## Version 25.03.XX - +## Version 25.03.12 Features: - [plugins] Add configuration warning tags to settings UI - [white-labeling] Add sidebar footer label setting to white labeling @@ -7,9 +6,9 @@ Features: Fixes: - [core] Use correct rights validation for loyality - [crashes] Fix free session for home widget -- [crashes] Use na for free session and free user when there's no data - [crashes] Fix trend and change calculation for crash stats -- [push] Show segmentation, geo and cohorts related components in push drawer on editing draft. +- [crashes] Use na for free session and free user when there's no data +- [push] Show segmentation, geo and cohorts related components in push drawer on editing draft. Enterprise Fixes: - [ldap] Error handling in ldap plugin on search error @@ -17,8 +16,8 @@ Enterprise Fixes: - [users] Load table data from report if user table calculation goes to report manager Dependencies: -- Bump puppeteer from 24.14.0 to 24.15.0 - Bump mongodb from 6.17.0 to 6.18.0 +- Bump puppeteer from 24.14.0 to 24.15.0 - Bump supertest from 7.1.3 to 7.1.4 From 5c820af63a7dc9a71cff006603b1c809f5fe6e13 Mon Sep 17 00:00:00 2001 From: Savas Date: Wed, 30 Jul 2025 09:28:57 +0000 Subject: [PATCH 019/344] Fixed the code --- .../lib/dashboard/manage/configurations/configurations.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js b/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js index 12a1df25bf9..22c0b940aee 100755 --- a/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js +++ b/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js @@ -837,8 +837,7 @@ const verifyPageElements = () => { isChecked: true }); - // cy.scrollPageToBottom(); - cy.scrollPageToCenter(); + cy.scrollPageToBottom(); cy.verifyElement({ labelElement: configurationsListBoxElements({ subFeature: SETTINGS.SECURITY.PASSWORD_EXPIRATION }).SELECTED_SUBFEATURE_TITLE, From a8e645ebd608abd9ff319d24a84652278cf2501e Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Wed, 30 Jul 2025 12:44:44 +0300 Subject: [PATCH 020/344] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 3f4ad6978b4..adf90099e4d 100644 --- a/README.md +++ b/README.md @@ -116,3 +116,7 @@ If you like Countly, why not use one of our badges and give a link back to us? Countly - Product Analytics Countly - Product Analytics + +## 💚 Thanks + +This project is tested with BrowserStack. From 052ae13913c6d65bce961e2e8b32428a55898f09 Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Wed, 30 Jul 2025 13:06:35 +0300 Subject: [PATCH 021/344] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index adf90099e4d..ec8fc54241d 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,10 @@ If you like Countly, why not use one of our badges and give a link back to us? Countly - Product Analytics + +## License +This project is licensed under **AGPL v3** with modified Section 7., see the [LICENSE](LICENSE) file for more details. + ## 💚 Thanks This project is tested with BrowserStack. From 3bfbacf53c612b0586f9b9bda5619ccb0ad1a466 Mon Sep 17 00:00:00 2001 From: Savas Date: Wed, 30 Jul 2025 10:38:27 +0000 Subject: [PATCH 022/344] Fixed the code --- .../lib/dashboard/manage/configurations/configurations.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js b/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js index 22c0b940aee..46d2ef74ead 100755 --- a/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js +++ b/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js @@ -179,7 +179,8 @@ const verifyPageElements = () => { attrText: "100" }); - cy.scrollPageToCenter(); + // cy.scrollPageToCenter(); + cy.get('.main-view').eq(0).scrollIntoView({ duration: 300 }); cy.verifyElement({ labelElement: configurationsListBoxElements({subFeature: SETTINGS.API.DATA_LIMITS.EVENT_SEGMENTATION_VALUE_LIMIT}).SELECTED_SUBFEATURE_TITLE, From d671f8808e2212ef658dbe09dc39e3ca82ae986d Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Wed, 30 Jul 2025 13:47:02 +0300 Subject: [PATCH 023/344] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ec8fc54241d..0ea8dc3416a 100644 --- a/README.md +++ b/README.md @@ -119,7 +119,7 @@ If you like Countly, why not use one of our badges and give a link back to us? ## License -This project is licensed under **AGPL v3** with modified Section 7., see the [LICENSE](LICENSE) file for more details. +This project is licensed under **AGPL-3.0** with modified Section 7., see the [LICENSE](LICENSE) file for more details. ## 💚 Thanks From 868c50569efaba2ead234957a447e0675fc92f9b Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Wed, 30 Jul 2025 13:47:49 +0300 Subject: [PATCH 024/344] Update and rename LICENSE to LICENSE.md --- LICENSE => LICENSE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename LICENSE => LICENSE.md (92%) diff --git a/LICENSE b/LICENSE.md similarity index 92% rename from LICENSE rename to LICENSE.md index 1901e4fc150..0bf57dc9a67 100644 --- a/LICENSE +++ b/LICENSE.md @@ -3,7 +3,7 @@ Countly Product Analytics - Countly Lite License © Countly, https://count.ly -Countly is provided under AGPL v3 with modified Section 7. In accordance +Countly is provided under AGPL-3.0 with modified Section 7. In accordance with Section 7 of the AGPL, the Works included in this package or repository (excluding 3rd party Software), are subject to the following additional terms: From d83f4dab565a6f41a18950ce09033767ef2ddcb9 Mon Sep 17 00:00:00 2001 From: Savas Date: Wed, 30 Jul 2025 12:55:44 +0000 Subject: [PATCH 025/344] Fixed the code --- .../manage/configurations/configurations.js | 5 +++-- ui-tests/cypress/support/commands.js | 12 ++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) mode change 100644 => 100755 ui-tests/cypress/support/commands.js diff --git a/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js b/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js index 46d2ef74ead..3b5eac7d1cc 100755 --- a/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js +++ b/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js @@ -180,7 +180,7 @@ const verifyPageElements = () => { }); // cy.scrollPageToCenter(); - cy.get('.main-view').eq(0).scrollIntoView({ duration: 300 }); + cy.scrollPageBy10cm(); cy.verifyElement({ labelElement: configurationsListBoxElements({subFeature: SETTINGS.API.DATA_LIMITS.EVENT_SEGMENTATION_VALUE_LIMIT}).SELECTED_SUBFEATURE_TITLE, @@ -245,6 +245,7 @@ const verifyPageElements = () => { attr: "aria-valuenow", attrText: "10" }); + cy.scrollPageBy10cm(); cy.verifyElement({ labelElement: configurationsListBoxElements({subFeature: SETTINGS.API.OTHER_API_SETTINGS.OTHER_API_SETTINGS}).SELECTED_FEATURE_GROUP_NAME, @@ -838,7 +839,7 @@ const verifyPageElements = () => { isChecked: true }); - cy.scrollPageToBottom(); + cy.scrollPageBy10cm(); cy.verifyElement({ labelElement: configurationsListBoxElements({ subFeature: SETTINGS.SECURITY.PASSWORD_EXPIRATION }).SELECTED_SUBFEATURE_TITLE, diff --git a/ui-tests/cypress/support/commands.js b/ui-tests/cypress/support/commands.js old mode 100644 new mode 100755 index 6ba29f6080a..21801e468ac --- a/ui-tests/cypress/support/commands.js +++ b/ui-tests/cypress/support/commands.js @@ -206,6 +206,18 @@ Cypress.Commands.add('checkPaceActive', () => { }); }); +Cypress.Commands.add("scrollPageBy10cm", (element = '.main-view', index = 0) => { + cy.get(element).eq(index).then(($el) => { + const currentScroll = $el[0].scrollTop; + const newScroll = currentScroll + 550; + + cy.wrap($el).scrollTo(0, newScroll, { + duration: 1000, + ensureScrollable: false, + }); + }); +}); + Cypress.Commands.add("scrollPageToBottom", (element = '.main-view', index = 0) => { cy.get(element).eq(index).scrollTo('bottom', { ensureScrollable: false }); }); From 07250f37546fb70a1fcd751c02b414924d57feec Mon Sep 17 00:00:00 2001 From: Savas Date: Wed, 30 Jul 2025 13:54:41 +0000 Subject: [PATCH 026/344] Fixed the code --- .../lib/dashboard/manage/configurations/configurations.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js b/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js index 3b5eac7d1cc..c667e404a8b 100755 --- a/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js +++ b/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js @@ -329,7 +329,7 @@ const verifyPageElements = () => { value: "every hour" }); - cy.scrollPageToBottom(); + cy.scrollPageBy10cm(); cy.verifyElement({ labelElement: configurationsListBoxElements({subFeature: SETTINGS.API.OTHER_API_SETTINGS.REQUEST_THRESHOLD}).SELECTED_SUBFEATURE_TITLE, @@ -396,6 +396,8 @@ const verifyPageElements = () => { labelElement: configurationsListBoxElements({subFeature: SETTINGS.API.OTHER_API_SETTINGS.COUNTRY_DATA}).SELECTED_SUBFEATURE_TITLE, labelText: "Track country data", }); + + cy.scrollPageBy10cm(); cy.verifyElement({ labelElement: configurationsListBoxElements({subFeature: SETTINGS.API.OTHER_API_SETTINGS.COUNTRY_DATA}).SELECTED_SUBFEATURE_DESCRIPTION, From fbab3c579a74f9e22489e70ff02f1cd2dc5996e9 Mon Sep 17 00:00:00 2001 From: Savas Date: Wed, 30 Jul 2025 14:21:02 +0000 Subject: [PATCH 027/344] Fixed the code --- .../manage/configurations/configurations.js | 14 +++++++------- ui-tests/cypress/support/commands.js | 16 ++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js b/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js index c667e404a8b..e19040fea5a 100755 --- a/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js +++ b/ui-tests/cypress/lib/dashboard/manage/configurations/configurations.js @@ -179,8 +179,8 @@ const verifyPageElements = () => { attrText: "100" }); - // cy.scrollPageToCenter(); - cy.scrollPageBy10cm(); + // cy.scrollPageToCenter(); + cy.scrollPageSlightly(); cy.verifyElement({ labelElement: configurationsListBoxElements({subFeature: SETTINGS.API.DATA_LIMITS.EVENT_SEGMENTATION_VALUE_LIMIT}).SELECTED_SUBFEATURE_TITLE, @@ -245,7 +245,7 @@ const verifyPageElements = () => { attr: "aria-valuenow", attrText: "10" }); - cy.scrollPageBy10cm(); + cy.scrollPageSlightly(); cy.verifyElement({ labelElement: configurationsListBoxElements({subFeature: SETTINGS.API.OTHER_API_SETTINGS.OTHER_API_SETTINGS}).SELECTED_FEATURE_GROUP_NAME, @@ -329,7 +329,7 @@ const verifyPageElements = () => { value: "every hour" }); - cy.scrollPageBy10cm(); + cy.scrollPageSlightly(); cy.verifyElement({ labelElement: configurationsListBoxElements({subFeature: SETTINGS.API.OTHER_API_SETTINGS.REQUEST_THRESHOLD}).SELECTED_SUBFEATURE_TITLE, @@ -396,8 +396,8 @@ const verifyPageElements = () => { labelElement: configurationsListBoxElements({subFeature: SETTINGS.API.OTHER_API_SETTINGS.COUNTRY_DATA}).SELECTED_SUBFEATURE_TITLE, labelText: "Track country data", }); - - cy.scrollPageBy10cm(); + + cy.scrollPageSlightly(); cy.verifyElement({ labelElement: configurationsListBoxElements({subFeature: SETTINGS.API.OTHER_API_SETTINGS.COUNTRY_DATA}).SELECTED_SUBFEATURE_DESCRIPTION, @@ -841,7 +841,7 @@ const verifyPageElements = () => { isChecked: true }); - cy.scrollPageBy10cm(); + cy.scrollPageSlightly(); cy.verifyElement({ labelElement: configurationsListBoxElements({ subFeature: SETTINGS.SECURITY.PASSWORD_EXPIRATION }).SELECTED_SUBFEATURE_TITLE, diff --git a/ui-tests/cypress/support/commands.js b/ui-tests/cypress/support/commands.js index 21801e468ac..6963dfb4297 100755 --- a/ui-tests/cypress/support/commands.js +++ b/ui-tests/cypress/support/commands.js @@ -206,15 +206,15 @@ Cypress.Commands.add('checkPaceActive', () => { }); }); -Cypress.Commands.add("scrollPageBy10cm", (element = '.main-view', index = 0) => { +Cypress.Commands.add("scrollPageSlightly", (element = '.main-view', index = 0) => { cy.get(element).eq(index).then(($el) => { - const currentScroll = $el[0].scrollTop; - const newScroll = currentScroll + 550; - - cy.wrap($el).scrollTo(0, newScroll, { - duration: 1000, - ensureScrollable: false, - }); + const currentScroll = $el[0].scrollTop; + const newScroll = currentScroll + 550; + + cy.wrap($el).scrollTo(0, newScroll, { + duration: 1000, + ensureScrollable: false, + }); }); }); From b616e5a1c8e5c7b5a677811f818a8a8729809298 Mon Sep 17 00:00:00 2001 From: Can Angun <39311746+can-angun@users.noreply.github.com> Date: Thu, 31 Jul 2025 10:33:29 +0300 Subject: [PATCH 028/344] Updated views per session data verify text --- .../lib/dashboard/analytics/sessions/viewsPerSession.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ui-tests/cypress/lib/dashboard/analytics/sessions/viewsPerSession.js b/ui-tests/cypress/lib/dashboard/analytics/sessions/viewsPerSession.js index 0a2c4c88870..42fa876673e 100644 --- a/ui-tests/cypress/lib/dashboard/analytics/sessions/viewsPerSession.js +++ b/ui-tests/cypress/lib/dashboard/analytics/sessions/viewsPerSession.js @@ -169,11 +169,13 @@ const verifyViewsPerSessionDataFromTable = ({ cy.verifyElement({ element: sessionViewsPerSessionDataTableElements(0).VIEWS_PER_SESSION, - elementText: "1 - 2 views" + //elementText: "1 - 2 views" + elementText: "views" }); cy.verifyElement({ element: sessionViewsPerSessionDataTableElements(1).VIEWS_PER_SESSION, - elementText: "3 - 5 views" + //elementText: "3 - 5 views" + elementText: "views" }); for (var i = 0; i < 2; i++) { @@ -222,4 +224,4 @@ module.exports = { clickSessionDurationsTab, clickSessionFrequencyTab, clickViewsPerSessionTab -}; \ No newline at end of file +}; From b9d1b75555d1dde5ebab34bcb2e963faf092b1de Mon Sep 17 00:00:00 2001 From: Can Angun <39311746+can-angun@users.noreply.github.com> Date: Thu, 31 Jul 2025 10:49:10 +0300 Subject: [PATCH 029/344] Updated session per session bar verify --- .../dashboard/analytics/sessions/viewsPerSession.js | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/ui-tests/cypress/lib/dashboard/analytics/sessions/viewsPerSession.js b/ui-tests/cypress/lib/dashboard/analytics/sessions/viewsPerSession.js index 42fa876673e..d67b4fd75e3 100644 --- a/ui-tests/cypress/lib/dashboard/analytics/sessions/viewsPerSession.js +++ b/ui-tests/cypress/lib/dashboard/analytics/sessions/viewsPerSession.js @@ -169,21 +169,13 @@ const verifyViewsPerSessionDataFromTable = ({ cy.verifyElement({ element: sessionViewsPerSessionDataTableElements(0).VIEWS_PER_SESSION, - //elementText: "1 - 2 views" elementText: "views" }); + cy.verifyElement({ - element: sessionViewsPerSessionDataTableElements(1).VIEWS_PER_SESSION, - //elementText: "3 - 5 views" - elementText: "views" + element: sessionViewsPerSessionDataTableElements(0).PERCENT_PROGRESS_BAR, }); - for (var i = 0; i < 2; i++) { - cy.verifyElement({ - element: sessionViewsPerSessionDataTableElements(i).PERCENT_PROGRESS_BAR, - }); - } - cy.verifyElement({ shouldNot: !isEmpty, element: sessionViewsPerSessionDataTableElements(index).NUMBER_OF_SESSIONS, From 727089594d5f44b3c231d017e5a13c4a3cc0b85f Mon Sep 17 00:00:00 2001 From: majamee Date: Thu, 31 Jul 2025 13:07:00 +0200 Subject: [PATCH 030/344] Fix nginx.server.ssl.conf https://github.com/Countly/countly-server/issues/5120 --- bin/config/nginx.server.ssl.conf | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/bin/config/nginx.server.ssl.conf b/bin/config/nginx.server.ssl.conf index 16089456631..b5645f3ad05 100644 --- a/bin/config/nginx.server.ssl.conf +++ b/bin/config/nginx.server.ssl.conf @@ -11,14 +11,12 @@ server { # HTTPS configuration server { - listen 443; - listen [::]:443 ipv6only=on; + listen 443 ssl; + listen [::]:443 ipv6only=on; server_name localhost; access_log off; - ssl on; - # support only known-secure cryptographic protocols # SSLv3 is broken by POODLE as of October 2014 ssl_protocols TLSv1.2 TLSv1.3; From 0014d47757a8e50eb8ff9859947fcd8d3cf32309 Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Fri, 1 Aug 2025 01:18:31 +0700 Subject: [PATCH 031/344] [remote-config] Add more tests --- plugins/remote-config/api/parts/rc.js | 6 +++++- plugins/remote-config/tests/fetch_remote_config.js | 10 +++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/plugins/remote-config/api/parts/rc.js b/plugins/remote-config/api/parts/rc.js index b6ff123ecf4..43fc4b07713 100644 --- a/plugins/remote-config/api/parts/rc.js +++ b/plugins/remote-config/api/parts/rc.js @@ -53,7 +53,9 @@ remoteConfig.processFilter = function(inpUser, inpQuery) { if (parts[0] !== 'chr') { if (typeof (value) !== 'undefined') { - if (prop === 'up.av') { + const filterType = Object.keys(query[prop])[0]; + + if (prop === 'up.av' && /^\$(gt|lt)/.test(filterType)) { qResult = qResult && processAppVersionValues(user.av, { [prop]: query[prop] }, prop); } else { @@ -139,6 +141,8 @@ function processPropertyValues(value, query, prop) { * @returns {Boolean} property value status */ function processAppVersionValues(inpUserAv, query, prop) { + // app version is stored in mongo like 1:1:0 instead of 1.1.0 + // the colons have to be replaced with dots so that semver lib can compare the app version const userAv = inpUserAv.replace(/:/g, '.'); const filterType = Object.keys(query[prop])[0]; const targetAv = query[prop] && query[prop][filterType] && query[prop][filterType].replace(/:/g, '.'); diff --git a/plugins/remote-config/tests/fetch_remote_config.js b/plugins/remote-config/tests/fetch_remote_config.js index c5717c32257..e09a818d239 100644 --- a/plugins/remote-config/tests/fetch_remote_config.js +++ b/plugins/remote-config/tests/fetch_remote_config.js @@ -233,29 +233,37 @@ describe('Fetch remote config', () => { const queryGte = { 'up.av': { $gte: '1:0:0' } }; const queryLt = { 'up.av': { $lt: '2:0:0' } }; const queryLte = { 'up.av': { $lte: '1:0:0' } }; + const queryIn = { 'up.av': { $in: ['1:0:0'] } }; + const queryNin = { 'up.av': { $nin: ['2:0:0'] } }; should(remoteConfig.processFilter(targetedUser, queryGt)).equal(true); should(remoteConfig.processFilter(targetedUser, queryGte)).equal(true); should(remoteConfig.processFilter(targetedUser, queryLt)).equal(true); should(remoteConfig.processFilter(targetedUser, queryLte)).equal(true); + should(remoteConfig.processFilter(targetedUser, queryIn)).equal(true); + should(remoteConfig.processFilter(targetedUser, queryNin)).equal(true); }); it('Should not match non targeted user (app version)', () => { const nonTargetedUser = { _id: '1c5c91e1dd594d457a656fad1e55d0cf2a3f0601', uid: '13', - did: 'targeted_user', + did: 'non_targeted_user', av: '1:0:0', }; const queryGt = { 'up.av': { $gt: '1:0:0' } }; const queryGte = { 'up.av': { $gte: '2:0:0' } }; const queryLt = { 'up.av': { $lt: '1:0:0' } }; const queryLte = { 'up.av': { $lte: '0:0:0' } }; + const queryIn = { 'up.av': { $in: ['2:0:0'] } }; + const queryNin = { 'up.av': { $nin: ['1:0:0'] } }; should(remoteConfig.processFilter(nonTargetedUser, queryGt)).equal(false); should(remoteConfig.processFilter(nonTargetedUser, queryGte)).equal(false); should(remoteConfig.processFilter(nonTargetedUser, queryLt)).equal(false); should(remoteConfig.processFilter(nonTargetedUser, queryLte)).equal(false); + should(remoteConfig.processFilter(nonTargetedUser, queryIn)).equal(false); + should(remoteConfig.processFilter(nonTargetedUser, queryNin)).equal(false); }); it('Should match targeted user ($and query)', () => { From 198c70b5e576a1f78c823b0d5b345bb5e77cef0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Aug 2025 01:18:30 +0000 Subject: [PATCH 032/344] Bump eslint-plugin-vue from 10.3.0 to 10.4.0 Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 10.3.0 to 10.4.0. - [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases) - [Changelog](https://github.com/vuejs/eslint-plugin-vue/blob/master/CHANGELOG.md) - [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v10.3.0...v10.4.0) --- updated-dependencies: - dependency-name: eslint-plugin-vue dependency-version: 10.4.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index f421c67b686..f350ec74d12 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4889,9 +4889,9 @@ } }, "node_modules/eslint-plugin-vue": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-10.3.0.tgz", - "integrity": "sha512-A0u9snqjCfYaPnqqOaH6MBLVWDUIN4trXn8J3x67uDcXvR7X6Ut8p16N+nYhMCQ9Y7edg2BIRGzfyZsY0IdqoQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-10.4.0.tgz", + "integrity": "sha512-K6tP0dW8FJVZLQxa2S7LcE1lLw3X8VvB3t887Q6CLrFVxHYBXGANbXvwNzYIu6Ughx1bSJ5BDT0YB3ybPT39lw==", "dev": true, "license": "MIT", "dependencies": { From a1f3ffed8e74a307c2d651f5c185b4bcbc36288d Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Fri, 1 Aug 2025 13:16:14 +0700 Subject: [PATCH 033/344] Update changelog --- CHANGELOG.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9cfddfbb667..67048448da2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,15 +10,13 @@ Fixes: Features: - [plugins] Add configuration warning tags to settings UI - [white-labeling] Add sidebar footer label setting to white labeling -- [remote-config] Enable comparing newer/older app version in conditions Fixes: - [core] Use correct rights validation for loyality - [crashes] Fix free session for home widget - [crashes] Fix trend and change calculation for crash stats -- [push] Show segmentation, geo and cohorts related components in push drawer on editing draft. - [crashes] Use na for free session and free user when there's no data -- [remote-config] Fix condition matching with complex conditions +- [push] Show segmentation, geo and cohorts related components in push drawer on editing draft. Enterprise Fixes: - [ldap] Error handling in ldap plugin on search error From b6e67df753c690303de8b9f4bfa811b44341c5a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Aug 2025 02:17:46 +0000 Subject: [PATCH 034/344] Bump lint-staged from 16.1.2 to 16.1.4 Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 16.1.2 to 16.1.4. - [Release notes](https://github.com/lint-staged/lint-staged/releases) - [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md) - [Commits](https://github.com/lint-staged/lint-staged/compare/v16.1.2...v16.1.4) --- updated-dependencies: - dependency-name: lint-staged dependency-version: 16.1.4 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index f421c67b686..f17777b4296 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8253,9 +8253,9 @@ "license": "MIT" }, "node_modules/lint-staged": { - "version": "16.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.1.2.tgz", - "integrity": "sha512-sQKw2Si2g9KUZNY3XNvRuDq4UJqpHwF0/FQzZR2M7I5MvtpWvibikCjUVJzZdGE0ByurEl3KQNvsGetd1ty1/Q==", + "version": "16.1.4", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.1.4.tgz", + "integrity": "sha512-xy7rnzQrhTVGKMpv6+bmIA3C0yET31x8OhKBYfvGo0/byeZ6E0BjGARrir3Kg/RhhYHutpsi01+2J5IpfVoueA==", "dev": true, "license": "MIT", "dependencies": { @@ -8263,7 +8263,7 @@ "commander": "^14.0.0", "debug": "^4.4.1", "lilconfig": "^3.1.3", - "listr2": "^8.3.3", + "listr2": "^9.0.1", "micromatch": "^4.0.8", "nano-spawn": "^1.0.2", "pidtree": "^0.6.0", @@ -8304,9 +8304,9 @@ } }, "node_modules/listr2": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.3.3.tgz", - "integrity": "sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.1.tgz", + "integrity": "sha512-SL0JY3DaxylDuo/MecFeiC+7pedM0zia33zl0vcjgwcq1q1FWWF1To9EIauPbl8GbMCU0R2e0uJ8bZunhYKD2g==", "dev": true, "license": "MIT", "dependencies": { @@ -8318,7 +8318,7 @@ "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/listr2/node_modules/ansi-regex": { From 24d6038af2ff20e66bf7dcd749f1082057e1d928 Mon Sep 17 00:00:00 2001 From: Anna Sosina Date: Mon, 4 Aug 2025 14:22:01 +0300 Subject: [PATCH 035/344] Update CHANGELOG.md --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67048448da2..58e57c55b28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ Features: Fixes: - [remote-config] Fix condition matching with compound conditions +- +Enterprise Fixes: +- [flows] Showing correct state for disabled flows +- [surveys] Move "not likely" label next to 0 on mobile screens + ## Version 25.03.12 From 487b7960c37a2e19b455ea7ee4808cf1b409df78 Mon Sep 17 00:00:00 2001 From: Gabriel Oliveira Pinto Date: Tue, 5 Aug 2025 10:17:41 +0100 Subject: [PATCH 036/344] Update CHANGELOG.md --- CHANGELOG.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 58e57c55b28..06d0d06562c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,15 @@ -## Version 25.03.XX +## Version 25.03.13 Features: - [remote-config] Enable comparing newer/older app version in conditions Fixes: - [remote-config] Fix condition matching with compound conditions -- + Enterprise Fixes: - [flows] Showing correct state for disabled flows - [surveys] Move "not likely" label next to 0 on mobile screens - ## Version 25.03.12 Features: - [plugins] Add configuration warning tags to settings UI From 7e5cc04724fa72741a31596f290182e2a740c8c7 Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Tue, 5 Aug 2025 13:13:57 +0300 Subject: [PATCH 037/344] [crashes] fix label --- plugins/crashes/frontend/public/javascripts/countly.views.js | 2 +- plugins/crashes/frontend/public/localization/crashes.properties | 2 +- .../crashes/frontend/public/localization/crashes_fr.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/crashes/frontend/public/javascripts/countly.views.js b/plugins/crashes/frontend/public/javascripts/countly.views.js index b695ba997cf..40f96fb4a3e 100644 --- a/plugins/crashes/frontend/public/javascripts/countly.views.js +++ b/plugins/crashes/frontend/public/javascripts/countly.views.js @@ -47,7 +47,7 @@ filterProperties.push( new countlyQueryBuilder.Property({ id: "nonfatal", - name: jQuery.i18n.prop("crashes.fatality") || "Fatality", + name: jQuery.i18n.prop("crashes.fatality-label") || "Fatality", type: countlyQueryBuilder.PropertyType.LIST, group: "Main", getValueList: function() { diff --git a/plugins/crashes/frontend/public/localization/crashes.properties b/plugins/crashes/frontend/public/localization/crashes.properties index d5b18109458..b9a94044979 100644 --- a/plugins/crashes/frontend/public/localization/crashes.properties +++ b/plugins/crashes/frontend/public/localization/crashes.properties @@ -266,7 +266,7 @@ crashes.filter.orientation.portrait = Portrait crashes.filter.orientation.landscape = Landscape # Filter properties -crashes.fatality = Fatality +crashes.fatality-label = Fatality crashes.fatal = Fatal crashes.non-fatal = Non-fatal crashes.visibility = Visibility diff --git a/plugins/crashes/frontend/public/localization/crashes_fr.properties b/plugins/crashes/frontend/public/localization/crashes_fr.properties index 264af73dec1..19ce5fe4537 100644 --- a/plugins/crashes/frontend/public/localization/crashes_fr.properties +++ b/plugins/crashes/frontend/public/localization/crashes_fr.properties @@ -278,7 +278,7 @@ crashes.filter.orientation.portrait = Portrait crashes.filter.orientation.landscape = Paysage # Filter properties -crashes.fatality = Fatalité +crashes.fatality-label = Fatalité crashes.fatal = Fatal crashes.non-fatal = Non-fatal crashes.visibility = Visibilité From 1b1660081ffed605789230bde4f1b0ab3dc50191 Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Tue, 5 Aug 2025 14:21:06 +0300 Subject: [PATCH 038/344] Update CHANGELOG.md --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06d0d06562c..68848f3dc4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## Version 25.03.xx + +Fixes: +- [dashboard] Localized missing string in the dashboard +- [localization] Added French translations + + ## Version 25.03.13 Features: - [remote-config] Enable comparing newer/older app version in conditions From 91392be7ff205ec3651663cca0e3d3af4ad30787 Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Tue, 5 Aug 2025 15:40:36 +0300 Subject: [PATCH 039/344] Fix week days --- .../frontend/public/javascripts/countly.models.js | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/plugins/times-of-day/frontend/public/javascripts/countly.models.js b/plugins/times-of-day/frontend/public/javascripts/countly.models.js index 335a010b0b6..0ee9e712af6 100755 --- a/plugins/times-of-day/frontend/public/javascripts/countly.models.js +++ b/plugins/times-of-day/frontend/public/javascripts/countly.models.js @@ -1,17 +1,9 @@ -/*global countlyCommon,CV,countlyVue,countlyEvent,moment,jQuery */ +/*global countlyCommon,CV,countlyVue,countlyEvent,moment*/ (function(countlyTimesOfDay) { countlyTimesOfDay.service = { HOURS: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], - WEEK_DAYS: [ - jQuery.i18n.map["common.monday"] || "monday", - jQuery.i18n.map["common.tuesday"] || "tuesday", - jQuery.i18n.map["common.wednesday"] || "wednesday", - jQuery.i18n.map["common.thursday"] || "thursday", - jQuery.i18n.map["common.friday"] || "friday", - jQuery.i18n.map["common.saturday"] || "saturday", - jQuery.i18n.map["common.sunday"] || "sunday" - ], + WEEK_DAYS: ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"], DateBucketEnum: { PREV_MONTH: "previous", THIS_MONTH: "current", From 9ecfa09523d483da7e3ba8b6040cda9c894e88cf Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Tue, 5 Aug 2025 18:00:32 +0300 Subject: [PATCH 040/344] Update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68848f3dc4f..c3afe5edb23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ Fixes: - [dashboard] Localized missing string in the dashboard - [localization] Added French translations +Dependencies: +- Bump lint-staged from 16.1.2 to 16.1.4 ## Version 25.03.13 Features: From 317afca2720a24df3fb7fdb6d1dd9bcd56868942 Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Tue, 5 Aug 2025 18:18:23 +0300 Subject: [PATCH 041/344] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3afe5edb23..3822e2618fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Fixes: - [localization] Added French translations Dependencies: +- Bump eslint-plugin-vue from 10.3.0 to 10.4.0 - Bump lint-staged from 16.1.2 to 16.1.4 ## Version 25.03.13 From 6d22f5c86c1908a477fb75ad5fc8a347d5fc9603 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Aug 2025 15:18:52 +0000 Subject: [PATCH 042/344] Bump typescript from 5.8.3 to 5.9.2 Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.8.3 to 5.9.2. - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml) - [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.2) --- updated-dependencies: - dependency-name: typescript dependency-version: 5.9.2 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 80 +++++++++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index f17777b4296..d366d90fb16 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2299,14 +2299,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.34.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.1.tgz", - "integrity": "sha512-nuHlOmFZfuRwLJKDGQOVc0xnQrAmuq1Mj/ISou5044y1ajGNp2BNliIqp7F2LPQ5sForz8lempMFCovfeS1XoA==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.39.0.tgz", + "integrity": "sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.34.1", - "@typescript-eslint/types": "^8.34.1", + "@typescript-eslint/tsconfig-utils": "^8.39.0", + "@typescript-eslint/types": "^8.39.0", "debug": "^4.3.4" }, "engines": { @@ -2317,18 +2317,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.34.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.1.tgz", - "integrity": "sha512-beu6o6QY4hJAgL1E8RaXNC071G4Kso2MGmJskCFQhRhg8VOH/FDbC8soP8NHN7e/Hdphwp8G8cE6OBzC8o41ZA==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.39.0.tgz", + "integrity": "sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.34.1", - "@typescript-eslint/visitor-keys": "8.34.1" + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/visitor-keys": "8.39.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2339,9 +2339,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.34.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.1.tgz", - "integrity": "sha512-K4Sjdo4/xF9NEeA2khOb7Y5nY6NSXBnod87uniVYW9kHP+hNlDV8trUSFeynA2uxWam4gIWgWoygPrv9VMWrYg==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.39.0.tgz", + "integrity": "sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==", "dev": true, "license": "MIT", "engines": { @@ -2352,13 +2352,13 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.34.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.1.tgz", - "integrity": "sha512-rjLVbmE7HR18kDsjNIZQHxmv9RZwlgzavryL5Lnj2ujIRTeXlKtILHgRNmQ3j4daw7zd+mQgy+uyt6Zo6I0IGA==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.39.0.tgz", + "integrity": "sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==", "dev": true, "license": "MIT", "engines": { @@ -2370,16 +2370,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.34.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.1.tgz", - "integrity": "sha512-rjCNqqYPuMUF5ODD+hWBNmOitjBWghkGKJg6hiCHzUvXRy6rK22Jd3rwbP2Xi+R7oYVvIKhokHVhH41BxPV5mA==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.39.0.tgz", + "integrity": "sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.34.1", - "@typescript-eslint/tsconfig-utils": "8.34.1", - "@typescript-eslint/types": "8.34.1", - "@typescript-eslint/visitor-keys": "8.34.1", + "@typescript-eslint/project-service": "8.39.0", + "@typescript-eslint/tsconfig-utils": "8.39.0", + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/visitor-keys": "8.39.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -2395,20 +2395,20 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/utils": { - "version": "8.34.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.1.tgz", - "integrity": "sha512-mqOwUdZ3KjtGk7xJJnLbHxTuWVn3GO2WZZuM+Slhkun4+qthLdXx32C8xIXbO1kfCECb3jIs3eoxK3eryk7aoQ==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.39.0.tgz", + "integrity": "sha512-4GVSvNA0Vx1Ktwvf4sFE+exxJ3QGUorQG1/A5mRfRNZtkBT2xrA/BCO2H0eALx/PnvCS6/vmYwRdDA41EoffkQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.34.1", - "@typescript-eslint/types": "8.34.1", - "@typescript-eslint/typescript-estree": "8.34.1" + "@typescript-eslint/scope-manager": "8.39.0", + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/typescript-estree": "8.39.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2419,17 +2419,17 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.34.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.1.tgz", - "integrity": "sha512-xoh5rJ+tgsRKoXnkBPFRLZ7rjKM0AfVbC68UZ/ECXoDbfggb9RbEySN359acY1vS3qZ0jVTVWzbtfapwm5ztxw==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.39.0.tgz", + "integrity": "sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.34.1", + "@typescript-eslint/types": "8.39.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -12884,9 +12884,9 @@ } }, "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "devOptional": true, "license": "Apache-2.0", "bin": { From 60cfa9a6897aeeeb1b1870584671d9fe8a2a0bd0 Mon Sep 17 00:00:00 2001 From: Umit Coskun Aydinoglu Date: Wed, 6 Aug 2025 12:55:07 +0300 Subject: [PATCH 043/344] Fix for body parser empty request body in azure-ad-callback --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3afe5edb23..f24b1aa55f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ Fixes: - [dashboard] Localized missing string in the dashboard - [localization] Added French translations +Enterprise Fixes: +- [active_directory] Fix for body parser empty request body issue + Dependencies: - Bump lint-staged from 16.1.2 to 16.1.4 From b509e6783a31cc8f7ab562d3a4d128aa7996a20d Mon Sep 17 00:00:00 2001 From: Gabriel Oliveira Pinto Date: Wed, 6 Aug 2025 11:23:38 +0100 Subject: [PATCH 044/344] Update CHANGELOG.md --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f24b1aa55f9..8cff39ace26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## Version 25.03.xx +## Version 25.03.14 Fixes: - [dashboard] Localized missing string in the dashboard @@ -10,6 +10,7 @@ Enterprise Fixes: Dependencies: - Bump lint-staged from 16.1.2 to 16.1.4 + ## Version 25.03.13 Features: - [remote-config] Enable comparing newer/older app version in conditions From 81adc52b65d359532b7944bf66a3584f21508c02 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Aug 2025 17:07:21 +0000 Subject: [PATCH 045/344] Bump tmp from 0.2.3 to 0.2.4 in /ui-tests Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.3 to 0.2.4. - [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md) - [Commits](https://github.com/raszi/node-tmp/compare/v0.2.3...v0.2.4) --- updated-dependencies: - dependency-name: tmp dependency-version: 0.2.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- ui-tests/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ui-tests/package-lock.json b/ui-tests/package-lock.json index 0c4e72832d7..9fb8a8b1fd9 100644 --- a/ui-tests/package-lock.json +++ b/ui-tests/package-lock.json @@ -1878,9 +1878,9 @@ "license": "MIT" }, "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.4.tgz", + "integrity": "sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==", "license": "MIT", "engines": { "node": ">=14.14" From 18704318238416b181c9a3ff253bde8dabcd7924 Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Thu, 7 Aug 2025 11:31:51 +0300 Subject: [PATCH 046/344] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 49d0b7c406d..46ba40c83f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ Enterprise Fixes: Dependencies: - Bump eslint-plugin-vue from 10.3.0 to 10.4.0 - Bump lint-staged from 16.1.2 to 16.1.4 +- Bump typescript from 5.8.3 to 5.9.2 ## Version 25.03.13 From 933e6216e17bd5960dfe3fabeebcb4e017fd456f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Aug 2025 09:03:04 +0000 Subject: [PATCH 047/344] Bump fs-extra from 11.3.0 to 11.3.1 Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 11.3.0 to 11.3.1. - [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md) - [Commits](https://github.com/jprichardson/node-fs-extra/compare/11.3.0...11.3.1) --- updated-dependencies: - dependency-name: fs-extra dependency-version: 11.3.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index dcd78b54524..4e56f3501de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "express-session": "1.18.2", "form-data": "^4.0.0", "formidable": "2.1.3", - "fs-extra": "11.3.0", + "fs-extra": "11.3.1", "geoip-lite": "1.4.10", "get-random-values": "^3.0.0", "grunt": "1.6.1", @@ -5892,9 +5892,9 @@ "license": "MIT" }, "node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", + "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", diff --git a/package.json b/package.json index 95ddf4ee808..39e94bac104 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "express-session": "1.18.2", "form-data": "^4.0.0", "formidable": "2.1.3", - "fs-extra": "11.3.0", + "fs-extra": "11.3.1", "geoip-lite": "1.4.10", "get-random-values": "^3.0.0", "grunt": "1.6.1", From 829904372c5527f6337da46c620da9d8e379b04e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Aug 2025 09:03:06 +0000 Subject: [PATCH 048/344] Bump sass from 1.89.2 to 1.90.0 Bumps [sass](https://github.com/sass/dart-sass) from 1.89.2 to 1.90.0. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.89.2...1.90.0) --- updated-dependencies: - dependency-name: sass dependency-version: 1.90.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index dcd78b54524..eb17ad49bf6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,7 +60,7 @@ "offline-geocoder": "git+https://github.com/Countly/offline-geocoder.git", "properties-parser": "0.6.0", "puppeteer": "^24.6.1", - "sass": "1.89.2", + "sass": "1.90.0", "semver": "^7.7.1", "sharp": "^0.34.2", "sqlite3": "^5.1.7", @@ -11598,9 +11598,9 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.89.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.2.tgz", - "integrity": "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==", + "version": "1.90.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.90.0.tgz", + "integrity": "sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==", "license": "MIT", "dependencies": { "chokidar": "^4.0.0", diff --git a/package.json b/package.json index 95ddf4ee808..2eae4723283 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "offline-geocoder": "git+https://github.com/Countly/offline-geocoder.git", "properties-parser": "0.6.0", "puppeteer": "^24.6.1", - "sass": "1.89.2", + "sass": "1.90.0", "semver": "^7.7.1", "sharp": "^0.34.2", "sqlite3": "^5.1.7", From 1d8c69facdd808a59393690c5efea36b18d5c734 Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Sat, 9 Aug 2025 11:56:18 +0300 Subject: [PATCH 049/344] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 46ba40c83f7..2f32ea90732 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ Enterprise Fixes: Dependencies: - Bump eslint-plugin-vue from 10.3.0 to 10.4.0 - Bump lint-staged from 16.1.2 to 16.1.4 +- Bump sass from 1.89.2 to 1.90.0 - Bump typescript from 5.8.3 to 5.9.2 From eadcf4ea25276f49262f6ad763c2a31b36bb43fe Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Sat, 9 Aug 2025 12:40:51 +0300 Subject: [PATCH 050/344] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f32ea90732..f32acb19399 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ Enterprise Fixes: Dependencies: - Bump eslint-plugin-vue from 10.3.0 to 10.4.0 +- Bump fs-extra from 11.3.0 to 11.3.1 - Bump lint-staged from 16.1.2 to 16.1.4 - Bump sass from 1.89.2 to 1.90.0 - Bump typescript from 5.8.3 to 5.9.2 From 30e74e454debc69fa82cbfb3db6f321fb425bd82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 9 Aug 2025 09:40:58 +0000 Subject: [PATCH 051/344] Bump puppeteer from 24.15.0 to 24.16.0 Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.15.0 to 24.16.0. - [Release notes](https://github.com/puppeteer/puppeteer/releases) - [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md) - [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.15.0...puppeteer-v24.16.0) --- updated-dependencies: - dependency-name: puppeteer dependency-version: 24.16.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index eb17ad49bf6..079f4ff82f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2936,9 +2936,9 @@ "license": "MIT" }, "node_modules/bare-events": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.6.0.tgz", - "integrity": "sha512-EKZ5BTXYExaNqi3I3f9RtEsaI/xBSGjE0XZCZilPzFAV/goswFHuPd9jEZlPIZ/iNZJwDSao9qRiScySz7MbQg==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.6.1.tgz", + "integrity": "sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==", "license": "Apache-2.0", "optional": true }, @@ -4494,9 +4494,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1464554", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1464554.tgz", - "integrity": "sha512-CAoP3lYfwAGQTaAXYvA6JZR0fjGUb7qec1qf4mToyoH2TZgUFeIqYcjh6f9jNuhHfuZiEdH+PONHYrLhRQX6aw==", + "version": "0.0.1475386", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1475386.tgz", + "integrity": "sha512-RQ809ykTfJ+dgj9bftdeL2vRVxASAuGU+I9LEx9Ij5TXU5HrgAQVmzi72VA+mkzscE12uzlRv5/tWWv9R9J1SA==", "license": "BSD-3-Clause" }, "node_modules/dezalgo": { @@ -11106,17 +11106,17 @@ } }, "node_modules/puppeteer": { - "version": "24.15.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.15.0.tgz", - "integrity": "sha512-HPSOTw+DFsU/5s2TUUWEum9WjFbyjmvFDuGHtj2X4YUz2AzOzvKMkT3+A3FR+E+ZefiX/h3kyLyXzWJWx/eMLQ==", + "version": "24.16.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.16.0.tgz", + "integrity": "sha512-5qxFGOpdAzYexoPwKPEF4L/IYKYOFE1MxWsqcp7K33HySM8N8S/yZwSQCaV0rzmJsTLX5LxU4zt65+ceNiVDgQ==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "@puppeteer/browsers": "2.10.6", "chromium-bidi": "7.2.0", "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1464554", - "puppeteer-core": "24.15.0", + "devtools-protocol": "0.0.1475386", + "puppeteer-core": "24.16.0", "typed-query-selector": "^2.12.0" }, "bin": { @@ -11127,15 +11127,15 @@ } }, "node_modules/puppeteer-core": { - "version": "24.15.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.15.0.tgz", - "integrity": "sha512-2iy0iBeWbNyhgiCGd/wvGrDSo73emNFjSxYOcyAqYiagkYt5q4cPfVXaVDKBsukgc2fIIfLAalBZlaxldxdDYg==", + "version": "24.16.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.16.0.tgz", + "integrity": "sha512-tZ0tJiOYaDGTRzzr2giDpf8O/55JsoqkrafS1Xu4H6S8oP4eeL6RbZzY9OzjShSf5EQvx/zAc55QKpDqzXos/Q==", "license": "Apache-2.0", "dependencies": { "@puppeteer/browsers": "2.10.6", "chromium-bidi": "7.2.0", "debug": "^4.4.1", - "devtools-protocol": "0.0.1464554", + "devtools-protocol": "0.0.1475386", "typed-query-selector": "^2.12.0", "ws": "^8.18.3" }, From fc82df461265d8c9e43a6327df374cd0b6a882e4 Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Sat, 9 Aug 2025 13:02:31 +0300 Subject: [PATCH 052/344] Update Changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f32acb19399..2c3f1a53674 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ Dependencies: - Bump eslint-plugin-vue from 10.3.0 to 10.4.0 - Bump fs-extra from 11.3.0 to 11.3.1 - Bump lint-staged from 16.1.2 to 16.1.4 +- Bump puppeteer from 24.15.0 to 24.16.0 - Bump sass from 1.89.2 to 1.90.0 - Bump typescript from 5.8.3 to 5.9.2 From e5111bc61cd47c6b6a3b91a2543d0257d21bbd2c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Aug 2025 02:06:43 +0000 Subject: [PATCH 053/344] Bump docker/login-action from 3.4.0 to 3.5.0 in the actions group Bumps the actions group with 1 update: [docker/login-action](https://github.com/docker/login-action). Updates `docker/login-action` from 3.4.0 to 3.5.0 - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/74a5d142397b4f367a81961eba4e8cd7edddf772...184bdaa0721073962dff0199f1fb9940f07167d1) --- updated-dependencies: - dependency-name: docker/login-action dependency-version: 3.5.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: actions ... Signed-off-by: dependabot[bot] --- .github/workflows/deploy.yml | 2 +- .github/workflows/docker-image.yml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 0069d3fedd2..beefbbe616c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -48,7 +48,7 @@ jobs: uses: actions/checkout@v4 - name: Log in to Docker Hub - uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 + uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 584a16014fb..2c175c52d53 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -26,7 +26,7 @@ jobs: echo ${{ steps.vars.outputs.tag }} - name: Log in to Docker Hub - uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 + uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -57,7 +57,7 @@ jobs: echo ${{ steps.vars.outputs.tag }} - name: Log in to Docker Hub - uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 + uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -88,7 +88,7 @@ jobs: echo ${{ steps.vars.outputs.tag }} - name: Log in to Docker Hub - uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 + uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -119,7 +119,7 @@ jobs: echo ${{ steps.vars.outputs.tag }} - name: Log in to Docker Hub - uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 + uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} From 583ad3e4c8b6a393c0493ec08b932085b8fe87b7 Mon Sep 17 00:00:00 2001 From: Umit Coskun Aydinoglu Date: Mon, 11 Aug 2025 10:43:18 +0300 Subject: [PATCH 054/344] LDAP config timeout values added --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c3f1a53674..c913df50676 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## Version 25.03.xx + +Enterprise Fixes: +- [ldap] Connection timeout values are added to LDAP config + ## Version 25.03.14 Fixes: From afd28836c1877970fad0b53d20eaf5b1e8d6f892 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 11:05:24 +0000 Subject: [PATCH 055/344] Bump puppeteer from 24.16.0 to 24.16.1 Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.16.0 to 24.16.1. - [Release notes](https://github.com/puppeteer/puppeteer/releases) - [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md) - [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.16.0...puppeteer-v24.16.1) --- updated-dependencies: - dependency-name: puppeteer dependency-version: 24.16.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index f5119923378..44321343c78 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3629,9 +3629,9 @@ } }, "node_modules/chromium-bidi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-7.2.0.tgz", - "integrity": "sha512-gREyhyBstermK+0RbcJLbFhcQctg92AGgDe/h/taMJEOLRdtSswBAO9KmvltFSQWgM2LrwWu5SIuEUbdm3JsyQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-7.3.1.tgz", + "integrity": "sha512-i+BMGluhZZc4Jic9L1aHJBTfaopxmCqQxGklyMcqFx4fvF3nI4BJ3bCe1ad474nvYRIo/ZN/VrdA4eOaRZua4Q==", "license": "Apache-2.0", "dependencies": { "mitt": "^3.0.1", @@ -11106,17 +11106,17 @@ } }, "node_modules/puppeteer": { - "version": "24.16.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.16.0.tgz", - "integrity": "sha512-5qxFGOpdAzYexoPwKPEF4L/IYKYOFE1MxWsqcp7K33HySM8N8S/yZwSQCaV0rzmJsTLX5LxU4zt65+ceNiVDgQ==", + "version": "24.16.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.16.1.tgz", + "integrity": "sha512-3jrx2BrOBb8yr3+KE7OyxVtI2fjPNZi46/SQGxFvlKZX4/56i2LbdArEhNvlQw/xxmsZfpjFRbGtkMavgh3I+g==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { "@puppeteer/browsers": "2.10.6", - "chromium-bidi": "7.2.0", + "chromium-bidi": "7.3.1", "cosmiconfig": "^9.0.0", "devtools-protocol": "0.0.1475386", - "puppeteer-core": "24.16.0", + "puppeteer-core": "24.16.1", "typed-query-selector": "^2.12.0" }, "bin": { @@ -11127,13 +11127,13 @@ } }, "node_modules/puppeteer-core": { - "version": "24.16.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.16.0.tgz", - "integrity": "sha512-tZ0tJiOYaDGTRzzr2giDpf8O/55JsoqkrafS1Xu4H6S8oP4eeL6RbZzY9OzjShSf5EQvx/zAc55QKpDqzXos/Q==", + "version": "24.16.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.16.1.tgz", + "integrity": "sha512-0dGD2kxoH9jqj/xiz4KZLcPKpqWygs+VSEBzvuVbU3KoT2cCw4HnMT9r/7NvYl1lIa+JCa5yIyRqi+4R3UyYfQ==", "license": "Apache-2.0", "dependencies": { "@puppeteer/browsers": "2.10.6", - "chromium-bidi": "7.2.0", + "chromium-bidi": "7.3.1", "debug": "^4.4.1", "devtools-protocol": "0.0.1475386", "typed-query-selector": "^2.12.0", From ffa6e9ff417cdc6e1eddec29f4b827938d009b0e Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Wed, 13 Aug 2025 12:08:26 +0300 Subject: [PATCH 056/344] Update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c913df50676..ab1f3358c07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ Dependencies: - Bump eslint-plugin-vue from 10.3.0 to 10.4.0 - Bump fs-extra from 11.3.0 to 11.3.1 - Bump lint-staged from 16.1.2 to 16.1.4 -- Bump puppeteer from 24.15.0 to 24.16.0 +- Bump puppeteer from 24.15.0 to 24.16.1 - Bump sass from 1.89.2 to 1.90.0 - Bump typescript from 5.8.3 to 5.9.2 From abbadf9a9a24cca5f1557563aa4715d23ecca71a Mon Sep 17 00:00:00 2001 From: Gabriel Oliveira Date: Wed, 13 Aug 2025 14:24:23 +0100 Subject: [PATCH 057/344] fix: make checkbox group item have distinct keys --- .../public/javascripts/countly/vue/components/input.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/express/public/javascripts/countly/vue/components/input.js b/frontend/express/public/javascripts/countly/vue/components/input.js index 8c1dda8f5fb..70d66c02eb0 100644 --- a/frontend/express/public/javascripts/countly/vue/components/input.js +++ b/frontend/express/public/javascripts/countly/vue/components/input.js @@ -540,8 +540,8 @@ \ + :key="option.value + \'-\' + index"\ + v-for="(option, index) in searchedOptions">\
\ {{option.label}}\
\ From 5287ac6d2e40121c185b811402b120e56eba6434 Mon Sep 17 00:00:00 2001 From: Gabriel Oliveira Date: Wed, 13 Aug 2025 14:25:41 +0100 Subject: [PATCH 058/344] chore: update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c913df50676..6ac8113806a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## Version 25.03.xx Enterprise Fixes: +- [cohorts] Unescape segmentation properties options to prevent duplicated values - [ldap] Connection timeout values are added to LDAP config ## Version 25.03.14 From 6d4e4d031734b717b3616d13e8576a46eb06aeb0 Mon Sep 17 00:00:00 2001 From: Gabriel Oliveira Pinto Date: Wed, 13 Aug 2025 16:51:52 +0100 Subject: [PATCH 059/344] Update CHANGELOG.md --- CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ac8113806a..0de11c2d3ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,4 @@ -## Version 25.03.xx - +## Version 25.03.15 Enterprise Fixes: - [cohorts] Unescape segmentation properties options to prevent duplicated values - [ldap] Connection timeout values are added to LDAP config From 6abc540a9c749ce9e352e98e6d30f7fd71b8ba71 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Aug 2025 15:10:40 +0000 Subject: [PATCH 060/344] Bump lint-staged from 16.1.4 to 16.1.5 Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 16.1.4 to 16.1.5. - [Release notes](https://github.com/lint-staged/lint-staged/releases) - [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md) - [Commits](https://github.com/lint-staged/lint-staged/compare/v16.1.4...v16.1.5) --- updated-dependencies: - dependency-name: lint-staged dependency-version: 16.1.5 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 44321343c78..3eeda211d1d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8253,13 +8253,13 @@ "license": "MIT" }, "node_modules/lint-staged": { - "version": "16.1.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.1.4.tgz", - "integrity": "sha512-xy7rnzQrhTVGKMpv6+bmIA3C0yET31x8OhKBYfvGo0/byeZ6E0BjGARrir3Kg/RhhYHutpsi01+2J5IpfVoueA==", + "version": "16.1.5", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.1.5.tgz", + "integrity": "sha512-uAeQQwByI6dfV7wpt/gVqg+jAPaSp8WwOA8kKC/dv1qw14oGpnpAisY65ibGHUGDUv0rYaZ8CAJZ/1U8hUvC2A==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^5.4.1", + "chalk": "^5.5.0", "commander": "^14.0.0", "debug": "^4.4.1", "lilconfig": "^3.1.3", @@ -8268,7 +8268,7 @@ "nano-spawn": "^1.0.2", "pidtree": "^0.6.0", "string-argv": "^0.3.2", - "yaml": "^2.8.0" + "yaml": "^2.8.1" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -8281,9 +8281,9 @@ } }, "node_modules/lint-staged/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.5.0.tgz", + "integrity": "sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==", "dev": true, "license": "MIT", "engines": { @@ -13489,9 +13489,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", - "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", "dev": true, "license": "ISC", "bin": { From 2aa63660b46856c81dd65405249021230b3e9e7f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Aug 2025 15:10:40 +0000 Subject: [PATCH 061/344] Bump get-random-values from 3.0.0 to 4.0.0 Bumps [get-random-values](https://github.com/kenany/get-random-values) from 3.0.0 to 4.0.0. - [Release notes](https://github.com/kenany/get-random-values/releases) - [Changelog](https://github.com/kenany/get-random-values/blob/master/CHANGELOG.md) - [Commits](https://github.com/kenany/get-random-values/compare/3.0.0...4.0.0) --- updated-dependencies: - dependency-name: get-random-values dependency-version: 4.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 10 +++++----- package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 44321343c78..bb01868b508 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,7 +33,7 @@ "formidable": "2.1.3", "fs-extra": "11.3.1", "geoip-lite": "1.4.10", - "get-random-values": "^3.0.0", + "get-random-values": "^4.0.0", "grunt": "1.6.1", "grunt-cli": "1.5.0", "grunt-contrib-concat": "2.1.0", @@ -6195,15 +6195,15 @@ } }, "node_modules/get-random-values": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-random-values/-/get-random-values-3.0.0.tgz", - "integrity": "sha512-mNznaBdYcpz7UAdnOtDGcLdNwAa79mXl5htEyyZ51YaeAWNf2g4x/2yCVBdNNTbi35wX0Stc2PJXM7G6rcONOA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/get-random-values/-/get-random-values-4.0.0.tgz", + "integrity": "sha512-Uu9GrRrzr7nywXS4s+ZBMz4wwHXV1qLA3qEhmHT7P0VY19JXHCQ9LcNjRzHCSP9DHxmMDeNyiC3hqY/2QXHjSg==", "license": "MIT", "dependencies": { "global": "^4.4.0" }, "engines": { - "node": "18 || >=20" + "node": "20 || 22 || >=24" } }, "node_modules/get-stream": { diff --git a/package.json b/package.json index 2d882b41fca..88201280e1c 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "formidable": "2.1.3", "fs-extra": "11.3.1", "geoip-lite": "1.4.10", - "get-random-values": "^3.0.0", + "get-random-values": "^4.0.0", "grunt": "1.6.1", "grunt-cli": "1.5.0", "grunt-contrib-concat": "2.1.0", From c3ec6f416d9dd51c78e6ad4d1aae5117464b64fc Mon Sep 17 00:00:00 2001 From: Umit Coskun Aydinoglu Date: Fri, 15 Aug 2025 14:50:42 +0300 Subject: [PATCH 062/344] Update CHANGELOG.md --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0de11c2d3ce..923c9728db8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## Version 25.03.XX + +Enterprise Fixes: +- [journey-engine] Fix for skip threshold check in concurrent requests + ## Version 25.03.15 Enterprise Fixes: - [cohorts] Unescape segmentation properties options to prevent duplicated values From 30ef2304b4d2b1354f1d8c7a3d661e9eb0008f2f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Aug 2025 14:22:09 +0000 Subject: [PATCH 063/344] Bump puppeteer from 24.16.1 to 24.16.2 Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.16.1 to 24.16.2. - [Release notes](https://github.com/puppeteer/puppeteer/releases) - [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md) - [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.16.1...puppeteer-v24.16.2) --- updated-dependencies: - dependency-name: puppeteer dependency-version: 24.16.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3eeda211d1d..18292dbf0d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2943,9 +2943,9 @@ "optional": true }, "node_modules/bare-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.1.6.tgz", - "integrity": "sha512-25RsLF33BqooOEFNdMcEhMpJy8EoR88zSMrnOQOaM3USnOK2VmaJ1uaQEwPA6AQjrv1lXChScosN6CzbwbO9OQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.2.0.tgz", + "integrity": "sha512-oRfrw7gwwBVAWx9S5zPMo2iiOjxyiZE12DmblmMQREgcogbNO0AFaZ+QBxxkEXiPspcpvO/Qtqn8LabUx4uYXg==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -2986,9 +2986,9 @@ } }, "node_modules/bare-stream": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz", - "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", + "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -11106,9 +11106,9 @@ } }, "node_modules/puppeteer": { - "version": "24.16.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.16.1.tgz", - "integrity": "sha512-3jrx2BrOBb8yr3+KE7OyxVtI2fjPNZi46/SQGxFvlKZX4/56i2LbdArEhNvlQw/xxmsZfpjFRbGtkMavgh3I+g==", + "version": "24.16.2", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.16.2.tgz", + "integrity": "sha512-eNjKzwjITM4Lvho6iHb+VQamadUBgc8TsjAApsKi5N8DXipxAaAZWssBOFsrIOLo4eYWYj0Qk5gmr4wBSqzJWw==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { @@ -11116,7 +11116,7 @@ "chromium-bidi": "7.3.1", "cosmiconfig": "^9.0.0", "devtools-protocol": "0.0.1475386", - "puppeteer-core": "24.16.1", + "puppeteer-core": "24.16.2", "typed-query-selector": "^2.12.0" }, "bin": { @@ -11127,9 +11127,9 @@ } }, "node_modules/puppeteer-core": { - "version": "24.16.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.16.1.tgz", - "integrity": "sha512-0dGD2kxoH9jqj/xiz4KZLcPKpqWygs+VSEBzvuVbU3KoT2cCw4HnMT9r/7NvYl1lIa+JCa5yIyRqi+4R3UyYfQ==", + "version": "24.16.2", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.16.2.tgz", + "integrity": "sha512-areKSSQzpoHa5nCk3uD/o504yjrW5ws0N6jZfdFZ3a4H+Q7NBgvuDydjN5P87jN4Rj+eIpLcK3ELOThTtYuuxg==", "license": "Apache-2.0", "dependencies": { "@puppeteer/browsers": "2.10.6", From 75ebae24bb96214dd718c2d73a0295a12d7ff04c Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Fri, 15 Aug 2025 17:41:26 +0300 Subject: [PATCH 064/344] Update changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 923eb965312..1f8cfa3bf17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## Version 25.03.xx + +Dependencies: +- Bump get-random-values from 3.0.0 to 4.0.0 +- Bump puppeteer from 24.16.1 to 24.16.2 + ## Version 25.03.15 Enterprise Fixes: - [cohorts] Unescape segmentation properties options to prevent duplicated values From ff7566ca8cfdacc468dffb065257c28e76088977 Mon Sep 17 00:00:00 2001 From: Gabriel Oliveira Date: Mon, 18 Aug 2025 11:06:24 +0100 Subject: [PATCH 065/344] chore: update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f8cfa3bf17..e869b9ed4f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,6 @@ ## Version 25.03.xx +Fixes: +- [journeys] Prevent showing journey builder when viewing journey list page Dependencies: - Bump get-random-values from 3.0.0 to 4.0.0 From 01ec95b7ecd7b0305ca675962e0c8de5c28bf14b Mon Sep 17 00:00:00 2001 From: coskunaydinoglu Date: Tue, 19 Aug 2025 11:57:42 +0300 Subject: [PATCH 066/344] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 306cf27895d..943dad75841 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ ## Version 25.03.xx Enterprise Fixes: - [journeys] Prevent showing journey builder when viewing journey list page -- [journey-engine] Fix for skip threshold check in concurrent requests +- [journeys] Fix for skip threshold check in concurrent requests Dependencies: - Bump get-random-values from 3.0.0 to 4.0.0 From 32be8adc6782e5d5fcb964b969836b32563f7e7e Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Tue, 19 Aug 2025 13:47:34 +0300 Subject: [PATCH 067/344] Update release_notice.yml --- .github/workflows/release_notice.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release_notice.yml b/.github/workflows/release_notice.yml index 45b00ba67e8..64f69b6b707 100644 --- a/.github/workflows/release_notice.yml +++ b/.github/workflows/release_notice.yml @@ -17,6 +17,8 @@ jobs: uses: slackapi/slack-github-action@v2.1.1 with: # This data can be any valid JSON from a previous step in the GitHub Action + webhook: ${{ secrets.SLACK_RELEASE }} + webhook-type: incoming-webhook payload: | { "repository": "${{ github.repository }}", From 95316a813bca21b89d822784d23003534c69556e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Aug 2025 11:24:28 +0000 Subject: [PATCH 068/344] Bump the actions group with 2 updates Bumps the actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [sarisia/actions-status-discord](https://github.com/sarisia/actions-status-discord). Updates `actions/checkout` from 4 to 5 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) Updates `sarisia/actions-status-discord` from 1.15.3 to 1.15.4 - [Release notes](https://github.com/sarisia/actions-status-discord/releases) - [Commits](https://github.com/sarisia/actions-status-discord/compare/v1.15.3...v1.15.4) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: sarisia/actions-status-discord dependency-version: 1.15.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/deploy.yml | 4 ++-- .github/workflows/docker-image.yml | 8 ++++---- .github/workflows/main.yml | 10 +++++----- .github/workflows/release_notice.yml | 2 +- .github/workflows/stable-je-deploy.yml | 2 +- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index e650cdacc1d..9fb507a8dc1 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -37,7 +37,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index beefbbe616c..778a6e87de5 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -19,7 +19,7 @@ jobs: steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Enable command line shell: bash @@ -45,7 +45,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out the repo - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Log in to Docker Hub uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 2c175c52d53..db5cbf89ec1 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out the repo - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set output id: vars @@ -43,7 +43,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out the repo - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set output id: vars @@ -74,7 +74,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out the repo - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set output id: vars @@ -105,7 +105,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out the repo - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set output id: vars diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 47d0e067092..f7fa5223a5d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -26,7 +26,7 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Copy code shell: bash @@ -96,7 +96,7 @@ jobs: COUNTLY_CONFIG_API_PREVENT_JOBS: true steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Copy code shell: bash @@ -153,7 +153,7 @@ jobs: COUNTLY_CONFIG_API_PREVENT_JOBS: true steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Prepare tests shell: bash @@ -205,7 +205,7 @@ jobs: COUNTLY_CONFIG_API_PREVENT_JOBS: true steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Copy code shell: bash @@ -268,7 +268,7 @@ jobs: COUNTLY_CONFIG_API_PREVENT_JOBS: true steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Chrome shell: bash diff --git a/.github/workflows/release_notice.yml b/.github/workflows/release_notice.yml index 64f69b6b707..75009d182db 100644 --- a/.github/workflows/release_notice.yml +++ b/.github/workflows/release_notice.yml @@ -30,7 +30,7 @@ jobs: env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_RELEASE }} - name: Send custom JSON data to Discord - uses: sarisia/actions-status-discord@v1.15.3 + uses: sarisia/actions-status-discord@v1.15.4 with: webhook: ${{ secrets.DISCORD_WEBHOOK_URL }} nodetail: true diff --git a/.github/workflows/stable-je-deploy.yml b/.github/workflows/stable-je-deploy.yml index e7fbe5ab92e..c98242826a2 100644 --- a/.github/workflows/stable-je-deploy.yml +++ b/.github/workflows/stable-je-deploy.yml @@ -19,7 +19,7 @@ jobs: steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Deploy server shell: bash From d754ff09b3d3aeb680d292ddc96106df7ad4ca41 Mon Sep 17 00:00:00 2001 From: Gabriel Oliveira Pinto Date: Tue, 19 Aug 2025 13:14:26 +0100 Subject: [PATCH 069/344] Update CHANGELOG.md --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 943dad75841..872650d12ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ -## Version 25.03.xx +## Version 25.03.16 Enterprise Fixes: -- [journeys] Prevent showing journey builder when viewing journey list page - [journeys] Fix for skip threshold check in concurrent requests +- [journeys] Prevent showing journey builder when viewing journey list page Dependencies: - Bump get-random-values from 3.0.0 to 4.0.0 From a7600029c05140ab1b266cf714f256716262b5ac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 01:49:14 +0000 Subject: [PATCH 070/344] Bump cypress from 13.6.4 to 15.0.0 in /ui-tests Bumps [cypress](https://github.com/cypress-io/cypress) from 13.6.4 to 15.0.0. - [Release notes](https://github.com/cypress-io/cypress/releases) - [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md) - [Commits](https://github.com/cypress-io/cypress/compare/v13.6.4...v15.0.0) --- updated-dependencies: - dependency-name: cypress dependency-version: 15.0.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- ui-tests/package-lock.json | 317 +++++++++++++++++++------------------ ui-tests/package.json | 2 +- 2 files changed, 166 insertions(+), 153 deletions(-) diff --git a/ui-tests/package-lock.json b/ui-tests/package-lock.json index 9fb8a8b1fd9..01793ed5920 100644 --- a/ui-tests/package-lock.json +++ b/ui-tests/package-lock.json @@ -16,22 +16,13 @@ "moment": "^2.29.4" }, "devDependencies": { - "cypress": "^13.6.4" - } - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "optional": true, - "engines": { - "node": ">=0.1.90" + "cypress": "^15.0.0" } }, "node_modules/@cypress/request": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.6.tgz", - "integrity": "sha512-fi0eVdCOtKu5Ed6+E8mYxUF6ZTFJDZvHogCBelM0xVXmrDEkyM22gRArQzq1YcHPm1V47Vf/iAD+WgVdUlJCGg==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.9.tgz", + "integrity": "sha512-I3l7FdGRXluAS44/0NguwWlO83J18p0vlr2FYHrJkWdNYhgVoiYo61IXPqaOsL+vNxU1ZqMACzItGK3/KKDsdw==", "license": "Apache-2.0", "dependencies": { "aws-sign2": "~0.7.0", @@ -40,14 +31,14 @@ "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~4.0.0", + "form-data": "~4.0.4", "http-signature": "~1.4.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", - "qs": "6.13.0", + "qs": "6.14.0", "safe-buffer": "^5.1.2", "tough-cookie": "^5.0.0", "tunnel-agent": "^0.6.0", @@ -342,36 +333,33 @@ "node": ">=6" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "function-bind": "^1.1.2" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/caseless": { @@ -439,9 +427,9 @@ } }, "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.0.tgz", + "integrity": "sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==", "funding": [ { "type": "github", @@ -473,9 +461,10 @@ } }, "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz", + "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==", + "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -483,7 +472,7 @@ "node": "10.* || >= 12.*" }, "optionalDependencies": { - "@colors/colors": "1.5.0" + "colors": "1.4.0" } }, "node_modules/cli-truncate": { @@ -522,6 +511,16 @@ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -571,25 +570,26 @@ } }, "node_modules/cypress": { - "version": "13.6.4", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.4.tgz", - "integrity": "sha512-pYJjCfDYB+hoOoZuhysbbYhEmNW7DEDsqn+ToCLwuVowxUXppIWRr7qk4TVRIU471ksfzyZcH+mkoF0CQUKnpw==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-15.0.0.tgz", + "integrity": "sha512-OH5Srk10qTzHYYt3BsP9V1DPYIAzms55s3xQn4mGmYO4k6pi25MCajDyPbiULfNDhNcthNQ2xmYvu1JdeEw1Hw==", "hasInstallScript": true, "license": "MIT", "dependencies": { - "@cypress/request": "^3.0.0", + "@cypress/request": "^3.0.9", "@cypress/xvfb": "^1.2.4", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", "blob-util": "^2.0.2", "bluebird": "^3.7.2", - "buffer": "^5.6.0", + "buffer": "^5.7.1", "cachedir": "^2.3.0", "chalk": "^4.1.0", "check-more-types": "^2.24.0", + "ci-info": "^4.1.0", "cli-cursor": "^3.1.0", - "cli-table3": "~0.6.1", + "cli-table3": "0.6.1", "commander": "^6.2.1", "common-tags": "^1.8.0", "dayjs": "^1.10.4", @@ -602,7 +602,7 @@ "figures": "^3.2.0", "fs-extra": "^9.1.0", "getos": "^3.2.1", - "is-ci": "^3.0.0", + "hasha": "5.2.2", "is-installed-globally": "~0.4.0", "lazy-ass": "^1.6.0", "listr2": "^3.8.3", @@ -614,9 +614,10 @@ "process": "^0.11.10", "proxy-from-env": "1.0.0", "request-progress": "^3.0.0", - "semver": "^7.5.3", + "semver": "^7.7.1", "supports-color": "^8.1.1", - "tmp": "~0.2.1", + "tmp": "~0.2.4", + "tree-kill": "1.2.2", "untildify": "^4.0.0", "yauzl": "^2.10.0" }, @@ -624,7 +625,7 @@ "cypress": "bin/cypress" }, "engines": { - "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/cypress-file-upload": { @@ -679,23 +680,6 @@ "node": ">=6" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -1063,18 +1047,6 @@ "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", @@ -1102,6 +1074,31 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -1171,18 +1168,6 @@ "node": ">=10" } }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "license": "MIT", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -1410,17 +1395,6 @@ "get-func-name": "^2.0.1" } }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -1498,9 +1472,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -1619,12 +1593,12 @@ } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -1693,12 +1667,10 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -1706,23 +1678,6 @@ "node": ">=10" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -1743,15 +1698,69 @@ } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -1860,21 +1869,21 @@ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "node_modules/tldts": { - "version": "6.1.60", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.60.tgz", - "integrity": "sha512-TYVHm7G9NCnhgqOsFalbX6MG1Po5F4efF+tLfoeiOGQq48Oqgwcgz8upY2R1BHWa4aDrj28RYx0dkYJ63qCFMg==", + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", + "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==", "license": "MIT", "dependencies": { - "tldts-core": "^6.1.60" + "tldts-core": "^6.1.86" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "6.1.60", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.60.tgz", - "integrity": "sha512-XHjoxak8SFQnHnmYHb3PcnW5TZ+9ErLZemZei3azuIRhQLw4IExsVbL3VZJdHcLeNaXq6NqawgpDPpjBOg4B5g==", + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", + "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", "license": "MIT" }, "node_modules/tmp": { @@ -1887,9 +1896,9 @@ } }, "node_modules/tough-cookie": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.0.0.tgz", - "integrity": "sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", + "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", "license": "BSD-3-Clause", "dependencies": { "tldts": "^6.1.32" @@ -1898,6 +1907,15 @@ "node": ">=16" } }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, "node_modules/tslib": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", @@ -2012,11 +2030,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", diff --git a/ui-tests/package.json b/ui-tests/package.json index 5084cea17d6..696ccdf6ad6 100644 --- a/ui-tests/package.json +++ b/ui-tests/package.json @@ -16,6 +16,6 @@ "moment": "^2.29.4" }, "devDependencies": { - "cypress": "^13.6.4" + "cypress": "^15.0.0" } } From e518dbcebdfe206cacdcf830d6d8ea601b0f98f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 01:53:45 +0000 Subject: [PATCH 071/344] Bump puppeteer from 24.16.2 to 24.17.0 Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 24.16.2 to 24.17.0. - [Release notes](https://github.com/puppeteer/puppeteer/releases) - [Changelog](https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md) - [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.16.2...puppeteer-v24.17.0) --- updated-dependencies: - dependency-name: puppeteer dependency-version: 24.17.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index d694fcbf785..30aeaf73f7b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2142,9 +2142,9 @@ } }, "node_modules/@puppeteer/browsers": { - "version": "2.10.6", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.6.tgz", - "integrity": "sha512-pHUn6ZRt39bP3698HFQlu2ZHCkS/lPcpv7fVQcGBSzNNygw171UXAKrCUhy+TEMw4lEttOKDgNpb04hwUAJeiQ==", + "version": "2.10.7", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.7.tgz", + "integrity": "sha512-wHWLkQWBjHtajZeqCB74nsa/X70KheyOhySYBRmVQDJiNj0zjZR/naPCvdWjMhcG1LmjaMV/9WtTo5mpe8qWLw==", "license": "Apache-2.0", "dependencies": { "debug": "^4.4.1", @@ -3629,9 +3629,9 @@ } }, "node_modules/chromium-bidi": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-7.3.1.tgz", - "integrity": "sha512-i+BMGluhZZc4Jic9L1aHJBTfaopxmCqQxGklyMcqFx4fvF3nI4BJ3bCe1ad474nvYRIo/ZN/VrdA4eOaRZua4Q==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-8.0.0.tgz", + "integrity": "sha512-d1VmE0FD7lxZQHzcDUCKZSNRtRwISXDsdg4HjdTR5+Ll5nQ/vzU12JeNmupD6VWffrPSlrnGhEWlLESKH3VO+g==", "license": "Apache-2.0", "dependencies": { "mitt": "^3.0.1", @@ -11106,17 +11106,17 @@ } }, "node_modules/puppeteer": { - "version": "24.16.2", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.16.2.tgz", - "integrity": "sha512-eNjKzwjITM4Lvho6iHb+VQamadUBgc8TsjAApsKi5N8DXipxAaAZWssBOFsrIOLo4eYWYj0Qk5gmr4wBSqzJWw==", + "version": "24.17.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.17.0.tgz", + "integrity": "sha512-CGrmJ8WgilK3nyE73k+pbxHggETPpEvL6AQ9H5JSK1RgZRGMQVJ+iO3MocGm9yBQXQJ9U5xijyLvkYXFeb0/+g==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.10.6", - "chromium-bidi": "7.3.1", + "@puppeteer/browsers": "2.10.7", + "chromium-bidi": "8.0.0", "cosmiconfig": "^9.0.0", "devtools-protocol": "0.0.1475386", - "puppeteer-core": "24.16.2", + "puppeteer-core": "24.17.0", "typed-query-selector": "^2.12.0" }, "bin": { @@ -11127,13 +11127,13 @@ } }, "node_modules/puppeteer-core": { - "version": "24.16.2", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.16.2.tgz", - "integrity": "sha512-areKSSQzpoHa5nCk3uD/o504yjrW5ws0N6jZfdFZ3a4H+Q7NBgvuDydjN5P87jN4Rj+eIpLcK3ELOThTtYuuxg==", + "version": "24.17.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.17.0.tgz", + "integrity": "sha512-RYOBKFiF+3RdwIZTEacqNpD567gaFcBAOKTT7742FdB1icXudrPI7BlZbYTYWK2wgGQUXt9Zi1Yn+D5PmCs4CA==", "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.10.6", - "chromium-bidi": "7.3.1", + "@puppeteer/browsers": "2.10.7", + "chromium-bidi": "8.0.0", "debug": "^4.4.1", "devtools-protocol": "0.0.1475386", "typed-query-selector": "^2.12.0", From 090312d3c2589821999003eb15ee1665f3faeb11 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 09:13:11 +0000 Subject: [PATCH 072/344] Bump chai from 5.2.1 to 5.3.1 in /ui-tests Bumps [chai](https://github.com/chaijs/chai) from 5.2.1 to 5.3.1. - [Release notes](https://github.com/chaijs/chai/releases) - [Changelog](https://github.com/chaijs/chai/blob/main/History.md) - [Commits](https://github.com/chaijs/chai/compare/v5.2.1...v5.3.1) --- updated-dependencies: - dependency-name: chai dependency-version: 5.3.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- ui-tests/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ui-tests/package-lock.json b/ui-tests/package-lock.json index 01793ed5920..e8e06c2b0b9 100644 --- a/ui-tests/package-lock.json +++ b/ui-tests/package-lock.json @@ -369,9 +369,9 @@ "license": "Apache-2.0" }, "node_modules/chai": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.1.tgz", - "integrity": "sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.1.tgz", + "integrity": "sha512-48af6xm9gQK8rhIcOxWwdGzIervm8BVTin+yRp9HEvU20BtVZ2lBywlIJBzwaDtvo0FvjeL7QdCADoUoqIbV3A==", "license": "MIT", "dependencies": { "assertion-error": "^2.0.1", From 5324462c7c222c4a5f5fe7f04b3f78b6742a4deb Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Thu, 21 Aug 2025 17:32:23 +0700 Subject: [PATCH 073/344] Update changelog --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 872650d12ae..9accea6a40e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## Version 25.03.X +Enterprise Fixes: +- [license] Update metric endpoint permission + + ## Version 25.03.16 Enterprise Fixes: - [journeys] Fix for skip threshold check in concurrent requests From e96fa8221266a26b9b7adfa8adc32b62a6885156 Mon Sep 17 00:00:00 2001 From: Umit Coskun Aydinoglu Date: Thu, 21 Aug 2025 13:33:03 +0300 Subject: [PATCH 074/344] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 872650d12ae..448ed060f6b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## Version 25.03.XX +Enterprise Fixes: +- [ldap] Recursive user search in ldap added + ## Version 25.03.16 Enterprise Fixes: - [journeys] Fix for skip threshold check in concurrent requests From 763cacee3247df3e725747df9b02f579a248dd26 Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Fri, 22 Aug 2025 15:32:13 +0300 Subject: [PATCH 075/344] Update changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index feb5b784983..0cc6b92b243 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@ Enterprise Fixes: - [ldap] Recursive user search in ldap added - [license] Update metric endpoint permission +Dependencies: +- Bump puppeteer from 24.16.2 to 24.17.0 + ## Version 25.03.16 Enterprise Fixes: From 8164d51028c4111248c44a2a13bc17a6addce181 Mon Sep 17 00:00:00 2001 From: Arturs Sosins Date: Fri, 22 Aug 2025 18:43:43 +0300 Subject: [PATCH 076/344] Update server-stats scripts --- plugins/server-stats/scripts/top.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/plugins/server-stats/scripts/top.js b/plugins/server-stats/scripts/top.js index 6378b5d4da5..f80f6e0206a 100644 --- a/plugins/server-stats/scripts/top.js +++ b/plugins/server-stats/scripts/top.js @@ -8,7 +8,7 @@ if (myArgs[0] === "help") { } pluginManager.dbConnection().then((db) => { stats.getTop(db, {}, function(toReturn) { - var apps = Object.keys(toReturn); + var apps = toReturn.map(o => o.a); db.collection("apps").find({_id: {$in: apps.map(id => db.ObjectID(id))}}, {projection: {name: 1}}).toArray(function(err, appResult) { if (appResult) { for (let i = 0; i < appResult.length; i++) { @@ -16,17 +16,15 @@ pluginManager.dbConnection().then((db) => { } } db.close(); - var res = []; - for (let app in toReturn) { - if (toReturn[app]) { - toReturn[app].app = stats.getAppName(app, appNames); - res.push(toReturn[app]); + for (let i = 0; i < toReturn.length; i++) { + if (toReturn[i].a) { + toReturn[i].a = stats.getAppName(toReturn[i].a, appNames); } } - res.sort(function(a, b) { - return b["data-points"] - a["data-points"]; + toReturn.sort(function(a, b) { + return b["v"] - a["v"]; }); - console.table(res, ["app", "data-points"]); + console.table(toReturn, ["a", "v"]); }); }); -}); \ No newline at end of file +}); From eabff59f78a18b23963caba5037408002530f5d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Aug 2025 03:00:22 +0000 Subject: [PATCH 077/344] Bump @faker-js/faker from 9.9.0 to 10.0.0 in /ui-tests Bumps [@faker-js/faker](https://github.com/faker-js/faker) from 9.9.0 to 10.0.0. - [Release notes](https://github.com/faker-js/faker/releases) - [Changelog](https://github.com/faker-js/faker/blob/next/CHANGELOG.md) - [Commits](https://github.com/faker-js/faker/compare/v9.9.0...v10.0.0) --- updated-dependencies: - dependency-name: "@faker-js/faker" dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- ui-tests/package-lock.json | 13 +++++++------ ui-tests/package.json | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/ui-tests/package-lock.json b/ui-tests/package-lock.json index e8e06c2b0b9..8fd15ee9218 100644 --- a/ui-tests/package-lock.json +++ b/ui-tests/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@faker-js/faker": "^9.7.0", + "@faker-js/faker": "^10.0.0", "base-64": "^1.0.0", "chai": "^5.1.1", "cypress-file-upload": "^5.0.8", @@ -66,18 +66,19 @@ } }, "node_modules/@faker-js/faker": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-9.9.0.tgz", - "integrity": "sha512-OEl393iCOoo/z8bMezRlJu+GlRGlsKbUAN7jKB6LhnKoqKve5DXRpalbItIIcwnCjs1k/FOPjFzcA6Qn+H+YbA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-10.0.0.tgz", + "integrity": "sha512-UollFEUkVXutsaP+Vndjxar40Gs5JL2HeLcl8xO1QAjJgOdhc3OmBFWyEylS+RddWaaBiAzH+5/17PLQJwDiLw==", "funding": [ { "type": "opencollective", "url": "https://opencollective.com/fakerjs" } ], + "license": "MIT", "engines": { - "node": ">=18.0.0", - "npm": ">=9.0.0" + "node": "^20.19.0 || ^22.13.0 || ^23.5.0 || >=24.0.0", + "npm": ">=10" } }, "node_modules/@types/node": { diff --git a/ui-tests/package.json b/ui-tests/package.json index 696ccdf6ad6..264b2b0e891 100644 --- a/ui-tests/package.json +++ b/ui-tests/package.json @@ -9,7 +9,7 @@ }, "license": "ISC", "dependencies": { - "@faker-js/faker": "^9.7.0", + "@faker-js/faker": "^10.0.0", "base-64": "^1.0.0", "chai": "^5.1.1", "cypress-file-upload": "^5.0.8", From 9d6c948c575b63e424e7b79b70fa3a956e264941 Mon Sep 17 00:00:00 2001 From: Gabriel Oliveira Pinto Date: Tue, 26 Aug 2025 12:10:55 +0100 Subject: [PATCH 078/344] Update CHANGELOG for version 25.03.17 --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0cc6b92b243..b5626eb25fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ -## Version 25.03.X +## Version 25.03.17 Enterprise Fixes: - [ldap] Recursive user search in ldap added - [license] Update metric endpoint permission - + Dependencies: - Bump puppeteer from 24.16.2 to 24.17.0 From 59e67cf7efbdf16bddf0dbe6e7c88eab23c893c0 Mon Sep 17 00:00:00 2001 From: can-angun Date: Wed, 27 Aug 2025 09:08:56 +0000 Subject: [PATCH 079/344] Added data test ids to dashboard page --- .../public/templates/dashboards-drawer.html | 40 +++++++++++-------- .../public/templates/dashboards-menu.html | 12 ++++-- .../frontend/public/templates/index.html | 20 +++++----- .../public/templates/transient/no-widget.html | 10 ++--- 4 files changed, 48 insertions(+), 34 deletions(-) diff --git a/plugins/dashboards/frontend/public/templates/dashboards-drawer.html b/plugins/dashboards/frontend/public/templates/dashboards-drawer.html index 7ce091962fd..fb8f86cc810 100644 --- a/plugins/dashboards/frontend/public/templates/dashboards-drawer.html +++ b/plugins/dashboards/frontend/public/templates/dashboards-drawer.html @@ -3,25 +3,28 @@ @copy="onCopy" @close="onClose" :title="title" + test-id="create-dashboard-drawer" :saveButtonLabel="saveButtonLabel" v-bind="controls"> - + \ No newline at end of file diff --git a/plugins/dashboards/frontend/public/templates/dashboards-menu.html b/plugins/dashboards/frontend/public/templates/dashboards-menu.html index 01c0b4b4053..03a299f762c 100644 --- a/plugins/dashboards/frontend/public/templates/dashboards-menu.html +++ b/plugins/dashboards/frontend/public/templates/dashboards-menu.html @@ -1,8 +1,8 @@
- Dashboards + Dashboards - + New @@ -10,6 +10,7 @@
@@ -20,7 +21,12 @@ \ No newline at end of file From 58ec0a7612b7e9be62b4b964463bf6cdc31c41e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Aug 2025 12:30:52 +0000 Subject: [PATCH 080/344] Bump mongodb from 6.18.0 to 6.19.0 Bumps [mongodb](https://github.com/mongodb/node-mongodb-native) from 6.18.0 to 6.19.0. - [Release notes](https://github.com/mongodb/node-mongodb-native/releases) - [Changelog](https://github.com/mongodb/node-mongodb-native/blob/main/HISTORY.md) - [Commits](https://github.com/mongodb/node-mongodb-native/compare/v6.18.0...v6.19.0) --- updated-dependencies: - dependency-name: mongodb dependency-version: 6.19.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 10 +++++----- package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 30aeaf73f7b..b6a96f01124 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ "method-override": "3.0.0", "moment": "2.30.1", "moment-timezone": "0.6.0", - "mongodb": "6.18.0", + "mongodb": "6.19.0", "nginx-conf": "2.1.0", "nodemailer": "7.0.5", "object-hash": "3.0.0", @@ -9531,9 +9531,9 @@ } }, "node_modules/mongodb": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.18.0.tgz", - "integrity": "sha512-fO5ttN9VC8P0F5fqtQmclAkgXZxbIkYRTUi1j8JO6IYwvamkhtYDilJr35jOPELR49zqCJgXZWwCtW7B+TM8vQ==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.19.0.tgz", + "integrity": "sha512-H3GtYujOJdeKIMLKBT9PwlDhGrQfplABNF1G904w6r5ZXKWyv77aB0X9B+rhmaAwjtllHzaEkvi9mkGVZxs2Bw==", "license": "Apache-2.0", "dependencies": { "@mongodb-js/saslprep": "^1.1.9", @@ -9549,7 +9549,7 @@ "gcp-metadata": "^5.2.0", "kerberos": "^2.0.1", "mongodb-client-encryption": ">=6.0.0 <7", - "snappy": "^7.2.2", + "snappy": "^7.3.2", "socks": "^2.7.1" }, "peerDependenciesMeta": { diff --git a/package.json b/package.json index 88201280e1c..c71e0c23665 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "method-override": "3.0.0", "moment": "2.30.1", "moment-timezone": "0.6.0", - "mongodb": "6.18.0", + "mongodb": "6.19.0", "nginx-conf": "2.1.0", "nodemailer": "7.0.5", "object-hash": "3.0.0", From 092b53d557e573a2c97d97c6e1b2daa44ea49673 Mon Sep 17 00:00:00 2001 From: Gabriel Oliveira Date: Wed, 27 Aug 2025 16:36:27 +0100 Subject: [PATCH 081/344] chore: update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5626eb25fa..9bb43367dda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## Version 25.03.XX +Enterprise Fixes: +- [journeys] Update skip threshold when journeys are paused + ## Version 25.03.17 Enterprise Fixes: - [ldap] Recursive user search in ldap added From ffa1d7679283238ba5f997c291e5251d8814c062 Mon Sep 17 00:00:00 2001 From: Umit Coskun Aydinoglu Date: Thu, 28 Aug 2025 01:54:44 +0300 Subject: [PATCH 082/344] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5626eb25fa..b86a916c15b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## Version 25.03.XX +Enterprise Fixes: +- [journeys] fix for clearing content queue when journey is paused + ## Version 25.03.17 Enterprise Fixes: - [ldap] Recursive user search in ldap added From 6221877c034d3c5974a924455441b14395dd96be Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Thu, 28 Aug 2025 09:58:14 +0700 Subject: [PATCH 083/344] [server-stats] Fix breakdown event calculation --- plugins/server-stats/api/parts/stats.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/server-stats/api/parts/stats.js b/plugins/server-stats/api/parts/stats.js index 9a05314fd59..ebe429313a3 100644 --- a/plugins/server-stats/api/parts/stats.js +++ b/plugins/server-stats/api/parts/stats.js @@ -128,8 +128,8 @@ function increaseDataPoints(object, data) { object.ratings += (data.str || 0); object.apm += (data.apm || 0); object.custom += (data.ce || 0); - object.cs = (data.cs || 0); - object.ps = (data.ps || 0); + object.cs += (data.cs || 0); + object.ps += (data.ps || 0); if (data.dp) { object.dp += data.dp; } @@ -241,7 +241,7 @@ function fetchDatapoints(db, filter, options, callback) { options.dateObjPrev = options.dateObjPrev || {}; db.collection("server_stats_data_points").find(filter, {}).toArray(function(err, result) { var toReturn = { - "all-apps": {"events": 0, "sessions": 0, "push": 0, "dp": 0, "change": 0, "crash": 0, "views": 0, "actions": 0, "nps": 0, "surveys": 0, "ratings": 0, "apm": 0, "custom": 0}, + "all-apps": {"events": 0, "sessions": 0, "push": 0, "dp": 0, "change": 0, "crash": 0, "views": 0, "actions": 0, "nps": 0, "surveys": 0, "ratings": 0, "apm": 0, "custom": 0, cs: 0, ps: 0}, }; if (err || !result) { @@ -280,7 +280,7 @@ function fetchDatapoints(db, filter, options, callback) { for (let i = 0; i < result.length; i++) { if (!toReturn[result[i].a]) { - toReturn[result[i].a] = {"events": 0, "sessions": 0, "push": 0, "dp": 0, "change": 0, "crash": 0, "views": 0, "actions": 0, "nps": 0, "surveys": 0, "ratings": 0, "apm": 0, "custom": 0}; + toReturn[result[i].a] = {"events": 0, "sessions": 0, "push": 0, "dp": 0, "change": 0, "crash": 0, "views": 0, "actions": 0, "nps": 0, "surveys": 0, "ratings": 0, "apm": 0, "custom": 0, cs: 0, ps: 0}; } const dates = result[i].d; if (options.dateObj[result[i].m]) { From c5ef1fc0e10bca52b1f0f7eb257e4f97f40dddf8 Mon Sep 17 00:00:00 2001 From: Danu Widatama Date: Thu, 28 Aug 2025 15:42:33 +0700 Subject: [PATCH 084/344] Update changelog --- CHANGELOG.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5626eb25fa..b1d64e6fd40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,13 @@ +## Version 25.03.X +Fixes: +- [server-stats] Fix breakdown event calculation + + ## Version 25.03.17 Enterprise Fixes: - [ldap] Recursive user search in ldap added - [license] Update metric endpoint permission - + Dependencies: - Bump puppeteer from 24.16.2 to 24.17.0 From 79e6cfbe4076e6e80b4423191a7dad2c7e5a03db Mon Sep 17 00:00:00 2001 From: can-angun Date: Thu, 28 Aug 2025 21:22:49 +0000 Subject: [PATCH 085/344] Added data test ids to report and widget drawers --- .../templates/helpers/drawer/metric.html | 4 ++- .../templates/helpers/drawer/source-apps.html | 4 ++- .../helpers/drawer/visualization.html | 2 ++ .../frontend/public/templates/index.html | 10 +++---- .../public/templates/widget-drawer.html | 3 ++ .../frontend/public/templates/vue-main.html | 30 ++++++++++++------- 6 files changed, 36 insertions(+), 17 deletions(-) diff --git a/plugins/dashboards/frontend/public/templates/helpers/drawer/metric.html b/plugins/dashboards/frontend/public/templates/helpers/drawer/metric.html index 5d8b243049d..94b0a1b8c61 100644 --- a/plugins/dashboards/frontend/public/templates/helpers/drawer/metric.html +++ b/plugins/dashboards/frontend/public/templates/helpers/drawer/metric.html @@ -1,9 +1,11 @@ - + \ No newline at end of file diff --git a/plugins/dashboards/frontend/public/templates/helpers/drawer/source-apps.html b/plugins/dashboards/frontend/public/templates/helpers/drawer/source-apps.html index 42a263ad0f2..c71d143bdd6 100644 --- a/plugins/dashboards/frontend/public/templates/helpers/drawer/source-apps.html +++ b/plugins/dashboards/frontend/public/templates/helpers/drawer/source-apps.html @@ -1,9 +1,11 @@ - + \ No newline at end of file diff --git a/plugins/dashboards/frontend/public/templates/helpers/drawer/visualization.html b/plugins/dashboards/frontend/public/templates/helpers/drawer/visualization.html index f96c05ef430..6c328f46184 100644 --- a/plugins/dashboards/frontend/public/templates/helpers/drawer/visualization.html +++ b/plugins/dashboards/frontend/public/templates/helpers/drawer/visualization.html @@ -1,5 +1,6 @@ @@ -14,6 +15,7 @@ :class="['clyd-visualization__item bu-is-clickable', 'bu-is-flex bu-is-flex-direction-column bu-is-justify-content-center bu-is-align-items-center', {'selected': item.value === selectedType}]" + :data-test-id="`visualization-item-${item.value}`" @click="onClick(item)">
{{item.label}}
diff --git a/plugins/dashboards/frontend/public/templates/index.html b/plugins/dashboards/frontend/public/templates/index.html index d75a57708fb..cda5046063f 100644 --- a/plugins/dashboards/frontend/public/templates/index.html +++ b/plugins/dashboards/frontend/public/templates/index.html @@ -55,7 +55,7 @@

{{dashboard.name}}

@@ -64,15 +64,15 @@

{{dashboard.name}}

-
+
- + {{i18nM('dashbaords.created')}} - + {{dashboard.creation.time}} - + {{i18n('dashbaords.created-by', dashboard.creation.by)}}
diff --git a/plugins/dashboards/frontend/public/templates/widget-drawer.html b/plugins/dashboards/frontend/public/templates/widget-drawer.html index cae0d5b9b60..d944c62aef1 100644 --- a/plugins/dashboards/frontend/public/templates/widget-drawer.html +++ b/plugins/dashboards/frontend/public/templates/widget-drawer.html @@ -3,12 +3,14 @@ @copy="onCopy" @close="onClose" :title="title" + test-id="widget-drawer" :saveButtonLabel="saveButtonLabel" v-bind="controls">