manager-app/lib/l10n/app_fr.arb
Thomas Fransolet bb4d4fe2d5 Écran Statistiques refondu + Guide IA + onboarding (auth, abonnement) + i18n FR/EN/NL
Statistiques — refonte complète, aucun changement backend
  statistics_screen.dart réécrit (+1832) : barres horizontales monochromes à la place
  des barres verticales tronquées et des deux anneaux, barre de filtres unique avec les
  volumes par canal, règle mono-canal, 4 KPI portant chacun leur variation, bandeau
  « à retenir », courbe en aire avec bandes de week-end. La période précédente s'obtient
  en rappelant le même endpoint.
  statistics_report.dart : export PDF généré côté client (paquet pdf Dart), il partage
  les valeurs calculées de l'écran — un chiffre ne peut pas diverger entre l'écran et le
  document envoyé à la commune. Deux puces du sommaire promettaient des données
  inexistantes (parcours terminés, questions au guide IA), retirées.
  ⚠️ Jamais ouvert dans un navigateur. Cases de test : test-plan.md §8bis / §8ter.

Guide IA
  Screens/GuideIa/guide_ia_screen.dart — onglet Configuration. Menu conditionné à
  isAssistant, le même drapeau que la garde d'AiController. L'onglet « Ce que demandent
  vos visiteurs » n'est pas dans ce commit : le schéma backend est prêt, l'UI non.

Onboarding self-service
  Screens/Auth/ (mot de passe oublié, définition du mot de passe),
  Screens/Billing/subscription_screen.dart, ai_quota_hint.dart.
  ⚠️ Aucun parcours joué de bout en bout — test-plan.md §18.

Parcours guidés
  progression_mode.dart : 9 booléens sur 3 niveaux remplacés par 3 questions.
  Popups GuidedPath / GuidedStep / QuizQuestion mises à jour en conséquence.

Client API (manager_api_new) — édité À LA MAIN, ne pas relancer la génération
  onboarding_api.dart, authentication_api.dart (+80), instance_dto (champs Guide*),
  guided_step / quiz_question_guided_step (flags morts retirés).
  Le // @dart=2.18 manquant dans onboarding_api.dart cassait les 3 apps Flutter d'un
  coup — corrigé ici.

i18n : ~180 clés par langue (FR/EN/NL) + fichiers générés.
Tests : progression_mode_test, statistics_report_test (le second a attrapé deux
plantages qui seraient sortis au premier clic).

flutter build web . flutter analyze : 68 erreurs, toutes dans les fichiers modèle
orphelins de manager_api_new — dette connue, pas une régression, ces fichiers ne sont
pas dans le graphe de compilation.
2026-08-09 22:14:37 +02:00

653 lines
29 KiB
Plaintext

{
"@@locale": "fr",
"cancel": "Annuler",
"save": "Enregistrer",
"create": "Créer",
"delete": "Supprimer",
"close": "Fermer",
"edit": "Modifier",
"actions": "Actions",
"status": "Statut",
"no": "Non",
"name": "Nom",
"type": "Type",
"date": "Date",
"loginSuccess": "Connexion réussie",
"loginError": "Un problème est survenu lors de la connexion",
"rememberMe": "Se souvenir de moi",
"connect": "SE CONNECTER",
"forgotPasswordLink": "Mot de passe oublié ?",
"forgotPasswordTitle": "Mot de passe oublié",
"forgotPasswordDesc": "Indiquez votre e-mail, nous vous envoyons un lien pour définir un nouveau mot de passe.",
"forgotPasswordSubmit": "ENVOYER LE LIEN",
"forgotPasswordSuccess": "Si cet e-mail existe, un lien de réinitialisation vient d'être envoyé.",
"backToLogin": "Retour à la connexion",
"setPasswordTitle": "Définir votre mot de passe",
"setPasswordDesc": "Choisissez un mot de passe pour accéder à votre espace.",
"setPasswordNewLabel": "Nouveau mot de passe",
"setPasswordSubmit": "DÉFINIR LE MOT DE PASSE",
"setPasswordSuccess": "Mot de passe défini — vous pouvez vous connecter.",
"setPasswordError": "Ce lien est invalide ou a expiré",
"setPasswordTooShort": "Le mot de passe doit contenir au moins 8 caractères",
"setPasswordMissingToken": "Lien invalide — aucun jeton fourni",
"inviteUserHint": "Un e-mail d'invitation sera envoyé pour définir le mot de passe.",
"menuSubscription": "Abonnement",
"subscriptionTitle": "Abonnement",
"subscriptionTrialActive": "Essai gratuit en cours",
"subscriptionTrialEndsAt": "Votre essai se termine le {date}",
"@subscriptionTrialEndsAt": { "placeholders": { "date": {} } },
"subscriptionTrialNoDate": "Votre essai gratuit est actif.",
"subscriptionPlanActive": "Plan Essentiel actif",
"subscriptionPlanActiveDesc": "Votre abonnement est actif et se renouvelle automatiquement.",
"subscriptionIncludedTitle": "Ce qui est inclus",
"subscriptionUpgradeBtn": "Passer à un abonnement payant",
"subscriptionCheckoutError": "Impossible de démarrer le paiement, réessayez plus tard.",
"subscriptionAddonsTitle": "Add-ons",
"subscriptionAddonsComingSoon": "Bientôt disponible : requêtes IA supplémentaires et autres options.",
"menuApplications": "Applications",
"menuConfigurations": "Configurations",
"menuResources": "Ressources",
"menuStatistics": "Statistiques",
"menuGuideIa": "Guide IA",
"guideIaSubtitle": "Votre guide répond aux questions des visiteurs à partir de vos propres contenus. Il ne répond jamais à partir d'autre chose.",
"guideIaUsageTitle": "Consommation du mois",
"guideIaUsageQuestions": "{count} questions posées",
"guideIaUsageNoQuota": "Aucun plafond défini sur votre offre.",
"guideIaChannelsTitle": "Où le guide est disponible",
"guideIaChannelsSub": "Activable canal par canal, depuis la configuration de chaque application.",
"guideIaChannelOn": "Activé",
"guideIaChannelOff": "Désactivé",
"guideIaIdentityTitle": "Identité du guide",
"guideIaIdentitySub": "C'est ce qui donne son ton aux réponses",
"guideIaNameLabel": "Nom du guide",
"guideIaNameHint": "Le nom que le visiteur voit et entend. Ex : Léon",
"guideIaPersonaLabel": "Personnalité",
"guideIaPersonaHint": "Décrivez-le comme vous présenteriez un guide à un nouveau collègue. Pour démarrer, partez d'un exemple :",
"guideIaExampleWarden": "Gardien passionné",
"guideIaExampleWardenText": "Tu t'appelles Léon, tu es l'ancien gardien du lieu. Tu parles simplement, avec chaleur, et tu glisses volontiers une anecdote. Tu vouvoies les visiteurs.",
"guideIaExampleSober": "Médiateur sobre",
"guideIaExampleSoberText": "Tu es un médiateur culturel calme et précis. Tu réponds en deux ou trois phrases, sans familiarité, en citant les faits établis. Si une information n'est pas certaine, tu le dis. Tu vouvoies les visiteurs.",
"guideIaExampleKids": "Pour les enfants",
"guideIaExampleKidsText": "Tu es une exploratrice enthousiaste qui s'adresse à des enfants de 7 à 12 ans. Tu tutoies, tu poses des questions, tu utilises des comparaisons simples et des mots courts. Tu racontes des histoires.",
"guideIaFallbackLabel": "Quand le guide ne sait pas répondre",
"guideIaFallbackHint": "Le guide en choisit une au hasard. Avec une seule phrase, il la répète à l'identique et ça se remarque tout de suite.",
"guideIaFallbackAdd": "Ajouter une formulation",
"guideIaFallbackTranslated": "Ces phrases sont vues par vos visiteurs : elles seront traduites dans leur langue, comme le reste de vos contenus.",
"guideIaVoiceTitle": "Votre guide à voix haute",
"guideIaVoiceSub": "Le visiteur pose sa question à voix haute et entend la réponse — dans l'application, ou dans ses lunettes connectées.",
"guideIaVoiceFemale": "Voix féminine, chaleureuse",
"guideIaVoiceMale": "Voix masculine, posée",
"guideIaVoiceWakeword": "Réveil : « {word} »",
"guideIaVoiceInfoName": "Le visiteur dit « {word} » pour réveiller le guide, même s'il porte un autre nom. Une voix et un mot de réveil à votre nom sont possibles en option.",
"guideIaVoiceInfoGlasses": "Les lunettes connectées fonctionnent avec l'application mobile installée sur le téléphone du visiteur.",
"guideIaVoiceInfoMultilang": "La même voix parle toutes vos langues : votre guide garde la même identité d'une langue à l'autre.",
"guideIaSave": "Enregistrer",
"guideIaSaved": "Guide enregistré",
"guideIaSaveError": "L'enregistrement a échoué. Réessayez.",
"menuNotifications": "Notifications",
"menuUsers": "Utilisateurs",
"menuApiKeys": "Clés API",
"noPlansAvailable": "Aucun plan disponible. Créez d'abord un plan.",
"noPlan": "Aucun plan (illimité)",
"unlimitedStorage": "Stockage illimité",
"unlimitedAI": "IA illimitée",
"aiTokensPerMonth": "{amount} tokens IA/mois",
"@aiTokensPerMonth": {
"placeholders": {
"amount": { "type": "String" }
}
},
"storageLabel": "Stockage",
"aiThisMonthLabel": "IA ce mois",
"unlimited": "Illimité",
"requestsAbbr": "req",
"tokensAbbr": "tokens",
"planUpdated": "Plan mis à jour",
"errorMessage": "Erreur : {error}",
"@errorMessage": {
"placeholders": {
"error": { "type": "String" }
}
},
"switchInstance": "Changer d'instance",
"noInstanceFound": "Aucune instance trouvée",
"configurePlan": "Configurer le plan",
"tooltipSwitchInstance": "Changer d'instance",
"tooltipLogout": "Se déconnecter",
"usersTitle": "Utilisateurs",
"createUserBtn": "Créer un utilisateur",
"createUserTitle": "Créer un utilisateur",
"editUserTitle": "Modifier l'utilisateur",
"deleteUserTitle": "Supprimer l'utilisateur",
"deleteUserConfirm": "Supprimer {email} ?",
"@deleteUserConfirm": {
"placeholders": {
"email": { "type": "String" }
}
},
"noUsers": "Aucun utilisateur",
"email": "Email",
"firstName": "Prénom",
"lastName": "Nom",
"password": "Mot de passe",
"role": "Rôle",
"tooltipEdit": "Modifier",
"tooltipDelete": "Supprimer",
"notificationsTitle": "Notifications",
"newMessage": "Nouveau message",
"messageTitle": "Titre",
"messageBody": "Message",
"schedule": "Planifier",
"time": "Heure",
"send": "Envoyer",
"cancelNotification": "Annuler la notification",
"cancelNotificationConfirm": "Annuler « {title} » ?",
"@cancelNotificationConfirm": {
"placeholders": {
"title": { "type": "String" }
}
},
"allNotifications": "Toutes",
"sentNotifications": "Envoyées",
"scheduledNotifications": "Planifiées",
"failedNotifications": "Échouées",
"noNotifications": "Aucune notification envoyée",
"noNotificationsForFilter": "Aucune notification pour ce filtre",
"topic": "Topic",
"tooltipCancelNotification": "Annuler",
"resultsCount": "{count, plural, one{{count} résultat} other{{count} résultats}}",
"@resultsCount": {
"placeholders": {
"count": { "type": "int" }
}
},
"apiKeysTitle": "Clés API",
"createApiKey": "Créer une clé API",
"createKeyBtn": "Créer une clé",
"appType": "Type d'application",
"noExpiration": "Pas d'expiration",
"expiresOn": "Expire le {date}",
"@expiresOn": {
"placeholders": {
"date": { "type": "String" }
}
},
"choose": "Choisir",
"removeExpiration": "Supprimer l'expiration",
"apiKeyCreatedTitle": "Clé API créée",
"copyKeyWarning": "Copiez cette clé maintenant — elle ne sera plus affichée.",
"copy": "Copier",
"copiedKey": "J'ai copié la clé",
"revokeApiKeyTitle": "Révoquer la clé API",
"revokeApiKeyConfirm": "Révoquer « {name} » ? Les apps utilisant cette clé perdront l'accès.",
"@revokeApiKeyConfirm": {
"placeholders": {
"name": { "type": "String" }
}
},
"revoke": "Révoquer",
"noApiKeys": "Aucune clé API",
"createdOn": "Créée le",
"expiration": "Expiration",
"activeKey": "Active",
"revokedKey": "Révoquée",
"tooltipRevoke": "Révoquer",
"statisticsTitle": "Statistiques",
"statsLoadError": "Impossible de charger les statistiques",
"statsNoData": "Pas encore de données pour cette période",
"statsNoDataForType": "Aucun event reçu pour le type \"{type}\"",
"@statsNoDataForType": {
"placeholders": {
"type": { "type": "String" }
}
},
"statsSessions": "Sessions",
"statsAvgDuration": "Durée moy.",
"statsTopApp": "App top",
"statsTopLang": "Langue top",
"statsVisitsByDay": "Visites par jour",
"statsAll": "Tous",
"statsTopSections": "Top sections",
"statsApps": "Apps",
"statsLanguages": "Langues",
"statsTopPOI": "Top POI",
"statsPOI": "POI",
"statsTaps": "Taps",
"statsTopAgenda": "Top événements agenda",
"statsEvent": "Événement",
"statsQuiz": "Quiz",
"statsSection": "Section",
"statsAvgScore": "Score moy",
"statsCompletions": "Complétions",
"statsGames": "Jeux",
"statsGameType": "Type",
"statsArticles": "Articles lus",
"statsReadings": "Lectures",
"statsMenuTitle": "Menu",
"statsMenuItem": "Item",
"statsQrScans": "QR Scans",
"statsTotal": "Total",
"statsValid": "Valides",
"statsInvalid": "Invalides",
"statsViews": "Vues",
"statsAttendanceTitle": "Fréquentation",
"statsPeriodRange": "Du {from} au {to}",
"@statsPeriodRange": {
"placeholders": {
"from": { "type": "String" },
"to": { "type": "String" }
}
},
"statsFilterPeriod": "Période",
"statsFilterChannel": "Canal",
"statsPeriodDays": "{days} jours",
"@statsPeriodDays": {
"placeholders": {
"days": { "type": "int" }
}
},
"statsPeriodYear": "Année",
"statsChannelMobile": "Application mobile",
"statsChannelTablet": "Borne d'accueil",
"statsChannelWeb": "Site web",
"statsChannelVR": "Casque VR",
"statsChannelVoice": "Guide vocal",
"statsTakeawayUp": "La fréquentation progresse de {percent} % par rapport à la période précédente.",
"@statsTakeawayUp": {
"placeholders": {
"percent": { "type": "String" }
}
},
"statsTakeawayDown": "La fréquentation recule de {percent} % par rapport à la période précédente.",
"@statsTakeawayDown": {
"placeholders": {
"percent": { "type": "String" }
}
},
"statsTakeawayStable": "La fréquentation est stable par rapport à la période précédente.",
"statsTakeawayVolume": "{visits} visites sur la période, soit {perDay} par jour en moyenne.",
"@statsTakeawayVolume": {
"placeholders": {
"visits": { "type": "String" },
"perDay": { "type": "String" }
}
},
"statsTakeawayVoice": "Le guide vocal représente {percent} % des visites : c'est un argument à faire valoir auprès de vos subsidiants.",
"@statsTakeawayVoice": {
"placeholders": {
"percent": { "type": "String" }
}
},
"statsTakeawayChannel": "Le canal « {channel} » concentre {percent} % des visites.",
"@statsTakeawayChannel": {
"placeholders": {
"channel": { "type": "String" },
"percent": { "type": "String" }
}
},
"statsTakeawayContent": "Le contenu « {title} » concentre {percent} % des consultations : c'est votre porte d'entrée, il mérite d'être tenu à jour en priorité.",
"@statsTakeawayContent": {
"placeholders": {
"title": { "type": "String" },
"percent": { "type": "String" }
}
},
"statsKpiVisits": "Visites",
"statsKpiAvgDuration": "Durée moyenne",
"statsKpiContentsPerVisit": "Contenus par visite",
"statsKpiVoiceShare": "Part du guide vocal",
"statsKpiTotalViews": "Contenus consultés",
"statsVsPrevious": "vs période précédente",
"statsTrendStable": "stable",
"statsDurationMinSec": "{minutes} min {seconds} s",
"@statsDurationMinSec": {
"placeholders": {
"minutes": { "type": "String" },
"seconds": { "type": "String" }
}
},
"statsDurationSec": "{seconds} s",
"@statsDurationSec": {
"placeholders": {
"seconds": { "type": "String" }
}
},
"statsVisitsByDaySub": "Les bandes claires signalent les week-ends",
"statsWeekends": "Samedis et dimanches",
"statsPeakDay": "Pic le {date} — {visits} visites",
"@statsPeakDay": {
"placeholders": {
"date": { "type": "String" },
"visits": { "type": "String" }
}
},
"statsTopContents": "Contenus les plus consultés",
"statsTopContentsSub": "Nombre de consultations sur la période",
"statsChannels": "Canaux",
"statsChannelsSub": "Visites par canal",
"statsLanguagesSub": "Visites par langue",
"statsReportTitle": "Votre rapport de fréquentation",
"statsReportBody": "Un document à vos couleurs, prêt à transmettre à votre commune, votre conseil d'administration ou vos subsidiants.",
"statsReportItemAttendance": "Fréquentation, durées de visite et évolution",
"statsReportItemContents": "Contenus les plus consultés et leur évolution",
"statsReportItemChannels": "Répartition par canal, dont le guide vocal, et par langue",
"statsReportItemAdvanced": "Points d'intérêt, quiz, jeux et scans QR",
"statsReportGenerated": "Rapport généré le {date} avec MyInfoMate",
"@statsReportGenerated": {
"placeholders": {
"date": { "type": "String" }
}
},
"statsReportError": "Le rapport n'a pas pu être généré",
"statsReportDownload": "Télécharger le PDF",
"statsAdvancedTitle": "Statistiques avancées",
"statsAdvancedBody": "Les statistiques détaillées (POI, quiz, jeux, articles, QR…) sont disponibles avec le plan Premium.",
"statsUnavailableTitle": "Statistiques non incluses",
"statsUnavailableBody": "Votre plan actuel n'inclut pas les statistiques de fréquentation.",
"noData": "Aucune donnée",
"errorOccurred": "Une erreur est survenue",
"yes": "Oui",
"newConfiguration": "Nouvelle configuration",
"configNameLabel": "Nom :",
"orText": "ou",
"importLabel": "Importer",
"configNameRequired": "Veuillez spécifier un nom pour la nouvelle visite",
"configCreatedSuccess": "La configuration a été créée avec succès",
"configExportSuccess": "L'export de la configuration a réussi, le document se trouve à cet endroit : {path}",
"@configExportSuccess": {
"placeholders": {
"path": { "type": "String" }
}
},
"configExportFailed": "L'export de la configuration a échoué",
"configDeletedSuccess": "La configuration a été supprimée avec succès",
"configSavedSuccess": "La configuration a été sauvegardée avec succès",
"configDeleteConfirm": "Êtes-vous sûr de vouloir supprimer cette configuration ?",
"newSection": "Nouvelle section",
"newSubSection": "Nouvelle sous section",
"sectionNameLabel": "Nom :",
"sectionTypeLabel": "Type:",
"sectionNameRequired": "Veuillez spécifier un nom pour la nouvelle section",
"sectionCreatedSuccess": "La section a été créée avec succès !",
"sectionDeleteConfirm": "Êtes-vous sûr de vouloir supprimer cette section ?",
"sectionSavedSuccess": "La section a été sauvegardée avec succès",
"sectionTranslationSaved": "Les traductions de la section ont été sauvegardées avec succès",
"sectionLoadError": "Une erreur est survenue lors de la récupération de la section",
"qrCodeCopied": "Ce QR code a été copié dans le presse papier",
"beaconLabel": "Beacon :",
"beaconIdLabel": "Identifiant Beacon :",
"beaconMustBeNumber": "Cela doit être un chiffre",
"identifierLabel": "Identifiant :",
"displayTitleLabel": "Titre affiché:",
"imageLabel": "Image :",
"backgroundImageLabel": "Image fond d'écran :",
"questionInputLabel": "Question :",
"videoUrlLabel": "Url de la vidéo:",
"webUrlLabel": "Url du site web:",
"subSectionUpdatedSuccess": "La sous section a été mis à jour avec succès",
"subSectionUpdateError": "Une erreur est survenue lors de la mise à jour de la sous section",
"subSectionDeletedSuccess": "La sous section a été supprimée avec succès",
"subSectionDeleteError": "Une erreur est survenue lors de la suppression de la sous section",
"subSectionOrderUpdatedSuccess": "L'ordre des sous sections a été mis à jour avec succès",
"subSectionOrderUpdateError": "Une erreur est survenue lors de la mise à jour de l'ordre des sous sections",
"subSectionCreatedSuccess": "La sous section a été créée avec succès",
"subSectionCreateError": "Une erreur est survenue lors de la création de la sous section",
"questionsLabel": "Questions",
"questionLabel": "Question",
"editQuestion": "Modifier la question",
"questionDeleteConfirm": "Êtes-vous sûr de vouloir supprimer cette question ?",
"questionsLoadError": "Une erreur est survenue lors de la récupération des questions",
"quizBadScore": "Mauvais score",
"quizMediumScore": "Moyen score",
"quizGoodScore": "Bon score",
"quizExcellentScore": "Excellent score",
"quizBadScoreMsg": "Message pour un mauvais score",
"quizMediumScoreMsg": "Message pour un score moyen",
"quizGoodScoreMsg": "Message pour un bon score",
"quizExcellentScoreMsg": "Message pour un excellent score",
"questionOrderUpdatedSuccess": "L'ordre des questions a été mis à jour avec succès",
"questionOrderUpdateError": "Une erreur est survenue lors de la mise à jour de l'ordre des questions",
"questionCreatedSuccess": "La question a été créée avec succès",
"questionCreateError": "Une erreur est survenue lors de la création de la question",
"questionUpdatedSuccess": "La question a été mis à jour avec succès",
"questionUpdateError": "Une erreur est survenue lors de la mise à jour de la question",
"questionDeletedSuccess": "La question a été supprimée avec succès",
"questionDeleteError": "Une erreur est survenue lors de la suppression de la question",
"translationIncomplete": "La traduction n'est pas complète",
"geopointCreatedSuccess": "Le point a été créé avec succès",
"geopointCreateError": "Une erreur est survenue lors de la création du point",
"geopointUpdatedSuccess": "Le point a été mis à jour avec succès",
"geopointUpdateError": "Une erreur est survenue lors de la mise à jour du point",
"geopointDeletedSuccess": "Le point a été supprimé avec succès",
"geopointDeleteError": "Une erreur est survenue lors de la suppression du point",
"categoryCreatedSuccess": "La catégorie a été créée avec succès",
"categoryCreateError": "Une erreur est survenue lors de la création de la catégorie",
"categoryUpdatedSuccess": "La catégorie a été mise à jour avec succès",
"categoryUpdateError": "Une erreur est survenue lors de la mise à jour de la catégorie",
"eventCreatedSuccess": "L'événement a été créé avec succès",
"eventCreateError": "Une erreur est survenue lors de la création de l'événement",
"eventUpdatedSuccess": "L'événement a été mis à jour avec succès",
"eventUpdateError": "Une erreur est survenue lors de la mise à jour de l'événement",
"eventDeletedSuccess": "L'événement a été supprimé avec succès",
"eventDeleteError": "Une erreur est survenue lors de la suppression de l'événement",
"annotationCreatedSuccess": "L'annotation a été créée avec succès",
"annotationCreateError": "Une erreur est survenue lors de la création de l'annotation",
"annotationUpdatedSuccess": "L'annotation a été mise à jour avec succès",
"annotationUpdateError": "Une erreur est survenue lors de la mise à jour de l'annotation",
"programmeBlockCreatedSuccess": "Le bloc a été créé avec succès",
"programmeBlockCreateError": "Une erreur est survenue lors de la création du bloc",
"programmeBlockUpdatedSuccess": "Le bloc a été mis à jour avec succès",
"programmeBlockUpdateError": "Une erreur est survenue lors de la mise à jour du bloc",
"pathCreatedSuccess": "Le parcours a été créé avec succès",
"pathCreateError": "Une erreur est survenue lors de la création du parcours",
"pathUpdatedSuccess": "Le parcours a été mis à jour avec succès",
"pathUpdateError": "Une erreur est survenue lors de la mise à jour du parcours",
"stepCreatedSuccess": "L'étape a été créée avec succès",
"stepCreateError": "Une erreur est survenue lors de la création de l'étape",
"stepUpdatedSuccess": "L'étape a été mise à jour avec succès",
"stepUpdateError": "Une erreur est survenue lors de la mise à jour de l'étape",
"agendaEventsLabel": "Évènements",
"agendaEventFallback": "Évènement",
"addEvent": "Ajouter un évènement",
"noEvents": "Aucun évènement",
"noAddress": "Pas d'adresse",
"agendaFilterAll": "Tous",
"agendaFilterThisMonth": "Ce mois-ci",
"agendaFilterThisYear": "Cette année",
"agendaFilterPast": "Passés",
"agendaEventDeleteConfirm": "Êtes-vous sûr de vouloir supprimer cet évènement ?",
"onlineLabel": "En ligne :",
"mapViewLabel": "Vue carte :",
"mapServiceLabel": "Service carte :",
"jsonFilesLabel": "Fichiers json :",
"jsonLabel": "JSON",
"guidedPathsLabel": "Parcours Guidés",
"addPath": "Ajouter un parcours",
"noPathConfigured": "Aucun parcours configuré",
"pathOrderUpdateError": "Erreur lors de la mise à jour de l'ordre",
"pathNoTitle": "Parcours sans titre",
"pathDeletedSuccess": "Parcours supprimé avec succès",
"pathDeleteError": "Erreur lors de la suppression du parcours",
"pathsLabel": "Parcours",
"pointsOfInterestLabel": "Points d'Intérêt",
"geopointsLabel": "Points géographiques",
"searchLabel": "Recherche :",
"geopointsLoadError": "Une erreur est survenue lors de la récupération des points géographiques",
"geopointDeleteConfirm": "Êtes-vous sûr de vouloir supprimer ce point géographique ?",
"serviceLabel": "Service :",
"centerPointLabel": "Point de centrage :",
"iconLabel": "Icône :",
"listViewLabel": "Vue liste :",
"typeLabel": "Type :",
"zoomLabel": "Zoom :",
"categoriesLabel": "Catégories :",
"startDateLabel": "Date de début",
"notDefined": "Non définie",
"endDateLabel": "Date de fin",
"programmeLabel": "Programme",
"addBlock": "Ajouter un bloc",
"blockFallback": "Bloc",
"noBlocks": "Aucun bloc de programme défini",
"programmeBlockDeletedSuccess": "Bloc supprimé avec succès",
"programmeBlockDeleteError": "Erreur lors de la suppression du bloc",
"baseMapLabel": "Carte de base",
"mapLabel": "Carte :",
"globalAnnotationsLabel": "Annotations globales",
"addAnnotation": "Ajouter une annotation",
"noAnnotations": "Aucune annotation globale",
"annotationFallback": "Annotation",
"annotationDeletedSuccess": "Annotation supprimée",
"annotationDeleteError": "Erreur lors de la suppression",
"agendaEventCreatedSuccess": "L'événement a été créé avec succès",
"agendaEventCreateError": "Une erreur est survenue lors de la création de l'événement",
"agendaEventUpdatedSuccess": "L'événement a été mis à jour avec succès",
"agendaEventUpdateError": "Une erreur est survenue lors de la mise à jour de l'événement",
"agendaEventDeletedSuccess": "L'événement a été supprimé avec succès",
"agendaEventDeleteError": "Une erreur est survenue lors de la suppression de l'événement",
"newResource": "Nouvelle ressource",
"resourceCreatedSuccess": "La ressource a été créée avec succès",
"resourceCreateError": "Une erreur est survenue lors de la création de la ressource",
"resourceUpdatedSuccess": "La ressource a été mise à jour avec succès",
"resourceNoFileLoaded": "Aucun fichier n'a été chargé",
"resourceNameRequired": "Veuillez donner un nom à la ressource",
"resourceTooLarge": "Erreur, attention, la taille de la ressource doit être inférieure à 1.5Mb",
"resourceInvalidUrl": "L'url est invalide",
"resourceUrlRequired": "Veuillez remplir le champ URL",
"generalInfo": "Informations générales",
"mainImageLabel": "Image principale :",
"loaderLabel": "Loader :",
"primaryColorLabel": "Couleur principale :",
"secondaryColorLabel": "Couleur secondaire :",
"layoutLabel": "Affichage :",
"layoutGrid": "Grille",
"languagesLabel": "Langues :",
"featuredEventLabel": "Evènement à l'affiche :",
"chooseEvent": "Choisir un évènement",
"previewWebTitle": "Aperçu — Web",
"previewMobileTitle": "Aperçu — Mobile",
"previewDesktop": "Desktop",
"previewMobile": "Mobile",
"noneOption": "Aucun",
"aiAssistantLabel": "Assistant IA :",
"appUpdatedSuccess": "Application mobile mise à jour",
"configActivatedSuccess": "Configuration activée avec succès",
"configDeactivatedSuccess": "Configuration désactivée avec succès",
"configRemoveConfirm": "Êtes-vous sûr de vouloir retirer cette configuration de l'application ?",
"configRemovedSuccess": "La configuration a été retirée de l'application avec succès",
"configRemoveError": "Une erreur est survenue lors du retrait de la configuration",
"phoneConfigTitle": "Contenu de l'application mobile",
"addConfig": "Ajouter une configuration",
"selectConfigToAdd": "Sélectionner une configuration à ajouter",
"noItems": "Aucun élément à afficher",
"add": "Ajouter",
"pinCode": "Code pin: {code}",
"@pinCode": {
"placeholders": {
"code": { "type": "String" }
}
},
"tablets": "Tablettes",
"stepsCount": "{count} étapes",
"@stepsCount": {
"placeholders": {
"count": { "type": "int" }
}
},
"displayedDescriptionLabel": "Description affichée:",
"displayedContentLabel": "Contenu affiché :",
"displayedNameLabel": "Nom affiché :",
"startTimeLabel": "Heure de début",
"noAnnotationConfigured": "Aucune annotation configurée.",
"newStepTitle": "Nouvelle Étape",
"editStepTitle": "Modifier l'Étape",
"stepTitleLabel": "Titre de l'étape",
"stepDescriptionLabel": "Description de l'étape",
"stepLocationLabel": "Emplacement de l'étape :",
"initiallyHiddenLabel": "Cachée initialement",
"lockedLabel": "Verrouillée",
"durationSecondsLabel": "Durée (secondes) :",
"triggerGeopointLabel": "GeoPoint de déclenchement (ID) :",
"questionsChallengesLabel": "Questions / Défis",
"noQuestionsConfigured": "Aucune question configurée.",
"newAgendaEventTitle": "Nouvel Évènement",
"editAgendaEventTitle": "Modifier l'Évènement",
"eventTitleLabel": "Titre de l'évènement",
"eventDescriptionLabel": "Description de l'évènement",
"startDateColonLabel": "Date de début :",
"videoResourceLabel": "Vidéo :",
"directVideoLinkLabel": "Lien vidéo direct :",
"phoneLabel": "Téléphone :",
"locationGeometryLabel": "Localisation / Géométrie",
"geometryLabel": "Géométrie :",
"materialIconLabel": "Icône (material) :",
"linearLabel": "Linéaire :",
"requiredSuccessLabel": "Réussite requise :",
"pathStepsLabel": "Étapes du parcours",
"noStepConfigured": "Aucun point/étape configuré.",
"stepFallback": "Étape",
"questionAskedLabel": "Question posée :",
"questionTitleLabel": "Intitulé de la question",
"expectedAnswerLabel": "Réponse attendue :",
"expectedAnswerModalLabel": "Réponse attendue",
"validationNote": "La validation se fait par comparaison (insensible à la casse).",
"possibleAnswersLabel": "Réponses possibles :",
"noAnswerDefined": "Aucune réponse définie. Ajoutez-en au moins une.",
"correctAnswer": "Bonne réponse ✓",
"wrongAnswer": "Mauvaise réponse",
"answerNote": "✓ = bonne réponse. Plusieurs peuvent être correctes.",
"geopointZoneTitle": "Point géographique / Zone",
"geometryTypeLabel": "Géométrie (Point/Ligne/Zone) :",
"phoneModalLabel": "Téléphone",
"categoryLabel": "Catégorie :",
"startMessageLabel": "Message départ :",
"startMessageModalLabel": "Message départ",
"createCategoryTitle": "Création catégorie",
"editCategoryTitle": "Modification catégorie",
"categoryIconLabel": "Icône catégorie :",
"selectResource": "Sélectionner une ressource",
"createPdfTitle": "Création PDF",
"answersLabel": "Réponses",
"answerLabel": "Réponse",
"createAnswerTitle": "Créer la réponse",
"editAnswerTitle": "Modifier la réponse",
"answerValidNote": "Si coché, la réponse est valide",
"selectConfiguration": "Sélectionner une configuration",
"noConfigFound": "Aucune configuration trouvée",
"backgroundColorLabel": "Couleur fond d'écran :",
"updateTabletBtn": "Mettre à jour la tablette",
"kioskUpdatedSuccess": "Le kiosk a été mis à jour",
"webViewError": "La page internet ne peut pas être affichée, l'url est incorrecte ou vide",
"download": "Télécharger",
"resourceDeleteConfirm": "Êtes-vous sûr de vouloir supprimer cette ressource ?",
"categoriesTitle": "Catégories",
"endTimeLabel": "Heure de fin",
"annotationsLabel": "Annotations"
}