Les trois dialogues imbriqués (Parcours, Étape, Question) fermaient sur
« Annuler » par un Navigator.pop sans rien demander, chacun jetant tout ce
qui était saisi sous lui — le plus coûteux étant une question de quiz avec
ses réponses.
Confirmation ajoutée aux trois, plus interception du retour arrière du
navigateur par PopScope : le clic hors fenêtre et la touche Échap étaient
déjà neutralisés par barrierDismissible: false, le retour navigateur était
le seul chemin de perte encore ouvert.
Deux points non évidents :
- l'instantané de référence est pris après la première frame, parce que
ensureSimpleResponse écrit dans la question pendant la construction et
ferait passer un dialog intact pour modifié ;
- les deux dialogues partageant le même Navigator, popper depuis onYes
fermerait la confirmation et non l'éditeur — la fermeture est différée
d'une frame pour être déterministe.
Réutilise showConfirmationDialog plutôt que d'ajouter un second composant.
3 clés i18n FR/EN/NL. flutter build web ✅, analyse du dossier propre.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1798 lines
44 KiB
Dart
1798 lines
44 KiB
Dart
// 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 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 => 'Ressources';
|
|
|
|
@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 =>
|
|
'Activable canal par canal, depuis la configuration de chaque application.';
|
|
|
|
@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 : elles seront traduites dans leur langue, comme le reste de vos contenus.';
|
|
|
|
@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 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 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 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 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 discardPathChangesConfirm =>
|
|
'Ce parcours contient des modifications non enregistrées, ainsi que ses étapes et leurs questions. Abandonner ces modifications ?';
|
|
|
|
@override
|
|
String get discardStepChangesConfirm =>
|
|
'Cette étape contient des modifications non enregistrées, ainsi que ses questions. Abandonner ces modifications ?';
|
|
|
|
@override
|
|
String get discardQuestionChangesConfirm =>
|
|
'Cette question contient des modifications non enregistrées, ainsi que ses réponses. Abandonner ces modifications ?';
|
|
}
|