File size: 50,303 Bytes
0f2f80a
 
 
 
 
 
 
 
ab43d7b
0f2f80a
 
 
ab43d7b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c4ab07f
 
 
6dd9bad
d80fec4
 
0f2f80a
 
 
 
 
 
ab43d7b
 
 
 
785cec2
 
 
 
8280d7d
 
ab43d7b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d80fec4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ab43d7b
 
 
 
 
 
 
 
 
 
 
 
 
d80fec4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ab43d7b
 
 
 
 
 
 
d80fec4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ab43d7b
 
 
 
 
 
 
 
 
 
 
 
 
66ff7a1
 
 
 
 
 
 
 
 
 
 
 
 
 
d80fec4
 
 
 
 
 
 
 
 
 
 
 
 
 
ab43d7b
4f90920
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d80fec4
 
 
 
 
4f90920
ab43d7b
 
 
 
 
 
 
 
 
 
 
66ff7a1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d80fec4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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": "Bem-vindo",
    "dashboard": "Painel",
    "clients": "Clientes",
    "analytics": "Análises",
    "settings": "Configurações",
    "logout": "Sair",
    "save": "Guardar",
    "cancel": "Cancelar",
    "loading": "Carregando...",
    "error": "Ocorreu um erro",
    "success": "Sucesso",
    "create": "Criar",
    "delete": "Excluir",
    "edit": "Editar",
    "search": "Pesquisar...",
    "actions": "Ações",
    "export": "Exportar",
    "sync": "Sincronizar",
    "send": "Enviar",
    "close": "Fechar",
    "confirm": "Confirmar",
    "back": "Voltar",
    "next": "Próximo",
    "yes": "Sim",
    "no": "Não",
    "status": "Estado",
    "date": "Data",
    "name": "Nome",
    "email": "Email",
    "phone": "Telefone",
    "day": "Dia",
    "none": "Nenhum",
    "select_org": "Por favor selecione uma organização",
    "clear_filter": "Remover filtro",
    "no_data": "Sem dados disponíveis",
    "retry": "Tentar novamente",
    "of": "de"
  },
  "nav": {
    "home": "Início",
    "inbox": "Caixa de entrada",
    "campaigns": "Campanhas",
    "templates": "Modelos",
    "organizations": "Organizações",
    "users": "Utilizadores",
    "training": "Training Lab",
    "moderation": "Moderação",
    "b2b": "Clientes B2B",
    "kb": "Base de Conhecimento",
    "content": "Cursos",
    "conversations": "Conversas",
    "ai_setup": "Agente IA",
    "billing": "Faturação"
  },
  "dashboard": {
    "title": "Painel",
    "subtitle": "Estado da sua plataforma em tempo real",
    "select_org": "Bem-vindo ao EdTech Admin",
    "select_org_hint": "Para começar, selecione uma organização no menu à esquerda.",
    "isolation_note": "O isolamento de dados garante que você veja apenas as estatísticas da organização ativa.",
    "loading": "Analisando dados...",
    "no_enrollments": "Sem inscrições",
    "recent_enrollments": "Inscrições recentes",
    "export_csv": "Exportar CSV",
    "stats": {
      "users": "Utilizadores",
      "active": "Ativos",
      "completed": "Concluídos",
      "tracks": "Cursos",
      "revenue": "Receita",
      "total_messages": "Mensagens Totais",
      "active_users": "Utilizadores Ativos",
      "completion_rate": "Taxa de Conclusão",
      "ai_cost": "Custo IA estimado"
    },
    "table": {
      "phone": "Telefone",
      "track": "Curso",
      "status": "Estado",
      "day": "Dia",
      "date": "Data"
    }
  },
  "analytics": {
    "title": "Análises e Desempenho",
    "export": "Exportar relatório",
    "explain": "Explicar",
    "messages": {
      "title": "Volume de Mensagens",
      "inbound": "Recebidas",
      "outbound": "Enviadas"
    },
    "completion": {
      "title": "Taxa de Sucesso",
      "completed": "Concluídos",
      "in_progress": "Em progresso"
    },
    "performance": {
      "title": "Desempenho",
      "avg_score": "Pontuação média dos exercícios"
    },
    "engagement": {
      "title": "Envolvimento",
      "avg_days": "Dias de formação em média"
    },
    "sql_error": "Erro ao executar a consulta",
    "sql_example_1": "Quantos usuários ativos esta semana?",
    "sql_example_2": "Quais são os 5 usuários com mais mensagens?",
    "sql_example_3": "Qual é a taxa média de conclusão?",
    "sql_example_4": "Quantos créditos de IA foram consumidos este mês?",
    "ai_cost_title": "Custo de IA por funcionalidade",
    "ai_cost_subtitle": "Dados reais — fonte: UsageEvent",
    "col_feature": "Funcionalidade",
    "col_calls": "Chamadas",
    "col_tokens_in": "Tokens in",
    "col_tokens_out": "Tokens out",
    "col_cost": "Custo (USD)",
    "total": "Total",
    "nl_search_title": "Pesquisa em linguagem natural",
    "nl_search_subtitle": "Faça uma pergunta sobre seus dados — a IA gera a consulta SQL",
    "nl_search_placeholder": "Ex.: Quais usuários ficaram inativos por 7 dias?",
    "search_btn": "Pesquisar",
    "view_sql": "Ver SQL",
    "no_results": "Nenhum resultado"
  },
  "users": {
    "title": "Gestão de Utilizadores",
    "subtitle": "Todos os alunos inscritos",
    "no_users": "Nenhum utilizador encontrado",
    "invite": "Convidar",
    "columns": {
      "name": "Nome",
      "phone": "Telefone",
      "track": "Curso ativo",
      "day": "Dia",
      "status": "Estado",
      "joined": "Inscrição"
    },
    "confirm_delete": "Excluir este usuário? Esta ação é reversível no banco de dados.",
    "delete_success": "Usuário excluído",
    "delete_error": "Falha ao excluir",
    "handoff_released": "Handoff liberado — IA retoma a conversa",
    "handoff_none": "Nenhum handoff ativo para este usuário",
    "handoff_error": "Falha",
    "load_error": "Erro ao carregar usuários",
    "language_column": "Idioma",
    "sector_column": "Setor",
    "conversation_btn": "Conversa",
    "delete_title": "Excluir usuário",
    "handoff_active": "Handoff ativo",
    "release_ai": "Liberar IA",
    "prev": "Anterior"
  },
  "contacts": {
    "title": "Contactos",
    "subtitle": "Gestão da sua base de contactos CRM",
    "add": "Adicionar contacto",
    "import": "Importar",
    "no_contacts": "Sem contactos",
    "search_placeholder": "Procurar um contacto...",
    "tags_update_error": "Falha ao atualizar as tags",
    "import_success": "Importação bem-sucedida: {{created}} adicionados, {{updated}} atualizados, {{errors}} erros.",
    "upload_critical_error": "Ocorreu um erro crítico durante o upload.",
    "ai_generation_error": "Falha na geração IA.",
    "generation_error_fallback": "Erro de geração",
    "confirm_delete_one": "Tem a certeza que deseja eliminar este contacto?",
    "delete_error": "Erro ao eliminar.",
    "confirm_delete_many": "Tem a certeza que deseja eliminar {{count}} contactos?",
    "bulk_delete_success": "Contactos eliminados com sucesso.",
    "bulk_delete_error": "Erro ao eliminar em massa.",
    "csv_name": "Nome",
    "csv_phone": "Telefone",
    "csv_created": "Criado em",
    "message_copied": "Mensagem copiada!",
    "copied": "Copiado!",
    "generation_completed": "Geração concluída com sucesso"
  },
  "settings": {
    "title": "Configurações",
    "profile": "Perfil da organização",
    "branding": "Marca e Cores",
    "ai_config": "Configuração IA",
    "whatsapp_config": "Configuração WhatsApp",
    "billing": "Faturação",
    "org_name": "Nome da organização",
    "primary_color": "Cor principal",
    "logo_url": "URL do logótipo",
    "save_success": "Configurações guardadas com sucesso.",
    "save_error": "Não foi possível guardar as configurações.",
    "no_org_selected": "Por favor selecione uma organização.",
    "advanced_config": "Configuração avançada",
    "developers_badge": "Desenvolvedores",
    "flow_config_desc": "Este campo contém a configuração JSON do fluxo pedagógico. Modifique-o apenas se souber o que está fazendo.",
    "wa_account": "Conta WhatsApp",
    "wa_token": "Token do sistema",
    "not_configured": "Não configurado",
    "token_absent": "Ausente",
    "token_expired": "Expirado",
    "token_valid": "Válido",
    "token_present": "Presente",
    "token_expired_alert": "O seu token do WhatsApp é inválido ou expirou. As mensagens já não podem ser enviadas. Vá a Meta Business Manager → Utilizadores do sistema para gerar um novo token e atualize a sua organização.",
    "api_keys_title": "Chaves API de IA",
    "api_keys_locked": "Disponível a partir do plano SCALE. Ao adicionar as suas próprias chaves OpenAI ou Google, usa a sua própria quota de IA — sem limite associado ao seu plano Xamlé.",
    "api_keys_unlocked": "As suas chaves estão encriptadas e armazenadas de forma segura. Elas substituem as chaves partilhadas da plataforma — o seu consumo de IA já não é descontado do seu saldo de créditos.",
    "wa_connect_success": "WhatsApp conectado com sucesso ✅",
    "wa_connect_error": "Falha na conexão com WhatsApp. Verifique o token e o WABA ID.",
    "mode_edtech": "EdTech",
    "mode_webhook": "Webhook",
    "mode_ai_agent": "Agente IA",
    "mode_pedagogy": "Pedagogia",
    "mode_customer_service": "Suporte ao Cliente",
    "mode_crm_marketing": "CRM & Campanhas",
    "wa_cancel": "Cancelar",
    "wa_reconfigure": "🔄 Reconfigurar",
    "wa_connect_btn": "🔗 Conectar",
    "wa_connecting": "Conectando...",
    "wa_connect_submit": "Conectar WhatsApp"
  },
  "auth": {
    "org_id": "ID da Organização",
    "email": "Email",
    "password": "Senha",
    "login_subtitle_edtech": "Acesse seu espaço EdTech",
    "login_subtitle_admin": "Área administrativa — acesso restrito",
    "login_button": "Entrar",
    "login_loading": "Entrando...",
    "org_id_required": "O ID da organização é obrigatório.",
    "powered_by": "Desenvolvido por Xamlé Studio",
    "forgot_password": "Esqueceu a senha?",
    "reset_title": "Esqueceu a senha",
    "reset_sent_title": "Email enviado",
    "reset_sent_subtitle": "Verifique sua caixa de entrada e clique no link de redefinição.",
    "reset_new_title": "Nova senha",
    "reset_success_title": "Senha atualizada",
    "reset_success_subtitle": "Você pode fazer login com sua nova senha.",
    "reset_email_label": "Endereço de email",
    "reset_email_placeholder": "seu@email.com",
    "reset_send_button": "Enviar link",
    "reset_sending": "Enviando...",
    "reset_new_password": "Nova senha",
    "reset_confirm_password": "Confirmar",
    "reset_set_button": "Definir senha",
    "reset_setting": "Atualizando...",
    "reset_login_link": "Entrar",
    "reset_back": "Voltar ao login",
    "reset_network_error": "Erro de rede. Por favor, tente novamente.",
    "reset_password_mismatch": "As senhas não coincidem.",
    "reset_password_min_length": "A senha deve ter pelo menos 6 caracteres.",
    "reset_token_expired": "Token inválido ou expirado."
  },
  "onboarding": {
    "title": "Bem-vindo ao Xamlé.Studio",
    "subtitle": "Vamos configurar a sua escola em segundos.",
    "step_welcome": "Boas-vindas",
    "step_legal": "Contrato",
    "step_whatsapp": "WhatsApp",
    "step_ai": "IA",
    "connect_fb": "Ligar ao Facebook",
    "fb_connected": "Conta Facebook ligada!",
    "setup_waba": "A configurar a sua conta WhatsApp Business...",
    "cta_launch": "Lançar a minha plataforma",
    "legal_text": "Ao aceitar, concorda com os nossos termos de parceiro e as políticas comerciais da Meta.",
    "whatsapp_help_title": "Onde encontrar estas informações?",
    "help_waba_id": "Inicie sessão no WhatsApp Manager → coluna \"Conta WhatsApp Business\" → número de 15 dígitos.",
    "help_business_id": "Definições Meta → Informações da empresa → \"ID Meta Business\".",
    "help_token": "Em Meta Business Manager → Utilizadores do sistema → o seu utilizador → Gerar token. Escolha \"Nunca expirar\" para evitar interrupções.",
    "help_new_to_meta": "Novo no Meta? Use o botão \"Ligar ao Facebook\" abaixo — mais simples, tudo é automático.",
    "already_configured": "Conta já configurada no Meta",
    "fb_account_connected": "Conta Facebook ligada",
    "new_account_via_fb": "Nova conta — Ligação via Facebook",
    "new_account_desc": "O cliente configura o seu número diretamente na janela Facebook.",
    "token_valid_msg": "Token válido — reconhecido pela Meta",
    "token_invalid_msg": "Token inválido ou expirado. Verifique em Meta Business Manager → Utilizadores do sistema.",
    "token_idle_hint": "Gere um token \"Nunca expirar\" em Meta Business Manager → Utilizadores do sistema.",
    "skip_whatsapp": "Configurar WhatsApp mais tarde",
    "create_org": "Criar organização",
    "creating": "A criar…",
    "step_org": "Organização",
    "step_admin": "Administrador",
    "org_title": "A organização",
    "org_subtitle": "Nome, identificador URL e tipo de uso.",
    "org_name_label": "Nome da organização",
    "slug_label": "Identificador URL (slug)",
    "slug_hint": "Gerado automaticamente a partir do nome. Editável — letras minúsculas, números e hífens apenas.",
    "mode_label": "Tipo de uso",
    "mode_edtech_label": "Formação & EdTech",
    "mode_edtech_desc": "Cursos educacionais, exercícios, acompanhamento de alunos via WhatsApp",
    "mode_crm_label": "CRM & Campanhas",
    "mode_crm_desc": "Gestão de contatos, campanhas broadcast, follow-ups de marketing",
    "mode_ai_label": "Agente IA",
    "mode_ai_desc": "Bot de IA conversacional para responder autonomamente 24h/dia",
    "mode_customer_service_label": "Suporte ao Cliente",
    "mode_customer_service_desc": "Gerenciar conversas recebidas e escalar para um agente humano",
    "admin_title": "O administrador",
    "admin_subtitle": "A primeira conta admin desta organização.",
    "admin_name_label": "Nome completo",
    "admin_email_label": "E-mail",
    "admin_pass_label": "Senha inicial",
    "admin_pass_optional": "opcional — gerada automaticamente se vazia",
    "admin_pass_placeholder": "Deixe vazio para gerar automaticamente",
    "admin_pass_hint": "Um e-mail com a senha temporária é enviado ao admin após a criação.",
    "wa_title": "Conexão WhatsApp",
    "wa_subtitle": "Opcional — pode ser configurado depois no perfil da organização.",
    "create_error": "Criação impossível",
    "fb_error": "Login no Facebook foi cancelado ou falhou."
  },
  "crm": {
    "stats": {
      "total_contacts": "Total de Contactos",
      "messages_sent": "Mensagens Enviadas",
      "open_rate": "Taxa de abertura",
      "conversion": "Conversão"
    },
    "inbox": {
      "title": "Conversas",
      "no_messages": "Nenhuma conversa encontrada.",
      "reply_placeholder": "A sua mensagem...",
      "send": "Enviar"
    },
    "campaigns": {
      "title": "Histórico de Campanhas",
      "subtitle": "Acompanhe todas as suas transmissões e o seu desempenho.",
      "new_campaign": "Nova Campanha",
      "select_template": "Modelo WhatsApp (Opcional)",
      "choose_approved": "Selecione um modelo aprovado...",
      "no_approved_templates": "Sem modelos aprovados. Sincronize primeiro.",
      "use_ai_text": "Usar texto gerado por IA",
      "status_sent": "Enviado",
      "status_delivered": "Entregue",
      "status_read": "Lido",
      "status_failed": "Falhou",
      "fetch_failed": "Erro ao carregar modelos"
    },
    "assistant": {
      "placeholder": "Digite o seu comando aqui...",
      "thinking": "A IA está a preparar uma resposta...",
      "contact_preview": "Pré-visualização de contactos",
      "campaign_summary": "Resumo da campanha",
      "messages_ready": "mensagens personalizadas prontas para enviar",
      "recipient": "DESTINATÁRIO",
      "more_contacts": "+ {{count}} contactos adicionais",
      "more_messages": "+ {{count}} mensagens adicionais",
      "send_all": "🚀 Enviar tudo via WhatsApp API",
      "powered_by": "Powered by Xamlé AI • CRM PaaS integrado",
      "btn_history": "📊 Histórico",
      "btn_import": "📤 Importar",
      "btn_campaign": "✨ Campanha",
      "error_mic": "Erro de acesso ao microfone.",
      "error_bulk": "Erro ao enviar em massa.",
      "import_first": "Por favor importe uma lista de contactos primeiro.",
      "campaign_queued": "🚀 A sua campanha foi colocada em fila para entrega progressiva!",
      "error_occurred": "Ocorreu um erro técnico.",
      "drop_file_note": "Por favor use o botão de importar por agora."
    }
  },
  "whatsapp": {
    "templates": {
      "title": "Modelos de Mensagens WhatsApp",
      "subtitle": "Gerencie e sincronize os seus modelos aprovados pela Meta.",
      "sync_button": "Sincronizar com Meta",
      "create_button": "Criar modelo",
      "no_templates": "Sem modelos. Sincronize ou crie um.",
      "table": {
        "name": "Nome do modelo",
        "category": "Categoria",
        "language": "Idioma",
        "status": "Estado"
      },
      "create_modal": {
        "title": "Criar novo modelo",
        "name_label": "Nome (minúsculas, sem espaços)",
        "category_label": "Categoria",
        "language_label": "Idioma",
        "body_label": "Texto do corpo",
        "submit": "Submeter para aprovação",
        "success": "Modelo submetido com sucesso!",
        "error": "Falha ao submeter o modelo.",
        "meta_approval": "Os modelos devem ser aprovados pela Meta antes de serem utilizados.",
        "ai_generate_label": "Gerar com IA",
        "ai_placeholder": "Ex: \"mensagem de boas-vindas para um novo aluno\"",
        "ai_generating": "A gerar…",
        "ai_generate": "Gerar",
        "ai_hint": "A IA preenche os campos abaixo — pode modificá-los antes de submeter.",
        "name_hint": "Apenas letras minúsculas, números e underscores. Ex: lembrete_pagamento",
        "policy_marketing": "Promocional — aprovação Meta 24–48h. Evite palavras demasiado comerciais.",
        "policy_utility": "Transacional — aprovação mais rápida (normalmente poucas horas). Confirmações, lembretes, alertas.",
        "preview_label": "Pré-visualização WhatsApp",
        "view_preview": "Ver pré-visualização completa"
      },
      "status_approved": "Aprovado",
      "status_pending": "Pendente",
      "status_rejected": "Rejeitado",
      "status_paused": "Em pausa",
      "status_disabled": "Desativado",
      "waba_not_configured": "WhatsApp Business não configurado",
      "waba_not_configured_desc": "Esta organização ainda não tem uma conta WhatsApp Business (WABA) associada. Aceda a Configurações → Integração WhatsApp para configurar o seu número e WABA ID."
    }
  },
  "knowledge": {
    "title": "Base de Conhecimento",
    "subtitle": "Gerencie os documentos da sua IA",
    "chunks": "fragmentos indexados",
    "reindex": "Re-indexar",
    "reindexing": "Indexando...",
    "search_placeholder": "Pesquisar fragmentos...",
    "no_documents": "Nenhum fragmento encontrado.",
    "import_hint": "Importe um documento no separador Agente IA para começar.",
    "confirm_delete": "Eliminar este fragmento da base de conhecimento?",
    "delete_error": "Falha ao eliminar",
    "reindex_success": "Re-indexação iniciada com sucesso",
    "no_kb_url": "Nenhuma URL de base de conhecimento configurada. Adicione uma URL nas Configurações.",
    "reindex_error": "Falha na re-indexação",
    "generate_error": "Falha na geração",
    "generate_from_desc": "Gerar a partir de descrição",
    "generate_placeholder": "Descreva sua atividade, produtos ou serviços… A IA gerará automaticamente uma FAQ e a indexará na base de conhecimento.",
    "generating_btn": "Gerando…",
    "generate_btn": "Gerar",
    "generate_success_count": "{{count}} Q&A geradas e indexadas",
    "generate_result_summary": "{{count}} Q&A geradas · {{chunks}} chunks indexados"
  },
  "training": {
    "title": "Training Lab",
    "subtitle": "Teste e melhore a sua IA pedagógica",
    "rules_injected": "Sucesso! {{count}} regras foram injetadas no dicionário.",
    "inject_rules": "Injetar ({{count}}) Regras",
    "ground_truth_label": "Verdade de Campo (Ground Truth)",
    "training_saved": "Treino guardado!"
  },
  "ai_setup": {
    "title": "Configuração do Agente IA",
    "subtitle": "Transforme os seus documentos em inteligência conversacional no WhatsApp.",
    "kb_title": "Base de Conhecimento",
    "kb_desc": "Carregue os seus catálogos, manuais ou FAQs. A IA usará estes documentos para responder com precisão.",
    "upload_idle": "Clique para carregar um documento",
    "upload_loading": "A carregar e indexar...",
    "upload_success": "Documento indexado com sucesso!",
    "upload_error": "Erro ao carregar",
    "personality_title": "Personalidade do Agente",
    "role_label": "Papel principal",
    "role_placeholder": "Ex: Consultor técnico para Agritech",
    "tone_label": "Tom e Estilo",
    "save": "Guardar personalidade",
    "saving": "A guardar...",
    "saved": "Guardado",
    "preview_title": "Pré-visualização WhatsApp",
    "stats_title": "Estatísticas do Agente",
    "stats_status": "Estado",
    "stats_active": "Ativo",
    "stats_chunks": "Fragmentos indexados",
    "stats_words": "Palavras estimadas",
    "no_kb": "Sem base de conhecimento indexada.",
    "notifications_title": "Notificações Automáticas",
    "notifications_desc": "Selecione o modelo Meta para os lembretes automáticos enviados pelo agente IA.",
    "kb_empty_title": "O seu agente ainda não está operacional",
    "kb_empty_desc": "Carregue pelo menos um documento (FAQ, catálogo, preços…) para que possa responder aos seus clientes. Sem base de conhecimento, o agente não saberá o que dizer.",
    "upload_success_detail": "Documento analisado — o seu agente foi atualizado!",
    "current_file": "Atual:",
    "indexing_title": "O que acontece agora?",
    "indexing_desc": "O seu documento está a ser analisado. Em 30 a 60 segundos, o seu agente poderá responder às perguntas que cobre. Teste-o no painel da direita.",
    "role_hint": "Descreva em uma ou duas frases o que o seu agente faz e para quem. Quanto mais preciso, melhores serão as respostas.",
    "tone_recommended": "— recomendado para o seu setor",
    "tone_desc_professional": "Formal e preciso — ideal para serviços B2B",
    "tone_desc_friendly": "Caloroso e acessível — ideal para o público em geral",
    "tone_desc_direct": "Curto e objetivo — ideal para o suporte",
    "tone_desc_pedagogical": "Paciente e explicativo — ideal para a formação",
    "test_live": "Teste ao vivo",
    "test_hint": "Faça uma pergunta real ao seu agente",
    "test_empty_with_kb": "Faça uma pergunta abaixo para testar o seu agente.",
    "test_empty_no_kb": "Carregue um documento primeiro, depois teste aqui.",
    "test_placeholder": "Ex: Quais são as suas tarifas?",
    "test_error": "Desculpe, o teste não está disponível de momento.",
    "kb_save_blocked": "Adicione primeiro um documento à base de conhecimento acima antes de ativar o seu agente.",
    "coverage_excellent": "Excelente",
    "coverage_good": "Boa",
    "coverage_poor": "Insuficiente",
    "coverage_label": "passagens analisadas — cobertura",
    "coverage_low_hint": "Adicione mais documentos para melhorar a precisão das respostas.",
    "no_kb_hint": "Adicione as suas FAQs, preços ou fichas de produto para ativar o agente.",
    "stats_status_label": "Estado",
    "stats_active_label": "Ativo",
    "words_covered": "Palavras cobertas",
    "bot_name_label": "Nome do agente",
    "bot_name_placeholder": "Ex: Kora, Awa, SupportBot...",
    "bot_name_hint": "O nome que seu agente usará para se apresentar no WhatsApp.",
    "tone_professional": "Profissional",
    "tone_friendly": "Amigável",
    "tone_direct": "Direto",
    "tone_pedagogical": "Pedagógico"
  },
  "tracks": {
    "title": "Cursos",
    "new": "Novo curso",
    "no_tracks": "Sem cursos. Crie um!",
    "confirm_delete": "Eliminar este curso?",
    "days": "dias",
    "enrolled": "inscritos",
    "days_label": "Dias",
    "no_days": "Sem dias criados.",
    "edit_day": "Editar Dia",
    "new_day": "Novo dia",
    "day_number": "Número do dia",
    "day_title": "Título",
    "lesson_text": "Texto da lição",
    "lesson_placeholder": "Conteúdo pedagógico...",
    "audio_url": "URL de Áudio (opcional)",
    "exercise_type": "Tipo de exercício",
    "exercise_type_text": "Texto livre",
    "exercise_type_audio": "Áudio",
    "exercise_type_button": "Botões",
    "validation_keyword": "Palavra-chave de validação",
    "exercise_prompt": "Prompt do exercício",
    "exercise_prompt_placeholder": "Pergunta feita ao estudante...",
    "no_lesson_text": "Sem texto",
    "form_title_label": "Título",
    "form_description": "Descrição",
    "form_duration": "Duração (dias)",
    "form_language": "Idioma",
    "form_lang_fr": "Francês",
    "form_lang_wolof": "Wolof",
    "form_premium": "Formação Premium (paga)",
    "form_price": "Preço (XOF)",
    "ai_generate_btn": "Gerar com IA",
    "ai_generate_first": "Gere seu primeiro programa com IA",
    "ai_modal_badge": "Agente Criador de Conteúdo",
    "ai_modal_title": "Gerar um programa",
    "ai_modal_subtitle": "A IA cria todo o currículo em segundos",
    "ai_description_label": "Descrição do programa",
    "ai_description_placeholder": "Ex.: Formação de 5 dias sobre marketing digital para PMEs no Senegal...",
    "ai_num_days": "Número de dias",
    "ai_language": "Idioma",
    "ai_lang_fr": "Francês",
    "ai_lang_en": "Inglês",
    "ai_lang_wol": "Wolof",
    "ai_audience": "Público-alvo",
    "ai_audience_optional": "opcional",
    "ai_audience_placeholder": "Ex.: Empreendedores iniciantes, mulheres rurais, estudantes...",
    "ai_generating": "Gerando... (15-30s)",
    "ai_generate_submit": "Gerar programa",
    "ai_error": "Falha na geração por IA"
  },
  "campaigns": {
    "title": "Histórico de Campanhas",
    "no_records": "Nenhuma campanha encontrada",
    "first_hint": "Envie a sua primeira campanha na secção Contactos.",
    "total": "mensagens enviadas no total",
    "clear_filter": "Remover filtro",
    "columns": {
      "contact": "Contacto",
      "message": "Mensagem",
      "status": "Estado",
      "sent": "Enviado"
    }
  },
  "livefeed": {
    "title": "Live Feed",
    "subtitle": "Monitorização de conversas em tempo real",
    "no_messages": "Sem mensagens por agora.",
    "refresh": "Atualizar"
  },
  "b2b": {
    "title": "Gestão Clientes B2B",
    "subtitle": "Gerencie as suas organizações parceiras"
  },
  "billing": {
    "select_org": "Selecione uma organização para ver a faturação.",
    "error_prefix": "Erro:",
    "page_title": "Os meus créditos & consumo",
    "period_label": "Período:",
    "recharge_btn": "Recarregar",
    "alert_exhausted_title": "Serviço suspenso — os seus créditos estão esgotados",
    "alert_exhausted_desc": "Recarregue para restaurar as mensagens IA imediatamente.",
    "alert_low_title": "Créditos quase esgotados — {{count}} créditos restantes",
    "alert_low_desc": "Recarregue antes que o serviço seja interrompido.",
    "alert_recharge_btn": "Recarregar →",
    "wallet_label": "Créditos disponíveis",
    "wallet_unit": "créditos",
    "wallet_fcfa": "≈ {{amount}} FCFA",
    "wallet_recharge_btn": "Recarregar créditos",
    "wallet_rate": "1 crédito = 1 mensagem IA = 10 FCFA",
    "days_remaining": "A este ritmo: ainda ~{{days}} dia",
    "days_remaining_plural": "A este ritmo: ainda ~{{days}} dias",
    "ai_messages_title": "Mensagens IA este mês",
    "ai_cost_label": "≈ {{cost}} FCFA em custo IA",
    "ai_quota_warning": "Quota mensal quase atingida ({{pct}}%)",
    "wa_messages_title": "Mensagens WhatsApp este mês",
    "wa_free_note": "✅ Gratuito para si — a Meta fatura diretamente a sua conta WhatsApp Business",
    "activity_title": "Atividade nos últimos 30 dias",
    "activity_subtitle": "Cada barra = total de mensagens IA + WhatsApp nesse dia",
    "activity_empty": "Sem atividade neste período",
    "breakdown_title": "Para onde vão os seus créditos IA?",
    "breakdown_subtitle": "Distribuição do consumo por tipo de mensagem este mês",
    "transactions_title": "Últimos movimentos de créditos",
    "transactions_subtitle": "As 20 últimas operações no seu saldo",
    "balance_label": "Saldo:",
    "csv_btn": "CSV",
    "csv_col_date": "Data",
    "csv_col_type": "Tipo",
    "csv_col_desc": "Descrição",
    "csv_col_amount": "Montante (créditos)",
    "csv_col_balance": "Saldo após",
    "chat_title": "Faça uma pergunta sobre o seu consumo",
    "chat_subtitle": "Respostas baseadas nos seus dados reais",
    "chat_placeholder": "Ex: Quantos créditos usei esta semana?",
    "chat_empty": "Clique numa pergunta acima ou escreva a sua",
    "chat_error": "Desculpe, não consigo responder agora.",
    "quick_q1": "Quantos créditos me restam?",
    "quick_q2": "Daqui a quantos dias ficarei sem créditos?",
    "quick_q3": "Qual funcionalidade consome mais?",
    "quick_q4": "Quanto gastei esta semana?",
    "feature_LESSON": "📚 Lições enviadas",
    "feature_FEEDBACK": "✅ Feedback de exercícios",
    "feature_DEEPDIVE": "🔍 Aprofundamentos",
    "feature_TRANSCRIPTION": "🎤 Transcrições de áudio",
    "feature_IMAGE_ANALYSIS": "🖼️ Análises de imagem",
    "feature_CAMPAIGN": "📣 Campanhas",
    "feature_ONBOARDING": "👋 Onboarding de novos alunos",
    "feature_OTHER": "⚙️ Outros",
    "tx_TOP_UP_MANUAL": "➕ Recarga",
    "tx_TOP_UP_PAYMENT": "➕ Recarga",
    "tx_ADJUSTMENT": "🔧 Ajuste",
    "tx_DEBIT_AI": "🤖 Mensagem IA",
    "tx_DEBIT_WHATSAPP": "💬 Mensagem WhatsApp",
    "tx_DEBIT_BROADCAST": "📣 Campanha",
    "modal_title": "Recarregar créditos",
    "modal_rate": "1 crédito = 10 FCFA · usado por cada mensagem IA",
    "modal_popular": "O mais popular",
    "modal_ai_messages": "≈ {{count}} mensagens IA",
    "modal_footer": "Clique num pack → WhatsApp abre → a nossa equipa finaliza a recarga em menos de 2 horas.",
    "pack_500_label": "500 créditos",
    "pack_2000_label": "2 000 créditos",
    "pack_5000_label": "5 000 créditos",
    "pack_500_price": "5 000 FCFA",
    "pack_2000_price": "18 000 FCFA",
    "pack_5000_price": "40 000 FCFA"
  },
  "clients": {
    "page_title": "Gestão de Clientes B2B",
    "page_subtitle": "Gira as organizações parceiras e os seus ativos WhatsApp.",
    "new_org_button": "Nova Organização",
    "loading": "A carregar clientes...",
    "no_clients_title": "Sem clientes",
    "no_clients_desc": "Comece por adicionar a sua primeira organização parceira.",
    "status": {
      "operational": "Operacional",
      "config_required": "Configuração necessária",
      "online": "Online",
      "suspended": "SUSPENSO"
    },
    "actions": {
      "reconfigure_wa": "Reconfigurar WhatsApp",
      "connect_wa": "Ligar WhatsApp (Meta)",
      "direct_setup": "Configuração direta",
      "personality_studio": "Personality Studio",
      "ai_credits": "Créditos IA",
      "billing_details": "Detalhes & Faturação"
    },
    "waba": {
      "checking": "A verificar…",
      "not_connected": "Não ligado",
      "approved": "Aprovado",
      "pending": "Em revisão",
      "rejected": "Rejeitado",
      "banned": "Suspenso",
      "unknown": "Desconhecido",
      "refresh_tooltip": "Atualizar",
      "what_to_do": "O que fazer? →",
      "verified": "Verificado",
      "not_verified": "Não verificado",
      "verify_link": "Verificar →"
    },
    "tier": {
      "tier_50": "50 conv./dia",
      "tier_250": "250 conv./dia",
      "tier_1k": "1 000 conv./dia",
      "tier_10k": "10 000 conv./dia",
      "tier_100k": "100 000 conv./dia",
      "unlimited": "Ilimitado",
      "label": "Limite Diário",
      "meta_compliance": "Conformidade Meta Tech Provider"
    },
    "quality": {
      "good_label": "Bom",
      "good_desc": "Taxa de denúncia baixa. Continue assim.",
      "medium_label": "Médio",
      "medium_desc": "Utilizadores denunciaram as suas mensagens. Evite envios não solicitados.",
      "risky_label": "Arriscado",
      "risky_desc": "Risco de bloqueio Meta. Reduza o volume e melhore o conteúdo.",
      "dot_title": "Qualidade: "
    },
    "tier_modal": {
      "title": "Limite de Mensagens WhatsApp",
      "levels_heading": "Níveis de Capacidade Meta",
      "current_badge": "Atual",
      "tier_50_desc": "Conta restrita ou em processo de ativação.",
      "tier_250_desc": "Nível de partida para qualquer conta nova aprovada.",
      "tier_1k_desc": "Atingido automaticamente após 1 000 utilizadores únicos/mês.",
      "tier_10k_desc": "Atingido após 10 000 utilizadores únicos/mês.",
      "tier_100k_desc": "Volume elevado — desbloqueado pela Meta a pedido.",
      "unlimited_desc": "Sem limites aplicados pela Meta.",
      "quality_heading": "Pontuação de Qualidade do Número",
      "meta_auto_update": "A Meta atualiza estes dados automaticamente.",
      "levels_auto": "Os níveis progridem sem qualquer ação da sua parte."
    },
    "cells": {
      "waba_header": "WABA",
      "business_header": "Empresa Meta",
      "daily_limit_header": "Limite Diário",
      "daily_limit_info_tooltip": "Saber mais sobre os limites Meta"
    },
    "create_modal": {
      "title": "Nova Organização",
      "company_name_label": "Nome da empresa",
      "company_name_placeholder": "Ex: AgroBusiness Senegal",
      "slug_label": "Slug (URL)",
      "slug_placeholder": "agro-sn",
      "use_case_label": "Caso de uso",
      "use_case_education": "🎓 Plataforma Educativa (Módulos)",
      "use_case_crm": "💬 CRM & Mensagens WhatsApp (Excel)",
      "workstream_label": "Área de trabalho (Workstream)",
      "mode_crm": "CRM & Marketing",
      "mode_pedagogy": "Pedagogia & Formação",
      "mode_service": "Serviço de Cliente IA",
      "admin_section": "Administrador Principal",
      "admin_name_label": "Nome completo",
      "admin_name_placeholder": "João Silva",
      "admin_email_label": "Email",
      "admin_email_placeholder": "admin@empresa.com",
      "password_label": "Senha provisória",
      "password_placeholder": "Mín. 8 caracteres",
      "submit": "Criar organização & Admin",
      "submitting": "A criar...",
      "error_create": "Erro ao criar organização. Verifique se o slug é único."
    },
    "validation": {
      "name_required": "Nome obrigatório",
      "slug_required": "Slug obrigatório",
      "slug_format": "Apenas letras minúsculas, números e hífenes",
      "admin_name_required": "Nome obrigatório",
      "email_required": "Email obrigatório",
      "email_invalid": "Email inválido",
      "password_min": "Mínimo 8 caracteres"
    },
    "billing_modal": {
      "title": "Detalhes & Faturação",
      "mode_label": "Modo",
      "waba_status_label": "Estado WABA",
      "daily_limit_label": "Limite diário",
      "meta_business_label": "Empresa Meta",
      "waba_id_label": "WABA ID",
      "plan_label": "Plano de subscrição",
      "plan_starter": "Starter — 20 000 FCFA/mês",
      "plan_growth": "Crescimento — 60 000 FCFA/mês",
      "plan_scale": "Scale — 150 000 FCFA/mês",
      "plan_enterprise": "Enterprise — 500 000+ FCFA/mês",
      "apply_plan": "Aplicar plano",
      "plan_updated": "Plano atualizado!",
      "close": "Fechar"
    },
    "credits_modal": {
      "title": "Créditos IA",
      "current_balance": "Saldo atual da carteira",
      "credits_unit": "créditos",
      "add_credits_label": "Créditos a adicionar",
      "add_credits_placeholder": "Ex: 500",
      "rate_hint": "1 crédito = 10 FCFA · Mínimo 1 crédito",
      "submit": "Creditar a carteira",
      "error": "Erro ao alocar créditos"
    },
    "personality_modal": {
      "title": "Personality Studio",
      "subtitle": "Configurar Identidade IA para {{orgName}}",
      "bot_name_label": "Nome do Bot",
      "bot_name_placeholder": "ex. XAMLÉ, Coach Sara...",
      "mission_label": "Missão Principal",
      "mission_placeholder": "Qual é o objetivo principal desta IA? ex. Ajudar empreendedores a dominar finanças...",
      "tone_label": "Tom & Descrição da Personalidade",
      "tone_placeholder": "ex. Profissional mas encorajador, usa metáforas locais, rigoroso nos conceitos mas amigável...",
      "cancel": "Cancelar",
      "submit": "Implementar Personalidade",
      "success": "Personalidade atualizada!"
    },
    "wa_setup_modal": {
      "title": "Configurar WhatsApp",
      "already_on_meta": "Conta já configurada na Meta",
      "waba_id_label": "WABA ID",
      "waba_id_placeholder": "ex: 102938475610293",
      "waba_id_hint_link": "Abrir WhatsApp Accounts",
      "business_id_label": "Business ID Meta",
      "business_id_optional": "(opcional — para mostrar a verificação)",
      "business_id_placeholder": "ex: 25855038707486178",
      "business_id_hint_link": "Abrir Business Info",
      "token_label": "Token do sistema",
      "token_optional": "(opcional — usa o token env por defeito)",
      "token_placeholder": "EAAxxxxxxx... — deixe em branco se já estiver em env var",
      "token_hint_link": "Gerar desde System Users",
      "phone_number_detected": "Phone Number ID detetado:",
      "save_config": "Guardar configuração",
      "success": "Configuração WhatsApp atualizada!",
      "new_account_heading": "Nova conta — Ligação via Facebook",
      "new_account_desc": "Para um cliente que ainda não configurou a sua conta WhatsApp Business na sua plataforma.",
      "connect_facebook": "Ligar com Facebook"
    },
    "toast": {
      "wa_connected": "WhatsApp ligado com sucesso!",
      "error_prefix": "Erro: "
    }
  },
  "admin_chat": {
    "aria_label": "Assistente IA",
    "choose_or_write": "Escolha uma pergunta ou escreva a sua",
    "input_placeholder": "A sua pergunta...",
    "error": "Desculpe, não consigo responder agora. Tente novamente num momento.",
    "billing_title": "Assistente de faturação",
    "billing_subtitle": "Respostas baseadas nos seus dados reais",
    "billing_q1": "Quantos créditos me restam?",
    "billing_q2": "Daqui a quantos dias ficarei sem créditos?",
    "billing_q3": "Qual funcionalidade consome mais?",
    "billing_q4": "Quanto gastei esta semana?",
    "settings_title": "Ajuda — Configuração",
    "settings_subtitle": "Explico cada parâmetro",
    "settings_q1": "Como conecto o meu WhatsApp?",
    "settings_q2": "Para que serve o modo Agente IA?",
    "settings_q3": "As minhas chaves API estão seguras?",
    "settings_q4": "Como mudo o modo da minha organização?",
    "templates_title": "Ajuda — Modelos",
    "templates_subtitle": "Ajudo-o a criar as suas mensagens",
    "templates_q1": "Como crio um bom modelo?",
    "templates_q2": "Para que servem as variáveis num modelo?",
    "templates_q3": "Por que pode um modelo ser rejeitado?",
    "templates_q4": "Qual é a diferença entre utilitário e marketing?",
    "agent_title": "Ajuda — Agente IA",
    "agent_subtitle": "Guio-o para configurar o seu agente",
    "agent_q1": "Que tipo de documento devo carregar?",
    "agent_q2": "Como escolho o tom certo para o meu agente?",
    "agent_q3": "Quantos documentos são suficientes?",
    "agent_q4": "Como melhoro as respostas do meu agente?",
    "onboarding_title": "Ajuda — Ligação WhatsApp",
    "onboarding_subtitle": "Guio-o passo a passo",
    "onboarding_q1": "Onde encontro o meu WABA ID?",
    "onboarding_q2": "Qual é a diferença entre as duas opções?",
    "onboarding_q3": "O meu token expirou, o que devo fazer?",
    "onboarding_q4": "Não tenho conta Meta, por onde começo?",
    "general_title": "Assistente Xamlé",
    "general_subtitle": "Faça-me as suas perguntas",
    "general_q1": "Como começo com o Xamlé?",
    "general_q2": "Qual é a diferença entre os modos?",
    "general_q3": "Como funciona a faturação?",
    "general_q4": "Onde posso ver as minhas estatísticas?"
  },
  "super_admin": {
    "nav_dashboard": "Dashboard",
    "nav_organizations": "Organizações",
    "nav_users": "Utilizadores",
    "nav_whatsapp": "Números WA",
    "nav_templates": "Templates WA",
    "nav_profiles": "Perfis WA",
    "nav_monitoring": "Monitorização",
    "nav_billing": "Faturação",
    "nav_ai": "AI Insights",
    "nav_audit_logs": "Audit Logs",
    "exit_admin": "Sair do admin",
    "logout": "Terminar sessão",
    "system_active": "Sistema ativo",
    "platform_admin": "Platform Admin",
    "super_admin_label": "Super-admin",

    "dashboard_title": "Platform Dashboard",
    "dashboard_subtitle": "Vista global de todas as organizações",
    "kpi_organizations": "Organizações",
    "kpi_orgs_active": "{{count}} ativas",
    "kpi_users": "Utilizadores",
    "kpi_messages_24h": "Mensagens / 24h",
    "kpi_queue_depth": "Fila de espera",
    "kpi_queue_failed": "{{count}} falhados",
    "kpi_revenue": "Receita / mês",
    "kpi_alerts": "Alertas",
    "system_health": "Saúde do sistema",
    "health_db": "Base de dados",
    "health_redis": "Redis",
    "health_queue": "Fila",
    "active_alerts": "Alertas ativos ({{count}})",
    "alert_token": "Token a expirar — {{orgName}} ({{daysOld}}d)",
    "alert_balance": "Saldo baixo — {{orgName}}: {{balance}} créditos",
    "alert_queue_failed": "{{count}} jobs falhados na fila",

    "orgs_title": "Organizações",
    "orgs_total": "{{count}} organizações no total",
    "org_new": "Nova organização",
    "org_search_placeholder": "Pesquisar uma organização...",
    "org_search_btn": "Pesquisar",
    "org_loading": "A carregar...",
    "org_empty": "Nenhuma organização encontrada",
    "col_name": "Nome",
    "col_plan": "Plano",
    "col_status": "Estado",
    "col_users": "Utilizadores",
    "col_credits": "Créditos",
    "status_suspended": "Suspenso",
    "status_trial": "Trial",
    "status_active": "Ativo",
    "org_reactivated": "Organização reativada",
    "org_suspended": "Organização suspensa",
    "org_delete_confirm": "Eliminar definitivamente \"{{name}}\"? Esta ação não pode ser desfeita.",
    "org_deleted": "\"{{name}}\" eliminada",
    "org_updated": "Organização atualizada",
    "org_created": "Organização criada",
    "label_plan": "Plano",
    "label_ai_credits": "Limite de créditos AI",
    "label_crm_active": "CRM ativo",
    "label_edtech_active": "EdTech ativo",
    "saving": "A guardar...",
    "save": "Guardar",
    "modal_new_org": "Nova organização",
    "org_name_placeholder": "Nome da organização",
    "cancel": "Cancelar",
    "creating": "A criar...",
    "create": "Criar",
    "err_load_orgs": "Erro ao carregar organizações",
    "err_suspend": "Erro ao alterar estado",
    "err_delete": "Erro ao eliminar",
    "err_update": "Erro ao atualizar",
    "err_create": "Erro ao criar",
    "btn_edit": "Editar",
    "btn_reactivate": "Reativar",
    "btn_suspend": "Suspender",
    "btn_delete_forever": "Eliminar definitivamente",
    "pagination_info": "{{from}}–{{to}} de {{total}}",
    "prev": "Anterior",
    "next": "Seguinte",

    "users_title": "Utilizadores",
    "users_total": "{{count}} utilizadores no total",
    "user_search_placeholder": "Pesquisar por nome ou email...",
    "col_user": "Utilizador",
    "col_organization": "Organização",
    "col_role": "Função",
    "col_created_at": "Criado em",
    "user_empty": "Nenhum utilizador encontrado",
    "role_updated": "Função atualizada",
    "btn_reset_password": "Redefinir palavra-passe",
    "reset_no_email": "Este utilizador não tem endereço de email",
    "reset_confirm": "Enviar link de redefinição para {{email}}?",
    "reset_sent": "Link enviado para {{email}}",
    "err_load_users": "Erro ao carregar utilizadores",
    "err_role_change": "Erro ao alterar função",
    "err_reset_password": "Erro ao enviar email",

    "wa_numbers_title": "Números WhatsApp",
    "wa_numbers_total": "{{count}} números registados",
    "wa_refresh": "Atualizar",
    "wa_register_number": "Registar um número",
    "wa_no_numbers": "Nenhum número WhatsApp registado",
    "col_number": "Número",
    "col_id": "ID",
    "col_added_at": "Adicionado em",
    "wa_register_title": "Registar um número WhatsApp",
    "wa_step": "Passo {{step}}/2",
    "label_org": "Organização",
    "org_select_placeholder": "Selecionar uma organização...",
    "label_phone_number_id": "Phone Number ID",
    "phone_id_hint": "Encontre este ID no Meta Business Manager > WhatsApp Accounts",
    "label_pin": "PIN de segurança",
    "pin_hint": "PIN de 6 dígitos para proteger o número (deixe em branco = 000000)",
    "wa_select_org_error": "Por favor selecione uma organização.",
    "wa_phone_id_error": "O Phone Number ID deve ter entre 12 e 18 dígitos.",
    "wa_pin_error": "O PIN deve ter exatamente 6 dígitos.",
    "wa_sending": "A enviar...",
    "wa_send_otp": "Enviar código OTP",
    "wa_reg_error": "Erro durante o registo.",
    "wa_net_error": "Erro de rede.",
    "wa_otp_hint": "A Meta enviou-lhe um código OTP por SMS ou chamada de voz. Introduza-o abaixo.",
    "label_otp": "Código OTP",
    "wa_otp_error": "O código OTP deve ter entre 4 e 8 dígitos.",
    "wa_verifying": "A verificar...",
    "wa_verify": "Verificar",
    "wa_otp_invalid": "Código OTP inválido ou expirado.",
    "wa_number_registered": "Número registado com sucesso!",
    "wa_back": "Voltar",
    "err_load_numbers": "Erro ao carregar números",

    "tpl_title": "WhatsApp Templates",
    "tpl_orgs_count_one": "{{count}} organização com WhatsApp configurado",
    "tpl_orgs_count_other": "{{count}} organizações com WhatsApp configurado",
    "tpl_select_hint": "Selecione uma organização para gerir os seus modelos de mensagem WhatsApp.",
    "tpl_search_placeholder": "Pesquisar uma organização ou WABA ID...",
    "tpl_empty": "Nenhuma organização com WhatsApp configurado",
    "col_waba_id": "WABA ID",
    "col_actions": "Ações",
    "tpl_view": "Ver templates",
    "tpl_no_templates": "Nenhum modelo encontrado para esta organização.",
    "col_category": "Categoria",
    "col_language": "Língua",
    "tpl_create_btn": "Criar template",
    "tpl_create_title": "Novo template WhatsApp",
    "label_template_name": "Nome do template",
    "template_name_hint": "Minúsculas, dígitos, underscores apenas",
    "template_name_error": "Minúsculas, dígitos, underscores apenas",
    "label_category": "Categoria",
    "label_language": "Língua",
    "label_header_optional": "Cabeçalho (opcional)",
    "label_body": "Corpo da mensagem",
    "label_footer_optional": "Rodapé (opcional)",
    "label_preview": "Pré-visualização",
    "body_placeholder": "Corpo da mensagem...",
    "tpl_select_org_placeholder": "Selecionar uma organização…",
    "tpl_submitted": "Template submetido à Meta para aprovação",
    "tpl_create_required": "Organização, nome e corpo da mensagem são obrigatórios.",
    "tpl_name_invalid": "O nome do template é inválido.",
    "tpl_creating": "A criar…",
    "tpl_create_submit": "Criar template",
    "tpl_create_error": "Erro ao criar o template.",

    "profiles_title": "Perfis WhatsApp",
    "profiles_count_one": "{{count}} perfil",
    "profiles_count_other": "{{count}} perfis",
    "profile_empty": "Nenhum perfil WhatsApp encontrado",
    "label_org_name": "Nome da organização",
    "label_logo_url": "URL do logótipo",
    "label_primary_color": "Cor principal",
    "profile_updated": "Perfil atualizado",
    "err_load_profiles": "Erro ao carregar perfis",
    "err_save_profile": "Erro ao guardar",
    "btn_cancel_edit": "Cancelar",
    "btn_save": "Guardar",
    "saving_profile": "A guardar…",
    "btn_edit_profile": "Editar",

    "monitoring_title": "Monitorização & Alertas",
    "monitoring_subtitle": "Estado do sistema em tempo real",
    "system_health_title": "Saúde do sistema",
    "health_redis_cache": "Redis / Cache",
    "health_queue_jobs": "Fila de jobs",
    "queue_failed_detail": "{{count}} falhados",
    "queue_waiting_detail": "{{count}} em espera",
    "token_expiry_title": "Tokens WhatsApp a expirar",
    "token_no_risk": "Nenhum token em risco de expiração",
    "col_org": "Organização",
    "col_issued_ago": "Emitido",
    "col_days": "{{count}} dias",
    "low_balance_title": "Saldos baixos (< 100 créditos)",
    "low_balance_none": "Nenhuma organização com saldo baixo",
    "credits_label": "{{count}} créditos",
    "err_load_monitoring": "Erro ao carregar monitorização",

    "billing_title": "Faturação",
    "billing_transactions": "{{count}} transações",
    "billing_add_credits": "Adicionar créditos",
    "billing_no_transactions": "Nenhuma transação",
    "col_date": "Data",
    "col_type": "Tipo",
    "col_description": "Descrição",
    "col_amount": "Montante",
    "col_balance_after": "Saldo após",
    "credits_added": "{{amount}} créditos adicionados. Novo saldo: {{balance}}",
    "modal_add_credits": "Adicionar créditos",
    "label_org_id": "ID da organização",
    "org_id_placeholder": "org-uuid...",
    "label_credits_amount": "Montante (créditos)",
    "label_description_optional": "Descrição (opcional)",
    "credits_desc_placeholder": "Carregamento manual...",
    "adding": "A adicionar...",
    "add": "Adicionar",
    "err_load_transactions": "Erro ao carregar transações",
    "err_add_credits": "Erro ao adicionar créditos",

    "audit_title": "Audit Logs",
    "audit_total": "{{count}} entradas no total",
    "col_datetime": "Data / Hora",
    "col_action": "Ação",
    "col_actor": "Ator",
    "col_resource": "Recurso",
    "col_details": "Detalhes",
    "col_from": "De",
    "col_to": "Até",
    "audit_search": "Pesquisar",
    "audit_empty": "Nenhum log para estes critérios",
    "audit_show": "Ver",
    "audit_hide": "Ocultar",

    "ai_title": "AI Insights",
    "ai_subtitle": "Comandos em linguagem natural para gerir a plataforma",
    "ai_suggestion_1": "Mostra-me organizações com saldo baixo",
    "ai_suggestion_2": "Quais são as estatísticas da plataforma?",
    "ai_suggestion_3": "Lista os alertas ativos",
    "ai_suggestion_4": "Mostra as 10 últimas organizações",
    "ai_greeting": "Olá! Sou o seu assistente IA para a gestão da plataforma XAMLÉ. Faça-me uma pergunta ou dê-me uma instrução.",
    "ai_input_placeholder": "Digite um comando... ex: 'Adiciona 500 créditos à org XAMLÉ'",
    "ai_confirm": "Confirmar",
    "ai_cancelled": "Ação cancelada.",
    "ai_err": "Erro AI",
    "ai_err_exec": "Erro de execução",
    "ai_err_message": "Desculpe, ocorreu um erro.",
    "ai_err_exec_message": "Erro durante a execução.",
    "ai_done": "Ação concluída.",
    "ai_no_result": "Nenhum resultado encontrado.",

    "rel_today": "hoje",
    "rel_yesterday": "há 1 dia",
    "rel_days_ago": "há {{count}} dias",
    "tpl_cat_marketing_desc": "Promoções, ofertas, newsletters",
    "tpl_cat_utility_desc": "Confirmações, atualizações transacionais",
    "tpl_cat_authentication_desc": "Códigos OTP, verificação"
  }
}