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>
3225 lines
77 KiB
Dart
3225 lines
77 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 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';
|
||
}
|