CognxSafeTrack
fix(admin): replace vague Meta hints with direct clickable links in Direct Setup modal
295c327 | { | |
| "common": { | |
| "welcome": "Bienvenue", | |
| "dashboard": "Tableau de Bord", | |
| "clients": "Gestion des Clients", | |
| "analytics": "Analyses", | |
| "settings": "Paramètres", | |
| "logout": "Déconnexion", | |
| "save": "Enregistrer", | |
| "cancel": "Annuler", | |
| "loading": "Chargement...", | |
| "error": "Une erreur est survenue", | |
| "success": "Succès", | |
| "create": "Créer", | |
| "delete": "Supprimer", | |
| "edit": "Modifier", | |
| "search": "Rechercher...", | |
| "actions": "Actions", | |
| "export": "Exporter", | |
| "sync": "Synchroniser", | |
| "send": "Envoyer", | |
| "close": "Fermer", | |
| "confirm": "Confirmer", | |
| "back": "Retour", | |
| "next": "Suivant", | |
| "yes": "Oui", | |
| "no": "Non", | |
| "status": "Statut", | |
| "date": "Date", | |
| "name": "Nom", | |
| "email": "Email", | |
| "phone": "Téléphone", | |
| "day": "Jour", | |
| "none": "Aucun", | |
| "select_org": "Veuillez sélectionner une organisation", | |
| "clear_filter": "Effacer le filtre", | |
| "no_data": "Aucune donnée disponible", | |
| "retry": "Réessayer", | |
| "of": "sur" | |
| }, | |
| "nav": { | |
| "home": "Accueil", | |
| "inbox": "Messagerie", | |
| "campaigns": "Campagnes", | |
| "templates": "Modèles", | |
| "organizations": "Organisations", | |
| "users": "Utilisateurs", | |
| "training": "Training Lab", | |
| "moderation": "Modération", | |
| "b2b": "Clients B2B", | |
| "kb": "Base de Connaissances", | |
| "content": "Formations", | |
| "conversations": "Conversations", | |
| "ai_setup": "Agent IA", | |
| "billing": "Facturation" | |
| }, | |
| "dashboard": { | |
| "title": "Tableau de Bord", | |
| "subtitle": "Statut de votre plateforme en temps réel", | |
| "select_org": "Bienvenue sur EdTech Admin", | |
| "select_org_hint": "Pour commencer, veuillez sélectionner une organisation dans le menu déroulant à gauche.", | |
| "isolation_note": "L'isolation des données garantit que vous ne voyez que les statistiques de l'organisation active.", | |
| "loading": "Analyse des données en cours...", | |
| "no_enrollments": "Aucune inscription", | |
| "recent_enrollments": "Inscriptions récentes", | |
| "export_csv": "Exporter CSV", | |
| "stats": { | |
| "users": "Utilisateurs", | |
| "active": "Actifs", | |
| "completed": "Complétés", | |
| "tracks": "Parcours", | |
| "revenue": "Revenus", | |
| "total_messages": "Messages Totaux", | |
| "active_users": "Utilisateurs Actifs", | |
| "completion_rate": "Taux de Complétion", | |
| "ai_cost": "Estimation Coût IA" | |
| }, | |
| "table": { | |
| "phone": "Téléphone", | |
| "track": "Parcours", | |
| "status": "Statut", | |
| "day": "Jour", | |
| "date": "Date" | |
| } | |
| }, | |
| "analytics": { | |
| "title": "Analyses & Performance", | |
| "export": "Exporter le rapport", | |
| "explain": "Expliquer", | |
| "messages": { | |
| "title": "Volume des Messages", | |
| "inbound": "Entrants", | |
| "outbound": "Sortants" | |
| }, | |
| "completion": { | |
| "title": "Taux de Réussite", | |
| "completed": "Complétés", | |
| "in_progress": "En cours" | |
| }, | |
| "performance": { | |
| "title": "Performance", | |
| "avg_score": "Score moyen des exercices" | |
| }, | |
| "engagement": { | |
| "title": "Engagement", | |
| "avg_days": "Jours de formation en moyenne" | |
| }, | |
| "sql_error": "Erreur lors de l'exécution de la requête", | |
| "sql_example_1": "Combien d'utilisateurs actifs cette semaine ?", | |
| "sql_example_2": "Quels sont les 5 utilisateurs avec le plus de messages ?", | |
| "sql_example_3": "Quel est le taux de complétion moyen ?", | |
| "sql_example_4": "Combien de crédits IA ont été consommés ce mois ?", | |
| "ai_cost_title": "Coût IA par fonctionnalité", | |
| "ai_cost_subtitle": "Données réelles — source : UsageEvent", | |
| "col_feature": "Fonctionnalité", | |
| "col_calls": "Appels", | |
| "col_tokens_in": "Tokens in", | |
| "col_tokens_out": "Tokens out", | |
| "col_cost": "Coût (USD)", | |
| "total": "Total", | |
| "nl_search_title": "Recherche en langage naturel", | |
| "nl_search_subtitle": "Posez une question sur vos données — l'IA génère la requête SQL", | |
| "nl_search_placeholder": "Ex : Quels sont les utilisateurs inactifs depuis 7 jours ?", | |
| "search_btn": "Rechercher", | |
| "view_sql": "Voir SQL", | |
| "no_results": "Aucun résultat" | |
| }, | |
| "users": { | |
| "title": "Gestion des Utilisateurs", | |
| "subtitle": "Tous les apprenants inscrits", | |
| "no_users": "Aucun utilisateur trouvé", | |
| "invite": "Inviter", | |
| "columns": { | |
| "name": "Nom", | |
| "phone": "Téléphone", | |
| "track": "Parcours actif", | |
| "day": "Jour", | |
| "status": "Statut", | |
| "joined": "Inscription" | |
| }, | |
| "confirm_delete": "Supprimer cet utilisateur ? Cette action est réversible côté base de données.", | |
| "delete_success": "Utilisateur supprimé", | |
| "delete_error": "Échec de la suppression", | |
| "handoff_released": "Handoff libéré — l'IA reprend la conversation", | |
| "handoff_none": "Aucun handoff actif pour cet utilisateur", | |
| "handoff_error": "Échec", | |
| "load_error": "Erreur chargement utilisateurs", | |
| "language_column": "Langue", | |
| "sector_column": "Secteur", | |
| "conversation_btn": "Conversation", | |
| "delete_title": "Supprimer l'utilisateur", | |
| "handoff_active": "Handoff actif", | |
| "release_ai": "Libérer l'IA", | |
| "prev": "Précédent" | |
| }, | |
| "contacts": { | |
| "title": "Contacts", | |
| "subtitle": "Gestion de votre base de contacts CRM", | |
| "add": "Ajouter un contact", | |
| "import": "Importer", | |
| "no_contacts": "Aucun contact", | |
| "search_placeholder": "Rechercher un contact...", | |
| "tags_update_error": "Échec de la mise à jour des tags", | |
| "import_success": "Import réussi : {{created}} ajoutés, {{updated}} mis à jour, {{errors}} erreurs.", | |
| "upload_critical_error": "Une erreur critique est survenue lors de l'upload.", | |
| "ai_generation_error": "Échec de la génération IA.", | |
| "generation_error_fallback": "Erreur de génération", | |
| "confirm_delete_one": "Voulez-vous vraiment supprimer ce contact ?", | |
| "delete_error": "Erreur lors de la suppression.", | |
| "confirm_delete_many": "Voulez-vous vraiment supprimer {{count}} contacts ?", | |
| "bulk_delete_success": "Contacts supprimés avec succès.", | |
| "bulk_delete_error": "Erreur lors de la suppression groupée.", | |
| "csv_name": "Nom", | |
| "csv_phone": "Téléphone", | |
| "csv_created": "Créé le", | |
| "message_copied": "Message copié !", | |
| "copied": "Copié !", | |
| "generation_completed": "Génération terminée avec succès" | |
| }, | |
| "settings": { | |
| "title": "Paramètres", | |
| "profile": "Profil de l'organisation", | |
| "branding": "Marque & Couleurs", | |
| "ai_config": "Configuration IA", | |
| "whatsapp_config": "Configuration WhatsApp", | |
| "billing": "Facturation", | |
| "org_name": "Nom de l'organisation", | |
| "primary_color": "Couleur principale", | |
| "logo_url": "URL du logo", | |
| "save_success": "Paramètres enregistrés avec succès.", | |
| "save_error": "Impossible d'enregistrer les paramètres.", | |
| "no_org_selected": "Veuillez sélectionner une organisation.", | |
| "advanced_config": "Configuration avancée", | |
| "developers_badge": "Développeurs", | |
| "flow_config_desc": "Ce champ contient la configuration JSON du flux pédagogique. Ne le modifiez que si vous savez ce que vous faites.", | |
| "wa_account": "Compte WhatsApp", | |
| "wa_token": "Token système", | |
| "not_configured": "Non configuré", | |
| "token_absent": "Absent", | |
| "token_expired": "Expiré", | |
| "token_valid": "Valide", | |
| "token_present": "Présent", | |
| "token_expired_alert": "Votre token WhatsApp est invalide ou expiré. Les messages ne peuvent plus être envoyés. Rendez-vous dans Meta Business Manager → Utilisateurs système pour générer un nouveau token, puis mettez à jour votre organisation.", | |
| "api_keys_title": "Clés API Intelligence", | |
| "api_keys_locked": "Disponible à partir du plan SCALE. En ajoutant vos propres clés OpenAI ou Google, vous utilisez votre propre quota IA — sans limite liée à votre plan Xamlé.", | |
| "api_keys_unlocked": "Vos clés sont chiffrées et stockées de façon sécurisée. Elles remplacent les clés partagées de la plateforme — votre consommation IA n'est alors plus décomptée de votre solde de crédits.", | |
| "wa_connect_success": "WhatsApp connecté avec succès ✅", | |
| "wa_connect_error": "Échec de la connexion WhatsApp. Vérifie le token et le WABA ID.", | |
| "mode_edtech": "EdTech", | |
| "mode_webhook": "Webhook", | |
| "mode_ai_agent": "Agent IA", | |
| "mode_pedagogy": "Pédagogie", | |
| "mode_customer_service": "Support Client", | |
| "mode_crm_marketing": "CRM & Campagnes", | |
| "wa_cancel": "Annuler", | |
| "wa_reconfigure": "🔄 Reconfigurer", | |
| "wa_connect_btn": "🔗 Connecter", | |
| "wa_connecting": "Connexion...", | |
| "wa_connect_submit": "Connecter WhatsApp" | |
| }, | |
| "auth": { | |
| "org_id": "ID Organisation", | |
| "email": "Email", | |
| "password": "Mot de passe", | |
| "login_subtitle_edtech": "Connectez-vous à votre espace EdTech", | |
| "login_subtitle_admin": "Espace administrateur — accès restreint", | |
| "login_button": "Se connecter", | |
| "login_loading": "Connexion...", | |
| "org_id_required": "L'identifiant d'organisation est requis.", | |
| "powered_by": "Propulsé par Xamlé Studio", | |
| "forgot_password": "Mot de passe oublié ?", | |
| "reset_title": "Mot de passe oublié", | |
| "reset_sent_title": "Email envoyé", | |
| "reset_sent_subtitle": "Vérifiez votre boîte mail et cliquez sur le lien de réinitialisation.", | |
| "reset_new_title": "Nouveau mot de passe", | |
| "reset_success_title": "Mot de passe mis à jour", | |
| "reset_success_subtitle": "Vous pouvez maintenant vous connecter avec votre nouveau mot de passe.", | |
| "reset_email_label": "Adresse email", | |
| "reset_email_placeholder": "votre@email.com", | |
| "reset_send_button": "Envoyer le lien", | |
| "reset_sending": "Envoi...", | |
| "reset_new_password": "Nouveau mot de passe", | |
| "reset_confirm_password": "Confirmer", | |
| "reset_set_button": "Définir le mot de passe", | |
| "reset_setting": "Mise à jour...", | |
| "reset_login_link": "Se connecter", | |
| "reset_back": "Retour à la connexion", | |
| "reset_network_error": "Erreur réseau. Veuillez réessayer.", | |
| "reset_password_mismatch": "Les mots de passe ne correspondent pas.", | |
| "reset_password_min_length": "Le mot de passe doit contenir au moins 6 caractères.", | |
| "reset_token_expired": "Token invalide ou expiré." | |
| }, | |
| "onboarding": { | |
| "title": "Bienvenue sur Xamlé.Studio", | |
| "subtitle": "Configurons votre école en quelques secondes.", | |
| "step_welcome": "Bienvenue", | |
| "step_legal": "Contrat", | |
| "step_whatsapp": "WhatsApp", | |
| "step_ai": "IA", | |
| "connect_fb": "Se connecter avec Facebook", | |
| "fb_connected": "Compte Facebook connecté !", | |
| "setup_waba": "Configuration de votre compte WhatsApp Business...", | |
| "cta_launch": "Lancer ma plateforme", | |
| "legal_text": "En acceptant, vous acceptez nos conditions de partenaire et les politiques commerciales de Meta.", | |
| "whatsapp_help_title": "Où trouver ces informations ?", | |
| "help_waba_id": "Connectez-vous sur WhatsApp Manager → colonne \"Compte WhatsApp Business\" → numéro à 15 chiffres.", | |
| "help_business_id": "Paramètres Meta → Informations de l'entreprise → \"ID Meta Business\".", | |
| "help_token": "Dans Meta Business Manager → Utilisateurs système → votre utilisateur → Générer un token. Choisissez \"Ne jamais expirer\" pour éviter les interruptions.", | |
| "help_new_to_meta": "Nouveau sur Meta ? Utilisez le bouton \"Se connecter avec Facebook\" ci-dessous — plus simple, tout est automatique.", | |
| "already_configured": "Compte déjà configuré sur Meta", | |
| "fb_account_connected": "Compte Facebook connecté", | |
| "new_account_via_fb": "Nouveau compte — Connexion via Facebook", | |
| "new_account_desc": "Le client configure son numéro directement dans la popup Facebook.", | |
| "token_valid_msg": "Token valide — Meta l'a reconnu", | |
| "token_invalid_msg": "Token invalide ou expiré. Vérifiez dans Meta Business Manager → Utilisateurs système.", | |
| "token_idle_hint": "Générez un token \"Ne jamais expirer\" dans Meta Business Manager → Utilisateurs système.", | |
| "skip_whatsapp": "Configurer WhatsApp plus tard", | |
| "create_org": "Créer l'organisation", | |
| "creating": "Création…", | |
| "step_org": "Organisation", | |
| "step_admin": "Administrateur", | |
| "org_title": "L'organisation", | |
| "org_subtitle": "Nom, identifiant URL et type d'usage.", | |
| "org_name_label": "Nom de l'organisation", | |
| "slug_label": "Identifiant URL (slug)", | |
| "slug_hint": "Auto-généré depuis le nom. Modifiable — lettres minuscules, chiffres et tirets uniquement.", | |
| "mode_label": "Type d'usage", | |
| "mode_edtech_label": "Formation & EdTech", | |
| "mode_edtech_desc": "Parcours éducatifs, exercices, suivi des apprenants via WhatsApp", | |
| "mode_crm_label": "CRM & Campagnes", | |
| "mode_crm_desc": "Gestion de contacts, campagnes broadcast, relances marketing", | |
| "mode_ai_label": "Agent IA", | |
| "mode_ai_desc": "Bot conversationnel IA pour répondre en autonomie 24h/24", | |
| "mode_customer_service_label": "Support Client", | |
| "mode_customer_service_desc": "Gestion des conversations entrantes et escalade vers un agent humain", | |
| "admin_title": "L'administrateur", | |
| "admin_subtitle": "Le premier compte admin de cette organisation.", | |
| "admin_name_label": "Nom complet", | |
| "admin_email_label": "Email", | |
| "admin_pass_label": "Mot de passe initial", | |
| "admin_pass_optional": "optionnel — généré automatiquement si vide", | |
| "admin_pass_placeholder": "Laissez vide pour auto-générer", | |
| "admin_pass_hint": "Un email avec le mot de passe temporaire est envoyé à l'admin après création.", | |
| "wa_title": "Connexion WhatsApp", | |
| "wa_subtitle": "Optionnel — peut être configuré plus tard depuis la fiche organisation.", | |
| "create_error": "Création impossible", | |
| "fb_error": "La connexion Facebook a été annulée ou a échoué." | |
| }, | |
| "crm": { | |
| "stats": { | |
| "total_contacts": "Contacts Totaux", | |
| "messages_sent": "Messages Envoyés", | |
| "open_rate": "Taux d'ouverture", | |
| "conversion": "Conversion" | |
| }, | |
| "assistant": { | |
| "placeholder": "Écrivez votre commande ici...", | |
| "thinking": "L'IA prépare une réponse...", | |
| "contact_preview": "Aperçu de la base", | |
| "campaign_summary": "Résumé de Campagne", | |
| "messages_ready": "messages personnalisés prêts à être envoyés", | |
| "recipient": "DESTINATAIRE", | |
| "more_contacts": "+ {{count}} autres contacts", | |
| "more_messages": "+ {{count}} autres messages", | |
| "send_all": "🚀 Tout envoyer via WhatsApp API", | |
| "powered_by": "Propulsé par Xamlé AI • CRM PaaS Intégré", | |
| "btn_history": "📊 Historique", | |
| "btn_import": "📤 Importer", | |
| "btn_campaign": "✨ Campagne", | |
| "error_mic": "Erreur d'accès au micro.", | |
| "error_bulk": "Erreur lors de l'envoi en masse.", | |
| "import_first": "Veuillez d'abord importer une liste de contacts.", | |
| "campaign_queued": "🚀 Votre campagne a été mise en file d'attente pour une diffusion progressive !", | |
| "error_occurred": "Une erreur technique est survenue.", | |
| "drop_file_note": "Veuillez utiliser le bouton d'importation pour l'instant." | |
| }, | |
| "inbox": { | |
| "title": "Conversations", | |
| "no_messages": "Aucune conversation trouvée.", | |
| "reply_placeholder": "Votre message...", | |
| "send": "Envoyer" | |
| }, | |
| "campaigns": { | |
| "title": "Historique des Campagnes", | |
| "subtitle": "Suivez toutes vos diffusions et leurs performances.", | |
| "new_campaign": "Nouvelle Campagne", | |
| "select_template": "Modèle WhatsApp (Optionnel)", | |
| "choose_approved": "Sélectionner un modèle approuvé...", | |
| "no_approved_templates": "Aucun modèle approuvé. Synchronisez d'abord.", | |
| "use_ai_text": "Utiliser le texte généré par IA", | |
| "status_sent": "Envoyé", | |
| "status_delivered": "Livré", | |
| "status_read": "Lu", | |
| "status_failed": "Échec", | |
| "fetch_failed": "Erreur de chargement des modèles" | |
| } | |
| }, | |
| "whatsapp": { | |
| "templates": { | |
| "title": "Modèles de Messages WhatsApp", | |
| "subtitle": "Gérez et synchronisez vos modèles approuvés par Meta.", | |
| "sync_button": "Synchroniser avec Meta", | |
| "create_button": "Créer un modèle", | |
| "no_templates": "Aucun modèle. Synchronisez ou créez-en un.", | |
| "table": { | |
| "name": "Nom du modèle", | |
| "category": "Catégorie", | |
| "language": "Langue", | |
| "status": "Statut" | |
| }, | |
| "create_modal": { | |
| "title": "Créer un nouveau modèle", | |
| "name_label": "Nom du modèle (minuscules, sans espaces)", | |
| "category_label": "Catégorie", | |
| "language_label": "Langue", | |
| "body_label": "Texte du corps", | |
| "submit": "Soumettre pour approbation", | |
| "success": "Modèle soumis avec succès !", | |
| "error": "Échec de la soumission.", | |
| "meta_approval": "Les templates doivent être approuvés par Meta avant utilisation.", | |
| "ai_generate_label": "Générer avec l'IA", | |
| "ai_placeholder": "Ex: \"message de bienvenue pour un nouvel apprenant\"", | |
| "ai_generating": "Génération…", | |
| "ai_generate": "Générer", | |
| "ai_hint": "L'IA remplit les champs ci-dessous — vous pouvez les modifier avant de soumettre.", | |
| "name_hint": "Lettres minuscules, chiffres et underscores uniquement. Ex : relance_paiement", | |
| "policy_marketing": "Promotionnel — approbation Meta 24–48h. Évitez les mots trop commerciaux.", | |
| "policy_utility": "Transactionnel — approbation plus rapide (quelques heures). Confirmations, rappels, alertes.", | |
| "preview_label": "Aperçu WhatsApp", | |
| "view_preview": "Voir l'aperçu complet" | |
| }, | |
| "status_approved": "Approuvé", | |
| "status_pending": "En attente", | |
| "status_rejected": "Rejeté", | |
| "status_paused": "En pause", | |
| "status_disabled": "Désactivé", | |
| "waba_not_configured": "WhatsApp Business non configuré", | |
| "waba_not_configured_desc": "Cette organisation n'a pas encore de compte WhatsApp Business (WABA) associé. Rendez-vous dans Paramètres → Intégration WhatsApp pour configurer votre numéro et votre WABA ID." | |
| } | |
| }, | |
| "knowledge": { | |
| "title": "Base de Connaissances", | |
| "subtitle": "Gérez les documents de votre IA", | |
| "chunks": "chunks indexés", | |
| "reindex": "Re-indexer", | |
| "reindexing": "Indexation...", | |
| "search_placeholder": "Rechercher dans les chunks...", | |
| "no_documents": "Aucun chunk trouvé.", | |
| "import_hint": "Importez un document dans l'onglet Agent IA pour commencer.", | |
| "confirm_delete": "Supprimer ce chunk de la base de connaissances ?", | |
| "delete_error": "Échec de la suppression", | |
| "reindex_success": "Réindexation lancée avec succès", | |
| "no_kb_url": "Aucune URL de base de connaissances configurée. Ajoutez une URL dans Paramètres.", | |
| "reindex_error": "Échec de la réindexation", | |
| "generate_error": "Échec de la génération", | |
| "generate_from_desc": "Générer depuis une description", | |
| "generate_placeholder": "Décrivez votre activité, vos produits ou services… L'IA génèrera automatiquement une FAQ et l'indexera dans la base de connaissances.", | |
| "generating_btn": "Génération en cours…", | |
| "generate_btn": "Générer", | |
| "generate_success_count": "{{count}} Q&A générées et indexées", | |
| "generate_result_summary": "{{count}} Q&R générées · {{chunks}} chunks indexés" | |
| }, | |
| "training": { | |
| "title": "Training Lab", | |
| "subtitle": "Testez et affinez votre IA pédagogique", | |
| "rules_injected": "Succès ! {{count}} règles ont été injectées dans le dictionnaire.", | |
| "inject_rules": "Injecter ({{count}}) Règles", | |
| "ground_truth_label": "Vérité Terrain (Ground Truth)", | |
| "training_saved": "Entraînement enregistré !" | |
| }, | |
| "ai_setup": { | |
| "title": "Configuration de l'Agent IA", | |
| "subtitle": "Transformez vos documents en intelligence conversationnelle sur WhatsApp.", | |
| "kb_title": "Base de Connaissances", | |
| "kb_desc": "Téléchargez vos catalogues, manuels ou FAQ. L'IA utilisera ces documents pour répondre précisément.", | |
| "upload_idle": "Cliquez pour uploader un document", | |
| "upload_loading": "Upload et indexation en cours...", | |
| "upload_success": "Document indexé avec succès !", | |
| "upload_error": "Erreur lors de l'upload", | |
| "personality_title": "Personnalité de l'Agent", | |
| "role_label": "Rôle principal", | |
| "role_placeholder": "Ex: Conseiller technique pour Agritech", | |
| "tone_label": "Ton et Style", | |
| "save": "Sauvegarder la personnalité", | |
| "saving": "Sauvegarde...", | |
| "saved": "Sauvegardé", | |
| "preview_title": "Preview WhatsApp", | |
| "stats_title": "Statistiques Agent", | |
| "stats_status": "Statut", | |
| "stats_active": "Actif", | |
| "stats_chunks": "Chunks indexés", | |
| "stats_words": "Mots estimés", | |
| "no_kb": "Aucune base de connaissances indexée.", | |
| "notifications_title": "Notifications Automatisées", | |
| "notifications_desc": "Sélectionnez le modèle Meta à utiliser pour les relances automatiques envoyées par l'IA.", | |
| "kb_empty_title": "Votre agent n'est pas encore opérationnel", | |
| "kb_empty_desc": "Uploadez au moins un document (FAQ, catalogue, tarifs…) pour qu'il puisse répondre à vos clients. Sans base de connaissance, l'agent ne saura pas quoi dire.", | |
| "upload_success_detail": "Document analysé — votre agent a été mis à jour !", | |
| "current_file": "Actuel :", | |
| "indexing_title": "Que se passe-t-il maintenant ?", | |
| "indexing_desc": "Votre document est en cours d'analyse. Dans 30 à 60 secondes, votre agent pourra répondre aux questions qu'il couvre. Testez-le dans le panneau à droite.", | |
| "role_hint": "Décrivez en une ou deux phrases ce que fait votre agent et pour qui. Plus c'est précis, meilleures sont les réponses.", | |
| "tone_recommended": "— recommandé pour votre secteur", | |
| "tone_desc_professional": "Formel et précis — idéal pour les services B2B", | |
| "tone_desc_friendly": "Chaleureux et accessible — idéal pour le grand public", | |
| "tone_desc_direct": "Court et factuel — idéal pour le support", | |
| "tone_desc_pedagogical": "Patient et explicatif — idéal pour la formation", | |
| "test_live": "Test en direct", | |
| "test_hint": "Posez une vraie question à votre agent", | |
| "test_empty_with_kb": "Posez une question ci-dessous pour tester votre agent.", | |
| "test_empty_no_kb": "Uploadez un document d'abord, puis testez ici.", | |
| "test_placeholder": "Ex: Quels sont vos tarifs ?", | |
| "test_error": "Désolé, le test est indisponible pour le moment.", | |
| "kb_save_blocked": "Ajoutez d'abord un document à la base de connaissance ci-dessus avant d'activer votre agent.", | |
| "coverage_excellent": "Excellente", | |
| "coverage_good": "Bonne", | |
| "coverage_poor": "Insuffisante", | |
| "coverage_label": "passages analysés — couverture", | |
| "coverage_low_hint": "Ajoutez plus de documents pour améliorer la précision des réponses.", | |
| "no_kb_hint": "Ajoutez vos FAQ, tarifs ou fiches produit pour activer l'agent.", | |
| "stats_status_label": "Statut", | |
| "stats_active_label": "Actif", | |
| "words_covered": "Mots couverts", | |
| "bot_name_label": "Nom de l'agent", | |
| "bot_name_placeholder": "Ex: Kora, Awa, SupportBot...", | |
| "bot_name_hint": "Le prénom que votre agent utilisera pour se présenter sur WhatsApp.", | |
| "tone_professional": "Professionnel", | |
| "tone_friendly": "Amical", | |
| "tone_direct": "Direct", | |
| "tone_pedagogical": "Pédagogue" | |
| }, | |
| "tracks": { | |
| "title": "Parcours", | |
| "new": "Nouveau parcours", | |
| "no_tracks": "Aucun parcours. Créez-en un !", | |
| "confirm_delete": "Supprimer ce parcours ?", | |
| "days": "jours", | |
| "enrolled": "inscrits", | |
| "days_label": "Jours", | |
| "no_days": "Aucun jour créé.", | |
| "edit_day": "Modifier Jour", | |
| "new_day": "Nouveau jour", | |
| "day_number": "Numéro du jour", | |
| "day_title": "Titre", | |
| "lesson_text": "Texte de la leçon", | |
| "lesson_placeholder": "Contenu pédagogique...", | |
| "audio_url": "URL Audio (optionnel)", | |
| "exercise_type": "Type exercice", | |
| "exercise_type_text": "Texte libre", | |
| "exercise_type_audio": "Audio", | |
| "exercise_type_button": "Boutons", | |
| "validation_keyword": "Mot-clé validation", | |
| "exercise_prompt": "Prompt exercice", | |
| "exercise_prompt_placeholder": "Question posée à l'étudiant...", | |
| "no_lesson_text": "Pas de texte", | |
| "form_title_label": "Titre", | |
| "form_description": "Description", | |
| "form_duration": "Durée (jours)", | |
| "form_language": "Langue", | |
| "form_lang_fr": "Français", | |
| "form_lang_wolof": "Wolof", | |
| "form_premium": "Formation Premium (payante)", | |
| "form_price": "Prix (XOF)", | |
| "ai_generate_btn": "Générer avec IA", | |
| "ai_generate_first": "Générer votre premier programme avec IA", | |
| "ai_modal_badge": "Agent Créateur de Contenu", | |
| "ai_modal_title": "Générer un programme", | |
| "ai_modal_subtitle": "L'IA crée tout le curriculum en quelques secondes", | |
| "ai_description_label": "Description du programme", | |
| "ai_description_placeholder": "Ex: Formation de 5 jours sur les bases du marketing digital pour les PME au Sénégal...", | |
| "ai_num_days": "Nombre de jours", | |
| "ai_language": "Langue", | |
| "ai_lang_fr": "Français", | |
| "ai_lang_en": "Anglais", | |
| "ai_lang_wol": "Wolof", | |
| "ai_audience": "Public cible", | |
| "ai_audience_optional": "optionnel", | |
| "ai_audience_placeholder": "Ex: Entrepreneurs débutants, femmes rurales, lycéens...", | |
| "ai_generating": "Génération en cours... (15-30s)", | |
| "ai_generate_submit": "Générer le programme", | |
| "ai_error": "Échec de la génération IA" | |
| }, | |
| "campaigns": { | |
| "title": "Historique des Campagnes", | |
| "no_records": "Aucune campagne trouvée", | |
| "first_hint": "Envoyez votre première campagne depuis la section Contacts.", | |
| "total": "messages envoyés au total", | |
| "clear_filter": "Effacer filtre", | |
| "columns": { | |
| "contact": "Contact", | |
| "message": "Message", | |
| "status": "Statut", | |
| "sent": "Envoyé" | |
| } | |
| }, | |
| "livefeed": { | |
| "title": "Live Feed", | |
| "subtitle": "Surveillance des conversations en temps réel", | |
| "no_messages": "Aucun message pour l'instant.", | |
| "refresh": "Actualiser" | |
| }, | |
| "b2b": { | |
| "title": "Gestion Clients B2B", | |
| "subtitle": "Gérez vos organisations partenaires" | |
| }, | |
| "billing": { | |
| "select_org": "Sélectionnez une organisation pour voir la facturation.", | |
| "error_prefix": "Erreur :", | |
| "page_title": "Mes crédits & consommation", | |
| "period_label": "Période :", | |
| "recharge_btn": "Recharger", | |
| "alert_exhausted_title": "Service suspendu — vos crédits sont épuisés", | |
| "alert_exhausted_desc": "Rechargez pour rétablir les messages IA immédiatement.", | |
| "alert_low_title": "Crédits presque épuisés — {{count}} crédits restants", | |
| "alert_low_desc": "Rechargez avant interruption du service.", | |
| "alert_recharge_btn": "Recharger →", | |
| "wallet_label": "Crédits disponibles", | |
| "wallet_unit": "crédits", | |
| "wallet_fcfa": "≈ {{amount}} FCFA", | |
| "wallet_recharge_btn": "Recharger les crédits", | |
| "wallet_rate": "1 crédit = 1 message IA = 10 FCFA", | |
| "days_remaining": "À ce rythme : encore ~{{days}} jour", | |
| "days_remaining_plural": "À ce rythme : encore ~{{days}} jours", | |
| "ai_messages_title": "Messages IA ce mois", | |
| "ai_cost_label": "≈ {{cost}} FCFA de coût IA", | |
| "ai_quota_warning": "Quota mensuel bientôt atteint ({{pct}}%)", | |
| "wa_messages_title": "Messages WhatsApp ce mois", | |
| "wa_free_note": "✅ Gratuit pour vous — Meta facture directement votre compte WhatsApp Business", | |
| "activity_title": "Activité des 30 derniers jours", | |
| "activity_subtitle": "Chaque barre = nombre de messages IA + WhatsApp ce jour-là", | |
| "activity_empty": "Aucune activité sur cette période", | |
| "breakdown_title": "Où vont vos crédits IA ?", | |
| "breakdown_subtitle": "Répartition de l'utilisation par type de message ce mois", | |
| "transactions_title": "Derniers mouvements de crédits", | |
| "transactions_subtitle": "Les 20 dernières opérations sur votre solde", | |
| "balance_label": "Solde :", | |
| "csv_btn": "CSV", | |
| "csv_col_date": "Date", | |
| "csv_col_type": "Type", | |
| "csv_col_desc": "Description", | |
| "csv_col_amount": "Montant (crédits)", | |
| "csv_col_balance": "Solde après", | |
| "chat_title": "Posez une question sur votre consommation", | |
| "chat_subtitle": "Réponses basées sur vos vraies données · en français", | |
| "chat_placeholder": "Ex: Combien de crédits ai-je utilisé cette semaine ?", | |
| "chat_empty": "Cliquez sur une question ci-dessus ou écrivez la vôtre", | |
| "chat_error": "Désolé, je ne peux pas répondre pour le moment.", | |
| "quick_q1": "Combien de crédits me reste-t-il ?", | |
| "quick_q2": "Dans combien de jours serai-je à court ?", | |
| "quick_q3": "Quelle fonctionnalité consomme le plus ?", | |
| "quick_q4": "Combien j'ai dépensé cette semaine ?", | |
| "feature_LESSON": "📚 Leçons envoyées", | |
| "feature_FEEDBACK": "✅ Feedbacks exercices", | |
| "feature_DEEPDIVE": "🔍 Approfondissements", | |
| "feature_TRANSCRIPTION": "🎤 Transcriptions audio", | |
| "feature_IMAGE_ANALYSIS": "🖼️ Analyses image", | |
| "feature_CAMPAIGN": "📣 Campagnes", | |
| "feature_ONBOARDING": "👋 Accueil nouveaux apprenants", | |
| "feature_OTHER": "⚙️ Autres", | |
| "tx_TOP_UP_MANUAL": "➕ Recharge", | |
| "tx_TOP_UP_PAYMENT": "➕ Recharge", | |
| "tx_ADJUSTMENT": "🔧 Ajustement", | |
| "tx_DEBIT_AI": "🤖 Message IA", | |
| "tx_DEBIT_WHATSAPP": "💬 Message WhatsApp", | |
| "tx_DEBIT_BROADCAST": "📣 Campagne", | |
| "modal_title": "Recharger les crédits", | |
| "modal_rate": "1 crédit = 10 FCFA · utilisé pour chaque message IA", | |
| "modal_popular": "Le plus populaire", | |
| "modal_ai_messages": "≈ {{count}} messages IA", | |
| "modal_footer": "Cliquez sur un pack → WhatsApp s'ouvre → notre équipe finalise la recharge en moins de 2 heures.", | |
| "pack_500_label": "500 crédits", | |
| "pack_2000_label": "2 000 crédits", | |
| "pack_5000_label": "5 000 crédits", | |
| "pack_500_price": "5 000 FCFA", | |
| "pack_2000_price": "18 000 FCFA", | |
| "pack_5000_price": "40 000 FCFA" | |
| }, | |
| "clients": { | |
| "page_title": "Gestion des Clients B2B", | |
| "page_subtitle": "Gérez les organisations partenaires et leurs actifs WhatsApp.", | |
| "new_org_button": "Nouvelle Organisation", | |
| "loading": "Chargement des clients...", | |
| "no_clients_title": "Aucun client", | |
| "no_clients_desc": "Commencez par ajouter votre première organisation partenaire.", | |
| "status": { | |
| "operational": "Opérationnel", | |
| "config_required": "Configuration requise", | |
| "online": "En ligne", | |
| "suspended": "SUSPENDU" | |
| }, | |
| "actions": { | |
| "reconfigure_wa": "Reconfigurer WhatsApp", | |
| "connect_wa": "Connecter WhatsApp (Meta)", | |
| "direct_setup": "Configuration directe", | |
| "personality_studio": "Personality Studio", | |
| "ai_credits": "Crédits IA", | |
| "billing_details": "Détails & Facturation" | |
| }, | |
| "waba": { | |
| "checking": "Vérification…", | |
| "not_connected": "Non connecté", | |
| "approved": "Approuvé", | |
| "pending": "En révision", | |
| "rejected": "Rejeté", | |
| "banned": "Suspendu", | |
| "unknown": "Inconnu", | |
| "refresh_tooltip": "Rafraîchir", | |
| "what_to_do": "Que faire ? →", | |
| "verified": "Vérifiée", | |
| "not_verified": "Non vérifiée", | |
| "verify_link": "Vérifier →" | |
| }, | |
| "tier": { | |
| "tier_50": "50 conv./j", | |
| "tier_250": "250 conv./j", | |
| "tier_1k": "1 000 conv./j", | |
| "tier_10k": "10 000 conv./j", | |
| "tier_100k": "100 000 conv./j", | |
| "unlimited": "Illimité", | |
| "label": "Limite Quotidienne", | |
| "meta_compliance": "Meta Tech Provider Compliance" | |
| }, | |
| "quality": { | |
| "good_label": "Bon", | |
| "good_desc": "Taux de signalement faible. Continue ainsi.", | |
| "medium_label": "Moyen", | |
| "medium_desc": "Des utilisateurs ont signalé vos messages. Évitez les envois non sollicités.", | |
| "risky_label": "Risqué", | |
| "risky_desc": "Risque de blocage Meta. Réduisez le volume et améliorez le contenu.", | |
| "dot_title": "Qualité : " | |
| }, | |
| "tier_modal": { | |
| "title": "Limite de messagerie WhatsApp", | |
| "levels_heading": "Niveaux de capacité Meta", | |
| "current_badge": "Actuel", | |
| "tier_50_desc": "Compte restreint ou en cours d'activation.", | |
| "tier_250_desc": "Niveau de départ pour tout nouveau compte approuvé.", | |
| "tier_1k_desc": "Atteint automatiquement après 1 000 utilisateurs uniques/mois.", | |
| "tier_10k_desc": "Atteint après 10 000 utilisateurs uniques/mois.", | |
| "tier_100k_desc": "Volume élevé — débloqué par Meta sur demande.", | |
| "unlimited_desc": "Aucune limite appliquée par Meta.", | |
| "quality_heading": "Score Qualité du numéro", | |
| "meta_auto_update": "Meta met à jour ces données automatiquement.", | |
| "levels_auto": "Les niveaux progressent sans action de votre part." | |
| }, | |
| "cells": { | |
| "waba_header": "WABA", | |
| "business_header": "Entreprise Meta", | |
| "daily_limit_header": "Limite Quotidienne", | |
| "daily_limit_info_tooltip": "En savoir plus sur les limites Meta" | |
| }, | |
| "create_modal": { | |
| "title": "Nouvelle Organisation", | |
| "company_name_label": "Nom de l'entreprise", | |
| "company_name_placeholder": "Ex: AgroBusiness Senegal", | |
| "slug_label": "Slug (URL)", | |
| "slug_placeholder": "agro-sn", | |
| "use_case_label": "Cas d'usage", | |
| "use_case_education": "🎓 Plateforme Éducative (Modules)", | |
| "use_case_crm": "💬 CRM & Messages WhatsApp (Excel)", | |
| "workstream_label": "Espace de travail (Workstream)", | |
| "mode_crm": "CRM & Marketing", | |
| "mode_pedagogy": "Pédagogie & Formation", | |
| "mode_service": "Service Client IA", | |
| "admin_section": "Administrateur Principal", | |
| "admin_name_label": "Nom complet", | |
| "admin_name_placeholder": "Jean Dupont", | |
| "admin_email_label": "Email", | |
| "admin_email_placeholder": "admin@entreprise.com", | |
| "password_label": "Mot de passe provisoire", | |
| "password_placeholder": "Min. 8 caractères", | |
| "submit": "Créer l'organisation & Admin", | |
| "submitting": "Création...", | |
| "error_create": "Erreur lors de la création de l'organisation. Vérifiez que le slug est unique." | |
| }, | |
| "validation": { | |
| "name_required": "Nom requis", | |
| "slug_required": "Slug requis", | |
| "slug_format": "Lettres minuscules, chiffres et tirets uniquement", | |
| "admin_name_required": "Nom requis", | |
| "email_required": "Email requis", | |
| "email_invalid": "Email invalide", | |
| "password_min": "Minimum 8 caractères" | |
| }, | |
| "billing_modal": { | |
| "title": "Détails & Facturation", | |
| "mode_label": "Mode", | |
| "waba_status_label": "WABA Status", | |
| "daily_limit_label": "Limite quotidienne", | |
| "meta_business_label": "Entreprise Meta", | |
| "waba_id_label": "WABA ID", | |
| "plan_label": "Plan d'abonnement", | |
| "plan_starter": "Starter — 20 000 FCFA/mois", | |
| "plan_growth": "Croissance — 60 000 FCFA/mois", | |
| "plan_scale": "Scale — 150 000 FCFA/mois", | |
| "plan_enterprise": "Enterprise — 500 000+ FCFA/mois", | |
| "apply_plan": "Appliquer le plan", | |
| "plan_updated": "Plan mis à jour !", | |
| "close": "Fermer" | |
| }, | |
| "credits_modal": { | |
| "title": "Crédits IA", | |
| "current_balance": "Solde wallet actuel", | |
| "credits_unit": "crédits", | |
| "add_credits_label": "Crédits à ajouter", | |
| "add_credits_placeholder": "Ex: 500", | |
| "rate_hint": "1 crédit = 10 FCFA · Minimum 1 crédit", | |
| "submit": "Créditer le wallet", | |
| "error": "Erreur lors de l'allocation des crédits" | |
| }, | |
| "personality_modal": { | |
| "title": "Personality Studio", | |
| "subtitle": "Configuration de l'identité IA pour {{orgName}}", | |
| "bot_name_label": "Nom du bot", | |
| "bot_name_placeholder": "ex. XAMLÉ, Coach Sarah...", | |
| "mission_label": "Mission principale", | |
| "mission_placeholder": "Quel est l'objectif principal de cette IA ? ex. Aider les entrepreneurs à maîtriser la finance...", | |
| "tone_label": "Ton & Description de la personnalité", | |
| "tone_placeholder": "ex. Professionnel et encourageant, utilise des métaphores locales, strict sur les concepts mais amical...", | |
| "cancel": "Annuler", | |
| "submit": "Déployer la personnalité", | |
| "success": "Personnalité mise à jour !" | |
| }, | |
| "wa_setup_modal": { | |
| "title": "Configurer WhatsApp", | |
| "already_on_meta": "Compte déjà configuré sur Meta", | |
| "waba_id_label": "WABA ID", | |
| "waba_id_placeholder": "ex: 102938475610293", | |
| "waba_id_hint_link": "Ouvrir WhatsApp Accounts", | |
| "business_id_label": "Business ID Meta", | |
| "business_id_optional": "(optionnel — pour afficher la vérification)", | |
| "business_id_placeholder": "ex: 25855038707486178", | |
| "business_id_hint_link": "Ouvrir Business Info", | |
| "token_label": "Token système", | |
| "token_optional": "(optionnel — utilise le token env par défaut)", | |
| "token_placeholder": "EAAxxxxxxx... — laissez vide si déjà en env var", | |
| "token_hint_link": "Générer depuis System Users", | |
| "phone_number_detected": "Phone Number ID détecté :", | |
| "save_config": "Enregistrer la configuration", | |
| "success": "Configuration WhatsApp mise à jour !", | |
| "new_account_heading": "Nouveau compte — Connexion via Facebook", | |
| "new_account_desc": "Pour un client qui n'a pas encore configuré son compte WhatsApp Business sur votre plateforme.", | |
| "connect_facebook": "Se connecter avec Facebook" | |
| }, | |
| "toast": { | |
| "wa_connected": "WhatsApp connecté avec succès !", | |
| "error_prefix": "Erreur : " | |
| } | |
| }, | |
| "admin_chat": { | |
| "aria_label": "Assistant IA", | |
| "choose_or_write": "Choisissez une question ou écrivez la vôtre", | |
| "input_placeholder": "Votre question...", | |
| "error": "Désolé, je ne peux pas répondre pour le moment. Réessayez dans un instant.", | |
| "billing_title": "Assistant facturation", | |
| "billing_subtitle": "Réponses basées sur vos vraies données", | |
| "billing_q1": "Combien de crédits me reste-t-il ?", | |
| "billing_q2": "Dans combien de jours serai-je à court ?", | |
| "billing_q3": "Quelle fonctionnalité consomme le plus ?", | |
| "billing_q4": "Combien j'ai dépensé cette semaine ?", | |
| "settings_title": "Aide — Configuration", | |
| "settings_subtitle": "J'explique chaque paramètre", | |
| "settings_q1": "Comment connecter mon WhatsApp ?", | |
| "settings_q2": "À quoi sert le mode Agent IA ?", | |
| "settings_q3": "Mes clés API sont-elles sécurisées ?", | |
| "settings_q4": "Comment changer le mode de mon organisation ?", | |
| "templates_title": "Aide — Templates", | |
| "templates_subtitle": "Je vous aide à créer vos messages", | |
| "templates_q1": "Comment créer un bon template ?", | |
| "templates_q2": "À quoi servent les variables dans un template ?", | |
| "templates_q3": "Pourquoi un template peut être refusé ?", | |
| "templates_q4": "Quelle est la différence entre utilitaire et marketing ?", | |
| "agent_title": "Aide — Agent IA", | |
| "agent_subtitle": "Je vous guide pour configurer votre agent", | |
| "agent_q1": "Quel type de document dois-je uploader ?", | |
| "agent_q2": "Comment choisir le bon ton pour mon agent ?", | |
| "agent_q3": "Combien de documents sont suffisants ?", | |
| "agent_q4": "Comment améliorer les réponses de mon agent ?", | |
| "onboarding_title": "Aide — Connexion WhatsApp", | |
| "onboarding_subtitle": "Je vous guide étape par étape", | |
| "onboarding_q1": "Où est-ce que je trouve mon WABA ID ?", | |
| "onboarding_q2": "Quelle est la différence entre les deux options ?", | |
| "onboarding_q3": "Mon token a expiré, que faire ?", | |
| "onboarding_q4": "Je n'ai pas de compte Meta, par où commencer ?", | |
| "general_title": "Assistant Xamlé", | |
| "general_subtitle": "Posez-moi vos questions", | |
| "general_q1": "Comment bien débuter avec Xamlé ?", | |
| "general_q2": "Quelle est la différence entre les modes ?", | |
| "general_q3": "Comment fonctionne la facturation ?", | |
| "general_q4": "Où voir mes statistiques ?" | |
| }, | |
| "super_admin": { | |
| "nav_dashboard": "Dashboard", | |
| "nav_organizations": "Organisations", | |
| "nav_users": "Utilisateurs", | |
| "nav_whatsapp": "Numéros WA", | |
| "nav_templates": "Templates WA", | |
| "nav_profiles": "Profils WA", | |
| "nav_monitoring": "Monitoring", | |
| "nav_billing": "Billing", | |
| "nav_ai": "AI Insights", | |
| "nav_audit_logs": "Audit Logs", | |
| "exit_admin": "Quitter l'admin", | |
| "logout": "Déconnexion", | |
| "system_active": "Système actif", | |
| "platform_admin": "Platform Admin", | |
| "super_admin_label": "Super-admin", | |
| "dashboard_title": "Platform Dashboard", | |
| "dashboard_subtitle": "Vue globale de toutes les organisations", | |
| "kpi_organizations": "Organisations", | |
| "kpi_orgs_active": "{{count}} actives", | |
| "kpi_users": "Utilisateurs", | |
| "kpi_messages_24h": "Messages / 24h", | |
| "kpi_queue_depth": "Queue depth", | |
| "kpi_queue_failed": "{{count}} échoués", | |
| "kpi_revenue": "Revenus / mois", | |
| "kpi_alerts": "Alertes", | |
| "system_health": "Santé système", | |
| "health_db": "Base de données", | |
| "health_redis": "Redis", | |
| "health_queue": "Queue", | |
| "active_alerts": "Alertes actives ({{count}})", | |
| "alert_token": "Token expirant — {{orgName}} ({{daysOld}}j)", | |
| "alert_balance": "Solde faible — {{orgName}}: {{balance}} crédits", | |
| "alert_queue_failed": "{{count}} jobs échoués en queue", | |
| "orgs_title": "Organisations", | |
| "orgs_total": "{{count}} organisations au total", | |
| "org_new": "Nouvelle organisation", | |
| "org_search_placeholder": "Rechercher une organisation...", | |
| "org_search_btn": "Rechercher", | |
| "org_loading": "Chargement...", | |
| "org_empty": "Aucune organisation trouvée", | |
| "col_name": "Nom", | |
| "col_plan": "Plan", | |
| "col_status": "Statut", | |
| "col_users": "Utilisateurs", | |
| "col_credits": "Crédits", | |
| "status_suspended": "Suspendu", | |
| "status_trial": "Trial", | |
| "status_active": "Actif", | |
| "org_reactivated": "Organisation réactivée", | |
| "org_suspended": "Organisation suspendue", | |
| "org_delete_confirm": "Supprimer définitivement \"{{name}}\" ? Cette action ne peut pas être annulée.", | |
| "org_deleted": "\"{{name}}\" supprimée", | |
| "org_updated": "Organisation mise à jour", | |
| "org_created": "Organisation créée", | |
| "label_plan": "Plan", | |
| "label_ai_credits": "Limite crédits AI", | |
| "label_crm_active": "CRM actif", | |
| "label_edtech_active": "EdTech actif", | |
| "saving": "Sauvegarde...", | |
| "save": "Sauvegarder", | |
| "modal_new_org": "Nouvelle organisation", | |
| "org_name_placeholder": "Nom de l'organisation", | |
| "cancel": "Annuler", | |
| "creating": "Création...", | |
| "create": "Créer", | |
| "err_load_orgs": "Erreur chargement organisations", | |
| "err_suspend": "Erreur modification statut", | |
| "err_delete": "Erreur suppression", | |
| "err_update": "Erreur mise à jour", | |
| "err_create": "Erreur création", | |
| "btn_edit": "Modifier", | |
| "btn_reactivate": "Réactiver", | |
| "btn_suspend": "Suspendre", | |
| "btn_delete_forever": "Supprimer définitivement", | |
| "pagination_info": "{{from}}–{{to}} sur {{total}}", | |
| "prev": "Précédent", | |
| "next": "Suivant", | |
| "users_title": "Utilisateurs", | |
| "users_total": "{{count}} utilisateurs au total", | |
| "user_search_placeholder": "Rechercher par nom ou email...", | |
| "col_user": "Utilisateur", | |
| "col_organization": "Organisation", | |
| "col_role": "Rôle", | |
| "col_created_at": "Créé le", | |
| "user_empty": "Aucun utilisateur trouvé", | |
| "role_updated": "Rôle mis à jour", | |
| "btn_reset_password": "Réinitialiser le mot de passe", | |
| "reset_no_email": "Cet utilisateur n'a pas d'adresse email", | |
| "reset_confirm": "Envoyer un lien de réinitialisation à {{email}} ?", | |
| "reset_sent": "Lien envoyé à {{email}}", | |
| "err_load_users": "Erreur chargement utilisateurs", | |
| "err_role_change": "Erreur changement de rôle", | |
| "err_reset_password": "Erreur envoi email", | |
| "wa_numbers_title": "Numéros WhatsApp", | |
| "wa_numbers_total": "{{count}} numéros enregistrés", | |
| "wa_refresh": "Actualiser", | |
| "wa_register_number": "Enregistrer un numéro", | |
| "wa_no_numbers": "Aucun numéro WhatsApp enregistré", | |
| "col_number": "Numéro", | |
| "col_id": "ID", | |
| "col_added_at": "Ajouté le", | |
| "wa_register_title": "Enregistrer un numéro WhatsApp", | |
| "wa_step": "Étape {{step}}/2", | |
| "label_org": "Organisation", | |
| "org_select_placeholder": "Sélectionner une organisation...", | |
| "label_phone_number_id": "Phone Number ID", | |
| "phone_id_hint": "Trouvez cet ID dans Meta Business Manager > WhatsApp Accounts", | |
| "label_pin": "PIN de sécurité", | |
| "pin_hint": "PIN à 6 chiffres pour sécuriser le numéro (laisser vide = 000000)", | |
| "wa_select_org_error": "Veuillez sélectionner une organisation.", | |
| "wa_phone_id_error": "Le Phone Number ID doit contenir entre 12 et 18 chiffres.", | |
| "wa_pin_error": "Le PIN doit contenir exactement 6 chiffres.", | |
| "wa_sending": "Envoi en cours...", | |
| "wa_send_otp": "Envoyer le code OTP", | |
| "wa_reg_error": "Erreur lors de l'enregistrement.", | |
| "wa_net_error": "Erreur réseau.", | |
| "wa_otp_hint": "Meta vous a envoyé un code OTP par SMS ou appel vocal sur le numéro. Saisissez-le ci-dessous.", | |
| "label_otp": "Code OTP", | |
| "wa_otp_error": "Le code OTP doit contenir entre 4 et 8 chiffres.", | |
| "wa_verifying": "Vérification...", | |
| "wa_verify": "Vérifier", | |
| "wa_otp_invalid": "Code OTP invalide ou expiré.", | |
| "wa_number_registered": "Numéro enregistré avec succès !", | |
| "wa_back": "Retour", | |
| "err_load_numbers": "Erreur chargement numéros", | |
| "tpl_title": "WhatsApp Templates", | |
| "tpl_orgs_count_one": "{{count}} organisation avec WhatsApp configuré", | |
| "tpl_orgs_count_other": "{{count}} organisations avec WhatsApp configuré", | |
| "tpl_select_hint": "Sélectionnez une organisation pour gérer ses modèles de message WhatsApp.", | |
| "tpl_search_placeholder": "Rechercher une organisation ou un WABA ID...", | |
| "tpl_empty": "Aucune organisation avec WhatsApp configuré", | |
| "col_waba_id": "WABA ID", | |
| "col_actions": "Actions", | |
| "tpl_view": "Voir templates", | |
| "tpl_no_templates": "Aucun modèle trouvé pour cette organisation.", | |
| "col_category": "Catégorie", | |
| "col_language": "Langue", | |
| "tpl_create_btn": "Créer un template", | |
| "tpl_create_title": "Nouveau template WhatsApp", | |
| "label_template_name": "Nom du template", | |
| "template_name_hint": "Minuscules, chiffres, underscores uniquement", | |
| "template_name_error": "Minuscules, chiffres, underscores uniquement", | |
| "label_category": "Catégorie", | |
| "label_language": "Langue", | |
| "label_header_optional": "En-tête (optionnel)", | |
| "label_body": "Corps du message", | |
| "label_footer_optional": "Pied de page (optionnel)", | |
| "label_preview": "Prévisualisation", | |
| "body_placeholder": "Corps du message...", | |
| "tpl_select_org_placeholder": "Sélectionner une organisation…", | |
| "tpl_submitted": "Template soumis à Meta pour approbation", | |
| "tpl_create_required": "Organisation, nom et corps du message sont obligatoires.", | |
| "tpl_name_invalid": "Le nom du template est invalide.", | |
| "tpl_creating": "Création…", | |
| "tpl_create_submit": "Créer le template", | |
| "tpl_create_error": "Erreur lors de la création du template.", | |
| "profiles_title": "Profils WhatsApp", | |
| "profiles_count_one": "{{count}} profil", | |
| "profiles_count_other": "{{count}} profils", | |
| "profile_empty": "Aucun profil WhatsApp trouvé", | |
| "label_org_name": "Nom de l'organisation", | |
| "label_logo_url": "URL du logo", | |
| "label_primary_color": "Couleur principale", | |
| "profile_updated": "Profil mis à jour", | |
| "err_load_profiles": "Erreur chargement des profils", | |
| "err_save_profile": "Erreur lors de la sauvegarde", | |
| "btn_cancel_edit": "Annuler", | |
| "btn_save": "Enregistrer", | |
| "saving_profile": "Enregistrement…", | |
| "btn_edit_profile": "Modifier", | |
| "monitoring_title": "Monitoring & Alertes", | |
| "monitoring_subtitle": "État en temps réel du système", | |
| "system_health_title": "Santé système", | |
| "health_redis_cache": "Redis / Cache", | |
| "health_queue_jobs": "Queue jobs", | |
| "queue_failed_detail": "{{count}} échoués", | |
| "queue_waiting_detail": "{{count}} en attente", | |
| "token_expiry_title": "Tokens WhatsApp expirants", | |
| "token_no_risk": "Aucun token en risque d'expiration", | |
| "col_org": "Organisation", | |
| "col_issued_ago": "Émis il y a", | |
| "col_days": "{{count}} jours", | |
| "low_balance_title": "Soldes faibles (< 100 crédits)", | |
| "low_balance_none": "Aucune organisation avec solde faible", | |
| "credits_label": "{{count}} crédits", | |
| "err_load_monitoring": "Erreur chargement monitoring", | |
| "billing_title": "Billing", | |
| "billing_transactions": "{{count}} transactions", | |
| "billing_add_credits": "Ajouter crédits", | |
| "billing_no_transactions": "Aucune transaction", | |
| "col_date": "Date", | |
| "col_type": "Type", | |
| "col_description": "Description", | |
| "col_amount": "Montant", | |
| "col_balance_after": "Solde après", | |
| "credits_added": "{{amount}} crédits ajoutés. Nouveau solde: {{balance}}", | |
| "modal_add_credits": "Ajouter des crédits", | |
| "label_org_id": "ID de l'organisation", | |
| "org_id_placeholder": "org-uuid...", | |
| "label_credits_amount": "Montant (crédits)", | |
| "label_description_optional": "Description (optionnel)", | |
| "credits_desc_placeholder": "Rechargement manuel...", | |
| "adding": "Ajout...", | |
| "add": "Ajouter", | |
| "err_load_transactions": "Erreur chargement transactions", | |
| "err_add_credits": "Erreur ajout de crédits", | |
| "audit_title": "Audit Logs", | |
| "audit_total": "{{count}} entrées au total", | |
| "col_datetime": "Date / Heure", | |
| "col_action": "Action", | |
| "col_actor": "Acteur", | |
| "col_resource": "Ressource", | |
| "col_details": "Détails", | |
| "col_from": "Du", | |
| "col_to": "Au", | |
| "audit_search": "Rechercher", | |
| "audit_empty": "Aucun log pour ces critères", | |
| "audit_show": "Voir", | |
| "audit_hide": "Masquer", | |
| "ai_title": "AI Insights", | |
| "ai_subtitle": "Commandes en langage naturel pour gérer la plateforme", | |
| "ai_suggestion_1": "Montre moi les organisations avec un solde faible", | |
| "ai_suggestion_2": "Quelles sont les statistiques de la plateforme ?", | |
| "ai_suggestion_3": "Liste les alertes actives", | |
| "ai_suggestion_4": "Affiche les 10 dernières organisations", | |
| "ai_greeting": "Bonjour ! Je suis votre assistant IA pour la gestion de la plateforme XAMLÉ. Posez-moi une question ou donnez-moi une instruction.", | |
| "ai_input_placeholder": "Tapez une commande... ex: 'Ajoute 500 crédits à l'org XAMLÉ'", | |
| "ai_confirm": "Confirmer", | |
| "ai_cancelled": "Action annulée.", | |
| "ai_err": "Erreur AI", | |
| "ai_err_exec": "Erreur exécution", | |
| "ai_err_message": "Désolé, une erreur est survenue.", | |
| "ai_err_exec_message": "Erreur lors de l'exécution.", | |
| "ai_done": "Action effectuée.", | |
| "ai_no_result": "Aucun résultat trouvé.", | |
| "rel_today": "aujourd'hui", | |
| "rel_yesterday": "il y a 1 jour", | |
| "rel_days_ago": "il y a {{count}} jours", | |
| "tpl_cat_marketing_desc": "Promotions, offres, newsletters", | |
| "tpl_cat_utility_desc": "Confirmations, mises à jour transactionnelles", | |
| "tpl_cat_authentication_desc": "Codes OTP, vérification" | |
| } | |
| } | |