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"
  }
}