File size: 51,636 Bytes
0f2f80a ab43d7b c4ab07f 6dd9bad d80fec4 ab43d7b 785cec2 8280d7d ab43d7b d80fec4 ab43d7b d80fec4 ab43d7b d80fec4 ab43d7b 66ff7a1 d80fec4 0f2f80a 4f90920 d80fec4 4f90920 0f2f80a ab43d7b 0f2f80a ab43d7b 66ff7a1 d80fec4 0f2f80a ab43d7b 6dd9bad ab43d7b 6dd9bad ab43d7b 66ff7a1 4f90920 d80fec4 ab43d7b c4ab07f d74c1b3 d80fec4 ab43d7b d80fec4 ab43d7b c4ab07f 6dd9bad 66ff7a1 1c602ea d80fec4 c4ab07f d80fec4 c4ab07f 66ff7a1 4f90920 a3df350 4f90920 295c327 4f90920 295c327 4f90920 295c327 4f90920 66ff7a1 d80fec4 b92ea37 0f2f80a 66ff7a1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 | {
"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"
}
}
|