main
dart 3,273 lines 81.7 KB
Raw
1 // ignore: unused_import
2 import 'package:intl/intl.dart' as intl;
3 import 'app_localizations.dart';
4
5 // ignore_for_file: type=lint
6
7 /// The translations for Portuguese (`pt`).
8 class AppLocalizationsPt extends AppLocalizations {
9 AppLocalizationsPt([String locale = 'pt']) : super(locale);
10
11 @override
12 String get app_name => 'LocalMind';
13
14 @override
15 String get app_tagline => 'Sua IA. Seu dispositivo. Suas regras.';
16
17 @override
18 String get app_version => '1.0.0';
19
20 @override
21 String get cancel => 'Cancelar';
22
23 @override
24 String get confirm => 'Confirmar';
25
26 @override
27 String get delete => 'Excluir';
28
29 @override
30 String get save => 'Salvar';
31
32 @override
33 String get retry => 'Tentar novamente';
34
35 @override
36 String get close => 'Fechar';
37
38 @override
39 String get done => 'Concluído';
40
41 @override
42 String get continue_action => 'Continuar';
43
44 @override
45 String get skip => 'Pular';
46
47 @override
48 String get install => 'Instalar';
49
50 @override
51 String get download => 'Baixar';
52
53 @override
54 String get resume => 'Currículo';
55
56 @override
57 String get pause => 'Pausa';
58
59 @override
60 String get stop => 'Pare';
61
62 @override
63 String get edit => 'Editar';
64
65 @override
66 String get preview => 'Visualização';
67
68 @override
69 String get unload => 'Descarregar';
70
71 @override
72 String get load => 'Carregar';
73
74 @override
75 String get rename => 'Renomear';
76
77 @override
78 String get pin => 'Fixar';
79
80 @override
81 String get unpin => 'Liberar';
82
83 @override
84 String get share => 'Compartilhar';
85
86 @override
87 String get copy => 'Copiar';
88
89 @override
90 String get copied => 'Copiado!';
91
92 @override
93 String get copied_to_clipboard => 'Copiado para a área de transferência';
94
95 @override
96 String get select => 'Selecione';
97
98 @override
99 String get active => 'Ativo';
100
101 @override
102 String get all => 'Todos';
103
104 @override
105 String get none => 'Nenhum';
106
107 @override
108 String get none_selected => 'Nenhum selecionado';
109
110 @override
111 String get online => 'On-line';
112
113 @override
114 String get connected => 'Conectado';
115
116 @override
117 String get checking => 'Verificando';
118
119 @override
120 String get offline => 'Off-line';
121
122 @override
123 String get error => 'Erro';
124
125 @override
126 String get unknown_error => 'Erro desconhecido';
127
128 @override
129 String get not_now => 'Agora não';
130
131 @override
132 String get enable => 'Habilitar';
133
134 @override
135 String get proceed_anyway => 'Prossiga de qualquer maneira';
136
137 @override
138 String get test_connection => 'Conexão de teste';
139
140 @override
141 String get testing => 'Testando...';
142
143 @override
144 String get connection_successful => 'Conexão bem-sucedida!';
145
146 @override
147 String get connection_failed =>
148 'Falha na conexão. Verifique suas configurações.';
149
150 @override
151 String get save_continue => 'Salvar e continuar';
152
153 @override
154 String get save_changes => 'Salvar alterações';
155
156 @override
157 String get finish_setup => 'Concluir configuração';
158
159 @override
160 String get start_new_chat => 'Iniciar novo bate-papo';
161
162 @override
163 String get cannot_undo => 'Esta ação não pode ser desfeita.';
164
165 @override
166 String get ram_warning => 'Aviso de RAM';
167
168 @override
169 String get recommended => 'RECOMENDADO';
170
171 @override
172 String get may_be_large => 'Pode ser muito grande para este dispositivo';
173
174 @override
175 String get calculating => 'Calculando...';
176
177 @override
178 String get download_failed => 'Falha no download';
179
180 @override
181 String get downloaded => 'Baixado';
182
183 @override
184 String get not_downloaded => 'Não baixado';
185
186 @override
187 String get installed => 'Instalado';
188
189 @override
190 String get not_installed => 'Não instalado';
191
192 @override
193 String get loading => 'Carregando...';
194
195 @override
196 String get thinking => 'Pensando';
197
198 @override
199 String get processing => 'Processando...';
200
201 @override
202 String get initializing => 'Inicializando...';
203
204 @override
205 String get ready => 'Pronto';
206
207 @override
208 String get preparing_app => 'Preparando aplicativo...';
209
210 @override
211 String get initializing_services => 'Inicializando serviços...';
212
213 @override
214 String get configuring_server => 'Configurando servidor...';
215
216 @override
217 String get startup_failed => 'Falha na inicialização';
218
219 @override
220 String get something_went_wrong => 'Algo deu errado';
221
222 @override
223 String get delete_model_title => 'Excluir modelo';
224
225 @override
226 String delete_model_body(String name) {
227 return 'Tem certeza de que deseja excluir o $name?';
228 }
229
230 @override
231 String delete_model_body_with_size(String name, String size) {
232 return 'Tem certeza de que deseja excluir o $name? Isso liberará aproximadamente $size de espaço.\n\nVocê pode baixar este modelo novamente mais tarde, se necessário.';
233 }
234
235 @override
236 String get delete_voice_title => 'Excluir voz';
237
238 @override
239 String delete_voice_body(String name, String size) {
240 return 'Tem certeza de que deseja excluir o $name? Isso liberará aproximadamente $size de espaço.\n\nVocê pode baixar esta voz novamente mais tarde, se necessário.';
241 }
242
243 @override
244 String get delete_server_title => 'Excluir servidor';
245
246 @override
247 String delete_server_body(String name) {
248 return 'Tem certeza de que deseja excluir \"$name\"? Isto não pode ser desfeito.';
249 }
250
251 @override
252 String get delete_conversation_title => 'Excluir conversa?';
253
254 @override
255 String delete_conversation_body(String title) {
256 return 'Tem certeza de que deseja excluir \"$title\"? Isto não pode ser desfeito.';
257 }
258
259 @override
260 String get delete_message_title => 'Excluir mensagem?';
261
262 @override
263 String delete_persona_title(String name) {
264 return 'Excluir \"$name\"?';
265 }
266
267 @override
268 String get delete_persona_body => 'Isto não pode ser desfeito.';
269
270 @override
271 String get delete_builtin_persona_body =>
272 'Esta é uma persona embutida. Você pode restaurá-lo mais tarde em Configurações.';
273
274 @override
275 String get restore_builtin_personas => 'Restaurar personas padrão';
276
277 @override
278 String get restore_builtin_personas_desc =>
279 'Adicione novamente quaisquer personas integradas que você excluiu';
280
281 @override
282 String get restore_builtin_personas_success => 'Personas padrão restauradas';
283
284 @override
285 String get clear_personas => 'Personalidades claras';
286
287 @override
288 String get enable_image_compression => 'Compacte imagens antes de enviar';
289
290 @override
291 String get enable_image_compression_desc =>
292 'Redimensione e compacte imagens anexadas para que os uploads permaneçam dentro dos limites do servidor';
293
294 @override
295 String get image_compression_level => 'Agressividade de compressão';
296
297 @override
298 String get image_compression_level_desc =>
299 'Maior agressividade produz uploads menores com qualidade inferior';
300
301 @override
302 String get image_compression_level_low => 'Baixo';
303
304 @override
305 String get image_compression_level_medium => 'Médio';
306
307 @override
308 String get image_compression_level_high => 'Alto';
309
310 @override
311 String get sort_models_tooltip => 'Classificar modelos';
312
313 @override
314 String get sort_by_favorites => 'Favoritos primeiro';
315
316 @override
317 String get sort_by_name => 'Nome (A-Z)';
318
319 @override
320 String get sort_by_size_smallest => 'Tamanho (menor primeiro)';
321
322 @override
323 String get sort_by_size_largest => 'Tamanho (maior primeiro)';
324
325 @override
326 String get sort_by_context_length => 'Comprimento do contexto';
327
328 @override
329 String bulk_ai_rename_progress(int done, int total) {
330 return 'Renomeando $done/$total...';
331 }
332
333 @override
334 String selected_count(int count) {
335 return '$count selecionado';
336 }
337
338 @override
339 String get ai_rename_tooltip => 'Renomear selecionado com IA';
340
341 @override
342 String get new_chat_in_folder_tooltip => 'Novo bate-papo nesta pasta';
343
344 @override
345 String total_tokens_count(int count) {
346 return 'Tokens $count';
347 }
348
349 @override
350 String get smart_replies_use_persona =>
351 'Use persona em respostas inteligentes';
352
353 @override
354 String get smart_replies_use_persona_desc =>
355 'As respostas sugeridas correspondem ao tom da persona ativa, em vez de um assistente genérico';
356
357 @override
358 String get keep_persona_on_new_chat => 'Mantenha a persona no novo chat';
359
360 @override
361 String get keep_persona_on_new_chat_desc =>
362 'Não limpe a(s) persona(s) selecionada(s) após iniciar um novo chat';
363
364 @override
365 String get role_swap_button_enabled => 'Mostrar botão de troca de função';
366
367 @override
368 String get role_swap_button_enabled_desc =>
369 'Mostrar um botão na entrada do chat para enviar sua mensagem como assistente em vez de usuário, sem gerar resposta';
370
371 @override
372 String get send_as_user_tooltip => 'Enviar como usuário';
373
374 @override
375 String get send_as_assistant_tooltip =>
376 'Enviar como assistente (sem resposta)';
377
378 @override
379 String get insert_without_generating_tooltip => 'Inserir sem gerar';
380
381 @override
382 String get token_usage_title => 'Uso de token';
383
384 @override
385 String get total_tokens_label => 'Tokens usados';
386
387 @override
388 String get usage_percent_label => 'Contexto usado';
389
390 @override
391 String get export_choice_title => 'Exportar';
392
393 @override
394 String get export_choice_body => 'Como você gostaria de exportar isso?';
395
396 @override
397 String get copy_to_clipboard => 'Copiar para a área de transferência';
398
399 @override
400 String bulk_export_conversations_success(int count) {
401 return 'Conversas $count exportadas';
402 }
403
404 @override
405 String get bulk_ai_rename_confirm_title => 'Renomear com IA?';
406
407 @override
408 String bulk_ai_rename_confirm_body(int count) {
409 return 'Isso solicitará que a IA gere um novo título para cada uma das conversas selecionadas pelo $count, substituindo os títulos atuais. Isso pode demorar um pouco e não pode ser desfeito.';
410 }
411
412 @override
413 String get sort_by_modified_date => 'Última modificação';
414
415 @override
416 String get sort_by_created_date => 'Data de criação';
417
418 @override
419 String get sort_title => 'Classificar';
420
421 @override
422 String get clear_conversation_title => 'Conversa clara?';
423
424 @override
425 String get clear_conversation_body =>
426 'Isso excluirá todas as mensagens desta conversa.';
427
428 @override
429 String get clear => 'Limpar';
430
431 @override
432 String label_completed(String label) {
433 return '$label concluído';
434 }
435
436 @override
437 String error_with_message(String error) {
438 return 'Erro: $error';
439 }
440
441 @override
442 String preview_failed(String error) {
443 return 'Falha na visualização: $error';
444 }
445
446 @override
447 String loading_model(String modelId) {
448 return 'Carregando $modelId...';
449 }
450
451 @override
452 String model_loaded(String modelId, String backend) {
453 return 'Modelo carregado: $modelId ($backend)';
454 }
455
456 @override
457 String get no_model_loaded =>
458 'Nenhum modelo carregado. Toque em “Gerenciar modelos no dispositivo” para baixar e carregar um modelo.';
459
460 @override
461 String loading_model_error(String error) {
462 return 'Erro: $error';
463 }
464
465 @override
466 String get delete_conversation => 'Excluir conversa?';
467
468 @override
469 String get nav_history => 'História';
470
471 @override
472 String get nav_servers => 'Servidores';
473
474 @override
475 String get nav_local_models => 'Modelos Locais';
476
477 @override
478 String get nav_tts => 'Texto para fala';
479
480 @override
481 String get nav_personas => 'Personagens';
482
483 @override
484 String get nav_settings => 'Configurações';
485
486 @override
487 String get nav_new_chat => 'Novo bate-papo';
488
489 @override
490 String get search_hint => 'Pesquisar conversas...';
491
492 @override
493 String get no_server_selected => 'Nenhum servidor selecionado';
494
495 @override
496 String get switch_server => 'Trocar servidor';
497
498 @override
499 String get switch_server_subtitle => 'Escolha um servidor para se conectar';
500
501 @override
502 String get manage_servers => 'Gerenciar servidores';
503
504 @override
505 String get open_source => 'Código aberto';
506
507 @override
508 String get open_source_desc =>
509 'LocalMind é de código aberto. Acompanhe nosso progresso ou contribua no GitHub.';
510
511 @override
512 String get star_on_github => 'Estrela no GitHub';
513
514 @override
515 String get add_more => 'Adicionar mais';
516
517 @override
518 String get on_github => 'no GitHub';
519
520 @override
521 String get could_not_open_github => 'Não foi possível abrir o GitHub.';
522
523 @override
524 String get settings_title => 'Configurações';
525
526 @override
527 String get settings_appearance => 'Aparência';
528
529 @override
530 String get settings_language => 'Idioma';
531
532 @override
533 String get language_system_default => 'Padrão do sistema';
534
535 @override
536 String get settings_tts => 'Conversão de texto para fala';
537
538 @override
539 String get settings_android_assistant => 'Assistente Android';
540
541 @override
542 String get assistant_default_title => 'Use LocalMind como seu assistente';
543
544 @override
545 String get assistant_default_description =>
546 'Inicie o modo de voz com o gesto do assistente do Android ou o atalho do botão liga / desliga.';
547
548 @override
549 String get assistant_status_active => 'Ativo';
550
551 @override
552 String get assistant_status_available => 'Não ativo';
553
554 @override
555 String get assistant_status_manual => 'Verifique as configurações';
556
557 @override
558 String get assistant_status_unsupported => 'Indisponível';
559
560 @override
561 String get assistant_status_checking => 'Verificando…';
562
563 @override
564 String get assistant_set_default => 'Definir como assistente padrão';
565
566 @override
567 String get assistant_open_settings =>
568 'Abra as configurações do assistente Android';
569
570 @override
571 String assistant_error(Object error) {
572 return 'Não foi possível abrir as configurações do assistente Android.';
573 }
574
575 @override
576 String get settings_behavior => 'Comportamento';
577
578 @override
579 String get settings_on_device => 'Inferência no dispositivo';
580
581 @override
582 String get settings_default_server => 'Servidor padrão';
583
584 @override
585 String get settings_default_persona => 'Personagem padrão';
586
587 @override
588 String get settings_default_model => 'Modelo padrão';
589
590 @override
591 String get settings_default_model_desc =>
592 'Selecionado automaticamente quando você inicia um novo bate-papo.';
593
594 @override
595 String get settings_privacy => 'Privacidade';
596
597 @override
598 String get settings_data_management => 'Gerenciamento de dados';
599
600 @override
601 String get settings_about => 'Sobre';
602
603 @override
604 String get theme => 'Tema';
605
606 @override
607 String get theme_system => 'Sistema';
608
609 @override
610 String get theme_light => 'Luz';
611
612 @override
613 String get theme_dark => 'Escuro';
614
615 @override
616 String get theme_claude => 'Cláudio';
617
618 @override
619 String get font_size => 'Tamanho da fonte';
620
621 @override
622 String get font_size_desc => 'Ajuste o tamanho do texto no chat.';
623
624 @override
625 String get font_preview =>
626 'A rápida raposa marrom salta sobre o cachorro preguiçoso.';
627
628 @override
629 String get code_theme_dark => 'Tema de código (escuro)';
630
631 @override
632 String get code_theme_light => 'Tema de código (claro)';
633
634 @override
635 String get code_theme_desc =>
636 'Escolha o tema de destaque de sintaxe para blocos de código.';
637
638 @override
639 String get tts_engine => 'Motor TTS';
640
641 @override
642 String get tts_engine_system => 'Sistema TTS';
643
644 @override
645 String get tts_engine_kitten => 'Gatinho TTS';
646
647 @override
648 String get voice => 'Voz';
649
650 @override
651 String get voice_female => 'Feminino';
652
653 @override
654 String get voice_male => 'Masculino';
655
656 @override
657 String get voice_other => 'Outro';
658
659 @override
660 String get tts_speed => 'Velocidade TTS';
661
662 @override
663 String get tts_speed_desc => 'Ajuste a taxa de reprodução.';
664
665 @override
666 String get manage_tts_models => 'Gerenciar modelos TTS';
667
668 @override
669 String get manage_on_device_models => 'Gerenciar modelos no dispositivo';
670
671 @override
672 String get enable_smart_reply => 'Respostas inteligentes no dispositivo';
673
674 @override
675 String get ai_user_response_enabled =>
676 'Mensagem do usuário AI (manter envio)';
677
678 @override
679 String get ai_user_response_enabled_desc =>
680 'Segure o botão enviar por 3 segundos para que a IA escreva e envie sua próxima mensagem';
681
682 @override
683 String get ai_user_response_tooltip => 'Gere mensagem do usuário com IA';
684
685 @override
686 String get streaming_responses => 'Respostas de streaming';
687
688 @override
689 String get auto_generate_titles => 'Gerar títulos automaticamente';
690
691 @override
692 String get send_on_enter => 'Enviar ao entrar';
693
694 @override
695 String get show_system_messages => 'Enviar prompt padrão do sistema';
696
697 @override
698 String get show_system_messages_desc =>
699 'Quando nenhuma persona for selecionada, envie um prompt padrão do sistema do assistente com cada solicitação';
700
701 @override
702 String get show_system_messages_in_chat =>
703 'Mostrar mensagens do sistema no bate-papo';
704
705 @override
706 String get show_system_messages_in_chat_desc =>
707 'Exibir mensagens do sistema (por exemplo, de um backup importado) como balões visíveis na conversa';
708
709 @override
710 String get auto_collapse_thinking => 'Pensamento de colapso automático';
711
712 @override
713 String get auto_collapse_thinking_desc =>
714 'Recolher automaticamente o processo de raciocínio após a geração da resposta ser concluída quando uma resposta principal estiver presente';
715
716 @override
717 String get haptic_feedback => 'Feedback tátil';
718
719 @override
720 String get enable_mcp => 'Habilitar MCP';
721
722 @override
723 String get new_chat_mcp_default => 'Novo padrão MCP de bate-papo';
724
725 @override
726 String get show_data_indicator => 'Mostrar indicador de dados';
727
728 @override
729 String get privacy_info => '\"LocalMind nunca vê seus dados\"';
730
731 @override
732 String get delete_all_conversations => 'Excluir todas as conversas';
733
734 @override
735 String get reset_settings_defaults =>
736 'Redefinir as configurações para os padrões';
737
738 @override
739 String get chat_title => 'LocalMind';
740
741 @override
742 String get chat_parameters_tooltip => 'Parâmetros de bate-papo';
743
744 @override
745 String get change_persona => 'Mudar de personalidade';
746
747 @override
748 String get set_persona => 'Definir personalidade';
749
750 @override
751 String get remove_persona => 'Remover personalidade';
752
753 @override
754 String get clear_conversation => 'Conversa clara';
755
756 @override
757 String get connection_error => 'Erro de conexão. Verifique seu servidor.';
758
759 @override
760 String get disconnected => 'Desconectado do servidor.';
761
762 @override
763 String get configure => 'Configurar';
764
765 @override
766 String get select_model => 'Selecione o modelo';
767
768 @override
769 String get select_persona => 'Selecione a personalidade';
770
771 @override
772 String get manage_personas => 'Gerenciar personas';
773
774 @override
775 String get personas_combine_hint =>
776 'Selecione várias personas no chat para empilhar as solicitações do sistema.';
777
778 @override
779 String get start_conversation => 'Inicie uma conversa';
780
781 @override
782 String get recent_chats => 'Bate-papos recentes';
783
784 @override
785 String get see_all => 'Ver tudo';
786
787 @override
788 String get quick_write => 'Ajude-me a escrever uma função';
789
790 @override
791 String get quick_explain => 'Explique este código';
792
793 @override
794 String get quick_debug => 'Depure isso para mim';
795
796 @override
797 String get quick_async => 'Como faço para usar assíncrono/aguardar?';
798
799 @override
800 String get history_missing_title => 'História ausente';
801
802 @override
803 String get history_missing_desc =>
804 'As mensagens neste bate-papo foram excluídas ou o registro do histórico está corrompido.';
805
806 @override
807 String get technical_details => 'Detalhes técnicos';
808
809 @override
810 String get last_error => 'Último erro:';
811
812 @override
813 String get copy_info => 'Copiar informações';
814
815 @override
816 String get conversation_id => 'ID da conversa';
817
818 @override
819 String get created_at => 'Criado em';
820
821 @override
822 String get expected_messages => 'Mensagens esperadas';
823
824 @override
825 String get debug_dialog_desc =>
826 'Informações de diagnóstico para ajudar a identificar problemas de sincronização.';
827
828 @override
829 String get chat_input_hint => 'Pergunte qualquer coisa';
830
831 @override
832 String get send_message_tooltip => 'Enviar mensagem';
833
834 @override
835 String get stop_generation_tooltip => 'Parar geração';
836
837 @override
838 String get attach_images_tooltip => 'Anexe imagens ou texto';
839
840 @override
841 String get start_listening_tooltip => 'Comece a ouvir';
842
843 @override
844 String get stop_listening_tooltip => 'Pare de ouvir';
845
846 @override
847 String tool_label(String toolCallId) {
848 return 'Ferramenta: $toolCallId';
849 }
850
851 @override
852 String get tool_unknown => 'Ferramenta: Desconhecida';
853
854 @override
855 String get message_options => 'Opções de mensagem';
856
857 @override
858 String get copy_markdown => 'Copiar como Markdown';
859
860 @override
861 String get copied_markdown => 'Copiado como Markdown';
862
863 @override
864 String get read_aloud => 'Leia em voz alta';
865
866 @override
867 String get stop_reading => 'Pare de ler';
868
869 @override
870 String get more => 'Mais';
871
872 @override
873 String character_count(int length) {
874 return 'Caracteres $length';
875 }
876
877 @override
878 String get edit_message => 'Editar mensagem';
879
880 @override
881 String get edit_message_desc =>
882 'Salvar removerá a resposta do assistente abaixo e a regenerará.';
883
884 @override
885 String get save_regenerate => 'Salvar e regenerar';
886
887 @override
888 String get chat_settings_title => 'Configurações de bate-papo';
889
890 @override
891 String get reset_defaults => 'Redefinir padrões';
892
893 @override
894 String get parameters_tab => 'Parâmetros';
895
896 @override
897 String get mcp_tab => 'PCM';
898
899 @override
900 String get temperature => 'Temperatura';
901
902 @override
903 String get temperature_desc =>
904 'Controla a aleatoriedade: Superior = Criativo, Inferior = Focado';
905
906 @override
907 String get top_p => 'Parte superior P';
908
909 @override
910 String get top_p_desc => 'Limite de amostragem de núcleo';
911
912 @override
913 String get max_tokens => 'Máximo de tokens';
914
915 @override
916 String get max_tokens_desc => 'Limite de resposta';
917
918 @override
919 String get context_length => 'Comprimento do contexto';
920
921 @override
922 String get context_length_desc => 'Janela de histórico';
923
924 @override
925 String get mcp_disabled_warning =>
926 'O MCP está desabilitado globalmente. Ative-o em Configurações para usar esses recursos.';
927
928 @override
929 String get mcp_enable_chat => 'Habilite o MCP para este chat';
930
931 @override
932 String get auto_execute_tools => 'Ferramentas de execução automática';
933
934 @override
935 String get beta_label => 'Beta';
936
937 @override
938 String get experimental_label => 'Experimental';
939
940 @override
941 String get add_ephemeral_mcp => 'Adicionar servidor MCP efêmero';
942
943 @override
944 String get mcp_label_placeholder => 'Etiqueta';
945
946 @override
947 String get mcp_url_placeholder => 'URL (https://...)';
948
949 @override
950 String get active_integrations => 'Integrações Ativas';
951
952 @override
953 String get import_mcp_json => 'Importar JSON';
954
955 @override
956 String get import_mcp_json_dialog_title =>
957 'Importar JSON de configuração do MCP';
958
959 @override
960 String get import_mcp_json_instructions =>
961 'Copie seu JSON mcpServers diretamente do LM Studio (mcp.json) ou cole um array de plugins abaixo:';
962
963 @override
964 String get import_mcp_json_placeholder =>
965 'Cole mcpServers JSON ou lista de plugins aqui...';
966
967 @override
968 String mcp_import_success(int count) {
969 return 'Integrações $count importadas com sucesso';
970 }
971
972 @override
973 String get mcp_import_failed =>
974 'Nenhuma integração MCP válida encontrada em JSON';
975
976 @override
977 String get enable_notifications => 'Habilitar notificações';
978
979 @override
980 String get enable_notifications_desc =>
981 'Seja notificado quando o download dos modelos terminar.';
982
983 @override
984 String get chat_history_title => 'Histórico de bate-papo';
985
986 @override
987 String get conversation_just_now => 'Agora mesmo';
988
989 @override
990 String conversation_minutes_ago(int minutes) {
991 return '${minutes}m atrás';
992 }
993
994 @override
995 String conversation_hours_ago(int hours) {
996 return '${hours}h atrás';
997 }
998
999 @override
1000 String get conversation_yesterday => 'Ontem';
1001
1002 @override
1003 String conversation_days_ago(int days) {
1004 return '${days}d atrás';
1005 }
1006
1007 @override
1008 String conversation_date(int month, int day, int year) {
1009 return '$month/$day/$year';
1010 }
1011
1012 @override
1013 String get options_tooltip => 'Opções';
1014
1015 @override
1016 String get no_results_found => 'Nenhum resultado encontrado';
1017
1018 @override
1019 String get no_conversations_yet => 'Ainda não há conversas';
1020
1021 @override
1022 String get try_different_search =>
1023 'Experimente um termo de pesquisa diferente';
1024
1025 @override
1026 String get start_new_conversation => 'Inicie uma nova conversa';
1027
1028 @override
1029 String get rename_conversation => 'Renomear conversa';
1030
1031 @override
1032 String get enter_new_title => 'Insira o novo título';
1033
1034 @override
1035 String get pinned_section => 'FIXADO';
1036
1037 @override
1038 String get today_section => 'HOJE';
1039
1040 @override
1041 String get yesterday_section => 'ONTEM';
1042
1043 @override
1044 String get previous_7_days => '7 DIAS ANTERIORES';
1045
1046 @override
1047 String get previous_30_days => '30 DIAS ANTERIORES';
1048
1049 @override
1050 String get older_section => 'MAIS ANTIGO';
1051
1052 @override
1053 String get onboarding_choose_language => 'Escolha o idioma';
1054
1055 @override
1056 String get onboarding_choose_language_desc =>
1057 'Selecione seu idioma preferido. Você pode alterar isso a qualquer momento nas configurações.';
1058
1059 @override
1060 String get onboarding_localmind => 'MENTE LOCAL';
1061
1062 @override
1063 String get onboarding_connect_server => 'Conecte seu\nServidor';
1064
1065 @override
1066 String get onboarding_connect_desc =>
1067 'Conecte-se ao LM Studio, Ollama,\nOllama Cloud ou OpenRouter para\ncomece sua experiência privada de IA.';
1068
1069 @override
1070 String get openai_compatible_api => 'API compatível com OpenAI';
1071
1072 @override
1073 String get https_requires_ssl => 'HTTPS requer SSL';
1074
1075 @override
1076 String get most_local_setups_use_http =>
1077 'A maioria das configurações locais usa http://';
1078
1079 @override
1080 String get onboarding_welcome => 'Bem-vindo à LocalMind';
1081
1082 @override
1083 String get server_type_on_device => 'No dispositivo';
1084
1085 @override
1086 String get server_type_lm_studio => 'Estúdio LM';
1087
1088 @override
1089 String get server_type_ollama => 'Ollama';
1090
1091 @override
1092 String get server_type_ollama_cloud => 'Nuvem de Ollama';
1093
1094 @override
1095 String get server_type_ollama_cloud_sub => 'GERENCIADO NA NUVEM';
1096
1097 @override
1098 String get server_type_ollama_cloud_display => 'Nuvem de Ollama';
1099
1100 @override
1101 String get server_address_ollama_cloud => 'ollama. com';
1102
1103 @override
1104 String get ollama_cloud_disclosure =>
1105 'Ao conectar o Ollama Cloud, suas mensagens de bate-papo e entradas são enviadas aos servidores gerenciados do Ollama para inferência. LocalMind não rastreia nem armazena suas conversas. Você pode revogar essa chave a qualquer momento em ollama.com/settings/keys.';
1106
1107 @override
1108 String get api_key_required_ollama_cloud =>
1109 'Chave de API necessária para Ollama Cloud';
1110
1111 @override
1112 String get api_key_hint_ollama_cloud =>
1113 'Cole sua chave de API do Ollama Cloud';
1114
1115 @override
1116 String get add_server_ollama_cloud_subtitle =>
1117 'Conecte-se ao Ollama Cloud com uma chave de API em ollama.com/settings/keys para acessar modelos de nuvem gerenciados.';
1118
1119 @override
1120 String get add_server_openrouter_subtitle =>
1121 'Conecte-se através do OpenRouter com uma chave de API válida e mantenha este perfil pronto para roteamento de modelo.';
1122
1123 @override
1124 String get add_server_requesty_subtitle =>
1125 'Conecte-se através do Requesty com uma chave de API válida e mantenha este perfil pronto para roteamento de modelo.';
1126
1127 @override
1128 String get add_server_endpoint_subtitle =>
1129 'Configure um endpoint local ou auto-hospedado e verifique a conexão antes de salvar.';
1130
1131 @override
1132 String get server_type_openrouter => 'OpenRouter';
1133
1134 @override
1135 String get server_type_requesty => 'Requesty';
1136
1137 @override
1138 String get server_type_openrouter_sub => 'NUVEM UNIFICADA';
1139
1140 @override
1141 String get server_type_requesty_sub => 'NUVEM UNIFICADA';
1142
1143 @override
1144 String get ready_continue => 'PRONTO PARA CONTINUAR';
1145
1146 @override
1147 String get waiting_selection => 'AGUARDANDO SELEÇÃO';
1148
1149 @override
1150 String get setup_connection => 'Configurar conexão';
1151
1152 @override
1153 String setup_connection_desc(String server) {
1154 return 'Configure seu servidor $server para começar a conversar.';
1155 }
1156
1157 @override
1158 String get server_name => 'Nome do servidor';
1159
1160 @override
1161 String get name_required => 'Nome obrigatório';
1162
1163 @override
1164 String get name_max_50 => 'Máximo de 50 caracteres';
1165
1166 @override
1167 String get host_label => 'Host/Endereço IP';
1168
1169 @override
1170 String get host_required => 'Anfitrião necessário';
1171
1172 @override
1173 String get port_label => 'Porto';
1174
1175 @override
1176 String get port_required => 'Porta necessária';
1177
1178 @override
1179 String get port_invalid => 'Deve ser um número';
1180
1181 @override
1182 String get port_range => 'Insira uma porta válida (1-65535)';
1183
1184 @override
1185 String get api_key_required => 'Chave API *';
1186
1187 @override
1188 String get api_key_optional => 'Chave de API (opcional)';
1189
1190 @override
1191 String get api_key_required_openrouter =>
1192 'Chave de API necessária para OpenRouter';
1193
1194 @override
1195 String get api_key_required_requesty =>
1196 'Chave de API necessária para Requesty';
1197
1198 @override
1199 String get api_key_format => 'As chaves da API OpenRouter começam com sk-';
1200
1201 @override
1202 String get my_server_hint => 'Meu servidor';
1203
1204 @override
1205 String get name_length_validation => 'O nome deve ter 50 caracteres ou menos';
1206
1207 @override
1208 String get host_valid => 'Insira um nome de host ou endereço IP válido';
1209
1210 @override
1211 String get api_key_hint_openrouter => 'sk-...';
1212
1213 @override
1214 String get api_key_hint_requesty => 'rqsty-...';
1215
1216 @override
1217 String get api_key_hint_generic => 'Para servidores autenticados';
1218
1219 @override
1220 String get update_server => 'Servidor de atualização';
1221
1222 @override
1223 String get save_server => 'Salvar servidor';
1224
1225 @override
1226 String get server_updated => 'Servidor atualizado';
1227
1228 @override
1229 String get server_added => 'Servidor adicionado';
1230
1231 @override
1232 String get download_model_title => 'Baixe um modelo';
1233
1234 @override
1235 String get download_model_desc =>
1236 'Escolha um modelo para baixar.\nEle será executado localmente no seu dispositivo.';
1237
1238 @override
1239 String get on_device_android_only =>
1240 'Atualmente, a inferência no dispositivo está disponível apenas no Android.';
1241
1242 @override
1243 String get total_ram => 'RAM total';
1244
1245 @override
1246 String get available => 'Disponível';
1247
1248 @override
1249 String ram_min_required(String fileSize) {
1250 return '$fileSize GB de RAM mínimo';
1251 }
1252
1253 @override
1254 String download_progress(String percent, String speed) {
1255 return '$percent% • $speed';
1256 }
1257
1258 @override
1259 String eta_label(String eta) {
1260 return 'Hora prevista de chegada: $eta';
1261 }
1262
1263 @override
1264 String paused_progress(String percent) {
1265 return 'Pausado - $percent%';
1266 }
1267
1268 @override
1269 String ram_warning_body_download(String ram, String totalMemory) {
1270 return 'Este modelo requer pelo menos $ram GB de RAM, mas seu dispositivo possui $totalMemory. Ele pode não funcionar corretamente ou causar falha no aplicativo.';
1271 }
1272
1273 @override
1274 String ram_warning_body_load(String availableRAM, String ram) {
1275 return 'Seu dispositivo possui RAM disponível $availableRAM, mas este modelo recomenda pelo menos $ram GB. Carregá-lo pode falhar ou causar instabilidade.';
1276 }
1277
1278 @override
1279 String get choose_theme => 'Escolha o tema';
1280
1281 @override
1282 String get choose_theme_desc =>
1283 'Personalize a aparência do aplicativo. Você sempre pode alterar isso mais tarde nas configurações.';
1284
1285 @override
1286 String get theme_card_system => 'Sistema';
1287
1288 @override
1289 String get theme_card_system_sub =>
1290 'Corresponde às configurações do seu dispositivo';
1291
1292 @override
1293 String get theme_card_light => 'Luz';
1294
1295 @override
1296 String get theme_card_light_sub => 'Limpo e brilhante';
1297
1298 @override
1299 String get theme_card_dark => 'Escuro';
1300
1301 @override
1302 String get theme_card_dark_sub => 'Fácil para os olhos';
1303
1304 @override
1305 String get theme_card_claude => 'Cláudio';
1306
1307 @override
1308 String get theme_card_claude_sub => 'Um tema quente com tons de pêssego';
1309
1310 @override
1311 String get stay_updated => 'Fique atualizado';
1312
1313 @override
1314 String get stay_updated_desc =>
1315 'Seja notificado quando o download dos seus modelos de IA terminar ou quando tarefas de longa execução forem concluídas.';
1316
1317 @override
1318 String get notification_benefit_downloads =>
1319 'Progresso do download do modelo';
1320
1321 @override
1322 String get notification_benefit_completions => 'Conclusões de geração';
1323
1324 @override
1325 String get notification_benefit_background =>
1326 'Status das tarefas em segundo plano';
1327
1328 @override
1329 String get allow_notifications => 'Permitir notificações';
1330
1331 @override
1332 String get servers_title => 'Servidores';
1333
1334 @override
1335 String get no_servers_yet => 'Ainda não há servidores';
1336
1337 @override
1338 String get no_servers_desc =>
1339 'Adicione seu primeiro servidor para começar a conversar com modelos de IA.';
1340
1341 @override
1342 String get add_server => 'Adicionar servidor';
1343
1344 @override
1345 String switched_to_server(String name) {
1346 return 'Mudou para $name';
1347 }
1348
1349 @override
1350 String get edit_server => 'Editar servidor';
1351
1352 @override
1353 String get add_server_title => 'Adicionar servidor';
1354
1355 @override
1356 String get server_type_label => 'Tipo de servidor';
1357
1358 @override
1359 String get server_icon_label => 'Ícone do servidor';
1360
1361 @override
1362 String get default_icon => 'Ícone padrão';
1363
1364 @override
1365 String get server_type_lm_studio_display => 'Estúdio LM';
1366
1367 @override
1368 String get server_type_openai_display => 'Compatível com OpenAI';
1369
1370 @override
1371 String get server_type_ollama_display => 'Ollama';
1372
1373 @override
1374 String get server_type_openrouter_display => 'OpenRouter';
1375
1376 @override
1377 String get server_type_requesty_display => 'Requesty';
1378
1379 @override
1380 String get server_type_on_device_display => 'No dispositivo';
1381
1382 @override
1383 String get server_address_openrouter => 'openrouter.ai';
1384
1385 @override
1386 String get server_address_requesty => 'router.requesty.ai';
1387
1388 @override
1389 String get server_address_on_device => 'Inferência local';
1390
1391 @override
1392 String server_address_format(String host, String port) {
1393 return '$host:$port';
1394 }
1395
1396 @override
1397 String get default_badge => 'Padrão';
1398
1399 @override
1400 String get set_as_default => 'Definir como padrão';
1401
1402 @override
1403 String get select_icon => 'Selecione o ícone';
1404
1405 @override
1406 String get select_icon_desc => 'Escolha um ícone para o seu servidor';
1407
1408 @override
1409 String get search_icons_hint => 'Pesquisar ícones...';
1410
1411 @override
1412 String get server_icon_stack => 'Pilha de servidores';
1413
1414 @override
1415 String get server_icon_stack2 => 'Pilha de servidores 02';
1416
1417 @override
1418 String get server_icon_stack3 => 'Pilha de servidores 03';
1419
1420 @override
1421 String get server_icon_cloud => 'Nuvem';
1422
1423 @override
1424 String get server_icon_cloud_server => 'Servidor em nuvem';
1425
1426 @override
1427 String get server_icon_mcp => 'Servidor MCP';
1428
1429 @override
1430 String get server_icon_database => 'Banco de dados';
1431
1432 @override
1433 String get server_icon_database1 => 'Banco de dados 01';
1434
1435 @override
1436 String get server_icon_database2 => 'Banco de dados 02';
1437
1438 @override
1439 String get server_icon_cpu => 'CPU';
1440
1441 @override
1442 String get server_icon_chip => 'Chip';
1443
1444 @override
1445 String get server_icon_chip2 => 'Ficha 02';
1446
1447 @override
1448 String get server_icon_computer => 'Computador';
1449
1450 @override
1451 String get server_icon_laptop => 'Portátil';
1452
1453 @override
1454 String get server_icon_terminal => 'Terminal de computador';
1455
1456 @override
1457 String get server_icon_code => 'Código';
1458
1459 @override
1460 String get server_icon_ai_brain => 'Cérebro de IA';
1461
1462 @override
1463 String get server_icon_ai_brain2 => 'Cérebro IA 02';
1464
1465 @override
1466 String get server_icon_ai_cloud => 'Nuvem de IA';
1467
1468 @override
1469 String get server_icon_ai_network => 'Rede de IA';
1470
1471 @override
1472 String get server_icon_ai_chat => 'Bate-papo com IA';
1473
1474 @override
1475 String get server_icon_cellular => 'Rede Celular';
1476
1477 @override
1478 String get server_icon_plug1 => 'Plugue 01';
1479
1480 @override
1481 String get server_icon_plug2 => 'Plugue 02';
1482
1483 @override
1484 String get server_icon_bot => 'Robô';
1485
1486 @override
1487 String get server_icon_bot2 => 'Robô 02';
1488
1489 @override
1490 String get server_icon_robotic => 'Robótico';
1491
1492 @override
1493 String get server_icon_rocket => 'Foguete';
1494
1495 @override
1496 String get server_icon_star => 'Estrela';
1497
1498 @override
1499 String get server_icon_settings1 => 'Configurações 01';
1500
1501 @override
1502 String get server_icon_settings2 => 'Configurações 02';
1503
1504 @override
1505 String get server_icon_home1 => 'Casa 01';
1506
1507 @override
1508 String get server_icon_home2 => 'Casa 02';
1509
1510 @override
1511 String get server_icon_folder1 => 'Pasta 01';
1512
1513 @override
1514 String get server_icon_folder2 => 'Pasta 02';
1515
1516 @override
1517 String get server_icon_file1 => 'Arquivo 01';
1518
1519 @override
1520 String get server_icon_lock => 'Bloquear';
1521
1522 @override
1523 String get server_icon_key => 'Chave 01';
1524
1525 @override
1526 String get server_icon_link => 'Ligação 01';
1527
1528 @override
1529 String get server_icon_globe => 'Globo';
1530
1531 @override
1532 String get server_icon_api => 'API';
1533
1534 @override
1535 String get server_icon_arrow_right => 'Seta para a Direita 01';
1536
1537 @override
1538 String get server_icon_check => 'Verifique o círculo';
1539
1540 @override
1541 String get server_icon_alert => 'Círculo de Alerta';
1542
1543 @override
1544 String get server_icon_info => 'Círculo de Informações';
1545
1546 @override
1547 String get server_icon_zap => 'Zap';
1548
1549 @override
1550 String get server_icon_cloud_upload => 'Carregamento na nuvem';
1551
1552 @override
1553 String get server_icon_cloud_download => 'Download na nuvem';
1554
1555 @override
1556 String get server_icon_refresh => 'Atualizar';
1557
1558 @override
1559 String get server_icon_hard_drive => 'Disco rígido';
1560
1561 @override
1562 String get server_icon_drive => 'Dirigir';
1563
1564 @override
1565 String get personas_title => 'Personagens';
1566
1567 @override
1568 String get persona_category_general => 'Geral';
1569
1570 @override
1571 String get persona_category_coding => 'Codificação';
1572
1573 @override
1574 String get persona_category_education => 'Educação';
1575
1576 @override
1577 String get persona_category_creative => 'Criativo';
1578
1579 @override
1580 String get persona_builtin_section => 'INTEGRADO';
1581
1582 @override
1583 String get persona_my_section => 'MINHAS PESSOAS';
1584
1585 @override
1586 String get clone_edit => 'Clonar e editar';
1587
1588 @override
1589 String get builtin_badge => 'Integrado';
1590
1591 @override
1592 String get no_personas_found => 'Nenhuma persona encontrada';
1593
1594 @override
1595 String get no_personas_desc =>
1596 'Crie sua primeira persona para personalizar o comportamento da IA.';
1597
1598 @override
1599 String get edit_persona => 'Editar personalidade';
1600
1601 @override
1602 String get create_persona => 'Criar personalidade';
1603
1604 @override
1605 String get create_persona_button => 'Criar';
1606
1607 @override
1608 String get emoji_label => 'Emoji';
1609
1610 @override
1611 String get name_label => 'Nome';
1612
1613 @override
1614 String get my_persona_hint => 'Minha personalidade';
1615
1616 @override
1617 String get category_label => 'Categoria';
1618
1619 @override
1620 String get description_optional => 'Descrição (opcional)';
1621
1622 @override
1623 String get description_hint => 'O que essa pessoa faz...';
1624
1625 @override
1626 String get system_prompt => 'Alerta do sistema';
1627
1628 @override
1629 String character_count_max(int currentLen) {
1630 return '$currentLen/4000';
1631 }
1632
1633 @override
1634 String get no_prompt_placeholder => 'Nenhum aviso ainda...';
1635
1636 @override
1637 String get prompt_hint => 'Você é um assistente prestativo...';
1638
1639 @override
1640 String get prompt_required => 'O prompt do sistema é obrigatório';
1641
1642 @override
1643 String get prompt_max_chars => 'Máximo de 4.000 caracteres';
1644
1645 @override
1646 String get advanced_settings => 'Configurações avançadas';
1647
1648 @override
1649 String get temperature_label => 'Temperatura (0,0-2,0)';
1650
1651 @override
1652 String get top_p_label => 'P superior (0,0-1,0)';
1653
1654 @override
1655 String get temp_hint => '0,7';
1656
1657 @override
1658 String get top_p_hint => '0,9';
1659
1660 @override
1661 String get range_0_2 => '0,0-2,0';
1662
1663 @override
1664 String get range_0_1 => '0,0-1,0';
1665
1666 @override
1667 String get persona_updated => 'Personagem atualizada';
1668
1669 @override
1670 String get persona_created => 'Personagem criada';
1671
1672 @override
1673 String get tts_models_title => 'Modelos de texto para fala';
1674
1675 @override
1676 String get always_available => 'Sempre disponível';
1677
1678 @override
1679 String get tts_system_desc =>
1680 'Usa o mecanismo de conversão de texto em fala integrado do seu dispositivo.\nNão são necessários downloads. A seleção de voz usa as configurações do sistema do seu dispositivo.';
1681
1682 @override
1683 String get downloading_status => 'Baixando...';
1684
1685 @override
1686 String tts_kitten_desc(String size) {
1687 return 'TTS neural ultrarrápido com 8 vozes expressivas.\nRequer download do $size.';
1688 }
1689
1690 @override
1691 String tts_piper_desc(String size) {
1692 return 'Vozes offline rápidas do Piper com 2 vozes expressivas.\nRequer download de $size por voz.';
1693 }
1694
1695 @override
1696 String engine_spec(String sizeMb, String ramMb, int voiceCount) {
1697 return '$sizeMb MB · $ramMb MB RAM · Vozes $voiceCount';
1698 }
1699
1700 @override
1701 String get on_device_models_title => 'Modelos no dispositivo';
1702
1703 @override
1704 String get settings_huggingface_token =>
1705 'Abraçando o token de rosto (opcional)';
1706
1707 @override
1708 String get settings_huggingface_token_desc =>
1709 'Necessário apenas para modelos fechados (por exemplo, Gemma). Obtenha um token em huggingface.co/settings/tokens.';
1710
1711 @override
1712 String get settings_huggingface_token_set => 'Token salvo';
1713
1714 @override
1715 String get settings_huggingface_token_cleared => 'Token limpo';
1716
1717 @override
1718 String get model_requires_huggingface_token =>
1719 'Requer um token de Rosto Abraçado';
1720
1721 @override
1722 String get model_missing_huggingface_token =>
1723 'Este modelo está bloqueado no Hugging Face. Adicione um token em Configurações → Inferência no dispositivo para baixá-lo.';
1724
1725 @override
1726 String get set_huggingface_token => 'Definir token';
1727
1728 @override
1729 String get clear_huggingface_token => 'Limpar';
1730
1731 @override
1732 String get edit_huggingface_token_dialog_title =>
1733 'Abraçando o token de acesso facial';
1734
1735 @override
1736 String get huggingface_token_dialog_hint => 'ah_…';
1737
1738 @override
1739 String get server_type_ollama_desc =>
1740 'Mecanismo de IA local. Nenhuma chave de API é necessária.';
1741
1742 @override
1743 String get server_type_on_device_desc =>
1744 'Funciona no seu telefone. Alguns modelos precisam de um token Hugging Face.';
1745
1746 @override
1747 String get server_type_lm_studio_desc =>
1748 'Servidor API local. Nenhuma chave de API é necessária.';
1749
1750 @override
1751 String get available_models => 'Modelos Disponíveis';
1752
1753 @override
1754 String get device_memory => 'Memória do dispositivo';
1755
1756 @override
1757 String get ram_usage => 'Uso de RAM';
1758
1759 @override
1760 String get memory_healthy => 'Saudável';
1761
1762 @override
1763 String get memory_critical => 'Crítico';
1764
1765 @override
1766 String get memory_low => 'Baixo';
1767
1768 @override
1769 String ram_used(String percent) {
1770 return '$percent% usado';
1771 }
1772
1773 @override
1774 String get available_ram => 'RAM disponível';
1775
1776 @override
1777 String get total_capacity => 'Capacidade total';
1778
1779 @override
1780 String get loaded_status => 'Carregado';
1781
1782 @override
1783 String get inference_backend => 'Back-end de inferência';
1784
1785 @override
1786 String get backend_ios_notice =>
1787 'Apenas o back-end da CPU está disponível no iOS.';
1788
1789 @override
1790 String get backend_cpu_desc =>
1791 'Funciona em todos os dispositivos. Mais compatível.';
1792
1793 @override
1794 String get backend_gpu_desc =>
1795 'Aceleração OpenCL. Mais rápido em dispositivos suportados.';
1796
1797 @override
1798 String get backend_npu_desc =>
1799 'NPU do fornecedor (Qualcomm/MediaTek). Inferência mais rápida.';
1800
1801 @override
1802 String get select_model_title => 'Selecione o modelo';
1803
1804 @override
1805 String get refresh_models => 'Atualizar modelos';
1806
1807 @override
1808 String get search_models_hint => 'Pesquisar modelos...';
1809
1810 @override
1811 String get no_server_connected => 'Nenhum servidor conectado';
1812
1813 @override
1814 String get add_server_first =>
1815 'Adicione um servidor primeiro para ver os modelos disponíveis.';
1816
1817 @override
1818 String get failed_load_models => 'Falha ao carregar modelos';
1819
1820 @override
1821 String get no_models_available => 'Nenhum modelo disponível';
1822
1823 @override
1824 String no_models_match(String searchQuery) {
1825 return 'Nenhum modelo corresponde a \"$searchQuery\"';
1826 }
1827
1828 @override
1829 String model_load_failed(String error) {
1830 return 'Falha ao carregar modelo: $error';
1831 }
1832
1833 @override
1834 String model_unloaded_ollama(String name) {
1835 return 'Descarregamento solicitado para $name. Se Ollama estiver acessível, o modelo será liberado imediatamente.';
1836 }
1837
1838 @override
1839 String model_unloaded_success(String name) {
1840 return '$name descarregado com sucesso';
1841 }
1842
1843 @override
1844 String model_unload_failed(String error) {
1845 return 'Falha ao descarregar modelo: $error';
1846 }
1847
1848 @override
1849 String get unload_from_server => 'Descarregar do servidor';
1850
1851 @override
1852 String context_chip(String ctx) {
1853 return '$ctx ctx';
1854 }
1855
1856 @override
1857 String get unload_all_models => 'Descarregar tudo';
1858
1859 @override
1860 String loaded_models_count(int count) {
1861 return '$count carregado';
1862 }
1863
1864 @override
1865 String get all_models_unloaded => 'Todos os modelos descarregados';
1866
1867 @override
1868 String get branch_chat => 'Bate-papo da filial';
1869
1870 @override
1871 String get branch_chat_desc =>
1872 'Iniciar uma nova conversa a partir desta mensagem';
1873
1874 @override
1875 String get edit_assistant_message_desc =>
1876 'Edite o texto da resposta do assistente.';
1877
1878 @override
1879 String switch_to_model(String modelName, Object model) {
1880 return 'Mudar para $modelName';
1881 }
1882
1883 @override
1884 String download_notification_title(String modelName) {
1885 return 'Baixando $modelName...';
1886 }
1887
1888 @override
1889 String get download_complete_notification => 'Download concluído!';
1890
1891 @override
1892 String download_complete_body(String modelName) {
1893 return '$modelName foi baixado com sucesso.';
1894 }
1895
1896 @override
1897 String download_failed_notification(String error) {
1898 return 'Falha no download: $error';
1899 }
1900
1901 @override
1902 String download_failed_body(String modelName) {
1903 return 'Falha ao baixar $modelName.';
1904 }
1905
1906 @override
1907 String get engine_name_system => 'Sistema TTS';
1908
1909 @override
1910 String get engine_tagline_system => 'Mecanismo de dispositivo integrado';
1911
1912 @override
1913 String get engine_name_kitten => 'Gatinho TTS';
1914
1915 @override
1916 String get engine_tagline_kitten => 'TTS neural de alta velocidade';
1917
1918 @override
1919 String get engine_name_sherpa => 'Sherpa ONNX VITS';
1920
1921 @override
1922 String get engine_tagline_sherpa => 'Vozes off-line do Piper';
1923
1924 @override
1925 String get voice_jasper => 'Jaspe';
1926
1927 @override
1928 String get voice_bella => 'Bela';
1929
1930 @override
1931 String get voice_bruno => 'Bruno';
1932
1933 @override
1934 String get voice_luna => 'Lua';
1935
1936 @override
1937 String get voice_hugo => 'Hugo';
1938
1939 @override
1940 String get voice_rosie => 'Rosie';
1941
1942 @override
1943 String get voice_leo => 'Leão';
1944
1945 @override
1946 String get voice_kiki => 'Kiki';
1947
1948 @override
1949 String get voice_lessac => 'Lessac (EUA)';
1950
1951 @override
1952 String get voice_ryan => 'Ryan (EUA)';
1953
1954 @override
1955 String get model_qwen_3 => 'Qwen3 0,6B';
1956
1957 @override
1958 String get model_qwen_3_desc =>
1959 'O menor modelo de chat de uso geral. Respostas rápidas, baixo uso de memória.';
1960
1961 @override
1962 String get model_license_apache => 'Apache-2.0';
1963
1964 @override
1965 String get model_qwen_25 => 'Instrução Qwen 2.5 1.5B';
1966
1967 @override
1968 String get model_qwen_25_desc =>
1969 'Qualidade e tamanho equilibrados. Bom para conversas gerais.';
1970
1971 @override
1972 String get model_deepseek => 'DeepSeek R1 Destilar Qwen 1.5B';
1973
1974 @override
1975 String get model_deepseek_desc =>
1976 'Modelo de raciocínio e cadeia de pensamento. Melhor para tarefas lógicas.';
1977
1978 @override
1979 String get model_license_mit => 'MIT';
1980
1981 @override
1982 String get model_gemma => 'Instrução Gemma 4 E2B';
1983
1984 @override
1985 String get model_gemma_desc =>
1986 'Modelo carro-chefe do Google. A mais alta qualidade, requer mais RAM.';
1987
1988 @override
1989 String export_header(String date) {
1990 return '*Exportado de LocalMind — $date*';
1991 }
1992
1993 @override
1994 String get export_role_user => '## 👤 Usuário';
1995
1996 @override
1997 String get export_role_assistant => '## 🤖 Assistente';
1998
1999 @override
2000 String get export_role_system => '## ⚙️ Sistema';
2001
2002 @override
2003 String get export_role_tool => '## 🔧 Ferramenta';
2004
2005 @override
2006 String get export_text_user => '[USUÁRIO]';
2007
2008 @override
2009 String get export_text_assistant => '[ASSISTENTE]';
2010
2011 @override
2012 String get export_text_system => '[SISTEMA]';
2013
2014 @override
2015 String get export_text_tool => '[FERRAMENTA]';
2016
2017 @override
2018 String get export_label_user => 'USUÁRIO';
2019
2020 @override
2021 String get export_label_assistant => 'ASSISTENTE';
2022
2023 @override
2024 String get export_label_system => 'SISTEMA';
2025
2026 @override
2027 String get export_label_tool => 'FERRAMENTA';
2028
2029 @override
2030 String get select_model_hint =>
2031 'Selecione um modelo para começar a conversar';
2032
2033 @override
2034 String get test_notification_title => 'Notificação de teste';
2035
2036 @override
2037 String get test_notification_body =>
2038 'Esta é uma notificação de teste para o progresso do download do modelo.';
2039
2040 @override
2041 String get tts_supports_background =>
2042 'Suporta reprodução em segundo plano como áudio nativo';
2043
2044 @override
2045 String get tts_other_services_background_note =>
2046 'Nota: Os outros serviços TTS suportam reprodução em segundo plano como áudio nativo.';
2047
2048 @override
2049 String get gguf_imported_models_title => 'Modelos GGUF importados';
2050
2051 @override
2052 String get gguf_imported_models_empty_subtitle =>
2053 'Importe um GGUF do seu dispositivo ou adicione um do Hugging Face. Os modelos importados são executados localmente com llama.cpp.';
2054
2055 @override
2056 String get gguf_imported_models_ready =>
2057 'modelos importados prontos para inferência local.';
2058
2059 @override
2060 String get gguf_curated_models_subtitle =>
2061 'Modelos selecionados no dispositivo que você pode baixar e gerenciar dentro do LocalMind.';
2062
2063 @override
2064 String get gguf_only_supported =>
2065 'Somente modelos GGUF são suportados para esta importação.';
2066
2067 @override
2068 String get gguf_imported_from_local_file => 'importado do arquivo local.';
2069
2070 @override
2071 String get gguf_import_failed => 'Falha ao importar o modelo GGUF';
2072
2073 @override
2074 String get gguf_imported_from_huggingface => 'importado de Hugging Face.';
2075
2076 @override
2077 String get gguf_import_canceled => 'Importação de GGUF cancelada.';
2078
2079 @override
2080 String get gguf_enter_huggingface_url =>
2081 'Insira um URL GGUF de rosto abraçado.';
2082
2083 @override
2084 String get gguf_only_official_huggingface_urls =>
2085 'Apenas URLs oficiais do Hugging Face GGUF são suportados.';
2086
2087 @override
2088 String get gguf_use_https_url =>
2089 'Use um URL HTTPS Hugging Face para importação de GGUF.';
2090
2091 @override
2092 String get gguf_url_must_point_to_file =>
2093 'O URL do Hugging Face deve apontar diretamente para um arquivo .gguf.';
2094
2095 @override
2096 String get gguf_unable_to_detect_file_name =>
2097 'Não foi possível determinar o nome do arquivo GGUF.';
2098
2099 @override
2100 String get gguf_download_empty =>
2101 'O arquivo GGUF baixado estava vazio ou ausente.';
2102
2103 @override
2104 String get gguf_selected_file_missing =>
2105 'O arquivo de modelo selecionado não existe.';
2106
2107 @override
2108 String get gguf_import_action => 'Importar GGUF';
2109
2110 @override
2111 String get gguf_overview_title => 'Traga seus próprios modelos GGUF';
2112
2113 @override
2114 String get gguf_overview_subtitle =>
2115 'Importe um .gguf do armazenamento local ou baixe um diretamente do Hugging Face. Os modelos importados permanecem neste dispositivo e carregam com llama.cpp.';
2116
2117 @override
2118 String get gguf_imported_count_label => 'importado';
2119
2120 @override
2121 String get gguf_local_files_label => 'arquivos locais';
2122
2123 @override
2124 String get gguf_huggingface_label => 'Abraçando o rosto';
2125
2126 @override
2127 String get gguf_import_local_title => 'Importar GGUF local';
2128
2129 @override
2130 String get gguf_import_local_subtitle =>
2131 'Copie um arquivo .gguf deste dispositivo';
2132
2133 @override
2134 String get gguf_import_huggingface_title => 'Importar do rosto que abraça';
2135
2136 @override
2137 String get gguf_import_huggingface_subtitle =>
2138 'Cole um URL GGUF ou caminho de repositório';
2139
2140 @override
2141 String get gguf_no_imported_title => 'Nenhum modelo GGUF importado ainda';
2142
2143 @override
2144 String get gguf_no_imported_subtitle =>
2145 'Você pode trazer seu próprio arquivo GGUF do armazenamento do dispositivo ou colar um URL do Hugging Face ou um caminho de repositório que aponte para um arquivo .gguf.';
2146
2147 @override
2148 String get gguf_import_huggingface_dialog_title =>
2149 'Importar GGUF do Hugging Face';
2150
2151 @override
2152 String get gguf_import_huggingface_dialog_subtitle =>
2153 'Cole um URL direto do GGUF ou um caminho de repositório Hugging Face como `owner/repo/blob/main/model.gguf`. Os links de blob são convertidos automaticamente.';
2154
2155 @override
2156 String get gguf_url_or_repo_path => 'URL GGUF ou caminho do repositório';
2157
2158 @override
2159 String get paste => 'Colar';
2160
2161 @override
2162 String get gguf_browse => 'Navegar pelos GGUFs';
2163
2164 @override
2165 String get gguf_huggingface_token_ready => 'Abraçando o token Face pronto';
2166
2167 @override
2168 String get gguf_huggingface_token_optional =>
2169 'Token opcional, mas recomendado';
2170
2171 @override
2172 String get gguf_huggingface_token_ready_desc =>
2173 'Seu token salvo será usado automaticamente para repositórios fechados ou privados.';
2174
2175 @override
2176 String get gguf_huggingface_token_optional_desc =>
2177 'Requer uma ficha de Abraço de Rosto. Adicione um em Configurações se este GGUF for fechado ou privado.';
2178
2179 @override
2180 String get gguf_downloading => 'Baixando GGUF';
2181
2182 @override
2183 String get gguf_preparing => 'Preparando';
2184
2185 @override
2186 String get gguf_preparing_download => 'Preparando download...';
2187
2188 @override
2189 String get gguf_cancel_import => 'Cancelar importação';
2190
2191 @override
2192 String get clipboard_empty => 'A área de transferência está vazia.';
2193
2194 @override
2195 String get could_not_open_huggingface =>
2196 'Não foi possível abrir o Hugging Face.';
2197
2198 @override
2199 String get gguf_paste_url_error =>
2200 'Cole um URL do Hugging Face GGUF ou um caminho de repositório.';
2201
2202 @override
2203 String get gguf_blob_link => 'Link do blob';
2204
2205 @override
2206 String get gguf_repository_label => 'Repositório';
2207
2208 @override
2209 String get gguf_detected_path_label => 'Caminho detectado';
2210
2211 @override
2212 String get gguf_imported_section_label => 'GGUF importado';
2213
2214 @override
2215 String get gguf_already_available => 'Já disponível neste dispositivo';
2216
2217 @override
2218 String get gguf_curated_models_short => 'Modelos selecionados no dispositivo';
2219
2220 @override
2221 String get gguf_vision_projector => 'Vision Projector';
2222
2223 @override
2224 String get gguf_attach_projector => 'Attach Vision Projector';
2225
2226 @override
2227 String get gguf_change_projector => 'Change Vision Projector';
2228
2229 @override
2230 String get gguf_remove_projector => 'Remove Projector';
2231
2232 @override
2233 String get gguf_projector_attached =>
2234 'Vision projector attached successfully';
2235
2236 @override
2237 String get gguf_projector_removed => 'Vision projector removed';
2238
2239 @override
2240 String gguf_projector_auto_detected(String name) {
2241 return 'Auto-detected and linked vision projector: $name';
2242 }
2243
2244 @override
2245 String get gguf_is_projector_file =>
2246 'The selected file is a vision projector (mmproj), not a standalone model.';
2247
2248 @override
2249 String get gguf_projector_url_label =>
2250 'Vision Projector URL (optional mmproj)';
2251
2252 @override
2253 String get gguf_projector_url_hint =>
2254 'https://huggingface.co/.../mmproj-...gguf';
2255
2256 @override
2257 String get gguf_vision_not_supported_error =>
2258 'The active model does not support image attachments. Please attach a vision projector (mmproj) or select a vision-supported model.';
2259
2260 @override
2261 String get execute_tool_title => 'Executar ferramenta';
2262
2263 @override
2264 String get execute_tool_request_desc =>
2265 'O modelo está solicitando a execução da seguinte ferramenta:';
2266
2267 @override
2268 String get reject => 'Rejeitar';
2269
2270 @override
2271 String get approve => 'Aprovar';
2272
2273 @override
2274 String get server_type_help =>
2275 'Escolha o provedor antes de preencher os detalhes da conexão.';
2276
2277 @override
2278 String get server_identity_title => 'Identidade';
2279
2280 @override
2281 String get server_identity_desc =>
2282 'Nomeie este servidor e escolha como ele aparece na lista.';
2283
2284 @override
2285 String get server_connection_title => 'Conexão';
2286
2287 @override
2288 String get server_connection_desc =>
2289 'Use o endereço e a porta expostos pelo seu servidor.';
2290
2291 @override
2292 String get server_authentication_title => 'Autenticação';
2293
2294 @override
2295 String get server_authentication_required_desc =>
2296 'OpenRouter requer uma chave API antes do teste.';
2297
2298 @override
2299 String get server_authentication_required_desc_requesty =>
2300 'Requesty requer uma chave API antes do teste.';
2301
2302 @override
2303 String get server_authentication_optional_desc =>
2304 'Deixe a chave de API vazia se este servidor não exigir uma.';
2305
2306 @override
2307 String get mcp_tools_title => 'Ferramentas MCP';
2308
2309 @override
2310 String get available_tools => 'Ferramentas disponíveis';
2311
2312 @override
2313 String get unable_load_tools => 'Não foi possível carregar ferramentas';
2314
2315 @override
2316 String get no_tools_registered => 'Nenhuma ferramenta cadastrada';
2317
2318 @override
2319 String get no_tools_registered_desc =>
2320 'Ative o servidor MCP de exemplo ou adicione integrações MCP nas configurações de chat.';
2321
2322 @override
2323 String get example_mcp_server_title => 'Exemplo de servidor MCP';
2324
2325 @override
2326 String get example_mcp_server_desc =>
2327 'Registra example.echo e example.word_count por meio do mesmo provedor de ferramentas MCP usado por servidores externos.';
2328
2329 @override
2330 String get disable_example_server => 'Desativar servidor de exemplo';
2331
2332 @override
2333 String get enable_example_server => 'Habilitar servidor de exemplo';
2334
2335 @override
2336 String get built_in_label => 'Integrado';
2337
2338 @override
2339 String get highlights_label => 'Destaques';
2340
2341 @override
2342 String get built_with_label => 'Construído com';
2343
2344 @override
2345 String get local_label => 'Locais';
2346
2347 @override
2348 String get gguf_format_label => 'GGUF';
2349
2350 @override
2351 String get tool_status_requested => 'Solicitado';
2352
2353 @override
2354 String get tool_status_approved => 'Aprovado';
2355
2356 @override
2357 String get tool_status_rejected => 'Rejeitado';
2358
2359 @override
2360 String get tool_status_running => 'Correndo';
2361
2362 @override
2363 String get tool_status_done => 'Concluído';
2364
2365 @override
2366 String get tool_status_failed => 'Falha';
2367
2368 @override
2369 String get model_favorite_toggle => 'Alternar favorito';
2370
2371 @override
2372 String get model_set_default => 'Definir como modelo padrão';
2373
2374 @override
2375 String get model_clear_default => 'Remover como modelo padrão';
2376
2377 @override
2378 String get model_default_badge => 'Padrão';
2379
2380 @override
2381 String get model_note_label => 'Nota';
2382
2383 @override
2384 String get model_note_hint => 'Adicione uma observação sobre este modelo…';
2385
2386 @override
2387 String get unload_models_before_load =>
2388 'Descarregue todos os modelos antes de carregar um novo';
2389
2390 @override
2391 String get temp_chat_keyboard_incognito =>
2392 'Teclado anônimo em bate-papo temporário';
2393
2394 @override
2395 String get temp_chat_keyboard_incognito_desc =>
2396 'Desativa o aprendizado do teclado e sugestões em bate-papos temporários (por exemplo, SwiftKey incógnito).';
2397
2398 @override
2399 String get resume_last_chat => 'Retomar o último bate-papo no lançamento';
2400
2401 @override
2402 String get resume_last_chat_desc =>
2403 'Restaure sua última conversa aberta ao reabrir o aplicativo.';
2404
2405 @override
2406 String get export_all_data => 'Exportar todos os dados';
2407
2408 @override
2409 String get import_all_data => 'Importe todos os dados';
2410
2411 @override
2412 String get export_data_success => 'Backup exportado com sucesso';
2413
2414 @override
2415 String get import_data_success => 'Backup importado com sucesso';
2416
2417 @override
2418 String import_data_failed(String error) {
2419 return 'Falha ao importar backup: $error';
2420 }
2421
2422 @override
2423 String get import_data_confirm =>
2424 'Importar conversas e personas personalizadas deste backup? Os itens existentes com os mesmos IDs serão atualizados.';
2425
2426 @override
2427 String get import_settings_confirm =>
2428 'Substituir as configurações atuais pelo backup importado?';
2429
2430 @override
2431 String get export_conversations => 'Exportar conversas';
2432
2433 @override
2434 String get import_conversations => 'Importar conversas';
2435
2436 @override
2437 String get export_personas => 'Exportar personas';
2438
2439 @override
2440 String get import_personas => 'Importar personas';
2441
2442 @override
2443 String get export_settings => 'Exportar configurações';
2444
2445 @override
2446 String get import_settings => 'Importar configurações';
2447
2448 @override
2449 String get export_all_zip => 'Exportar tudo (ZIP)';
2450
2451 @override
2452 String get import_all_zip => 'Importar tudo (ZIP)';
2453
2454 @override
2455 String get duplicate_chat => 'Bate-papo duplicado';
2456
2457 @override
2458 String get duplicate_chat_success => 'Bate-papo duplicado';
2459
2460 @override
2461 String get move_to_folder => 'Mover para pasta';
2462
2463 @override
2464 String get remove_from_folder => 'Remover da pasta';
2465
2466 @override
2467 String get create_folder => 'Criar pasta';
2468
2469 @override
2470 String get new_folder => 'Nova pasta';
2471
2472 @override
2473 String get folder_name_hint => 'Nome da pasta';
2474
2475 @override
2476 String get all_chats => 'Todos';
2477
2478 @override
2479 String get unfiled_chats => 'Não arquivado';
2480
2481 @override
2482 String get create => 'Criar';
2483
2484 @override
2485 String get server_path_prefix_label => 'Prefixo do caminho da API';
2486
2487 @override
2488 String get server_path_prefix_hint => '/seu-token secreto';
2489
2490 @override
2491 String get search_message_contents => 'Pesquisar conteúdo da mensagem';
2492
2493 @override
2494 String get message_search_results => 'Correspondências de mensagens';
2495
2496 @override
2497 String get saved_messages_title => 'Mensagens salvas';
2498
2499 @override
2500 String get nav_saved_messages => 'Mensagens salvas';
2501
2502 @override
2503 String get saved_messages_empty =>
2504 'Nenhuma mensagem salva ainda. Marque uma mensagem no menu de opções.';
2505
2506 @override
2507 String get save_message => 'Salvar mensagem';
2508
2509 @override
2510 String get message_saved => 'Mensagem salva';
2511
2512 @override
2513 String token_count(int count) {
2514 return 'Tokens $count';
2515 }
2516
2517 @override
2518 String estimated_token_count(int count) {
2519 return '~Tokens $count (estimado)';
2520 }
2521
2522 @override
2523 String get test_tts_section_title => 'Teste de voz';
2524
2525 @override
2526 String get test_tts_hint =>
2527 'Digite o texto para ouvir o mecanismo TTS atual…';
2528
2529 @override
2530 String get test_speak_button => 'Fale';
2531
2532 @override
2533 String get scroll_to_bottom => 'Role para baixo';
2534
2535 @override
2536 String get generate_ai_response => 'Gerar resposta de IA';
2537
2538 @override
2539 String get no_response => 'Sem resposta';
2540
2541 @override
2542 String get export => 'Exportar';
2543
2544 @override
2545 String get import => 'Importar';
2546
2547 @override
2548 String get conversations_label => 'Conversas';
2549
2550 @override
2551 String get personas_label => 'Personagens';
2552
2553 @override
2554 String get settings_label => 'Configurações';
2555
2556 @override
2557 String get export_conversation => 'Exportar conversa';
2558
2559 @override
2560 String get tts_process_markdown => 'Remarcação de processo para fala';
2561
2562 @override
2563 String get tts_process_markdown_desc =>
2564 'Remova a formatação como **negrito** antes de ler em voz alta';
2565
2566 @override
2567 String get tts_skip_seconds => 'Pular intervalo';
2568
2569 @override
2570 String get tts_skip_seconds_desc =>
2571 'Tamanho do salto para avançar e retroceder durante a reprodução';
2572
2573 @override
2574 String tts_skip_seconds_value(int seconds) {
2575 return '${seconds}s';
2576 }
2577
2578 @override
2579 String get preview_system_prompts => 'Visualizar prompts do sistema';
2580
2581 @override
2582 String get welcome_message_1 => 'Em que posso ajudá-lo hoje?';
2583
2584 @override
2585 String get welcome_message_2 =>
2586 'Pergunte-me qualquer coisa - estarei pronto quando você estiver.';
2587
2588 @override
2589 String get welcome_message_3 =>
2590 'Seus dados são processados localmente e nunca saem do seu dispositivo.';
2591
2592 @override
2593 String get welcome_message_4 =>
2594 'Precisa de ideias? Experimente uma das instruções rápidas.';
2595
2596 @override
2597 String get temporary_chat => 'Bate-papo temporário';
2598
2599 @override
2600 String get temporary_chat_desc =>
2601 'Os bate-papos não são salvos no histórico.';
2602
2603 @override
2604 String get temporary_chat_banner =>
2605 'Bate-papo temporário – não salvo no histórico';
2606
2607 @override
2608 String get temporary_chat_save_warning_title =>
2609 'Salvar mensagem no chat temporário?';
2610
2611 @override
2612 String get temporary_chat_save_warning_body =>
2613 'Este chat é temporário e está oculto no histórico. A mensagem salva ainda aparecerá em Mensagens Salvas.';
2614
2615 @override
2616 String get save_to_history => 'Salvar no histórico';
2617
2618 @override
2619 String get share_conversation => 'Compartilhar conversa';
2620
2621 @override
2622 String get download_tts_audio => 'Baixar áudio';
2623
2624 @override
2625 String get tts_download_unavailable =>
2626 'O download está disponível apenas para Piper e Kitten TTS';
2627
2628 @override
2629 String get tts_download_no_audio =>
2630 'Ainda não há áudio disponível para download';
2631
2632 @override
2633 String get tts_download_success => 'Áudio salvo';
2634
2635 @override
2636 String get return_to_chat => 'Voltar ao bate-papo';
2637
2638 @override
2639 String get return_to_temp_chat => 'Retornar ao bate-papo temporário';
2640
2641 @override
2642 String get insert_saved_message => 'Inserir mensagem salva';
2643
2644 @override
2645 String get insert_saved_message_desc =>
2646 'Escolha uma mensagem salva para adicionar à sua entrada';
2647
2648 @override
2649 String get model_info => 'Informações do modelo';
2650
2651 @override
2652 String get model_name => 'Nome do modelo';
2653
2654 @override
2655 String get model_identifier => 'Identificador';
2656
2657 @override
2658 String get model_capabilities => 'Capacidades';
2659
2660 @override
2661 String get model_api_pricing => 'Preços da API (por 1 milhão de tokens)';
2662
2663 @override
2664 String get not_available => 'Não disponível';
2665
2666 @override
2667 String get save_message_folders => 'Salvar mensagem';
2668
2669 @override
2670 String get remove_from_saved => 'Remover dos salvos';
2671
2672 @override
2673 String get message_already_saved => 'Salvo';
2674
2675 @override
2676 String get stream_ttft => 'Hora do primeiro token';
2677
2678 @override
2679 String get stream_tokens_per_sec => 'Tokens por segundo';
2680
2681 @override
2682 String get stream_stop_reason => 'Pare a razão';
2683
2684 @override
2685 String get stream_input_tokens => 'Tokens de entrada';
2686
2687 @override
2688 String get stream_output_tokens => 'Tokens de saída';
2689
2690 @override
2691 String get stream_generation_time => 'Tempo de geração';
2692
2693 @override
2694 String get attach_image => 'Fotos';
2695
2696 @override
2697 String get attach_text_document => 'Documentos';
2698
2699 @override
2700 String get attach_shortcut_images => 'Fotos';
2701
2702 @override
2703 String get attach_shortcut_documents => 'Arquivos';
2704
2705 @override
2706 String get attach_shortcut_saved => 'Salvo';
2707
2708 @override
2709 String get add_attachment => 'Adicionar anexo';
2710
2711 @override
2712 String get add_to_chat => 'Adicionar ao bate-papo';
2713
2714 @override
2715 String get choose_what_to_attach => 'O que você gostaria de adicionar?';
2716
2717 @override
2718 String get choose_attachment_subtitle =>
2719 'Escolha uma fonte para anexar à sua mensagem';
2720
2721 @override
2722 String get photo_permission_denied =>
2723 'O acesso à foto é necessário para anexar imagens';
2724
2725 @override
2726 String get select_model_prompt => 'Selecione o modelo';
2727
2728 @override
2729 String get characters_label => 'Personagens';
2730
2731 @override
2732 String get exit_temporary_chat_title => 'Sair do bate-papo temporário?';
2733
2734 @override
2735 String get exit_temporary_chat_body =>
2736 'Isso descartará o chat temporário atual e retornará para um novo chat.';
2737
2738 @override
2739 String get saved_message_temp_snap_unavailable =>
2740 'Esta mensagem foi salva de um bate-papo temporário e não pode ser aberta na conversa original.';
2741
2742 @override
2743 String get filter_title => 'Filtro';
2744
2745 @override
2746 String get filter_pinned => 'Fixado';
2747
2748 @override
2749 String get filter_archived => 'Arquivado';
2750
2751 @override
2752 String get filter_temp_chats => 'Bate-papos temporários';
2753
2754 @override
2755 String get filter_user_messages => 'Mensagens do usuário';
2756
2757 @override
2758 String get filter_assistant_messages => 'Mensagens do assistente';
2759
2760 @override
2761 String get archive_chat => 'Arquivo';
2762
2763 @override
2764 String get unarchive_chat => 'Desarquivar';
2765
2766 @override
2767 String conversation_message_count(int count) {
2768 String _temp0 = intl.Intl.pluralLogic(
2769 count,
2770 locale: localeName,
2771 other: '$count mensagens',
2772 one: '1 mensagem',
2773 );
2774 return '$_temp0';
2775 }
2776
2777 @override
2778 String conversation_character_count(int count) {
2779 return 'Caracteres $count';
2780 }
2781
2782 @override
2783 String get generate_title_with_ai => 'Gere com IA';
2784
2785 @override
2786 String get generating_title => 'Gerando...';
2787
2788 @override
2789 String get generate_title_failed => 'Não foi possível gerar um título';
2790
2791 @override
2792 String get lm_studio_model_browser_title => 'Procure modelos';
2793
2794 @override
2795 String get lm_studio_model_search_hint =>
2796 'Pesquise modelos por nome ou autor…';
2797
2798 @override
2799 String get lm_studio_staff_picks => 'Escolhas da equipe';
2800
2801 @override
2802 String get lm_studio_community_models => 'Modelos comunitários';
2803
2804 @override
2805 String get lm_studio_no_models => 'Nenhum modelo encontrado';
2806
2807 @override
2808 String lm_studio_models_count(int count) {
2809 return 'Modelos $count';
2810 }
2811
2812 @override
2813 String get lm_studio_browse_models => 'Navegue e baixe';
2814
2815 @override
2816 String get lm_studio_model_search => 'Pesquisa de modelo LMS';
2817
2818 @override
2819 String get lm_studio_downloads_title => 'Transferências';
2820
2821 @override
2822 String get lm_studio_choose_quant => 'Escolha uma opção de download';
2823
2824 @override
2825 String get lm_studio_use_default_quant => 'Usar padrão';
2826
2827 @override
2828 String get lm_studio_recommended => 'Recomendado';
2829
2830 @override
2831 String get lm_studio_clear_downloads => 'Limpar concluído';
2832
2833 @override
2834 String get lm_studio_no_downloads => 'Ainda não há downloads';
2835
2836 @override
2837 String get lm_studio_downloads_disclaimer =>
2838 'Os downloads são executados no host do LM Studio. Pausar, parar e excluir modelos devem ser feitos nesse computador – não neste aplicativo.';
2839
2840 @override
2841 String get lm_studio_staff_pick => 'Escolha da equipe';
2842
2843 @override
2844 String get lm_studio_params => 'PARÂMETROS';
2845
2846 @override
2847 String get lm_studio_arch => 'ARCO';
2848
2849 @override
2850 String get lm_studio_domain => 'DOMÍNIO';
2851
2852 @override
2853 String get lm_studio_format => 'FORMATO';
2854
2855 @override
2856 String get lm_studio_vision => 'Visão';
2857
2858 @override
2859 String get lm_studio_tool_use => 'Uso de ferramentas';
2860
2861 @override
2862 String get lm_studio_reasoning => 'Raciocínio';
2863
2864 @override
2865 String get openrouter_pricing_free => 'Grátis';
2866
2867 @override
2868 String openrouter_pricing_tooltip(String input, String output) {
2869 return 'Entrada $input / Saída $output por 1 milhão de tokens';
2870 }
2871
2872 @override
2873 String get lm_studio_download_options => 'Opções de download';
2874
2875 @override
2876 String get lm_studio_download => 'Baixar';
2877
2878 @override
2879 String lm_studio_download_size(String size) {
2880 return 'Baixar$size';
2881 }
2882
2883 @override
2884 String lm_studio_downloading_percent(int percent) {
2885 return 'Baixando $percent%';
2886 }
2887
2888 @override
2889 String get lm_studio_readme_unavailable =>
2890 'README não disponível para este modelo.';
2891
2892 @override
2893 String get lm_studio_full_gpu_offload =>
2894 'Possível descarregamento total da GPU';
2895
2896 @override
2897 String get lm_studio_partial_gpu_offload =>
2898 'Possível descarregamento parcial da GPU';
2899
2900 @override
2901 String get lm_studio_likely_too_large => 'Provavelmente muito grande';
2902
2903 @override
2904 String get lm_studio_available_ram_gb => 'RAM disponível (GB, opcional)';
2905
2906 @override
2907 String get lm_studio_available_vram_gb => 'VRAM disponível (GB, opcional)';
2908
2909 @override
2910 String get lm_studio_memory_settings_title => 'Memória para recomendações';
2911
2912 @override
2913 String get lm_studio_memory_settings_desc =>
2914 'Usado para estimar se os modelos cabem na sua máquina no navegador de modelos.';
2915
2916 @override
2917 String get think_button_label => 'Pense';
2918
2919 @override
2920 String get thinking_mode_title => 'Modo de pensamento';
2921
2922 @override
2923 String get reasoning_effort_low => 'Baixo';
2924
2925 @override
2926 String get reasoning_effort_medium => 'Médio';
2927
2928 @override
2929 String get reasoning_effort_high => 'Alto';
2930
2931 @override
2932 String get reasoning_effort_minimal => 'Mínimo';
2933
2934 @override
2935 String get reasoning_effort_xhigh => 'X-Alto';
2936
2937 @override
2938 String get reasoning_effort_max => 'Máx.';
2939
2940 @override
2941 String get reasoning_effort_off => 'Desligado';
2942
2943 @override
2944 String get could_not_read_file => 'Não foi possível ler o arquivo';
2945
2946 @override
2947 String get server_offline => 'Servidor off-line';
2948
2949 @override
2950 String get could_not_establish_connection =>
2951 'Não foi possível estabelecer uma conexão com o servidor. Verifique se o seu servidor está funcionando e se as configurações de host/porta estão corretas.';
2952
2953 @override
2954 String get retry_connection => 'Tentar novamente a conexão';
2955
2956 @override
2957 String get tokens_label => 'Fichas';
2958
2959 @override
2960 String get enter_context_length => 'Insira o comprimento do contexto...';
2961
2962 @override
2963 String get openrouter_disclosure =>
2964 'Ao conectar este provedor, suas mensagens e entradas de chat serão enviadas para seus servidores. LocalMind não rastreia nem armazena suas conversas.';
2965
2966 @override
2967 String get requesty_disclosure =>
2968 'Ao conectar este provedor, suas mensagens e entradas de chat serão enviadas para seus servidores. LocalMind não rastreia nem armazena suas conversas.';
2969
2970 @override
2971 String get welcome_message_cloud =>
2972 'Suas mensagens são enviadas para seu provedor conectado.';
2973
2974 @override
2975 String get privacy_policy => 'Política de Privacidade';
2976
2977 @override
2978 String get cloud_sync => 'Sincronização em nuvem S3';
2979
2980 @override
2981 String get cloud_sync_description =>
2982 'Sincronização criptografada de ponta a ponta com seu próprio servidor compatível com S3';
2983
2984 @override
2985 String get cloud_sync_endpoint => 'URL do terminal';
2986
2987 @override
2988 String get cloud_sync_bucket => 'Balde';
2989
2990 @override
2991 String get cloud_sync_region => 'Região';
2992
2993 @override
2994 String get cloud_sync_prefix => 'Prefixo';
2995
2996 @override
2997 String get cloud_sync_access_key => 'ID da chave de acesso';
2998
2999 @override
3000 String get cloud_sync_secret_key => 'Chave de acesso secreta';
3001
3002 @override
3003 String get cloud_sync_session_token => 'Token de sessão (opcional)';
3004
3005 @override
3006 String get cloud_sync_passphrase => 'Senha de criptografia';
3007
3008 @override
3009 String get cloud_sync_confirm_passphrase => 'Confirmar senha';
3010
3011 @override
3012 String get cloud_sync_path_style => 'Use endereçamento estilo caminho';
3013
3014 @override
3015 String get cloud_sync_allow_http => 'Permitir HTTP inseguro';
3016
3017 @override
3018 String get cloud_sync_http_warning =>
3019 'HTTP expõe metadados e credenciais de solicitação à rede. Use-o apenas para um servidor S3 local confiável.';
3020
3021 @override
3022 String get cloud_sync_test => 'Conexão de teste';
3023
3024 @override
3025 String get cloud_sync_enable => 'Ativar sincronização criptografada';
3026
3027 @override
3028 String get cloud_sync_now => 'Sincronize agora';
3029
3030 @override
3031 String get cloud_sync_disconnect => 'Desconecte este dispositivo';
3032
3033 @override
3034 String get cloud_sync_last_synced => 'Última sincronização';
3035
3036 @override
3037 String get cloud_sync_never => 'Nunca';
3038
3039 @override
3040 String get cloud_sync_conflicts => 'Conflitos preservados';
3041
3042 @override
3043 String get cloud_sync_passphrase_mismatch => 'As senhas não correspondem';
3044
3045 @override
3046 String get crash_report_title => 'Algo deu errado';
3047
3048 @override
3049 String get crash_report_stack_trace => 'Rastreamento de pilha';
3050
3051 @override
3052 String get crash_report_tap_to_expand => 'Toque para expandir';
3053
3054 @override
3055 String get crash_report_button => 'Denunciar esta falha';
3056
3057 @override
3058 String get crash_try_again => 'Tente novamente';
3059
3060 @override
3061 String get crash_report_empty_stack => '<vazio>';
3062
3063 @override
3064 String get crash_report_disclaimer =>
3065 'Os relatórios abrem o GitHub com diagnósticos pré-preenchidos. Você permanece no controle — nada é enviado automaticamente. Revise e remova qualquer conteúdo sensível antes de enviar.';
3066
3067 @override
3068 String get crash_report_copied => 'Copiado para a área de transferência';
3069
3070 @override
3071 String get report_a_problem => 'Informar um problema';
3072
3073 @override
3074 String get rename_folder => 'Renomear pasta';
3075
3076 @override
3077 String get delete_folder => 'Excluir pasta';
3078
3079 @override
3080 String get delete_folder_title => 'Excluir pasta?';
3081
3082 @override
3083 String delete_folder_body(String name) {
3084 return 'Tem certeza de que deseja excluir \"$name\"? As conversas ou mensagens salvas serão movidas de volta para \"Não arquivadas\". Isto não pode ser desfeito.';
3085 }
3086
3087 @override
3088 String get folder_name_required => 'Por favor insira um nome de pasta';
3089
3090 @override
3091 String get model_required_toast =>
3092 'Você precisa selecionar um modelo primeiro';
3093
3094 @override
3095 String get settings_concise_voice_responses =>
3096 'Respostas concisas no modo de voz';
3097
3098 @override
3099 String get settings_concise_voice_responses_desc =>
3100 'Mantenha as respostas do LLM breves (1 parágrafo curto) e faça perguntas de acompanhamento em modo de voz.';
3101
3102 @override
3103 String get s3_connection_succeeded => 'Conexão S3 bem-sucedida.';
3104
3105 @override
3106 String failed_to_open_url(String error) {
3107 return 'Falha ao abrir URL: $error';
3108 }
3109
3110 @override
3111 String failed_to_copy(String error) {
3112 return 'Falha ao copiar: $error';
3113 }
3114
3115 @override
3116 String get file_explorer_not_found =>
3117 'Nenhum explorador de arquivos encontrado. Certifique-se de que um aplicativo gerenciador de arquivos esteja instalado e ativado em seu dispositivo.';
3118
3119 @override
3120 String export_data_failed(String error) {
3121 return 'Falha ao exportar backup: $error';
3122 }
3123
3124 @override
3125 String file_pick_failed(String error) {
3126 return 'Falha ao selecionar arquivo: $error';
3127 }
3128
3129 @override
3130 String image_pick_failed(String error) {
3131 return 'Falha ao selecionar imagem: $error';
3132 }
3133
3134 @override
3135 String get calendar_access => 'Acesso ao calendário';
3136
3137 @override
3138 String get calendar_access_desc =>
3139 'Permitir que a IA leia e crie eventos de calendário';
3140
3141 @override
3142 String get calendar_permission_denied =>
3143 'Permissão de calendário negada. Conceda acesso ao calendário nas configurações do seu dispositivo.';
3144
3145 @override
3146 String get location_access => 'Acesso à localização';
3147
3148 @override
3149 String get location_access_desc =>
3150 'Permitir que a IA obtenha sua localização atual com o nome do lugar';
3151
3152 @override
3153 String get location_permission_denied =>
3154 'Permissão de localização negada. Conceda acesso à localização nas configurações do seu dispositivo.';
3155
3156 @override
3157 String get builtin_ai_not_supported =>
3158 'A IA integrada não é compatível com este dispositivo.';
3159
3160 @override
3161 String get builtin_ai_unsupported_desc =>
3162 'O hardware ou sistema operacional do seu dispositivo não oferece suporte à IA do sistema no dispositivo (por exemplo, Gemini Nano/Apple Intelligence). Escolha um modelo para download.';
3163
3164 @override
3165 String get builtin_ai_unsupported_chip => 'Não compatível';
3166
3167 @override
3168 String get builtin_ai_enable => 'Habilitar';
3169
3170 @override
3171 String get model_reasoning_default => 'Padrão do modelo';
3172
3173 @override
3174 String get model_reasoning_on => 'Ativado';
3175
3176 @override
3177 String get model_reasoning_help =>
3178 'Aplica-se à próxima resposta. Desativado impede o raciocínio se o modelo de chat permitir.';
3179
3180 @override
3181 String get model_reasoning_save_error =>
3182 'Não foi possível salvar o modo de raciocínio. Tente novamente.';
3183
3184 @override
3185 String get on_device_engine_failed_error =>
3186 'O modelo no dispositivo parou de responder, geralmente porque a conversa ultrapassou a janela de contexto. O modelo está sendo recarregado. Tente novamente, inicie um novo chat ou aumente o comprimento do contexto nas configurações.';
3187
3188 @override
3189 String get stt_error_no_match =>
3190 'Nenhuma fala reconhecida. Toque para tentar novamente.';
3191
3192 @override
3193 String get stt_error_speech_timeout =>
3194 'Nenhuma fala detectada. Toque para tentar novamente.';
3195
3196 @override
3197 String get stt_error_permission => 'Permissão do microfone negada.';
3198
3199 @override
3200 String get stt_error_busy =>
3201 'O reconhecimento de voz está ocupado. Tente novamente.';
3202
3203 @override
3204 String get stt_error_network =>
3205 'Erro de rede. Verifique sua conexão e tente novamente.';
3206
3207 @override
3208 String get stt_error_audio =>
3209 'Erro na gravação de áudio. Verifique seu microfone.';
3210
3211 @override
3212 String get stt_error_client =>
3213 'Não foi possível iniciar o serviço de reconhecimento de voz. Verifique se um app de entrada por voz está instalado e definido como reconhecedor de fala padrão e tente novamente.';
3214
3215 @override
3216 String get stt_error_language =>
3217 'O reconhecedor de fala deste dispositivo não suporta seu idioma.';
3218
3219 @override
3220 String get stt_error_unavailable =>
3221 'Nenhum serviço de reconhecimento de voz encontrado neste dispositivo. Instale um app de entrada por voz (por exemplo FUTO Voice Input) e defina-o como reconhecedor de fala padrão.';
3222
3223 @override
3224 String stt_error_generic(String code) {
3225 return 'Erro de reconhecimento de voz: $code';
3226 }
3227
3228 @override
3229 String get send_temperature_to_api => 'Enviar temperatura';
3230
3231 @override
3232 String get send_top_p_to_api => 'Enviar Top P';
3233
3234 @override
3235 String get send_sampling_params_desc =>
3236 'Desative para provedores ou modelos que rejeitam este parâmetro (por exemplo, alguns modelos de raciocínio). Aplica-se a todos os chats com servidores remotos.';
3237
3238 @override
3239 String get default_system_prompt => 'Prompt de sistema padrão';
3240
3241 @override
3242 String get default_system_prompt_desc =>
3243 'Usado em chats sem persona e sem prompt de sistema próprio.';
3244
3245 @override
3246 String get default_system_prompt_hint => 'Você é um assistente prestativo…';
3247
3248 @override
3249 String background_generation_notice(String title) {
3250 return 'Ainda respondendo em \"$title\". Você poderá enviar aqui quando terminar. Toque para abrir.';
3251 }
3252
3253 @override
3254 String get background_generation_notice_untitled =>
3255 'Outro chat ainda está respondendo. Você poderá enviar aqui quando terminar. Toque para abrir.';
3256
3257 @override
3258 String background_generation_notice_info(String title) {
3259 return 'Respondendo em \"$title\" em segundo plano. Toque para abrir.';
3260 }
3261
3262 @override
3263 String get background_generation_notice_info_untitled =>
3264 'Outro chat está respondendo em segundo plano. Toque para abrir.';
3265
3266 @override
3267 String background_generation_notice_multiple(int count) {
3268 return '$count chats estão respondendo em segundo plano.';
3269 }
3270
3271 @override
3272 String get background_generation_chat_untitled => 'Chat sem título';
3273 }