Some checks failed
If a merchant saves a loyalty program with both terms_text and terms_cms_page_slug empty, the storefront enrollment page renders the "Terms & Conditions" link as a non-clickable <span> (see enroll.html template branch) — customers can't read what they're agreeing to. Two changes to the shared program-form to make this impossible to ship by accident: 1. Yellow warning banner inside the Terms section, visible only when both fields are empty. Tells the admin what the storefront will look like and what to fix. 2. Save button is disabled until at least one of the two terms fields is filled. The button gets a localised :title tooltip explaining why it's disabled, and disabled:cursor-not-allowed so the disabled state is obvious on hover. Added three i18n keys (terms_required_warning, terms_text_hint, terms_required_tooltip) in en/fr/de/lb, plus a small "either this or the slug above is required" hint under the textarea so each field is self-explanatory in isolation. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
966 lines
49 KiB
JSON
966 lines
49 KiB
JSON
{
|
|
"loyalty": {
|
|
"module": {
|
|
"name": "Programmes de Fidélité",
|
|
"description": "Programmes de fidélité par tampons et points avec intégration wallet"
|
|
},
|
|
"program": {
|
|
"title": "Programme de Fidélité",
|
|
"create": "Créer un Programme",
|
|
"edit": "Modifier le Programme",
|
|
"activate": "Activer",
|
|
"deactivate": "Désactiver",
|
|
"type": {
|
|
"stamps": "Tampons",
|
|
"points": "Points",
|
|
"hybrid": "Hybride"
|
|
}
|
|
},
|
|
"card": {
|
|
"title": "Carte de Fidélité",
|
|
"number": "Numéro de Carte",
|
|
"qr_code": "Code QR",
|
|
"enroll": "Inscrire un Client",
|
|
"deactivate": "Désactiver la Carte"
|
|
},
|
|
"stamp": {
|
|
"title": "Tampons",
|
|
"add": "Ajouter un Tampon",
|
|
"redeem": "Échanger la Récompense",
|
|
"count": "{current} sur {target}",
|
|
"until_reward": "Plus que {count} pour la récompense"
|
|
},
|
|
"points": {
|
|
"title": "Points",
|
|
"earn": "Gagner des Points",
|
|
"redeem": "Échanger des Points",
|
|
"balance": "{count} points",
|
|
"per_euro": "{points} points par euro"
|
|
},
|
|
"pin": {
|
|
"title": "Codes PIN du Personnel",
|
|
"create": "Créer un PIN",
|
|
"edit": "Modifier le PIN",
|
|
"unlock": "Débloquer le PIN",
|
|
"locked": "PIN bloqué jusqu'à {time}"
|
|
},
|
|
"wallet": {
|
|
"google": "Ajouter à Google Wallet",
|
|
"apple": "Ajouter à Apple Wallet"
|
|
},
|
|
"stats": {
|
|
"title": "Statistiques",
|
|
"total_cards": "Total des Cartes",
|
|
"active_cards": "Cartes Actives",
|
|
"stamps_issued": "Tampons Émis",
|
|
"rewards_redeemed": "Récompenses Échangées"
|
|
},
|
|
"errors": {
|
|
"program_not_found": "Programme de fidélité introuvable",
|
|
"program_inactive": "Le programme de fidélité n'est pas actif",
|
|
"card_not_found": "Carte de fidélité introuvable",
|
|
"card_inactive": "La carte de fidélité n'est pas active",
|
|
"cooldown": "Veuillez attendre {minutes} minutes avant le prochain tampon",
|
|
"daily_limit": "Limite quotidienne de {limit} tampons atteinte",
|
|
"insufficient_stamps": "Il faut {required} tampons, vous en avez {current}",
|
|
"insufficient_points": "Il faut {required} points, vous en avez {current}",
|
|
"pin_required": "Le code PIN du personnel est requis",
|
|
"pin_invalid": "Code PIN invalide",
|
|
"pin_locked": "PIN bloqué suite à trop de tentatives échouées"
|
|
}
|
|
},
|
|
"menu": {
|
|
"loyalty": "Fidélité",
|
|
"loyalty_programs": "Programmes de fidélité",
|
|
"programs": "Programmes",
|
|
"analytics": "Analytique",
|
|
"dashboard": "Tableau de bord",
|
|
"terminal": "Terminal",
|
|
"customer_cards": "Cartes clients",
|
|
"statistics": "Statistiques",
|
|
"program": "Programme",
|
|
"overview": "Aperçu",
|
|
"settings": "Paramètres",
|
|
"wallet_debug": "Wallet Debug",
|
|
"staff_pins": "PINs du personnel",
|
|
"transactions": "Transactions",
|
|
"terminal_devices": "Terminaux POS"
|
|
},
|
|
"permissions": {
|
|
"view_programs": "Voir les programmes",
|
|
"view_programs_desc": "Voir les programmes de fidélité et leurs détails",
|
|
"manage_programs": "Gérer les programmes",
|
|
"manage_programs_desc": "Créer et configurer les programmes de fidélité",
|
|
"view_rewards": "Voir les récompenses",
|
|
"view_rewards_desc": "Voir les récompenses et les échanges",
|
|
"manage_rewards": "Gérer les récompenses",
|
|
"manage_rewards_desc": "Créer et gérer les récompenses de fidélité"
|
|
},
|
|
"onboarding": {
|
|
"create_program": {
|
|
"title": "Créer un programme de fidélité",
|
|
"description": "Créez votre premier programme de tampons ou de points"
|
|
}
|
|
},
|
|
"enrollment": {
|
|
"title": "Rejoignez notre programme de récompenses !",
|
|
"subtitle": "Gagnez {points} point pour chaque EUR dépensé",
|
|
"not_available_title": "Programme non disponible",
|
|
"not_available_message": "Ce magasin n'a pas encore de programme de fidélité.",
|
|
"welcome_bonus": "Obtenez {points} points bonus en vous inscrivant !",
|
|
"already_member": "Déjà membre ? Vos points sont liés à votre e-mail.",
|
|
"form": {
|
|
"email": "E-mail",
|
|
"first_name": "Prénom",
|
|
"last_name": "Nom",
|
|
"phone": "Téléphone (facultatif)",
|
|
"birthday": "Date de naissance (facultatif)",
|
|
"birthday_hint": "Pour des récompenses d'anniversaire spéciales",
|
|
"terms_agree": "J'accepte les",
|
|
"terms": "Conditions Générales",
|
|
"marketing_consent": "M'envoyer des nouvelles et offres spéciales",
|
|
"joining": "Inscription en cours...",
|
|
"join_button": "S'inscrire et obtenir {points} points"
|
|
},
|
|
"privacy_policy": "Politique de confidentialité",
|
|
"close": "Fermer",
|
|
"success": {
|
|
"title": "Bienvenue !",
|
|
"message": "Vous êtes maintenant membre de notre programme de récompenses.",
|
|
"card_number": "Votre numéro de carte",
|
|
"wallet_prompt": "Enregistrez votre carte sur votre téléphone pour un accès facile :",
|
|
"next_steps_title": "Et maintenant ?",
|
|
"step_earn": "Présentez votre numéro de carte lors de vos achats pour gagner des points",
|
|
"step_balance": "Consultez votre solde en ligne ou dans l'application",
|
|
"step_redeem": "Échangez vos points contre des récompenses dans tous nos points de vente",
|
|
"view_dashboard": "Voir mon tableau de bord fidélité",
|
|
"back_to_home": "Retour à l'accueil"
|
|
},
|
|
"already_enrolled_title": "Vous êtes déjà membre !",
|
|
"cross_location_message": "Votre carte est valable dans tous nos points de vente :",
|
|
"single_location_message": "Votre carte est enregistrée chez {store_name}",
|
|
"available_locations": "Utilisez votre carte dans tous nos points de vente :",
|
|
"errors": {
|
|
"load_failed": "Impossible de charger les informations du programme",
|
|
"email_exists": "Cet e-mail est déjà inscrit dans notre programme de fidélité.",
|
|
"failed": "L'inscription a échoué. Veuillez réessayer."
|
|
}
|
|
},
|
|
"common": {
|
|
"active": "Actif",
|
|
"all_stores": "Tous les magasins",
|
|
"at": "à",
|
|
"back": "Retour",
|
|
"cancel": "Annuler",
|
|
"confirm": "Confirmer",
|
|
"continue": "Continuer",
|
|
"delete": "Supprimer",
|
|
"disabled": "Désactivé",
|
|
"edit": "Modifier",
|
|
"enabled": "Activé",
|
|
"inactive": "Inactif",
|
|
"loading": "Chargement...",
|
|
"minutes": "minutes",
|
|
"never": "Jamais",
|
|
"no": "Non",
|
|
"none": "Aucun",
|
|
"or": "ou",
|
|
"points": "points",
|
|
"program_not_setup": "Programme fidélité non configuré",
|
|
"program_not_setup_desc": "Veuillez configurer un programme fidélité",
|
|
"refresh": "Actualiser",
|
|
"save": "Enregistrer",
|
|
"saving": "Enregistrement...",
|
|
"total": "TOTAL",
|
|
"view": "Voir",
|
|
"yes": "Oui",
|
|
"contact_admin_setup": "Contactez votre administrateur pour configurer le programme fidélité",
|
|
"setup_program": "Configurer le programme",
|
|
"unknown": "Inconnu"
|
|
},
|
|
"transactions": {
|
|
"card_created": "Inscrit",
|
|
"welcome_bonus": "Bonus de bienvenue",
|
|
"stamp_earned": "Tampon obtenu",
|
|
"stamp_redeemed": "Tampon échangé",
|
|
"stamp_voided": "Tampon annulé",
|
|
"stamp_adjustment": "Tampon ajusté",
|
|
"points_earned": "Points gagnés",
|
|
"points_redeemed": "Points échangés",
|
|
"points_voided": "Points annulés",
|
|
"points_adjustment": "Points ajustés",
|
|
"points_expired": "Points expirés",
|
|
"card_deactivated": "Désactivé",
|
|
"reward_redeemed": "Récompense échangée",
|
|
"welcome_bonus_note": "Bonus de bienvenue à l'inscription"
|
|
},
|
|
"shared": {
|
|
"analytics": {
|
|
"total_programs": "Programmes au total",
|
|
"total_members": "Membres au total",
|
|
"active_members": "Membres actifs",
|
|
"points_issued_30d": "Points émis (30j)",
|
|
"transactions_30d": "Transactions (30j)",
|
|
"x_active": "{count} actifs",
|
|
"points_overview": "Aperçu des points",
|
|
"points_issued_vs_redeemed": "Points émis vs échangés (30j)",
|
|
"issued": "Émis :",
|
|
"redeemed": "Échangés :",
|
|
"redemption_rate": "Taux d'échange",
|
|
"outstanding_balance": "Solde restant",
|
|
"member_activity": "Activité des membres",
|
|
"active_members_30d": "Membres actifs (30j)",
|
|
"new_this_month": "Nouveaux ce mois",
|
|
"merchants_with_programs": "Commerçants avec programmes",
|
|
"avg_points_per_member": "Moy. points par membre",
|
|
"all_time_statistics": "Statistiques globales",
|
|
"total_points_issued": "Total points émis",
|
|
"total_points_redeemed": "Total points échangés",
|
|
"points_redeemed_30d": "Points échangés (30j)",
|
|
"outstanding_liability": "Passif en cours",
|
|
"location_breakdown": "Répartition par point de vente",
|
|
"store": "Magasin",
|
|
"enrolled": "Inscrits",
|
|
"points_earned": "Points gagnés",
|
|
"points_redeemed": "Points échangés"
|
|
},
|
|
"program_view": {
|
|
"program_configuration": "Configuration du programme",
|
|
"program_name": "Nom du programme",
|
|
"card_name": "Nom de la carte",
|
|
"stamps_configuration": "Configuration des tampons",
|
|
"stamps_target": "Objectif de tampons",
|
|
"reward_description": "Description de la récompense",
|
|
"reward_value": "Valeur de la récompense",
|
|
"points_configuration": "Configuration des points",
|
|
"points_per_eur": "Points par EUR",
|
|
"welcome_bonus": "Bonus de bienvenue",
|
|
"x_points": "{count} points",
|
|
"minimum_redemption": "Échange minimum",
|
|
"minimum_purchase": "Achat minimum",
|
|
"points_expiration": "Expiration des points",
|
|
"x_days_inactivity": "{days} jours d'inactivité",
|
|
"redemption_rewards": "Récompenses d'échange",
|
|
"reward": "Récompense",
|
|
"points_required": "Points requis",
|
|
"description": "Description",
|
|
"anti_fraud": "Anti-fraude",
|
|
"cooldown": "Temps d'attente",
|
|
"x_minutes": "{count} minutes",
|
|
"max_daily_stamps": "Tampons max par jour",
|
|
"staff_pin_required": "PIN personnel requis",
|
|
"branding": "Image de marque",
|
|
"primary_color": "Couleur principale",
|
|
"secondary_color": "Couleur secondaire",
|
|
"logo_url": "URL du logo",
|
|
"hero_image_url": "URL de l'image principale",
|
|
"terms_privacy": "Conditions & Confidentialité",
|
|
"terms_conditions": "Conditions Générales",
|
|
"privacy_policy_url": "URL politique de confidentialité"
|
|
},
|
|
"cards": {
|
|
"total_members": "Membres totaux",
|
|
"active_30d": "Actifs (30j)",
|
|
"new_this_month": "Nouveaux ce mois",
|
|
"total_points_balance": "Solde total des points",
|
|
"search_placeholder": "Rechercher par nom, email, téléphone ou numéro de carte...",
|
|
"all_status": "Tous les statuts",
|
|
"all_stores": "Tous les magasins",
|
|
"col_member": "Membre",
|
|
"col_card_number": "Numéro de carte",
|
|
"col_points_balance": "Solde de points",
|
|
"col_last_activity": "Dernière activité",
|
|
"col_status": "Statut",
|
|
"col_actions": "Actions",
|
|
"no_members": "Aucun membre trouvé",
|
|
"adjust_search": "Essayez de modifier vos critères de recherche"
|
|
},
|
|
"card_detail": {
|
|
"title": "Détail de la carte",
|
|
"loading": "Chargement des détails...",
|
|
"error_loading": "Erreur lors du chargement",
|
|
"points_balance": "Solde de points",
|
|
"total_earned": "Total gagné",
|
|
"total_redeemed": "Total échangé",
|
|
"member_since": "Membre depuis",
|
|
"customer_information": "Informations client",
|
|
"name": "Nom",
|
|
"email": "E-mail",
|
|
"phone": "Téléphone",
|
|
"birthday": "Anniversaire",
|
|
"card_details": "Détails de la carte",
|
|
"card_number": "Numéro de carte",
|
|
"status": "Statut",
|
|
"last_activity": "Dernière activité",
|
|
"enrolled_at": "Inscrit à",
|
|
"transaction_history": "Historique des transactions",
|
|
"col_date": "Date",
|
|
"col_type": "Type",
|
|
"col_points": "Points",
|
|
"col_location": "Emplacement",
|
|
"col_notes": "Notes",
|
|
"no_transactions": "Aucune transaction trouvée"
|
|
},
|
|
"transactions": {
|
|
"title": "Transactions",
|
|
"subtitle": "Voir toutes les transactions",
|
|
"adjust_filters": "Essayez de modifier vos filtres",
|
|
"loading": "Chargement des transactions...",
|
|
"error_loading": "Erreur lors du chargement",
|
|
"search_placeholder": "Rechercher des transactions...",
|
|
"all_types": "Tous les types",
|
|
"all_stores": "Tous les magasins",
|
|
"col_date": "Date",
|
|
"col_customer": "Client",
|
|
"col_type": "Type",
|
|
"col_points": "Points",
|
|
"col_location": "Emplacement",
|
|
"col_notes": "Notes",
|
|
"no_transactions": "Aucune transaction trouvée",
|
|
"type_adjust": "Ajuster",
|
|
"type_earn": "Gagner",
|
|
"type_expire": "Expirer",
|
|
"type_redeem": "Échanger"
|
|
},
|
|
"pins": {
|
|
"title": "PINs du personnel",
|
|
"subtitle": "Gérer les PINs d'authentification",
|
|
"loading": "Chargement des PINs...",
|
|
"error_loading": "Erreur lors du chargement",
|
|
"total_pins": "Total PINs",
|
|
"active_pins": "Actifs",
|
|
"locked_pins": "Verrouillés",
|
|
"all_stores": "Tous les magasins",
|
|
"all_status": "Tous les statuts",
|
|
"status_active": "Actif",
|
|
"status_inactive": "Inactif",
|
|
"status_locked": "Verrouillé",
|
|
"col_name": "Nom",
|
|
"col_staff_id": "ID employé",
|
|
"col_store": "Magasin",
|
|
"col_status": "Statut",
|
|
"col_locked": "Verrouillé",
|
|
"col_last_used": "Dernière utilisation",
|
|
"col_actions": "Actions",
|
|
"no_pins": "Aucun PIN trouvé",
|
|
"create_pin": "Créer un PIN",
|
|
"edit_pin": "Modifier le PIN",
|
|
"delete_pin": "Supprimer le PIN",
|
|
"unlock_pin": "Déverrouiller",
|
|
"confirm_delete": "Êtes-vous sûr de vouloir supprimer ce PIN ?",
|
|
"pin_name": "Nom de l'employé",
|
|
"pin_staff_id": "ID employé (optionnel)",
|
|
"pin_code": "Code PIN",
|
|
"pin_code_hint": "PIN à 4-6 chiffres",
|
|
"pin_edit_hint": "Laisser vide pour garder le PIN actuel",
|
|
"pin_edit_placeholder": "Nouveau PIN (optionnel)",
|
|
"pin_store": "Magasin",
|
|
"select_store": "Sélectionner un magasin",
|
|
"pin_created": "PIN créé avec succès",
|
|
"pin_updated": "PIN modifié avec succès",
|
|
"pin_deleted": "PIN supprimé avec succès",
|
|
"pin_unlocked": "PIN déverrouillé avec succès",
|
|
"save": "Enregistrer",
|
|
"cancel": "Annuler",
|
|
"read_only_notice": "Les PINs sont en lecture seule en mode admin",
|
|
"save_changes": "Enregistrer",
|
|
"unlock": "Déverrouiller",
|
|
"no_staff_found": "Aucun membre du personnel trouvé"
|
|
},
|
|
"program_form": {
|
|
"program_type": "Type de programme",
|
|
"points_type_desc": "Gagner des points par EUR dépensé",
|
|
"stamps_type_desc": "Collecter N tampons, obtenir une récompense",
|
|
"hybrid_type_desc": "Tampons et points combinés",
|
|
"stamps_configuration": "Configuration des tampons",
|
|
"stamps_target": "Objectif de tampons",
|
|
"stamps_target_help": "Nombre de tampons nécessaires pour la récompense",
|
|
"reward_description": "Description de la récompense",
|
|
"reward_value_cents": "Valeur de la récompense (centimes)",
|
|
"points_configuration": "Configuration des points",
|
|
"points_per_eur": "Points par EUR dépensé",
|
|
"eur_equals_points": "1 EUR = {points} point(s)",
|
|
"welcome_bonus_points": "Points bonus de bienvenue",
|
|
"welcome_bonus_help": "Points bonus attribués à l'inscription",
|
|
"minimum_redemption_points": "Points minimum d'échange",
|
|
"minimum_purchase_cents": "Achat minimum (centimes)",
|
|
"minimum_purchase_help": "Montant minimum d'achat pour gagner des points (0 = pas de minimum)",
|
|
"points_expiration_days": "Expiration des points (jours)",
|
|
"points_expiration_help": "Jours d'inactivité avant expiration des points (0 = jamais)",
|
|
"redemption_rewards": "Récompenses d'échange",
|
|
"add_reward": "Ajouter une récompense",
|
|
"no_rewards_configured": "Aucune récompense configurée. Ajoutez une récompense pour permettre aux clients d'échanger des points.",
|
|
"reward_name": "Nom de la récompense",
|
|
"points_required": "Points requis",
|
|
"description": "Description",
|
|
"anti_fraud_settings": "Paramètres anti-fraude",
|
|
"cooldown_minutes": "Temps d'attente (minutes)",
|
|
"cooldown_help": "Temps entre les tampons d'une même carte",
|
|
"max_daily_stamps": "Tampons max par jour",
|
|
"max_daily_stamps_help": "Maximum de tampons par carte par jour",
|
|
"require_staff_pin": "Exiger le PIN du personnel",
|
|
"branding": "Image de marque",
|
|
"card_name": "Nom de la carte",
|
|
"primary_color": "Couleur principale",
|
|
"secondary_color": "Couleur secondaire",
|
|
"logo_url": "URL du logo",
|
|
"logo_url_help": "Requis pour l'intégration Google Wallet. Doit être une URL d'image publique (PNG ou JPG).",
|
|
"hero_image_url": "URL de l'image principale",
|
|
"terms_privacy": "Conditions & Confidentialité",
|
|
"terms_cms_page": "Slug de page CMS",
|
|
"terms_cms_page_hint": "Entrez un slug de page CMS (ex. conditions-generales) pour afficher les CGV complètes depuis le module CMS",
|
|
"terms_conditions": "Conditions Générales (secours)",
|
|
"terms_fallback_hint": "Utilisé quand aucun slug CMS n'est défini",
|
|
"terms_text_hint": "Texte de secours. Ce champ OU le slug CMS ci-dessus est requis afin que les clients puissent lire les conditions sur la page d'inscription.",
|
|
"terms_required_warning": "Les clients doivent pouvoir lire vos conditions avant de les accepter. Remplissez soit le slug de page CMS ci-dessus, soit le texte de secours ci-dessous — tant que ce n'est pas fait, le lien « Conditions Générales » sur la page d'inscription du storefront n'est pas cliquable.",
|
|
"terms_required_tooltip": "Remplissez le slug CMS ou le texte des conditions avant d'enregistrer.",
|
|
"privacy_policy_url": "URL politique de confidentialité",
|
|
"program_status": "Statut du programme",
|
|
"program_active": "Programme actif",
|
|
"program_active_help": "Désactivé, les clients ne peuvent ni gagner ni échanger",
|
|
"delete_program": "Supprimer le programme",
|
|
"create_program": "Créer le programme",
|
|
"save_changes": "Enregistrer les modifications"
|
|
}
|
|
},
|
|
"admin": {
|
|
"programs": {
|
|
"title": "Programmes de fidélité",
|
|
"create_program": "Créer un programme",
|
|
"loading": "Chargement des programmes de fidélité...",
|
|
"error_loading": "Erreur de chargement des programmes de fidélité",
|
|
"total_programs": "Programmes au total",
|
|
"active": "Actifs",
|
|
"total_members": "Membres au total",
|
|
"transactions_30d": "Transactions (30j)",
|
|
"search_placeholder": "Rechercher par nom de commerçant...",
|
|
"all_status": "Tous les statuts",
|
|
"table_merchant": "Commerçant",
|
|
"table_program_type": "Type de programme",
|
|
"table_members": "Membres",
|
|
"table_points_issued": "Points émis",
|
|
"table_status": "Statut",
|
|
"table_created": "Créé",
|
|
"table_actions": "Actions",
|
|
"no_programs": "Aucun programme de fidélité trouvé",
|
|
"adjust_filters": "Essayez d'ajuster votre recherche ou vos filtres",
|
|
"no_merchants_yet": "Aucun commerçant n'a encore créé de programme de fidélité",
|
|
"x_active": "({count} actifs)",
|
|
"x_redeemed": "{count} échangés",
|
|
"pt_per_eur": "pt/EUR",
|
|
"delete_title": "Supprimer le programme de fidélité",
|
|
"delete_message": "Supprimer le programme de fidélité de \"{name}\" ? Cela supprimera définitivement toutes les données associées (cartes, transactions, récompenses). Cette action est irréversible.",
|
|
"delete_confirm": "Supprimer le programme",
|
|
"create_title": "Créer un programme de fidélité",
|
|
"create_description": "Sélectionnez un commerçant pour créer un programme de fidélité.",
|
|
"search_merchant": "Rechercher un commerçant",
|
|
"type_merchant_name": "Tapez le nom du commerçant...",
|
|
"no_merchants_found": "Aucun commerçant trouvé",
|
|
"existing_program_warning": "Ce commerçant a déjà un programme de fidélité.",
|
|
"view_edit_existing": "Voir / Modifier le programme existant"
|
|
},
|
|
"merchant_detail": {
|
|
"title": "Détails fidélité du commerçant",
|
|
"loading": "Chargement des détails de fidélité...",
|
|
"error_loading": "Erreur de chargement de la fidélité du commerçant",
|
|
"program_active": "Programme de fidélité actif",
|
|
"no_program_subtitle": "Aucun programme de fidélité",
|
|
"quick_actions": "Actions rapides",
|
|
"edit_program": "Modifier le programme",
|
|
"admin_policy": "Politique admin",
|
|
"view_merchant": "Voir le commerçant",
|
|
"total_members": "Membres au total",
|
|
"active_30d": "Actifs (30j)",
|
|
"points_issued_30d": "Points émis (30j)",
|
|
"points_redeemed_30d": "Points échangés (30j)",
|
|
"no_program": "Aucun programme de fidélité",
|
|
"no_program_desc": "Ce commerçant n'a pas encore configuré de programme de fidélité.",
|
|
"create_program": "Créer un programme",
|
|
"delete_title": "Supprimer le programme de fidélité",
|
|
"delete_message": "Cela supprimera définitivement le programme de fidélité et toutes les données associées. Cette action est irréversible.",
|
|
"delete_confirm": "Supprimer le programme",
|
|
"location_breakdown": "Répartition par point de vente",
|
|
"table_location": "Point de vente",
|
|
"table_enrolled": "Inscrits",
|
|
"table_points_earned": "Points gagnés",
|
|
"table_points_redeemed": "Points échangés",
|
|
"table_transactions_30d": "Transactions (30j)",
|
|
"admin_policy_settings": "Paramètres de politique admin",
|
|
"staff_pin_policy": "Politique PIN du personnel",
|
|
"self_enrollment": "Auto-inscription",
|
|
"cross_location_redemption": "Échange inter-points de vente",
|
|
"allowed": "Autorisé",
|
|
"disabled": "Désactivé",
|
|
"modify_policy": "Modifier la politique admin",
|
|
"view_cards": "Voir les cartes",
|
|
"view_transactions": "Voir les transactions",
|
|
"view_pins": "Voir les PINs"
|
|
},
|
|
"merchant_cards": {
|
|
"title": "Cartes du commerçant",
|
|
"subtitle": "Voir les cartes de ce commerçant",
|
|
"loading": "Chargement des cartes...",
|
|
"error_loading": "Erreur lors du chargement"
|
|
},
|
|
"merchant_card_detail": {
|
|
"title": "Détail de la carte",
|
|
"error_loading": "Erreur lors du chargement",
|
|
"loading": "Chargement des détails..."
|
|
},
|
|
"merchant_transactions": {
|
|
"title": "Transactions du commerçant",
|
|
"subtitle": "Voir toutes les transactions de ce commerçant",
|
|
"loading": "Chargement des transactions...",
|
|
"error_loading": "Erreur lors du chargement"
|
|
},
|
|
"merchant_pins": {
|
|
"title": "PINs du commerçant",
|
|
"subtitle": "Voir les PINs de ce commerçant (lecture seule)",
|
|
"loading": "Chargement des PINs...",
|
|
"error_loading": "Erreur lors du chargement"
|
|
},
|
|
"merchant_settings": {
|
|
"title": "Paramètres de fidélité du commerçant",
|
|
"loading": "Chargement des paramètres...",
|
|
"error_loading": "Erreur de chargement des paramètres",
|
|
"admin_controlled": "Paramètres contrôlés par l'admin pour le programme de fidélité de ce commerçant",
|
|
"staff_pin_policy": "Politique PIN du personnel",
|
|
"staff_pin_description": "Contrôlez si les membres du personnel doivent saisir un PIN pour traiter les transactions de fidélité.",
|
|
"required": "Obligatoire",
|
|
"required_desc": "Le personnel doit saisir son PIN pour chaque transaction. Recommandé pour la sécurité.",
|
|
"optional": "Facultatif",
|
|
"optional_desc": "Les magasins peuvent choisir d'exiger ou non les PINs.",
|
|
"pin_disabled": "Désactivé",
|
|
"pin_disabled_desc": "Les PINs du personnel ne sont pas utilisés. Tout membre du personnel peut traiter les transactions.",
|
|
"pin_lockout_settings": "Paramètres de verrouillage PIN",
|
|
"max_failed_attempts": "Tentatives échouées max",
|
|
"max_failed_attempts_help": "Nombre de tentatives erronées avant verrouillage (3-10)",
|
|
"lockout_duration": "Durée de verrouillage (minutes)",
|
|
"lockout_duration_help": "Durée du verrouillage après échecs (5-120 minutes)",
|
|
"enrollment_settings": "Paramètres d'inscription",
|
|
"allow_self_enrollment": "Autoriser l'auto-inscription",
|
|
"self_enrollment_desc": "Les clients peuvent s'inscrire via QR code sans aide du personnel",
|
|
"transaction_settings": "Paramètres de transaction",
|
|
"allow_cross_location": "Autoriser l'échange inter-points de vente",
|
|
"cross_location_desc": "Les clients peuvent échanger des points dans tous les points de vente du commerçant",
|
|
"allow_void": "Autoriser les annulations",
|
|
"void_desc": "Le personnel peut annuler des points/tampons pour les retours",
|
|
"save_settings": "Enregistrer les paramètres"
|
|
},
|
|
"analytics": {
|
|
"title": "Analytique fidélité",
|
|
"subtitle": "Statistiques de fidélité à l'échelle de la plateforme",
|
|
"loading": "Chargement des analytiques...",
|
|
"error_loading": "Erreur de chargement des analytiques",
|
|
"filter_by_merchant": "Filtrer par commerçant",
|
|
"search_merchants_placeholder": "Rechercher des commerçants par nom...",
|
|
"showing_stats_for": "Statistiques pour :",
|
|
"wallet_status": "Statut de l'intégration Wallet",
|
|
"google_wallet": "Google Wallet",
|
|
"apple_wallet": "Apple Wallet",
|
|
"connected": "Connecté",
|
|
"error": "Erreur",
|
|
"not_configured": "Non configuré",
|
|
"issuer_id": "ID émetteur",
|
|
"project": "Projet",
|
|
"wallet_objects": "Objets Wallet",
|
|
"loyalty_classes": "Classes de fidélité",
|
|
"pass_type_id": "ID type de pass",
|
|
"team_id": "ID équipe",
|
|
"active_passes": "Pass actifs",
|
|
"quick_actions": "Actions rapides",
|
|
"view_all_programs": "Voir tous les programmes",
|
|
"manage_merchants": "Gérer les commerçants"
|
|
},
|
|
"program_edit": {
|
|
"title": "Configuration du programme",
|
|
"loading": "Chargement de la configuration...",
|
|
"error_loading": "Erreur de chargement de la configuration du programme",
|
|
"create_subtitle": "Créer un programme de fidélité pour ce commerçant",
|
|
"edit_subtitle": "Modifier la configuration du programme",
|
|
"delete_title": "Supprimer le programme de fidélité",
|
|
"delete_message": "Cela supprimera définitivement le programme de fidélité et toutes les données associées (cartes, transactions, récompenses). Cette action est irréversible.",
|
|
"delete_confirm": "Supprimer le programme"
|
|
}
|
|
},
|
|
"merchant": {
|
|
"program": {
|
|
"title": "Programme de fidélité",
|
|
"subtitle": "Configuration de votre programme de fidélité.",
|
|
"edit_program": "Modifier le programme",
|
|
"no_program": "Aucun programme de fidélité",
|
|
"no_program_desc": "Votre programme de fidélité n'a pas encore été configuré. Créez-en un pour commencer à récompenser vos clients.",
|
|
"create_program": "Créer un programme"
|
|
},
|
|
"program_edit": {
|
|
"title": "Paramètres de fidélité",
|
|
"page_title": "Paramètres du programme de fidélité",
|
|
"subtitle": "Configurez votre programme de fidélité",
|
|
"loading": "Chargement des paramètres...",
|
|
"error_loading": "Erreur de chargement des paramètres",
|
|
"delete_title": "Supprimer le programme de fidélité",
|
|
"delete_message": "Cela supprimera définitivement votre programme de fidélité et toutes les données associées (cartes, transactions, récompenses). Cette action est irréversible.",
|
|
"delete_confirm": "Supprimer le programme"
|
|
},
|
|
"cards": {
|
|
"title": "Cartes clients",
|
|
"subtitle": "Voir et gérer les membres fidélité sur tous les sites",
|
|
"error_loading": "Erreur lors du chargement",
|
|
"loading": "Chargement des cartes..."
|
|
},
|
|
"card_detail": {
|
|
"title": "Détail de la carte",
|
|
"card_label": "Carte",
|
|
"error_loading": "Erreur lors du chargement",
|
|
"loading": "Chargement des détails..."
|
|
},
|
|
"transactions": {
|
|
"title": "Transactions",
|
|
"subtitle": "Voir toutes les transactions sur tous les sites",
|
|
"error_loading": "Erreur lors du chargement",
|
|
"loading": "Chargement des transactions..."
|
|
},
|
|
"pins": {
|
|
"title": "PINs du personnel",
|
|
"subtitle": "Gérer les PINs sur tous les sites",
|
|
"error_loading": "Erreur lors du chargement",
|
|
"loading": "Chargement des PINs..."
|
|
},
|
|
"settings": {
|
|
"title": "Paramètres fidélité",
|
|
"subtitle": "Voir les paramètres du programme",
|
|
"admin_controlled": "Ces paramètres sont gérés par l'administrateur",
|
|
"error_loading": "Erreur lors du chargement",
|
|
"loading": "Chargement des paramètres...",
|
|
"lockout_attempts": "Tentatives avant verrouillage",
|
|
"lockout_minutes": "Durée de verrouillage (min)",
|
|
"permissions": "Inscription et permissions",
|
|
"pin_policy": "Politique PIN",
|
|
"staff_pin_policy": "Politique PIN personnel",
|
|
"self_enrollment": "Auto-inscription",
|
|
"cross_location": "Échange multi-sites",
|
|
"void_transactions": "Autoriser les annulations",
|
|
"enabled": "Activé",
|
|
"disabled": "Désactivé",
|
|
"required": "Obligatoire",
|
|
"optional": "Optionnel"
|
|
},
|
|
"analytics": {
|
|
"title": "Analytique fidélité",
|
|
"subtitle": "Statistiques de fidélité pour tous vos magasins",
|
|
"loading": "Chargement des analytiques...",
|
|
"error_loading": "Erreur de chargement des analytiques",
|
|
"no_program": "Aucun programme de fidélité",
|
|
"no_program_desc": "Configurez un programme de fidélité pour voir les analytiques ici.",
|
|
"create_program": "Créer un programme",
|
|
"quick_actions": "Actions rapides",
|
|
"view_program": "Voir le programme",
|
|
"edit_program": "Modifier le programme"
|
|
}
|
|
},
|
|
"store": {
|
|
"terminal": {
|
|
"title": "Terminal de fidélité",
|
|
"subtitle": "Traiter les transactions de fidélité",
|
|
"members": "Membres",
|
|
"analytics": "Analytique",
|
|
"loading": "Chargement du terminal de fidélité...",
|
|
"error_loading": "Erreur de chargement du terminal",
|
|
"not_setup": "Programme de fidélité non configuré",
|
|
"not_setup_desc": "Votre commerçant n'a pas encore configuré de programme de fidélité.",
|
|
"setup_program": "Configurer le programme de fidélité",
|
|
"contact_admin": "Contactez votre administrateur pour terminer la configuration.",
|
|
"find_customer": "Trouver un client",
|
|
"search_placeholder": "E-mail, téléphone ou numéro de carte...",
|
|
"looking_up": "Recherche en cours...",
|
|
"look_up_customer": "Rechercher un client",
|
|
"enroll_new_customer": "Inscrire un nouveau client",
|
|
"customer_found": "Client trouvé",
|
|
"points_balance": "Solde de points",
|
|
"stamps": "Tampons",
|
|
"x_more_for_reward": "Encore {count} pour la récompense",
|
|
"ready_to_redeem": "Prêt à échanger !",
|
|
"add_stamp": "Ajouter un tampon",
|
|
"current": "Actuel :",
|
|
"cooldown_active": "Temps d'attente actif",
|
|
"redeem_stamps": "Échanger les tampons",
|
|
"not_enough_stamps": "Pas assez de tampons encore",
|
|
"earn_points": "Gagner des points",
|
|
"purchase_amount": "Montant de l'achat",
|
|
"points_to_award": "Points à attribuer :",
|
|
"award_points": "Attribuer des points",
|
|
"redeem_reward": "Échanger une récompense",
|
|
"select_reward": "Sélectionner une récompense",
|
|
"select_reward_placeholder": "Sélectionner une récompense...",
|
|
"points_after": "Points après :",
|
|
"search_to_process": "Recherchez un client pour traiter une transaction",
|
|
"recent_transactions": "Transactions récentes dans ce point de vente",
|
|
"col_time": "Heure",
|
|
"col_customer": "Client",
|
|
"col_type": "Type",
|
|
"col_points": "Points",
|
|
"col_notes": "Notes",
|
|
"no_recent_transactions": "Aucune transaction récente",
|
|
"enter_staff_pin": "Saisir le PIN du personnel",
|
|
"pin_authorize": "Saisissez votre PIN personnel pour autoriser cette transaction.",
|
|
"clear": "Effacer",
|
|
"processing": "Traitement...",
|
|
"customer_not_found": "Client introuvable. Vous pouvez l'inscrire comme nouveau membre.",
|
|
"error_lookup": "Erreur de recherche du client : {message}",
|
|
"transaction_failed": "Transaction échouée : {message}",
|
|
"stamp_added": "Tampon ajouté !",
|
|
"stamps_redeemed": "Tampons échangés ! Récompense obtenue.",
|
|
"x_points_awarded": "{points} points attribués !",
|
|
"reward_redeemed": "Récompense échangée : {name}",
|
|
"card_label": "Carte",
|
|
"confirm": "Confirmer",
|
|
"pin_authorize_text": "Entrez votre PIN personnel pour autoriser cette transaction",
|
|
"free_item": "Article gratuit",
|
|
"reward_label": "Récompense",
|
|
"search_empty_state": "Recherchez un client pour commencer"
|
|
},
|
|
"cards": {
|
|
"title": "Membres fidélité",
|
|
"subtitle": "Voir et gérer les membres de votre programme de fidélité",
|
|
"enroll_new": "Inscrire",
|
|
"loading": "Chargement des membres...",
|
|
"error_loading": "Erreur de chargement des membres",
|
|
"total_members": "Membres au total",
|
|
"active_30d": "Actifs (30j)",
|
|
"new_this_month": "Nouveaux ce mois",
|
|
"total_points_balance": "Solde total de points",
|
|
"search_placeholder": "Rechercher par nom, e-mail, téléphone ou carte...",
|
|
"all_status": "Tous les statuts",
|
|
"col_member": "Membre",
|
|
"col_card_number": "Numéro de carte",
|
|
"col_points_balance": "Solde de points",
|
|
"col_last_activity": "Dernière activité",
|
|
"col_status": "Statut",
|
|
"col_actions": "Actions",
|
|
"no_members": "Aucun membre trouvé",
|
|
"adjust_search": "Essayez d'ajuster votre recherche",
|
|
"enroll_first": "Inscrivez votre premier client pour commencer"
|
|
},
|
|
"card_detail": {
|
|
"title": "Détails du membre",
|
|
"loading": "Chargement des détails du membre...",
|
|
"error_loading": "Erreur de chargement du membre",
|
|
"points_balance": "Solde de points",
|
|
"total_earned": "Total gagné",
|
|
"total_redeemed": "Total échangé",
|
|
"member_since": "Membre depuis",
|
|
"customer_information": "Informations client",
|
|
"name": "Nom",
|
|
"email": "E-mail",
|
|
"phone": "Téléphone",
|
|
"birthday": "Date de naissance",
|
|
"card_details": "Détails de la carte",
|
|
"card_number": "Numéro de carte",
|
|
"status": "Statut",
|
|
"last_activity": "Dernière activité",
|
|
"enrolled_at": "Inscrit le",
|
|
"transaction_history": "Historique des transactions",
|
|
"col_date": "Date",
|
|
"col_type": "Type",
|
|
"col_points": "Points",
|
|
"col_location": "Point de vente",
|
|
"col_notes": "Notes",
|
|
"no_transactions": "Aucune transaction",
|
|
"card_label": "Carte"
|
|
},
|
|
"enroll": {
|
|
"title": "Inscrire un client",
|
|
"page_title": "Inscrire un nouveau client",
|
|
"subtitle": "Ajouter un nouveau membre à votre programme de fidélité",
|
|
"loading": "Chargement...",
|
|
"error_loading": "Erreur de chargement du formulaire d'inscription",
|
|
"customer_information": "Informations client",
|
|
"first_name": "Prénom",
|
|
"last_name": "Nom",
|
|
"email": "E-mail",
|
|
"phone": "Téléphone",
|
|
"birthday": "Date de naissance",
|
|
"birthday_help": "Pour les récompenses d'anniversaire (facultatif)",
|
|
"communication_preferences": "Préférences de communication",
|
|
"send_emails": "Envoyer des e-mails promotionnels",
|
|
"send_sms": "Envoyer des SMS promotionnels",
|
|
"welcome_bonus": "Bonus de bienvenue",
|
|
"welcome_bonus_desc": "Le client recevra {points} points bonus !",
|
|
"enroll_customer": "Inscrire le client",
|
|
"enrolling": "Inscription...",
|
|
"customer_enrolled": "Client inscrit !",
|
|
"starting_balance": "Solde initial :",
|
|
"x_points": "{count} points",
|
|
"back_to_terminal": "Retour au terminal",
|
|
"enroll_another": "Inscrire un autre",
|
|
"enrollment_failed": "Inscription échouée : {message}",
|
|
"bonus_points": "Points bonus",
|
|
"card_number_label": "Numéro de carte",
|
|
"points": "points"
|
|
},
|
|
"analytics": {
|
|
"title": "Analytique fidélité",
|
|
"subtitle": "Suivez les performances de votre programme de fidélité",
|
|
"loading": "Chargement des analytiques...",
|
|
"error_loading": "Erreur de chargement des analytiques",
|
|
"quick_actions": "Actions rapides",
|
|
"open_terminal": "Ouvrir le terminal",
|
|
"view_members": "Voir les membres",
|
|
"view_program": "Voir le programme"
|
|
},
|
|
"program": {
|
|
"title": "Programme de fidélité",
|
|
"subtitle": "Configuration de votre programme de fidélité",
|
|
"edit_program": "Modifier le programme",
|
|
"loading": "Chargement du programme...",
|
|
"error_loading": "Erreur de chargement du programme",
|
|
"no_program": "Aucun programme de fidélité",
|
|
"no_program_desc": "Votre commerçant n'a pas encore configuré de programme de fidélité.",
|
|
"create_program": "Créer un programme",
|
|
"contact_admin": "Contactez votre administrateur pour configurer un programme de fidélité."
|
|
},
|
|
"pins": {
|
|
"title": "PINs du personnel",
|
|
"subtitle": "Gérer les PINs d'authentification pour ce magasin",
|
|
"loading": "Chargement des PINs...",
|
|
"error_loading": "Erreur lors du chargement des PINs"
|
|
},
|
|
"settings": {
|
|
"title": "Paramètres de fidélité",
|
|
"page_title": "Paramètres du programme de fidélité",
|
|
"subtitle": "Configurez votre programme de fidélité",
|
|
"back_to_program": "Retour au programme",
|
|
"loading": "Chargement des paramètres...",
|
|
"error_loading": "Erreur de chargement des paramètres",
|
|
"access_restricted": "Accès restreint",
|
|
"owner_only": "Seul le propriétaire du commerce peut gérer les paramètres du programme de fidélité.",
|
|
"delete_title": "Supprimer le programme de fidélité",
|
|
"delete_message": "Cela supprimera définitivement le programme de fidélité et toutes les données associées (cartes, transactions, récompenses). Cette action est irréversible.",
|
|
"delete_confirm": "Supprimer le programme",
|
|
"program_created": "Programme créé avec succès",
|
|
"program_updated": "Programme mis à jour avec succès",
|
|
"program_deleted": "Programme de fidélité supprimé",
|
|
"save_failed": "Échec de l'enregistrement : {message}",
|
|
"delete_failed": "Échec de la suppression : {message}",
|
|
"access_restricted_desc": "Seul le propriétaire peut modifier les paramètres",
|
|
"delete_program_confirm": "Supprimer",
|
|
"delete_program_desc": "Cela supprimera définitivement le programme et toutes les données associées",
|
|
"delete_program_title": "Supprimer le programme fidélité ?"
|
|
}
|
|
},
|
|
"storefront": {
|
|
"dashboard": {
|
|
"back_to_account": "Retour au compte",
|
|
"my_loyalty": "Ma fidélité",
|
|
"join_title": "Rejoignez notre programme de récompenses !",
|
|
"join_subtitle": "Gagnez des points à chaque achat et échangez-les contre des récompenses.",
|
|
"join_now": "Rejoindre maintenant",
|
|
"points_balance": "Solde de points",
|
|
"card_number": "Numéro de carte",
|
|
"show_card": "Afficher la carte",
|
|
"total_earned": "Total gagné",
|
|
"total_redeemed": "Total échangé",
|
|
"available_rewards": "Récompenses disponibles",
|
|
"no_rewards_yet": "Aucune récompense disponible pour le moment",
|
|
"ready_to_redeem": "Prêt à échanger",
|
|
"x_more_to_go": "Encore {count}",
|
|
"redeem_hint": "Montrez votre carte au personnel pour échanger des récompenses en magasin.",
|
|
"recent_activity": "Activité récente",
|
|
"view_all": "Tout voir",
|
|
"no_transactions": "Aucune transaction. Faites un achat pour commencer à gagner des points !",
|
|
"earn_redeem_locations": "Points de vente partenaires",
|
|
"your_loyalty_card": "Votre carte de fidélité",
|
|
"show_to_staff": "Montrez ceci au personnel lors d'un achat ou d'un échange de récompense."
|
|
},
|
|
"history": {
|
|
"back_to_loyalty": "Retour à la fidélité",
|
|
"title": "Historique des transactions",
|
|
"subtitle": "Voir toutes vos transactions de points de fidélité",
|
|
"current_balance": "Solde actuel",
|
|
"total_earned": "Total gagné",
|
|
"total_redeemed": "Total échangé",
|
|
"no_transactions": "Aucune transaction",
|
|
"balance": "Solde :",
|
|
"previous": "Précédent",
|
|
"next": "Suivant",
|
|
"page_x_of_y": "Page {page} sur {pages}"
|
|
},
|
|
"account": {
|
|
"loyalty": "Récompenses fidélité"
|
|
}
|
|
},
|
|
"toasts": {
|
|
"program_activated": "Programme activé avec succès",
|
|
"program_deactivated": "Programme désactivé avec succès",
|
|
"activate_failed": "Échec de l'activation du programme : {message}",
|
|
"deactivate_failed": "Échec de la désactivation du programme : {message}",
|
|
"program_deleted": "Programme supprimé avec succès",
|
|
"delete_failed": "Échec de la suppression du programme : {message}",
|
|
"program_created": "Programme créé avec succès",
|
|
"program_updated": "Programme mis à jour avec succès",
|
|
"loyalty_program_created": "Programme de fidélité créé",
|
|
"loyalty_program_deleted": "Programme de fidélité supprimé",
|
|
"settings_saved": "Paramètres enregistrés avec succès",
|
|
"save_failed": "Échec de l'enregistrement : {message}",
|
|
"settings_save_failed": "Échec de l'enregistrement des paramètres : {message}",
|
|
"create_failed": "Échec de la création du programme : {message}",
|
|
"logo_required": "L'URL du logo est requise pour l'intégration wallet.",
|
|
"pin_created": "PIN créé avec succès",
|
|
"pin_updated": "PIN modifié avec succès",
|
|
"pin_deleted": "PIN supprimé avec succès",
|
|
"pin_unlocked": "PIN déverrouillé avec succès",
|
|
"pin_create_error": "Erreur lors de la création du PIN",
|
|
"pin_update_error": "Erreur lors de la modification du PIN",
|
|
"pin_delete_error": "Erreur lors de la suppression du PIN",
|
|
"pin_unlock_error": "Erreur lors du déverrouillage du PIN"
|
|
},
|
|
"terminal_devices": {
|
|
"title": "Terminaux POS",
|
|
"subtitle": "Associez les tablettes POS à chaque magasin. Le QR de configuration n'est affiché qu'une seule fois lors de l'appairage.",
|
|
"admin_subtitle": "Associez des tablettes POS pour le compte de ce marchand.",
|
|
"loading": "Chargement des terminaux...",
|
|
"error_loading": "Échec du chargement des terminaux",
|
|
"no_devices": "Aucun terminal appairé",
|
|
"show_revoked": "Inclure les révoqués",
|
|
"pair_device": "Appairer une tablette",
|
|
"pair_hint": "Un QR de configuration longue durée est généré. La tablette le scanne une seule fois pour se connecter.",
|
|
"pairing_qr": "QR d'appairage de la tablette",
|
|
"qr_warning_title": "Enregistrez ceci maintenant —",
|
|
"qr_warning_body": "ce QR n'est affiché qu'une seule fois. Si vous le fermez avant l'appairage, vous devrez révoquer et appairer à nouveau.",
|
|
"qr_done": "J'ai appairé la tablette",
|
|
"show_payload": "Afficher le contenu brut",
|
|
"label_field": "Nom du terminal",
|
|
"label_placeholder": "ex. Caisse 1",
|
|
"store_field": "Magasin",
|
|
"select_store": "Choisir un magasin...",
|
|
"revoke": "Révoquer",
|
|
"revoke_title": "Révoquer le terminal ?",
|
|
"confirm_revoke": "Révoquer le terminal « {label} » ? Sa tablette cessera de fonctionner immédiatement.",
|
|
"delete_title": "Supprimer le terminal ?",
|
|
"confirm_delete": "Supprimer définitivement le terminal « {label} » ? Cette action est irréversible.",
|
|
"col_label": "Nom",
|
|
"col_store": "Magasin",
|
|
"col_status": "Statut",
|
|
"col_last_seen": "Dernière activité",
|
|
"col_expires": "Expire",
|
|
"col_actions": "Actions",
|
|
"status_active": "Actif",
|
|
"status_revoked": "Révoqué",
|
|
"status_expired": "Expiré",
|
|
"toasts": {
|
|
"paired": "Tablette appairée — montrez le QR à l'appareil",
|
|
"revoked": "Terminal révoqué",
|
|
"deleted": "Terminal supprimé"
|
|
},
|
|
"errors": {
|
|
"store_required": "Veuillez choisir un magasin",
|
|
"pair_failed": "Échec de l'appairage",
|
|
"revoke_failed": "Échec de la révocation",
|
|
"delete_failed": "Échec de la suppression"
|
|
}
|
|
},
|
|
"errors": {
|
|
"card_not_found": "Carte non trouvée"
|
|
}
|
|
}
|