manager-app/lib/l10n/app_localizations_fr.dart
Thomas Fransolet 0054122829 Carte : filtre par categorie, editeur de point, et corrections users/quotas
Regroupe la configuration de carte en deux blocs (Carte / Points d'interet),
ajoute le filtre par categorie et l'editeur de point geographique, et passe
les ecrans Users et les jauges de quota par AppLocalizations (FR/EN/NL).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 16:22:39 +02:00

3225 lines
77 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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 geopointConfirmPosition => 'Valider la position';
@override
String get clearFilter => 'Tout afficher';
@override
String get mapGroupMap => 'Carte';
@override
String get mapGroupPoints => 'Points d\'intérêt';
@override
String get displayLabel => 'Affichage';
@override
String get listViewOption => 'Proposer la vue liste';
@override
String get centerPointLabel => 'Point de centrage';
@override
String get iconLabel => 'Icône par défaut';
@override
String get listViewLabel => 'Vue liste';
@override
String get typeLabel => 'Type de carte';
@override
String get zoomLabel => 'Zoom initial';
@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 get userCreatedSuccess =>
'Utilisateur créé, l\'invitation est partie par e-mail';
@override
String get userUpdatedSuccess => 'Utilisateur mis à jour';
@override
String get userDeletedSuccess => 'Utilisateur supprimé';
@override
String userUpdateError(String message) {
return 'La mise à jour a échoué : $message';
}
@override
String userDeleteError(String message) {
return 'La suppression a échoué : $message';
}
@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 sectionHideAction => 'Masquer dans l\'app visiteur';
@override
String get sectionShowAction => 'Afficher dans l\'app visiteur';
@override
String get sectionHiddenSuccess => 'Section masquée';
@override
String get sectionShownSuccess => 'Section affichée';
@override
String get sectionVisibilityError =>
'Impossible de changer la visibilité de la section';
@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';
}