// ignore: unused_import import 'package:intl/intl.dart' as intl; import 'app_localizations.dart'; // ignore_for_file: type=lint /// The translations for French (`fr`). class AppLocalizationsFr extends AppLocalizations { AppLocalizationsFr([String locale = 'fr']) : super(locale); @override String get cancel => 'Annuler'; @override String get save => 'Enregistrer'; @override String get create => 'Créer'; @override String get delete => 'Supprimer'; @override String get close => 'Fermer'; @override String get edit => 'Modifier'; @override String get actions => 'Actions'; @override String get status => 'Statut'; @override String get no => 'Non'; @override String get name => 'Nom'; @override String get type => 'Type'; @override String get date => 'Date'; @override String get loginSuccess => 'Connexion réussie'; @override String get loginError => 'Un problème est survenu lors de la connexion'; @override String get rememberMe => 'Se souvenir de moi'; @override String get connect => 'SE CONNECTER'; @override String get forgotPasswordLink => 'Mot de passe oublié ?'; @override String get forgotPasswordTitle => 'Mot de passe oublié'; @override String get forgotPasswordDesc => 'Indiquez votre e-mail, nous vous envoyons un lien pour définir un nouveau mot de passe.'; @override String get forgotPasswordSubmit => 'ENVOYER LE LIEN'; @override String get forgotPasswordSuccess => 'Si cet e-mail existe, un lien de réinitialisation vient d\'être envoyé.'; @override String get backToLogin => 'Retour à la connexion'; @override String get setPasswordTitle => 'Définir votre mot de passe'; @override String get setPasswordDesc => 'Choisissez un mot de passe pour accéder à votre espace.'; @override String get setPasswordNewLabel => 'Nouveau mot de passe'; @override String get setPasswordSubmit => 'DÉFINIR LE MOT DE PASSE'; @override String get setPasswordSuccess => 'Mot de passe défini — vous pouvez vous connecter.'; @override String get setPasswordError => 'Ce lien est invalide ou a expiré'; @override String get setPasswordTooShort => 'Le mot de passe doit contenir au moins 8 caractères'; @override String get setPasswordMissingToken => 'Lien invalide — aucun jeton fourni'; @override String get inviteUserHint => 'Un e-mail d\'invitation sera envoyé pour définir le mot de passe.'; @override String get menuSubscription => 'Abonnement'; @override String get subscriptionTitle => 'Abonnement'; @override String get subscriptionTrialActive => 'Essai gratuit en cours'; @override String subscriptionTrialEndsAt(Object date) { return 'Votre essai se termine le $date'; } @override String get subscriptionTrialNoDate => 'Votre essai gratuit est actif.'; @override String get subscriptionPlanActive => 'Plan Essentiel actif'; @override String get subscriptionPlanActiveDesc => 'Votre abonnement est actif et se renouvelle automatiquement.'; @override String get subscriptionIncludedTitle => 'Ce qui est inclus'; @override String get subscriptionUpgradeBtn => 'Passer à un abonnement payant'; @override String get subscriptionCheckoutError => 'Impossible de démarrer le paiement, réessayez plus tard.'; @override String get subscriptionManageBtn => 'Gérer mon abonnement'; @override String get subscriptionManageDesc => 'Changer de carte, consulter vos factures ou résilier — sur les pages sécurisées de Stripe.'; @override String get subscriptionPortalError => 'Impossible d\'ouvrir le portail de facturation, réessayez plus tard.'; @override String get subscriptionPortalNoCustomer => 'Aucun abonnement en ligne n\'est rattaché à cette instance. Votre facturation est gérée directement avec nous.'; @override String get subscriptionAddonsTitle => 'Add-ons'; @override String get subscriptionAddonsComingSoon => 'Bientôt disponible : requêtes IA supplémentaires et autres options.'; @override String get menuApplications => 'Applications'; @override String get menuConfigurations => 'Configurations'; @override String get menuResources => 'Médiathèque'; @override String get menuStatistics => 'Statistiques'; @override String get menuGuideIa => 'Guide IA'; @override String get guideIaSubtitle => 'Votre guide répond aux questions des visiteurs à partir de vos propres contenus. Il ne répond jamais à partir d\'autre chose.'; @override String get guideIaUsageTitle => 'Consommation du mois'; @override String guideIaUsageQuestions(Object count) { return '$count questions posées'; } @override String get guideIaUsageNoQuota => 'Aucun plafond défini sur votre offre.'; @override String get guideIaChannelsTitle => 'Où le guide est disponible'; @override String get guideIaChannelsSub => 'Cliquez sur un canal pour y activer ou désactiver le guide.'; @override String get guideIaChannelOn => 'Activé'; @override String get guideIaChannelOff => 'Désactivé'; @override String get guideIaIdentityTitle => 'Identité du guide'; @override String get guideIaIdentitySub => 'C\'est ce qui donne son ton aux réponses'; @override String get guideIaNameLabel => 'Nom du guide'; @override String get guideIaNameHint => 'Le nom que le visiteur voit et entend. Ex : Léon'; @override String get guideIaPersonaLabel => 'Personnalité'; @override String get guideIaPersonaHint => 'Décrivez-le comme vous présenteriez un guide à un nouveau collègue. Pour démarrer, partez d\'un exemple :'; @override String get guideIaExampleWarden => 'Gardien passionné'; @override String get 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.'; @override String get guideIaExampleSober => 'Médiateur sobre'; @override String get 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.'; @override String get guideIaExampleKids => 'Pour les enfants'; @override String get 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.'; @override String get guideIaFallbackLabel => 'Quand le guide ne sait pas répondre'; @override String get 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.'; @override String get guideIaFallbackAdd => 'Ajouter une formulation'; @override String get guideIaFallbackTranslated => 'Ces phrases sont vues par vos visiteurs : à l\'enregistrement, elles sont traduites dans les langues de vos canaux.'; @override String get guideIaFallbackTranslateError => 'Erreur lors de la traduction IA'; @override String guideIaSavedTranslationFailed(String reason) { return 'Enregistré, mais la traduction des formulations a échoué : $reason'; } @override String get guideIaVoiceTitle => 'Votre guide à voix haute'; @override String get guideIaVoiceSub => 'Le visiteur pose sa question à voix haute et entend la réponse — dans l\'application, ou dans ses lunettes connectées.'; @override String get guideIaVoiceFemale => 'Voix féminine, chaleureuse'; @override String get guideIaVoiceMale => 'Voix masculine, posée'; @override String guideIaVoiceWakeword(Object word) { return 'Réveil : « $word »'; } @override String guideIaVoiceInfoName(Object word) { return '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.'; } @override String get guideIaVoiceInfoGlasses => 'Les lunettes connectées fonctionnent avec l\'application mobile installée sur le téléphone du visiteur.'; @override String get guideIaVoiceInfoMultilang => 'La même voix parle toutes vos langues : votre guide garde la même identité d\'une langue à l\'autre.'; @override String get guideIaSave => 'Enregistrer'; @override String get guideIaSaved => 'Guide enregistré'; @override String get guideIaSaveError => 'L\'enregistrement a échoué. Réessayez.'; @override String get guideIaTabConfig => 'Configuration'; @override String get guideIaTabQuestions => 'Ce que demandent vos visiteurs'; @override String get guideIaPreviewTitle => 'Essayer votre guide'; @override String get guideIaPreviewSub => 'Testez le ton et les réponses sans passer par un téléphone'; @override String get guideIaPreviewPlaceholder => 'Posez une question, comme le ferait un visiteur'; @override String get guideIaPreviewSources => 'D\'où vient cette réponse ?'; @override String get guideIaPreviewSourcesInfo => 'Cet indicateur de sources n\'apparaît que sur cet écran. Vos visiteurs, eux, ne voient que la réponse.'; @override String get guideIaPreviewError => 'Le guide n\'a pas répondu. Réessayez dans un instant.'; @override String get guideIaPreviewUnsaved => 'Enregistrez vos modifications pour les essayer : l\'aperçu interroge le guide tel qu\'il est publié.'; @override String get guideIaKnowledgeTitle => 'Ce que connaît votre guide'; @override String get guideIaKnowledgeSub => 'Mesuré sur ce qui est réellement indexé, pas sur ce qui est publié'; @override String get guideIaKnowledgeSections => 'Sections indexées'; @override String get guideIaKnowledgeChunks => 'Morceaux de contenu'; @override String get guideIaKnowledgeLanguages => 'Langues couvertes'; @override String get guideIaKnowledgeLastIndexed => 'Dernière indexation'; @override String get guideIaKnowledgeHint => 'Une section dépubliée disparaît des réponses du guide dans la minute.'; @override String guideIaKnowledgeMinutesAgo(Object count) { return 'il y a $count min'; } @override String guideIaKnowledgeHoursAgo(Object count) { return 'il y a $count h'; } @override String guideIaKnowledgeDaysAgo(Object count) { return 'il y a $count j'; } @override String get guideIaKpiQuestions => 'Questions ce mois'; @override String get guideIaKpiUnanswered => 'Sans réponse'; @override String get guideIaKpiThemes => 'Thèmes'; @override String get guideIaKpiLanguages => 'Langues'; @override String get guideIaGapTitle => 'Ce que vos visiteurs cherchent sans le trouver'; @override String guideIaGapSub(Object count) { return '$count questions n\'ont trouvé aucune réponse dans vos contenus. Ajoutez-les et votre guide saura répondre dès la prochaine visite.'; } @override String get guideIaTopicsTitle => 'Sujets des questions'; @override String get guideIaQuestionLanguagesTitle => 'Langues des questions'; @override String get guideIaInsightsSubCount => 'Nombre de questions sur la période'; @override String get guideIaCitedTitle => 'Contenus les plus utilisés'; @override String get guideIaCitedSub => 'Sections citées dans les réponses'; @override String get guideIaInsightsEmpty => 'Aucune question pour l\'instant'; @override String get guideIaInsightsEmptyHint => 'Dès que vos visiteurs interrogeront le guide, leurs questions seront regroupées ici par sujet — et celles restées sans réponse vous diront quoi ajouter à vos contenus.'; @override String get guideIaInsightsPrivacy => 'Les questions sont conservées 90 jours puis supprimées. Seuls les regroupements par sujet sont gardés au-delà. Aucune donnée permettant d\'identifier un visiteur n\'est enregistrée.'; @override String get menuNotifications => 'Notifications'; @override String get menuUsers => 'Utilisateurs'; @override String get menuApiKeys => 'Clés API'; @override String get noPlansAvailable => 'Aucun plan disponible. Créez d\'abord un plan.'; @override String get noPlan => 'Aucun plan (illimité)'; @override String get unlimitedStorage => 'Stockage illimité'; @override String get unlimitedAI => 'IA illimitée'; @override String aiTokensPerMonth(String amount) { return '$amount tokens IA/mois'; } @override String get storageLabel => 'Stockage'; @override String get aiThisMonthLabel => 'IA ce mois'; @override String get unlimited => 'Illimité'; @override String get requestsAbbr => 'req'; @override String get tokensAbbr => 'tokens'; @override String get planUpdated => 'Plan mis à jour'; @override String errorMessage(String error) { return 'Erreur : $error'; } @override String get switchInstance => 'Changer d\'instance'; @override String get noInstanceFound => 'Aucune instance trouvée'; @override String get configurePlan => 'Configurer le plan'; @override String get tooltipSwitchInstance => 'Changer d\'instance'; @override String get tooltipLogout => 'Se déconnecter'; @override String get usersInstance => 'Instance'; @override String get usersTitle => 'Utilisateurs'; @override String get createUserBtn => 'Créer un utilisateur'; @override String get createUserTitle => 'Créer un utilisateur'; @override String get editUserTitle => 'Modifier l\'utilisateur'; @override String get deleteUserTitle => 'Supprimer l\'utilisateur'; @override String deleteUserConfirm(String email) { return 'Supprimer $email ?'; } @override String get noUsers => 'Aucun utilisateur'; @override String get email => 'Email'; @override String get firstName => 'Prénom'; @override String get lastName => 'Nom'; @override String get password => 'Mot de passe'; @override String get role => 'Rôle'; @override String get tooltipEdit => 'Modifier'; @override String get tooltipDelete => 'Supprimer'; @override String get notificationsTitle => 'Notifications'; @override String get newMessage => 'Nouveau message'; @override String get messageTitle => 'Titre'; @override String get messageBody => 'Message'; @override String get schedule => 'Planifier'; @override String get time => 'Heure'; @override String get send => 'Envoyer'; @override String get cancelNotification => 'Annuler la notification'; @override String cancelNotificationConfirm(String title) { return 'Annuler « $title » ?'; } @override String get allNotifications => 'Toutes'; @override String get sentNotifications => 'Envoyées'; @override String get scheduledNotifications => 'Planifiées'; @override String get failedNotifications => 'Échouées'; @override String get noNotifications => 'Aucune notification envoyée'; @override String get noNotificationsForFilter => 'Aucune notification pour ce filtre'; @override String get topic => 'Topic'; @override String get tooltipCancelNotification => 'Annuler'; @override String resultsCount(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count résultats', one: '$count résultat', ); return '$_temp0'; } @override String get apiKeysTitle => 'Clés API'; @override String get createApiKey => 'Créer une clé API'; @override String get createKeyBtn => 'Créer une clé'; @override String get appType => 'Type d\'application'; @override String get noExpiration => 'Pas d\'expiration'; @override String expiresOn(String date) { return 'Expire le $date'; } @override String get choose => 'Choisir'; @override String get removeExpiration => 'Supprimer l\'expiration'; @override String get apiKeyCreatedTitle => 'Clé API créée'; @override String get copyKeyWarning => 'Copiez cette clé maintenant — elle ne sera plus affichée.'; @override String get copy => 'Copier'; @override String get copiedKey => 'J\'ai copié la clé'; @override String get revokeApiKeyTitle => 'Révoquer la clé API'; @override String revokeApiKeyConfirm(String name) { return 'Révoquer « $name » ? Les apps utilisant cette clé perdront l\'accès.'; } @override String get revoke => 'Révoquer'; @override String get noApiKeys => 'Aucune clé API'; @override String get createdOn => 'Créée le'; @override String get expiration => 'Expiration'; @override String get activeKey => 'Active'; @override String get revokedKey => 'Révoquée'; @override String get tooltipRevoke => 'Révoquer'; @override String get statisticsTitle => 'Statistiques'; @override String get statsLoadError => 'Impossible de charger les statistiques'; @override String get statsNoData => 'Pas encore de données pour cette période'; @override String statsNoDataForType(String type) { return 'Aucun event reçu pour le type \"$type\"'; } @override String get statsSessions => 'Sessions'; @override String get statsAvgDuration => 'Durée moy.'; @override String get statsTopApp => 'App top'; @override String get statsTopLang => 'Langue top'; @override String get statsVisitsByDay => 'Visites par jour'; @override String get statsAll => 'Tous'; @override String get statsTopSections => 'Top sections'; @override String get statsApps => 'Apps'; @override String get statsLanguages => 'Langues'; @override String get statsTopPOI => 'Top POI'; @override String get statsPOI => 'POI'; @override String get statsTaps => 'Taps'; @override String get statsTopAgenda => 'Top événements agenda'; @override String get statsEvent => 'Événement'; @override String get statsQuiz => 'Quiz'; @override String get statsSection => 'Section'; @override String get statsAvgScore => 'Score moy'; @override String get statsCompletions => 'Complétions'; @override String get statsGames => 'Jeux'; @override String get statsGameType => 'Type'; @override String get statsArticles => 'Articles lus'; @override String get statsReadings => 'Lectures'; @override String get statsMenuTitle => 'Menu'; @override String get statsMenuItem => 'Item'; @override String get statsQrScans => 'QR Scans'; @override String get statsTotal => 'Total'; @override String get statsValid => 'Valides'; @override String get statsInvalid => 'Invalides'; @override String get statsViews => 'Vues'; @override String get statsAttendanceTitle => 'Fréquentation'; @override String statsPeriodRange(String from, String to) { return 'Du $from au $to'; } @override String get statsFilterPeriod => 'Période'; @override String get statsFilterChannel => 'Canal'; @override String statsPeriodDays(int days) { return '$days jours'; } @override String get statsPeriodYear => 'Année'; @override String get statsChannelMobile => 'Application mobile'; @override String get statsChannelTablet => 'Borne d\'accueil'; @override String get statsChannelWeb => 'Site web'; @override String get statsChannelVR => 'Casque VR'; @override String get statsChannelVoice => 'Guide vocal'; @override String statsTakeawayUp(String percent) { return 'La fréquentation progresse de $percent % par rapport à la période précédente.'; } @override String statsTakeawayDown(String percent) { return 'La fréquentation recule de $percent % par rapport à la période précédente.'; } @override String get statsTakeawayStable => 'La fréquentation est stable par rapport à la période précédente.'; @override String statsTakeawayVolume(String visits, String perDay) { return '$visits visites sur la période, soit $perDay par jour en moyenne.'; } @override String statsTakeawayVoice(String percent) { return 'Le guide vocal représente $percent % des visites : c\'est un argument à faire valoir auprès de vos subsidiants.'; } @override String statsTakeawayChannel(String channel, String percent) { return 'Le canal « $channel » concentre $percent % des visites.'; } @override String statsTakeawayContent(String title, String percent) { return 'Le contenu « $title » concentre $percent % des consultations : c\'est votre porte d\'entrée, il mérite d\'être tenu à jour en priorité.'; } @override String get statsKpiVisits => 'Visites'; @override String get statsKpiAvgDuration => 'Durée moyenne'; @override String get statsKpiContentsPerVisit => 'Contenus par visite'; @override String get statsKpiVoiceShare => 'Part du guide vocal'; @override String get statsKpiTotalViews => 'Contenus consultés'; @override String get statsVsPrevious => 'vs période précédente'; @override String get statsTrendStable => 'stable'; @override String statsDurationMinSec(String minutes, String seconds) { return '$minutes min $seconds s'; } @override String statsDurationSec(String seconds) { return '$seconds s'; } @override String get statsVisitsByDaySub => 'Les bandes claires signalent les week-ends'; @override String get statsWeekends => 'Samedis et dimanches'; @override String statsPeakDay(String date, String visits) { return 'Pic le $date — $visits visites'; } @override String get statsTopContents => 'Contenus les plus consultés'; @override String get statsTopContentsSub => 'Nombre de consultations sur la période'; @override String get statsChannels => 'Canaux'; @override String get statsChannelsSub => 'Visites par canal'; @override String get statsLanguagesSub => 'Visites par langue'; @override String get statsReportTitle => 'Votre rapport de fréquentation'; @override String get statsReportBody => 'Un document à vos couleurs, prêt à transmettre à votre commune, votre conseil d\'administration ou vos subsidiants.'; @override String get statsReportItemAttendance => 'Fréquentation, durées de visite et évolution'; @override String get statsReportItemContents => 'Contenus les plus consultés et leur évolution'; @override String get statsReportItemChannels => 'Répartition par canal, dont le guide vocal, et par langue'; @override String get statsReportItemAdvanced => 'Points d\'intérêt, quiz, jeux et scans QR'; @override String statsReportGenerated(String date) { return 'Rapport généré le $date avec MyInfoMate'; } @override String get statsReportError => 'Le rapport n\'a pas pu être généré'; @override String get statsReportDownload => 'Télécharger le PDF'; @override String get statsAdvancedTitle => 'Statistiques avancées'; @override String get statsAdvancedBody => 'Les statistiques détaillées (POI, quiz, jeux, articles, QR…) sont disponibles avec le plan Premium.'; @override String get statsUnavailableTitle => 'Statistiques non incluses'; @override String get statsUnavailableBody => 'Votre plan actuel n\'inclut pas les statistiques de fréquentation.'; @override String get noData => 'Aucune donnée'; @override String get errorOccurred => 'Une erreur est survenue'; @override String get yes => 'Oui'; @override String get newConfiguration => 'Nouvelle configuration'; @override String get configNameLabel => 'Nom :'; @override String get orText => 'ou'; @override String get importLabel => 'Importer'; @override String get configNameRequired => 'Veuillez spécifier un nom pour la nouvelle visite'; @override String get configCreatedSuccess => 'La configuration a été créée avec succès'; @override String configExportSuccess(String path) { return 'L\'export de la configuration a réussi, le document se trouve à cet endroit : $path'; } @override String get configExportFailed => 'L\'export de la configuration a échoué'; @override String get configExportAction => 'Exporter la configuration'; @override String get offlineHint => 'Le contenu est téléchargé au premier lancement.'; @override String get configDeletedSuccess => 'La configuration a été supprimée avec succès'; @override String get configSavedSuccess => 'La configuration a été sauvegardée avec succès'; @override String get configDeleteConfirm => 'Êtes-vous sûr de vouloir supprimer cette configuration ?'; @override String get newSection => 'Nouvelle section'; @override String get newSubSection => 'Nouvelle sous section'; @override String get sectionNameLabel => 'Nom :'; @override String get sectionTypeLabel => 'Type:'; @override String get sectionNameRequired => 'Veuillez spécifier un nom pour la nouvelle section'; @override String get sectionCreatedSuccess => 'La section a été créée avec succès !'; @override String get sectionDeleteConfirm => 'Êtes-vous sûr de vouloir supprimer cette section ?'; @override String get sectionSavedSuccess => 'La section a été sauvegardée avec succès'; @override String get sectionTranslationSaved => 'Les traductions de la section ont été sauvegardées avec succès'; @override String get sectionLoadError => 'Une erreur est survenue lors de la récupération de la section'; @override String get qrCodeCopied => 'Ce QR code a été copié dans le presse papier'; @override String get beaconLabel => 'Beacon :'; @override String get beaconIdLabel => 'Identifiant Beacon :'; @override String get beaconMustBeNumber => 'Cela doit être un chiffre'; @override String get identifierLabel => 'Identifiant :'; @override String get displayTitleLabel => 'Titre affiché:'; @override String get imageLabel => 'Image :'; @override String get backgroundImageLabel => 'Image fond d\'écran :'; @override String get questionInputLabel => 'Question :'; @override String get videoUrlLabel => 'Url de la vidéo:'; @override String get webUrlLabel => 'Url du site web:'; @override String get subSectionUpdatedSuccess => 'La sous section a été mis à jour avec succès'; @override String get subSectionUpdateError => 'Une erreur est survenue lors de la mise à jour de la sous section'; @override String get subSectionDeletedSuccess => 'La sous section a été supprimée avec succès'; @override String get subSectionDeleteError => 'Une erreur est survenue lors de la suppression de la sous section'; @override String get subSectionOrderUpdatedSuccess => 'L\'ordre des sous sections a été mis à jour avec succès'; @override String get subSectionOrderUpdateError => 'Une erreur est survenue lors de la mise à jour de l\'ordre des sous sections'; @override String get subSectionCreatedSuccess => 'La sous section a été créée avec succès'; @override String get subSectionCreateError => 'Une erreur est survenue lors de la création de la sous section'; @override String get questionsLabel => 'Questions'; @override String get questionLabel => 'Question'; @override String get editQuestion => 'Modifier la question'; @override String get questionDeleteConfirm => 'Êtes-vous sûr de vouloir supprimer cette question ?'; @override String get questionsLoadError => 'Une erreur est survenue lors de la récupération des questions'; @override String get quizBadScore => 'Mauvais score'; @override String get quizMediumScore => 'Moyen score'; @override String get quizGoodScore => 'Bon score'; @override String get quizExcellentScore => 'Excellent score'; @override String get quizBadScoreMsg => 'Message pour un mauvais score'; @override String get quizMediumScoreMsg => 'Message pour un score moyen'; @override String get quizGoodScoreMsg => 'Message pour un bon score'; @override String get quizExcellentScoreMsg => 'Message pour un excellent score'; @override String get questionOrderUpdatedSuccess => 'L\'ordre des questions a été mis à jour avec succès'; @override String get questionOrderUpdateError => 'Une erreur est survenue lors de la mise à jour de l\'ordre des questions'; @override String get questionCreatedSuccess => 'La question a été créée avec succès'; @override String get questionCreateError => 'Une erreur est survenue lors de la création de la question'; @override String get questionUpdatedSuccess => 'La question a été mis à jour avec succès'; @override String get questionUpdateError => 'Une erreur est survenue lors de la mise à jour de la question'; @override String get questionDeletedSuccess => 'La question a été supprimée avec succès'; @override String get questionDeleteError => 'Une erreur est survenue lors de la suppression de la question'; @override String get translationIncomplete => 'La traduction n\'est pas complète'; @override String get geopointCreatedSuccess => 'Le point a été créé avec succès'; @override String get geopointCreateError => 'Une erreur est survenue lors de la création du point'; @override String get geopointUpdatedSuccess => 'Le point a été mis à jour avec succès'; @override String get geopointUpdateError => 'Une erreur est survenue lors de la mise à jour du point'; @override String get geopointDeletedSuccess => 'Le point a été supprimé avec succès'; @override String get geopointDeleteError => 'Une erreur est survenue lors de la suppression du point'; @override String get categoryCreatedSuccess => 'La catégorie a été créée avec succès'; @override String get categoryCreateError => 'Une erreur est survenue lors de la création de la catégorie'; @override String get categoryUpdatedSuccess => 'La catégorie a été mise à jour avec succès'; @override String get categoryUpdateError => 'Une erreur est survenue lors de la mise à jour de la catégorie'; @override String get eventCreatedSuccess => 'L\'événement a été créé avec succès'; @override String get eventCreateError => 'Une erreur est survenue lors de la création de l\'événement'; @override String get eventUpdatedSuccess => 'L\'événement a été mis à jour avec succès'; @override String get eventUpdateError => 'Une erreur est survenue lors de la mise à jour de l\'événement'; @override String get eventDeletedSuccess => 'L\'événement a été supprimé avec succès'; @override String get eventDeleteError => 'Une erreur est survenue lors de la suppression de l\'événement'; @override String get annotationCreatedSuccess => 'L\'annotation a été créée avec succès'; @override String get annotationCreateError => 'Une erreur est survenue lors de la création de l\'annotation'; @override String get annotationUpdatedSuccess => 'L\'annotation a été mise à jour avec succès'; @override String get annotationUpdateError => 'Une erreur est survenue lors de la mise à jour de l\'annotation'; @override String get programmeBlockCreatedSuccess => 'Le bloc a été créé avec succès'; @override String get programmeBlockCreateError => 'Une erreur est survenue lors de la création du bloc'; @override String get programmeBlockUpdatedSuccess => 'Le bloc a été mis à jour avec succès'; @override String get programmeBlockUpdateError => 'Une erreur est survenue lors de la mise à jour du bloc'; @override String get pathCreatedSuccess => 'Le parcours a été créé avec succès'; @override String get pathCreateError => 'Une erreur est survenue lors de la création du parcours'; @override String get pathUpdatedSuccess => 'Le parcours a été mis à jour avec succès'; @override String get pathUpdateError => 'Une erreur est survenue lors de la mise à jour du parcours'; @override String get stepCreatedSuccess => 'L\'étape a été créée avec succès'; @override String get stepCreateError => 'Une erreur est survenue lors de la création de l\'étape'; @override String get stepUpdatedSuccess => 'L\'étape a été mise à jour avec succès'; @override String get stepUpdateError => 'Une erreur est survenue lors de la mise à jour de l\'étape'; @override String get agendaEventsLabel => 'Évènements'; @override String get agendaEventFallback => 'Évènement'; @override String get addEvent => 'Ajouter un évènement'; @override String get noEvents => 'Aucun évènement'; @override String get noAddress => 'Pas d\'adresse'; @override String get agendaFilterAll => 'Tous'; @override String get agendaFilterThisMonth => 'Ce mois-ci'; @override String get agendaFilterThisYear => 'Cette année'; @override String get agendaFilterPast => 'Passés'; @override String get agendaEventDeleteConfirm => 'Êtes-vous sûr de vouloir supprimer cet évènement ?'; @override String get onlineLabel => 'En ligne :'; @override String get mapViewLabel => 'Vue carte :'; @override String get mapServiceLabel => 'Service carte :'; @override String get jsonFilesLabel => 'Fichiers json :'; @override String get jsonLabel => 'JSON'; @override String get guidedPathsLabel => 'Parcours Guidés'; @override String get addPath => 'Ajouter un parcours'; @override String get noPathConfigured => 'Aucun parcours configuré'; @override String get pathOrderUpdateError => 'Erreur lors de la mise à jour de l\'ordre'; @override String get pathNoTitle => 'Parcours sans titre'; @override String get pathDeletedSuccess => 'Parcours supprimé avec succès'; @override String get pathDeleteError => 'Erreur lors de la suppression du parcours'; @override String get pathsLabel => 'Parcours'; @override String get pointsOfInterestLabel => 'Points d\'Intérêt'; @override String get geopointsLabel => 'Points géographiques'; @override String get searchLabel => 'Recherche :'; @override String get geopointsLoadError => 'Une erreur est survenue lors de la récupération des points géographiques'; @override String get geopointDeleteConfirm => 'Êtes-vous sûr de vouloir supprimer ce point géographique ?'; @override String get serviceLabel => 'Service :'; @override String get centerPointLabel => 'Point de centrage :'; @override String get iconLabel => 'Icône :'; @override String get listViewLabel => 'Vue liste :'; @override String get typeLabel => 'Type :'; @override String get zoomLabel => 'Zoom :'; @override String get categoriesLabel => 'Catégories :'; @override String get startDateLabel => 'Date de début'; @override String get notDefined => 'Non définie'; @override String get endDateLabel => 'Date de fin'; @override String get programmeLabel => 'Programme'; @override String get addBlock => 'Ajouter un bloc'; @override String get blockFallback => 'Bloc'; @override String get noBlocks => 'Aucun bloc de programme défini'; @override String get programmeBlockDeletedSuccess => 'Bloc supprimé avec succès'; @override String get programmeBlockDeleteError => 'Erreur lors de la suppression du bloc'; @override String get baseMapLabel => 'Carte de base'; @override String get mapLabel => 'Carte :'; @override String get globalAnnotationsLabel => 'Annotations globales'; @override String get addAnnotation => 'Ajouter une annotation'; @override String get noAnnotations => 'Aucune annotation globale'; @override String get annotationFallback => 'Annotation'; @override String get annotationDeletedSuccess => 'Annotation supprimée'; @override String get annotationDeleteError => 'Erreur lors de la suppression'; @override String get agendaEventCreatedSuccess => 'L\'événement a été créé avec succès'; @override String get agendaEventCreateError => 'Une erreur est survenue lors de la création de l\'événement'; @override String get agendaEventUpdatedSuccess => 'L\'événement a été mis à jour avec succès'; @override String get agendaEventUpdateError => 'Une erreur est survenue lors de la mise à jour de l\'événement'; @override String get agendaEventDeletedSuccess => 'L\'événement a été supprimé avec succès'; @override String get agendaEventDeleteError => 'Une erreur est survenue lors de la suppression de l\'événement'; @override String get newResource => 'Nouvelle ressource'; @override String get resourceCreatedSuccess => 'La ressource a été créée avec succès'; @override String get resourceCreateError => 'Une erreur est survenue lors de la création de la ressource'; @override String get resourceUploadInProgress => 'Ajout en cours…'; @override String get resourceUpdatedSuccess => 'La ressource a été mise à jour avec succès'; @override String get resourceNoFileLoaded => 'Aucun fichier n\'a été chargé'; @override String get resourceNameRequired => 'Veuillez donner un nom à la ressource'; @override String get resourceTooLarge => 'Erreur, attention, la taille de la ressource doit être inférieure à 1.5Mb'; @override String get resourceInvalidUrl => 'L\'url est invalide'; @override String get resourceUrlRequired => 'Veuillez remplir le champ URL'; @override String get generalInfo => 'Informations générales'; @override String get mainImageLabel => 'Image principale :'; @override String get loaderLabel => 'Loader :'; @override String get primaryColorLabel => 'Couleur principale :'; @override String get secondaryColorLabel => 'Couleur secondaire :'; @override String get layoutLabel => 'Affichage :'; @override String get layoutGrid => 'Grille'; @override String get languagesLabel => 'Langues :'; @override String get featuredEventLabel => 'Evènement à l\'affiche :'; @override String get chooseEvent => 'Choisir un évènement'; @override String get previewWebTitle => 'Aperçu — Web'; @override String get previewMobileTitle => 'Aperçu — Mobile'; @override String get previewDesktop => 'Desktop'; @override String get previewMobile => 'Mobile'; @override String get noneOption => 'Aucun'; @override String get aiAssistantLabel => 'Assistant IA :'; @override String get appUpdatedSuccess => 'Application mobile mise à jour'; @override String get configActivatedSuccess => 'Configuration activée avec succès'; @override String get configDeactivatedSuccess => 'Configuration désactivée avec succès'; @override String get configRemoveConfirm => 'Êtes-vous sûr de vouloir retirer cette configuration de l\'application ?'; @override String get configRemovedSuccess => 'La configuration a été retirée de l\'application avec succès'; @override String get configRemoveError => 'Une erreur est survenue lors du retrait de la configuration'; @override String get phoneConfigTitle => 'Contenu de l\'application mobile'; @override String get addConfig => 'Ajouter une configuration'; @override String get selectConfigToAdd => 'Sélectionner une configuration à ajouter'; @override String get noItems => 'Aucun élément à afficher'; @override String get add => 'Ajouter'; @override String pinCode(String code) { return 'Code pin: $code'; } @override String get tablets => 'Tablettes'; @override String stepsCount(int count) { return '$count étapes'; } @override String get displayedDescriptionLabel => 'Description affichée:'; @override String get displayedContentLabel => 'Contenu affiché :'; @override String get displayedNameLabel => 'Nom affiché :'; @override String get startTimeLabel => 'Heure de début'; @override String get noAnnotationConfigured => 'Aucune annotation configurée.'; @override String get newStepTitle => 'Nouvelle Étape'; @override String get editStepTitle => 'Modifier l\'Étape'; @override String get stepTitleLabel => 'Titre de l\'étape'; @override String get stepDescriptionLabel => 'Description de l\'étape'; @override String get stepLocationLabel => 'Emplacement de l\'étape :'; @override String get initiallyHiddenLabel => 'Cachée initialement'; @override String get lockedLabel => 'Verrouillée'; @override String get durationSecondsLabel => 'Durée (secondes) :'; @override String get triggerGeopointLabel => 'GeoPoint de déclenchement (ID) :'; @override String get questionsChallengesLabel => 'Questions / Défis'; @override String get noQuestionsConfigured => 'Aucune question configurée.'; @override String get newAgendaEventTitle => 'Nouvel Évènement'; @override String get editAgendaEventTitle => 'Modifier l\'Évènement'; @override String get eventTitleLabel => 'Titre de l\'évènement'; @override String get eventDescriptionLabel => 'Description de l\'évènement'; @override String get startDateColonLabel => 'Date de début :'; @override String get videoResourceLabel => 'Vidéo :'; @override String get directVideoLinkLabel => 'Lien vidéo direct :'; @override String get phoneLabel => 'Téléphone :'; @override String get locationGeometryLabel => 'Localisation / Géométrie'; @override String get geometryLabel => 'Géométrie :'; @override String get materialIconLabel => 'Icône (material) :'; @override String get linearLabel => 'Linéaire :'; @override String get requiredSuccessLabel => 'Réussite requise :'; @override String get pathStepsLabel => 'Étapes du parcours'; @override String get noStepConfigured => 'Aucun point/étape configuré.'; @override String get stepFallback => 'Étape'; @override String get questionAskedLabel => 'Question posée :'; @override String get questionTitleLabel => 'Intitulé de la question'; @override String get expectedAnswerLabel => 'Réponse attendue :'; @override String get expectedAnswerModalLabel => 'Réponse attendue'; @override String get validationNote => 'La validation se fait par comparaison (insensible à la casse).'; @override String get possibleAnswersLabel => 'Réponses possibles :'; @override String get noAnswerDefined => 'Aucune réponse définie. Ajoutez-en au moins une.'; @override String get correctAnswer => 'Bonne réponse ✓'; @override String get wrongAnswer => 'Mauvaise réponse'; @override String get answerNote => '✓ = bonne réponse. Plusieurs peuvent être correctes.'; @override String get geopointZoneTitle => 'Point géographique / Zone'; @override String get geometryTypeLabel => 'Géométrie (Point/Ligne/Zone) :'; @override String get phoneModalLabel => 'Téléphone'; @override String get categoryLabel => 'Catégorie :'; @override String get startMessageLabel => 'Message départ :'; @override String get startMessageModalLabel => 'Message départ'; @override String get createCategoryTitle => 'Création catégorie'; @override String get editCategoryTitle => 'Modification catégorie'; @override String get categoryIconLabel => 'Icône catégorie :'; @override String get selectResource => 'Sélectionner une ressource'; @override String get selectResourceHint => 'Un clic sur une vignette sélectionne et referme.'; @override String get createPdfTitle => 'Création PDF'; @override String get answersLabel => 'Réponses'; @override String get answerLabel => 'Réponse'; @override String get createAnswerTitle => 'Créer la réponse'; @override String get editAnswerTitle => 'Modifier la réponse'; @override String get answerValidNote => 'Si coché, la réponse est valide'; @override String get selectConfiguration => 'Sélectionner une configuration'; @override String get noConfigFound => 'Aucune configuration trouvée'; @override String get backgroundColorLabel => 'Couleur fond d\'écran :'; @override String get updateTabletBtn => 'Mettre à jour la tablette'; @override String get kioskUpdatedSuccess => 'Le kiosk a été mis à jour'; @override String get webViewError => 'La page internet ne peut pas être affichée, l\'url est incorrecte ou vide'; @override String get download => 'Télécharger'; @override String get resourceDeleteConfirm => 'Êtes-vous sûr de vouloir supprimer cette ressource ?'; @override String get categoriesTitle => 'Catégories'; @override String get endTimeLabel => 'Heure de fin'; @override String get annotationsLabel => 'Annotations'; @override String get addStep => 'Ajouter une étape'; @override String get addQuestion => 'Ajouter une question'; @override String get deleteStep => 'Supprimer l\'étape'; @override String get deleteStepConfirm => 'Supprimer cette étape et ses questions ?'; @override String get pathPanelTitle => 'Le parcours'; @override String get pathPanelSubtitle => 'Titre, ambiance, progression'; @override String get stepSummaryEmpty => 'Aucun contenu'; @override String mediaCount(int count) { return '$count média(s)'; } @override String questionCount(int count) { return '$count question(s)'; } @override String get saveStatusIdle => 'Enregistrement automatique'; @override String get saveStatusSaving => 'Enregistrement…'; @override String get saveStatusSaved => 'Enregistré'; @override String get saveStatusFailed => 'Échec de l\'enregistrement'; @override String get retry => 'Réessayer'; @override String get mapProviderMobileOnlyNote => 'Le fournisseur et le type de carte s\'appliquent aux applications mobile et tablette. L\'application web affiche toujours sa propre carte.'; @override String get menuAudit => 'Activité'; @override String get auditTitle => 'Activité'; @override String get auditSubtitle => 'Qui a modifié quoi, et quand'; @override String get auditFilterInstance => 'Instance'; @override String get auditFilterEntity => 'Type d\'élément'; @override String get auditFilterUser => 'Utilisateur'; @override String get auditFilterFrom => 'Depuis le'; @override String get auditFilterTo => 'Jusqu\'au'; @override String get auditAllInstances => 'Toutes les instances'; @override String get auditAllEntities => 'Tous les types'; @override String get auditAllUsers => 'Tous les utilisateurs'; @override String get auditReset => 'Réinitialiser les filtres'; @override String get auditColDate => 'Date'; @override String get auditColInstance => 'Instance'; @override String get auditColEntity => 'Élément'; @override String get auditColAction => 'Action'; @override String get auditColUser => 'Utilisateur'; @override String get auditColEntityId => 'Identifiant'; @override String get auditActionCreate => 'Création'; @override String get auditActionUpdate => 'Modification'; @override String get auditActionDelete => 'Suppression'; @override String get auditEntitySection => 'Section'; @override String get auditEntityResource => 'Ressource'; @override String get auditEntityConfiguration => 'Configuration'; @override String get auditEntityDevice => 'Appareil'; @override String get auditEntityUser => 'Utilisateur'; @override String get auditEntityInstance => 'Instance'; @override String get auditEmpty => 'Aucune activité pour ces filtres'; @override String get auditLoadError => 'Le journal d\'activité n\'a pas pu être chargé'; @override String auditRange(int first, int last, int total) { return '$first – $last sur $total'; } @override String get auditPrevious => 'Page précédente'; @override String get auditNext => 'Page suivante'; @override String get auditDetailTitle => 'Détail de la modification'; @override String get auditDetailField => 'Champ'; @override String get auditDetailBefore => 'Avant'; @override String get auditDetailAfter => 'Après'; @override String get auditDetailNoValues => 'Le journal ne conserve pas le détail de cette opération.'; @override String usersCount(int count, int max) { return '$count / $max utilisateurs'; } @override String usersQuotaReached(int max) { return 'Plafond de $max utilisateurs atteint'; } @override String get usersQuotaHint => 'Supprimez un utilisateur pour en inviter un autre.'; @override String userCreateError(String message) { return 'La création a échoué : $message'; } @override String get mediaFacetType => 'TYPE'; @override String get mediaFacetUsage => 'USAGE'; @override String get mediaFacetConfiguration => 'CONFIGURATION'; @override String get mediaFacetAll => 'Tout'; @override String get mediaFacetUsed => 'Utilisées'; @override String get mediaFacetUnused => 'Jamais utilisées'; @override String get mediaFacetUnusedTooltip => 'Une image posée sur une étape de parcours (champ Image de l\'étape) n\'est pas comptée : elle y est stockée comme URL, pas comme référence. Vérifiez avant de supprimer.'; @override String get mediaFacetNoConfiguration => 'Aucune'; @override String get mediaSearchHint => 'Rechercher une ressource…'; @override String get mediaSort => 'Trier'; @override String get mediaSortRecent => 'Plus récentes'; @override String get mediaSortName => 'Nom A→Z'; @override String get mediaSortSize => 'Poids décroissant'; @override String get mediaSortUsages => 'Usages croissants'; @override String get mediaViewGrid => 'Affichage grille'; @override String get mediaViewList => 'Affichage liste'; @override String get mediaGroupByMonth => 'Grouper par mois'; @override String get mediaUngroupByMonth => 'Ne plus grouper par mois'; @override String get mediaFilterNoConfiguration => 'Aucune configuration'; @override String get mediaClearFilters => 'Tout effacer'; @override String get mediaEmptyFiltered => 'Aucune ressource ne correspond à ces filtres.'; @override String get mediaEmpty => 'Aucune ressource pour l\'instant.'; @override String get mediaRemoveCurrent => 'Retirer la ressource actuelle'; @override String get mediaFree => 'libre'; @override String get mediaNoDate => 'Sans date'; @override String get mediaDetail => 'Détail'; @override String get mediaNoPreview => 'Aucun aperçu'; @override String get mediaInformation => 'INFORMATIONS'; @override String get mediaDimensions => 'Dimensions'; @override String get mediaWeight => 'Poids'; @override String get mediaAddedOn => 'Ajoutée le'; @override String get mediaFile => 'Fichier'; @override String get mediaUsedIn => 'UTILISÉE DANS'; @override String get mediaNeverUsed => 'Jamais utilisée. Aucun visiteur ne la verra.'; @override String get mediaReplaceFile => 'Remplacer le fichier'; @override String get mediaDeleteBlockedTooltip => 'Ressource utilisée : retirez-la de ses contenus avant de la supprimer'; @override String get mediaDeleteTooltip => 'Supprimer définitivement'; @override String get mediaConfigurationNotFound => 'La configuration de ce contenu est introuvable'; @override String get mediaSaveError => 'La ressource n\'a pas pu être enregistrée'; @override String get mediaDeleteRefused => 'Ressource utilisée par un contenu : elle n\'a pas été supprimée'; @override String get mediaDeleteError => 'La ressource n\'a pas pu être supprimée'; @override String get mediaDeleteSuccess => 'La ressource a été supprimée avec succès'; @override String get mediaFileReplaced => 'Fichier remplacé'; @override String get mediaFileReplaceError => 'Le fichier n\'a pas pu être remplacé'; @override String get mediaCloseTooltip => 'Fermer le panneau'; @override String mediaUsageCount(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count usages', one: '1 usage', ); return '$_temp0'; } @override String mediaSelectedCount(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count sélectionnées', one: '1 sélectionnée', ); return '$_temp0'; } @override String mediaSelectedUsedCount(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count utilisées, non supprimables', one: '1 utilisée, non supprimable', ); return '$_temp0'; } @override String mediaBulkDeleteConfirm(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Supprimer $count ressources ? Les ressources utilisées seront conservées.', one: 'Supprimer 1 ressource ? Les ressources utilisées seront conservées.', ); return '$_temp0'; } @override String mediaBulkDeleteDone(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count ressources supprimées', one: '1 ressource supprimée', ); return '$_temp0'; } @override String mediaFilterType(String type) { return 'Type : $type'; } @override String mediaSizeBytes(String value) { return '$value o'; } @override String mediaSizeKilobytes(String value) { return '$value Ko'; } @override String mediaSizeMegabytes(String value) { return '$value Mo'; } @override String mediaBulkDeletePartial(int deleted, int refused) { return '$deleted supprimée(s), $refused conservée(s) car utilisée(s)'; } @override String get mediaAddTitle => 'Ajouter une ressource'; @override String get mediaDropZone => 'Glissez vos fichiers ici ou cliquez pour parcourir'; @override String get mediaDropFormats => 'JPG, PNG, GIF, MP3, MP4, WEBM, PDF, JSON'; @override String get mediaOrPasteUrl => 'ou coller une URL'; @override String get mediaUrlHint => 'https://… image, vidéo YouTube ou fichier JSON'; @override String get mediaUrlInvalid => 'Cette URL n\'est pas valide'; @override String get mediaUrlAlreadyAdded => 'Cette URL est déjà dans la liste'; @override String get mediaFileAlreadyAdded => 'Ce fichier est déjà dans la liste'; @override String get mediaUnsupportedFormat => 'Format non pris en charge'; @override String get mediaOnlineResource => 'Ressource en ligne'; @override String mediaAddCount(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Ajouter $count fichiers', one: 'Ajouter 1 fichier', zero: 'Ajouter', ); return '$_temp0'; } @override String mediaSelectedTotal(int count, String size) { return '$count fichier(s) · $size'; } @override String mediaQuotaRemaining(String size) { return 'Reste $size sur votre quota'; } @override String mediaRemoveFile(String name) { return 'Retirer $name'; } @override String get menuMobile => 'Mobile'; @override String get menuKiosk => 'Kiosk'; @override String get menuWeb => 'Web'; @override String get menuVr => 'VR'; @override String get noAppConfigured => 'Aucune application configurée sur cette instance'; @override String get mobileAppNotConfigured => 'Application mobile non configurée'; @override String get kioskAppNotConfigured => 'Application kiosk non configurée'; @override String get vrAppNotConfigured => 'Application VR non configurée'; @override String get titleColonLabel => 'Titre :'; @override String get titleModalLabel => 'Titre'; @override String get descriptionColonLabel => 'Description :'; @override String get descriptionModalLabel => 'Description'; @override String get nameColonLabel => 'Nom :'; @override String get dateColonLabel => 'Date :'; @override String get hourLabel => 'Heure :'; @override String get emailColonLabel => 'Email :'; @override String get siteColonLabel => 'Site :'; @override String get websiteColonLabel => 'Site Web :'; @override String get websiteModalLabel => 'Site web'; @override String get priceColonLabel => 'Prix :'; @override String get priceModalLabel => 'Prix'; @override String get phoneShortLabel => 'Tél. :'; @override String get openingHoursColonLabel => 'Horaires :'; @override String get openingHoursModalLabel => 'Horaires d\'ouverture'; @override String get addressTextLabel => 'Adresse (texte) :'; @override String get mapLocationLabel => 'Emplacement sur la carte :'; @override String get youtubeIdLabel => 'ID YouTube :'; @override String get youtubeUrlLabel => 'URL YouTube :'; @override String get vimeoUrlLabel => 'URL Vimeo :'; @override String get youtubeUrlInvalid => 'La vidéo ne peut pas être affichée, l\'url est incorrecte'; @override String get videoSelected => 'Vidéo sélectionnée'; @override String get selectVideo => 'Sélectionner une vidéo'; @override String get videoPreviewUnavailable => 'La prévisualisation de la vidéo n\'est pas disponible'; @override String get errorLoadingVideo => 'La vidéo n\'a pas pu être chargée'; @override String get errorLoadingPdf => 'Le PDF n\'a pas pu être chargé'; @override String get jsonNoPreview => 'Fichier JSON — aucun aperçu possible'; @override String get chooseDate => 'Choisir une date'; @override String get endDateColonLabel => 'Date de fin :'; @override String get audioColonLabel => 'Audio :'; @override String get audioModalLabel => 'Audio'; @override String get autoPlayAudioLabel => 'Lecture audio auto :'; @override String get contentModalLabel => 'Contenu'; @override String get contentOnTopLabel => 'Contenu au-dessus :'; @override String get imagesLabel => 'Images'; @override String get sectionsLabel => 'Sections'; @override String get offlineLabel => 'Hors ligne :'; @override String get cityLabel => 'Ville :'; @override String get resource => 'Ressource'; @override String get resourceColonLabel => 'Ressource :'; @override String get resourceToDisplayLabel => 'Ressource à afficher :'; @override String get pdfFilesLabel => 'Fichiers PDF'; @override String get pdfFilesColonLabel => 'Fichiers PDF :'; @override String get pdfFileAndTitleLabel => 'Fichier et titre PDF :'; @override String get pdfFileAndTitleModalLabel => 'Fichier et titre PDF'; @override String get editPdfTitle => 'Modification PDF'; @override String get newAnnotationTitle => 'Nouvelle annotation'; @override String get editAnnotationTitle => 'Modifier l\'annotation'; @override String get annotationLabelColon => 'Label :'; @override String get annotationLabelModal => 'Label de l\'annotation'; @override String get annotationDeleteConfirm => 'Supprimer cette annotation ?'; @override String get colorHexLabel => 'Couleur (hex) :'; @override String get newProgrammeBlockTitle => 'Nouveau bloc de programme'; @override String get editProgrammeBlockTitle => 'Modifier le bloc'; @override String get blockTitleModalLabel => 'Titre du bloc'; @override String get blockDescriptionModalLabel => 'Description du bloc'; @override String get puzzle => 'Puzzle'; @override String get slidingPuzzle => 'Puzzle glissant'; @override String get puzzleConfigTitle => 'Configuration du puzzle'; @override String get puzzleImageLabel => 'Image du puzzle :'; @override String get puzzleRowsLabel => 'Lignes :'; @override String get puzzleColsLabel => 'Colonnes :'; @override String get puzzleSlidingLabel => 'Puzzle glissant :'; @override String get endMessageLabel => 'Message de fin :'; @override String get endMessageModalLabel => 'Message de fin'; @override String get gameStartMessageModalLabel => 'Message d\'introduction du jeu'; @override String get gameEndMessageModalLabel => 'Message de félicitations du jeu'; @override String get parcoursWhereTitle => 'Où se déroule le parcours ?'; @override String get parcoursIndoor => 'En salle'; @override String get parcoursIndoorDesc => 'Une suite d\'étapes dans un espace restreint, sans carte ni géolocalisation.'; @override String get parcoursOutdoor => 'Sur le terrain'; @override String get parcoursOutdoorDesc => 'Le visiteur se déplace : carte et position sur chaque étape.'; @override String get parcoursBaseMapOptional => 'Carte de base (optionnel)'; @override String get noneFeminine => 'Aucune'; @override String get parcoursNoMapSection => 'Aucune section Carte dans cette configuration — créez-en une pour pouvoir la réutiliser ici.'; @override String get parcoursSaveSectionFirst => 'Sauvegardez d\'abord la section pour gérer les parcours.'; @override String get pathTitleLabel => 'Titre du parcours'; @override String get pathDescriptionLabel => 'Description du parcours'; @override String get pathMoodTitle => 'Ambiance'; @override String get pathMoodSub => 'Visite classique ou jeu'; @override String get pathMoodQuestion => 'Quelle ambiance ?'; @override String get pathMoodVisit => 'Visite'; @override String get pathMoodVisitDesc => 'Parcours de découverte : le visiteur avance à son rythme.'; @override String get pathMoodGame => 'Jeu'; @override String get pathMoodGameDesc => 'Escape game ou chasse au trésor : messages de début et de fin, vocabulaire de jeu sur les étapes.'; @override String get pathOptionsTitle => 'Options du parcours'; @override String get pathProgressionQuestion => 'Comment le visiteur progresse-t-il ?'; @override String get pathHideNextSteps => 'Masquer les étapes pas encore atteintes'; @override String get pathHideNextStepsDesc => 'Le visiteur ne découvre les étapes suivantes qu\'au fur et à mesure.'; @override String get pathEstimatedDuration => 'Durée estimée'; @override String get pathPanelIntroSub => 'Ce que le visiteur voit avant de commencer.'; @override String get progressionFree => 'Libre'; @override String get progressionFreeDesc => 'Le visiteur choisit ses étapes dans l\'ordre qu\'il veut.'; @override String get progressionOrdered => 'Dans l\'ordre'; @override String get progressionOrderedDesc => 'Le visiteur suit la séquence ; il peut revenir sur une étape déjà vue.'; @override String get progressionStepByStep => 'Étape par étape'; @override String get progressionStepByStepDesc => 'Chaque étape se débloque en réussissant le défi de la précédente.'; @override String get stepLocationTitle => 'Emplacement'; @override String get stepLocationSub => 'Position et déclenchement géolocalisé de l\'étape'; @override String get stepGeoTrigger => 'Déclenchement géolocalisé'; @override String get stepGeoTriggerDesc => 'L\'étape se débloque automatiquement quand le visiteur entre dans la zone.'; @override String get stepRadiusLabel => 'Rayon'; @override String get stepRichContentTitle => 'Contenu riche'; @override String get stepRichContentSub => 'Audio guide, images et vidéos affichés sur la fiche de l\'étape'; @override String get stepGuideAudioLabel => 'Audio du guide'; @override String get mediasColonLabel => 'Médias :'; @override String get stepNoMedia => 'Aucun média — cliquez + pour ajouter une image, une vidéo ou un audio'; @override String get stepRiddleSub => 'Énigme à résoudre pour progresser'; @override String get stepQuizSub => 'Quiz optionnel pour cette étape'; @override String get stepTimerTitle => 'Timer'; @override String get stepTimerDesc => 'Chronomètre la réponse ; passé le délai, le message d\'expiration s\'affiche.'; @override String get stepTimerExpiredLabel => 'Message d\'expiration :'; @override String get stepTimerExpiredModalLabel => 'Message d\'expiration du timer'; @override String get questionValidationTypeLabel => 'Type de validation :'; @override String get questionTypeSimple => 'Simple (texte attendu)'; @override String get questionTypeMultipleChoice => 'Choix multiples (QCM)'; @override String get questionTypeMultipleChoiceShort => 'QCM'; @override String get questionTypePuzzle => 'Puzzle'; @override String get questionDigicodeHint => 'Si la réponse attendue ne contient que des chiffres, le visiteur voit automatiquement un pavé numérique façon cadenas (digicode) au lieu du champ texte. Rien à configurer.'; @override String get identityTitle => 'Identité'; @override String get appearanceTitle => 'Apparence'; @override String get layoutTitle => 'Mise en page'; @override String get optionsTitle => 'Options'; @override String get configurationColonLabel => 'Configuration :'; @override String get sectionsSpaceLabel => 'Place des sections (%) :'; @override String get roundedPercentLabel => 'Pourcentage des arrondis (0-50) :'; @override String get sectionImageBackgroundLabel => 'Fond pour les images des sections :'; @override String get deviceNameLabel => 'Nom de l\'appareil'; @override String get noTabletPaired => 'Aucune tablette appairée'; @override String get noConfiguration => 'Aucune configuration'; @override String get chooseAudioFile => 'Choisir un fichier audio'; @override String get selectMp3File => 'Sélectionner un fichier audio mp3'; @override String get selectFile => 'Sélectionner un fichier'; @override String get filesLabel => 'Fichiers'; @override String get addOneOrMoreFiles => 'Ajouter un ou plusieurs fichiers'; @override String get searchLocationHint => 'Chercher une localisation'; @override String get selectThisLocation => 'Choisir cette localisation'; @override String get noLocationChosen => 'Aucune localisation choisie'; @override String get changeLocation => 'Changer la localisation'; @override String get geometryEditorTitle => 'Éditeur de géométrie'; @override String get newPoint => 'Nouveau point'; @override String get noPointYet => 'Aucun point pour l\'instant. Créez-en un pour commencer.'; @override String get contentsLabel => 'Contenus du point'; @override String get practicalInfoLabel => 'Informations pratiques'; @override String practicalInfoFilled(int filled, int total) { return '$filled / $total remplies'; } @override String untitledPoint(int index) { return 'Point $index'; } @override String get geometryTypePoint => 'Point'; @override String get geometryTypeLine => 'Ligne'; @override String get geometryTypePolygon => 'Zone'; @override String get geometryClear => 'Effacer le tracé'; @override String get geometryExpand => 'Agrandir la carte'; @override String get geometryCollapse => 'Réduire la carte'; @override String get geometryHintPoint => 'Touchez la carte pour placer le point. Faites glisser le point pour le déplacer.'; @override String get geometryHintLine => 'Touchez la carte pour ajouter des points à la ligne. Faites glisser un point pour le déplacer.'; @override String get geometryHintPolygon => 'Touchez la carte pour définir les sommets du polygone. Faites glisser un sommet pour le déplacer.'; @override String get define => 'Définir'; @override String get change => 'Changer'; @override String get validate => 'Valider'; @override String get errorLabel => 'Erreur'; @override String get noCategory => 'Aucune catégorie'; @override String get atLeastOneValueRequired => 'Au moins une valeur doit être sélectionnée'; @override String get selectLanguageHint => 'Veuillez sélectionner une langue'; @override String get noTextYet => 'Aucun texte —'; @override String get changeTranslations => 'Changer traductions'; @override String get changeResources => 'Changer ressources'; @override String get translateWithAi => 'Traduire via IA'; @override String get translationApplied => 'Traduction appliquée'; @override String get noSourceTextToTranslate => 'Aucun texte source à traduire'; @override String get aiTranslateError => 'Erreur lors de la traduction IA'; @override String get aiAssistantNotEnabled => 'L\'assistant IA n\'est pas activé pour cette instance'; @override String get applyToAllLanguages => 'Appliquer à toutes les langues'; @override String get textAppliedToAllLanguages => 'Le texte a été appliqué à toutes les langues'; @override String get aiQuotaUnlimited => 'Quota IA : illimité'; @override String get aiQuotaSharedWithGuide => 'Partagé avec l\'assistant visiteur'; @override String get identifierColonLabel => 'Identifiant :'; @override String get qrCodeIdentifierTitle => 'QR code / identifiant'; @override String get storageQuotaExceeded => 'Quota de stockage dépassé'; @override String get configImportSuccess => 'La configuration a été importée avec succès'; @override String get configImportError => 'Une erreur est survenue lors de l\'import de la configuration'; @override String get configAlreadyExists => 'La configuration existe déjà dans le système'; @override String get pageNotFound => '404 — Cette page n\'existe pas'; @override String get copied => 'Copié !'; @override String get webAppCreateEmptyResponse => 'La création a échoué (réponse vide)'; @override String get webAppNotInitialized => 'L\'application web n\'est pas encore initialisée.'; @override String get webAppInitialize => 'Initialiser l\'application web'; @override String get webAppVisitorUrl => 'URL visiteurs'; @override String get webAppPublicApiKey => 'Clé publique API'; @override String get webAppContentTitle => 'Contenu de l\'application web'; @override String get webAppUpdated => 'Application web mise à jour'; @override String get subscriptionFeatureWebApp => 'App visiteur web, ouverte par QR code — aucune installation'; @override String get subscriptionFeatureUnlimited => 'Contenus, agenda, plans et sections illimités'; @override String get subscriptionFeatureMultilang => 'Multilingue — vos visiteurs choisissent leur langue'; @override String get subscriptionFeatureBranding => 'Vos couleurs et votre logo, votre adresse dédiée'; @override String get guideIaCollectionTitle => 'Questions de vos visiteurs'; @override String get guideIaCollectionSwitch => 'Enregistrer les questions posées au guide'; @override String get guideIaCollectionOnDesc => 'Alimente l\'onglet « Ce que demandent vos visiteurs » et le rapport des questions restées sans réponse. Conservation 90 jours, puis seuls les regroupements par thème sont gardés.'; @override String get guideIaCollectionOffDesc => 'Aucune nouvelle question ne sera enregistrée. L\'onglet « Ce que demandent vos visiteurs » cessera de se remplir. Les questions déjà enregistrées restent jusqu\'à leur suppression automatique à 90 jours.'; @override String get sectionTypeMap => 'Carte'; @override String get sectionTypeSlider => 'Diaporama'; @override String get sectionTypeVideo => 'Vidéo'; @override String get sectionTypeWeb => 'Web'; @override String get sectionTypeMenu => 'Menu'; @override String get sectionTypeQuiz => 'Quiz'; @override String get sectionTypeArticle => 'Article'; @override String get sectionTypePdf => 'PDF'; @override String get sectionTypeGame => 'Jeu'; @override String get sectionTypeAgenda => 'Agenda'; @override String get sectionTypeWeather => 'Météo'; @override String get sectionTypeEvent => 'Événement'; @override String get sectionTypeParcours => 'Parcours'; @override String get sectionTypeDefault => 'Section'; @override String get sectionTypeDescMap => 'Plan avec points d\'intérêt'; @override String get sectionTypeDescSlider => 'Suite d\'images légendées'; @override String get sectionTypeDescVideo => 'YouTube, Vimeo, fichier'; @override String get sectionTypeDescWeb => 'Page externe intégrée'; @override String get sectionTypeDescMenu => 'Regroupe des sous-sections'; @override String get sectionTypeDescQuiz => 'Questions et scores'; @override String get sectionTypeDescArticle => 'Texte, images, audio'; @override String get sectionTypeDescPdf => 'Documents à consulter'; @override String get sectionTypeDescGame => 'Puzzle d\'image'; @override String get sectionTypeDescAgenda => 'Événements datés'; @override String get sectionTypeDescWeather => 'Prévisions d\'une ville'; @override String get sectionTypeDescEvent => 'Programme et plan du site'; @override String get sectionTypeDescParcours => 'Étapes guidées, énigmes'; @override String get sectionFamilyContent => 'Contenu'; @override String get sectionFamilyPlaces => 'Lieux et déplacements'; @override String get sectionFamilyInteractive => 'Interactif'; @override String get sectionFamilyPractical => 'Informations pratiques'; @override String get sectionTypeFinalWarning => 'Le type ne pourra plus être changé après la création.'; @override String get addContentLabel => 'Nouveau contenu'; @override String get dragToReorder => 'Glisser pour réordonner'; @override String get gameTypeLabel => 'Type de jeu'; @override String get puzzlePreviewLabel => 'Découpage'; @override String get puzzleNoImage => 'Choisissez une image pour voir le découpage.'; @override String puzzlePieces(int rows, int cols, int count) { return '$rows × $cols — $count pièces'; } @override String get quizScoreMessagesLabel => 'Messages de score'; @override String untitledQuestion(int index) { return 'Question $index'; } @override String untitledEvent(int index) { return 'Événement $index'; } @override String untitledFile(int index) { return 'Fichier $index'; } @override String untitledContent(int index) { return 'Contenu $index'; } @override String get settingsPaneTitle => 'Réglages'; @override String get distributionPaneTitle => 'Diffusion'; @override String configHeaderSubtitle(String date, int sections, int languages) { return 'Créée le $date · $sections sections · $languages langues'; } @override String get sectionHiddenBadge => 'Masquée'; @override String get addSectionTile => 'Ajouter une section'; @override String get resourceTypeImage => 'Image'; @override String get resourceTypeImageUrl => 'Image (URL)'; @override String get resourceTypeVideo => 'Vidéo'; @override String get resourceTypeVideoUrl => 'Vidéo (URL)'; @override String get resourceTypeAudio => 'Audio'; @override String get resourceTypePdf => 'PDF'; @override String get resourceTypeJson => 'JSON'; @override String get resourceTypeJsonUrl => 'JSON (URL)'; @override String get minutesAbbr => 'min'; @override String get secondsAbbr => 'sec'; @override String get metersAbbr => 'm'; @override String planDialogTitle(String name) { return 'Plan — $name'; } @override String sectionConfigTitle(String type) { return 'Configuration $type'; } @override String questionNumbered(int index) { return 'Question $index'; } @override String selectedCount(int count) { return '$count sélectionnés'; } @override String translatedLanguagesCount(int done, int total) { return '$done / $total langues traduites'; } @override String aiQuotaUsed(String used, String quota) { return 'Quota IA : $used / $quota utilisés ce mois'; } @override String get webAccessTitle => 'Accès web'; }