mirror of
https://github.com/danielmiessler/fabric.git
synced 2026-09-10 07:36:44 -04:00
- Reject unsafe cross-platform storage names and traversal attempts. - Confine symlink targets within configured filesystem storage directories. - Require API keys for every non-loopback server binding. - Authenticate Ollama routes and securely forward configured credentials. - Validate chat pattern, context, and session names early. - Sanitize client errors to hide internal filesystem details. - Default REST server binding to loopback port 8080. - Add regression coverage for traversal, symlinks, and authentication.
771 lines
64 KiB
JSON
771 lines
64 KiB
JSON
{
|
||
"abacus_models_endpoint_status": "O endpoint de modelos do Abacus retornou o status %d",
|
||
"additional_yt_dlp_args": "Argumentos adicionais para passar ao yt-dlp (ex. '--cookies-from-browser brave')",
|
||
"address_to_bind_rest_api": "Endereço para vincular a API REST",
|
||
"anthropic_stream_error": "Erro de transmissão: %v",
|
||
"api_key_secure_server_routes": "Chave API usada para proteger rotas do servidor",
|
||
"application_options_header": "Opções da aplicação:",
|
||
"apply_variables_to_input": "Aplicar variáveis à entrada do usuário",
|
||
"attachment_could_not_determine_mimetype": "Não foi possível determinar o tipo MIME da URL",
|
||
"attachment_file_not_exist": "O arquivo %s não existe",
|
||
"attachment_no_content_available": "Nenhum conteúdo disponível",
|
||
"attachment_no_type_no_content": "O anexo não tem tipo nem conteúdo para derivá-lo",
|
||
"attachment_path_or_url_help": "Caminho para o anexo ou URL (ex. para mensagens de reconhecimento de imagem do OpenAI)",
|
||
"audio_output_file_specified_but_not_tts_model": "arquivo de saída de áudio '%s' especificado mas o modelo '%s' não é um modelo TTS. Por favor use um modelo TTS como gemini-2.5-flash-preview-tts",
|
||
"audio_video_file_transcribe": "Arquivo de áudio ou vídeo para transcrever",
|
||
"available_models_header": "Modelos disponíveis",
|
||
"available_transcription_models": "Modelos de transcrição disponíveis:",
|
||
"available_vendors_header": "Fornecedores disponíveis:",
|
||
"azure_api_key_required": "a chave API do Azure é obrigatória",
|
||
"azure_api_version_question": "Insira a versão da API do Azure (deixe em branco para o padrão)",
|
||
"azure_base_url_question": "URL base da API",
|
||
"azure_base_url_required": "a URL base do Azure é obrigatória",
|
||
"azure_credential_failure": "falha ao criar credencial do Azure",
|
||
"azure_deployments_question": "Insira os nomes das implantações do Azure (separados por vírgula)",
|
||
"azure_deployments_required": "pelo menos um nome de implantação do Azure é obrigatório",
|
||
"azure_failed_extract_deployment": "falha ao extrair o nome da implantação da requisição",
|
||
"azure_model_field_empty": "o campo de modelo está vazio no corpo da requisição",
|
||
"azure_request_body_nil": "o corpo da requisição é nil",
|
||
"azureaigateway_aoai_no_choices": "sem opções na resposta do Azure OpenAI",
|
||
"azureaigateway_aoai_parse_response_failed": "falha ao analisar a resposta do Azure OpenAI: %w",
|
||
"azureaigateway_api_version_question": "Versão da API do Azure OpenAI (padrão: 2025-04-01-preview, deixe vazio para o padrão)",
|
||
"azureaigateway_backend_not_initialized": "backend não inicializado - execute 'fabric --setup' para configurar",
|
||
"azureaigateway_backend_type_question": "Selecione o tipo de backend (bedrock, azure-openai, vertex-ai)",
|
||
"azureaigateway_bedrock_no_text_blocks": "sem blocos de conteúdo de texto na resposta do Bedrock",
|
||
"azureaigateway_bedrock_parse_response_failed": "falha ao analisar a resposta do Bedrock: %w",
|
||
"azureaigateway_failed_create_request": "AzureAIGateway: falha ao criar a requisição: %w",
|
||
"azureaigateway_failed_read_response": "AzureAIGateway: falha ao ler a resposta: %w",
|
||
"azureaigateway_gateway_url_https_required": "a URL do gateway deve usar o esquema HTTPS",
|
||
"azureaigateway_gateway_url_question": "Insira a URL base do seu Azure APIM Gateway (ex. https://gateway.empresa.com)",
|
||
"azureaigateway_gateway_url_required": "a URL do Azure APIM Gateway é obrigatória",
|
||
"azureaigateway_http_error": "AzureAIGateway: HTTP %d: %s",
|
||
"azureaigateway_http_request_failed": "AzureAIGateway: requisição HTTP falhou: %w",
|
||
"azureaigateway_invalid_gateway_url": "URL do gateway inválida: %w",
|
||
"azureaigateway_no_valid_messages": "sem mensagens válidas após filtrar conteúdo vazio",
|
||
"azureaigateway_prepare_request_failed": "AzureAIGateway: %w",
|
||
"azureaigateway_response_too_large": "AzureAIGateway: resposta muito grande (>%d bytes)",
|
||
"azureaigateway_subscription_key_question": "Insira sua chave de assinatura do Azure APIM",
|
||
"azureaigateway_subscription_key_required": "a chave de assinatura do Azure APIM é obrigatória",
|
||
"azureaigateway_unsupported_backend": "backend não suportado: %s (opções válidas: bedrock, azure-openai, vertex-ai)",
|
||
"azureaigateway_vertexai_no_content": "sem conteúdo na resposta do Vertex AI",
|
||
"azureaigateway_vertexai_parse_response_failed": "falha ao analisar a resposta do Vertex AI: %w",
|
||
"background_type_help": "Tipo de fundo: opaque, transparent (padrão: opaque, apenas para PNG/WebP)",
|
||
"bedrock_api_key_label": "Digite sua chave API Bedrock / token ABSK (deixe vazio para usar credenciais AWS)",
|
||
"bedrock_aws_access_key_label": "Digite seu AWS Access Key ID (deixe vazio para usar a cadeia de credenciais AWS)",
|
||
"bedrock_aws_region_label": "Regiao AWS",
|
||
"bedrock_aws_secret_key_label": "Digite seu AWS Secret Access Key (deixe vazio para usar a cadeia de credenciais AWS)",
|
||
"bedrock_client_not_initialized": "cliente Bedrock não inicializado — execute 'fabric --setup' para configurar",
|
||
"bedrock_converse_failed": "bedrock converse falhou para o modelo %s: %w",
|
||
"bedrock_conversestream_failed": "bedrock conversestream falhou para o modelo %s: %w",
|
||
"bedrock_empty_response_content": "conteudo de resposta vazio",
|
||
"bedrock_failed_list_foundation_models": "falha ao listar modelos de fundacao: %w",
|
||
"bedrock_failed_list_inference_profiles": "falha ao listar perfis de inferencia: %w",
|
||
"bedrock_fetch_regions_bad_status": "endpoints do botocore retornaram status inesperado",
|
||
"bedrock_fetch_regions_failed": "falha ao buscar regiões Bedrock do botocore",
|
||
"bedrock_fetch_regions_parse_failed": "falha ao analisar o arquivo endpoints.json do botocore",
|
||
"bedrock_invalid_aws_region": "regiao AWS invalida: %s",
|
||
"bedrock_listmodels_fallback": "API ListModels do Bedrock falhou, usando lista estática de fallback",
|
||
"bedrock_panic_sendstream": "panico no SendStream: %v",
|
||
"bedrock_setup_auth_option_accesskey": " [2] AWS Access Key + Secret Key",
|
||
"bedrock_setup_auth_option_apikey": " [1] Chave API Bedrock / token ABSK (recomendado — a mesma usada pelo Claude Code)",
|
||
"bedrock_setup_auth_prompt": "Digite 1 ou 2",
|
||
"bedrock_setup_choose_auth_method": " Escolha o método de autenticação:",
|
||
"bedrock_setup_choose_model": " Escolha o modelo padrão (IDs sem prefixo funcionam em qualquer região; us./eu./ap. são específicos de região):",
|
||
"bedrock_setup_choose_region": " Escolha a região AWS:",
|
||
"bedrock_setup_header": "[Bedrock]",
|
||
"bedrock_setup_invalid_auth_selection": "seleção inválida: %s (digite 1 ou 2)",
|
||
"bedrock_setup_model_custom_prompt": "Digite o ID do modelo (ex. anthropic.claude-opus-4-6-v1)",
|
||
"bedrock_setup_model_option_custom": " [0] Digitar um ID de modelo diferente",
|
||
"bedrock_setup_model_prompt": "Digite o número do modelo ou 0 para informar o seu",
|
||
"bedrock_setup_region_custom_prompt": "Digite uma região AWS personalizada (ex. us-east-1)",
|
||
"bedrock_setup_region_option_custom": " [0] Digitar uma região diferente",
|
||
"bedrock_setup_region_prompt": "Digite o número da região ou 0 para personalizar",
|
||
"bedrock_setup_selected_model": " ✓ Modelo selecionado: %s",
|
||
"bedrock_setup_use_with": " ℹ Uso: fabric -m %s -V Bedrock",
|
||
"bedrock_unable_load_aws_config": "nao foi possivel carregar a configuracao AWS: %w",
|
||
"bedrock_unable_load_aws_config_with_region": "nao foi possivel carregar a configuracao AWS com regiao %s: %w",
|
||
"bedrock_unexpected_content_block_type": "tipo de bloco de conteudo inesperado: %T",
|
||
"bedrock_unexpected_response_type": "tipo de resposta inesperado: %T",
|
||
"bedrock_unknown_stream_event_type": "tipo de evento de stream desconhecido: %T",
|
||
"cannot_convert_string": "não é possível converter a string %q para %v",
|
||
"change_default_model": "Mudar modelo padrão",
|
||
"chat_error_content_fields_misused": "Não é possível usar Content e MultiContent simultaneamente",
|
||
"chatter_error_empty_response": "resposta vazia",
|
||
"chatter_error_find_context": "nao foi possivel encontrar o contexto %s: %v",
|
||
"chatter_error_find_session": "nao foi possivel encontrar a sessao %s: %v",
|
||
"chatter_error_get_pattern": "nao foi possivel obter o padrao %s: %v",
|
||
"chatter_error_load_strategy": "nao foi possivel carregar a estrategia %s: %v",
|
||
"chatter_error_no_messages_provided": "nenhuma mensagem fornecida",
|
||
"chatter_error_no_session_pattern_user_messages": "nenhuma sessão, padrão ou mensagem do usuário fornecida",
|
||
"chatter_error_stream_update": "Erro: %s",
|
||
"chatter_help_review_changes_with_git_diff": "Voce pode revisar as alteracoes com 'git diff' se estiver usando git.",
|
||
"chatter_info_file_changes_applied_successfully": "Alteracoes de arquivo aplicadas com sucesso.",
|
||
"chatter_log_stream_usage_metadata": "[Metadados] Entrada: %d | Saída: %d | Total: %d",
|
||
"chatter_prompt_enforce_response_language": "%s\n\nIMPORTANTE: Primeiro, execute as instrucoes fornecidas neste prompt usando a entrada do usuario. Em seguida, garanta que toda a sua resposta final, incluindo quaisquer cabecalhos de secao ou titulos gerados como parte da execucao das instrucoes, seja escrita SOMENTE no idioma %s.",
|
||
"chatter_warning_apply_file_changes_failed": "Aviso: Falha ao aplicar alteracoes de arquivo: %v",
|
||
"chatter_warning_get_current_directory_failed": "Aviso: Falha ao obter o diretorio atual: %v",
|
||
"chatter_warning_parse_file_changes_failed": "Aviso: Falha ao analisar alteracoes de arquivo: %v",
|
||
"choose_context_from_available": "Escolha um contexto entre os contextos disponíveis",
|
||
"choose_model": "Escolher modelo",
|
||
"choose_pattern_from_available": "Escolha um padrão entre os padrões disponíveis",
|
||
"choose_session_from_available": "Escolha uma sessão das sessões disponíveis",
|
||
"choose_strategy_from_available": "Escolher uma estratégia das estratégias disponíveis",
|
||
"codex_api_base_url_question": "Insira a URL base da API do Codex",
|
||
"codex_auth_base_url_invalid": "URL base de autenticação do Codex inválida: %w",
|
||
"codex_auth_base_url_question": "Insira a URL base de OAuth do Codex",
|
||
"codex_browser_open_fallback": "Se o navegador não abriu, navegue até esta URL para se autenticar:",
|
||
"codex_decode_models_response_failed": "Falha ao decodificar a resposta de modelos do Codex: %w",
|
||
"codex_decode_refresh_response_failed": "Falha ao decodificar a resposta do token atualizado do Codex: %w",
|
||
"codex_decode_token_response_failed": "Falha ao decodificar a resposta de troca de token do Codex: %w",
|
||
"codex_image_file_not_supported": "O provedor Codex não suporta --image-file. Use um anexo de imagem.",
|
||
"codex_login_account_changed": "O login do Codex está vinculado a uma conta ChatGPT diferente da configuração salva. Execute 'fabric --setup' novamente.",
|
||
"codex_login_completed": "Login do Codex concluído",
|
||
"codex_login_failed": "Falha no login do Codex: %s",
|
||
"codex_login_invalid": "Seu login do Codex não é mais válido. Execute 'fabric --setup' novamente.",
|
||
"codex_login_missing_account_claim": "O login do Codex não incluiu um ID de conta ChatGPT. Este estado de login não é suportado.",
|
||
"codex_login_missing_auth_code": "O login do Codex não retornou um código de autorização.",
|
||
"codex_login_missing_tokens": "O login do Codex não retornou os tokens de acesso e atualização necessários.",
|
||
"codex_login_refresh_failed": "Não foi possível atualizar o login do Codex. Execute 'fabric --setup' novamente.",
|
||
"codex_login_return_to_fabric": "Voltar para o Fabric.",
|
||
"codex_login_revoked": "O login do Codex expirou ou foi revogado. Execute 'fabric --setup' novamente.",
|
||
"codex_login_server_stopped": "O servidor de callback do login do Codex parou antes da autenticação ser concluída.",
|
||
"codex_login_state_mismatch": "O login do Codex não pôde ser verificado porque o estado OAuth não correspondeu.",
|
||
"codex_login_timed_out": "O login do Codex expirou antes da autenticação ser concluída.",
|
||
"codex_oauth_missing_auth_code": "Código de autorização ausente",
|
||
"codex_oauth_random_state_failed": "Falha ao gerar estado OAuth aleatório seguro: %w",
|
||
"codex_oauth_server_start_failed": "Falha ao iniciar o servidor local de callback OAuth: %w",
|
||
"codex_oauth_state_mismatch": "O estado não corresponde",
|
||
"codex_provider_error": "erro do fornecedor Codex (status %d): %s",
|
||
"codex_refresh_failed_status": "Falha ao atualizar o login do Codex (status %d)",
|
||
"codex_refresh_login_failed": "Falha ao atualizar o login do Codex: %w",
|
||
"codex_refresh_token_required": "O token de atualização do Codex é obrigatório. Execute 'fabric --setup' novamente.",
|
||
"codex_replay_body_unavailable": "O corpo da requisição não pode ser reproduzido para a tentativa de reautenticação do Codex",
|
||
"codex_request_failed": "A requisição do Codex falhou: %w",
|
||
"codex_request_failed_status": "A requisição do Codex falhou com status %d",
|
||
"codex_starting_browser_login": "Iniciando login OpenAI baseado em navegador para o Codex.",
|
||
"codex_token_exchange_failed": "A troca de token do Codex falhou: %w",
|
||
"codex_token_persist_failed": "falha ao persistir o login do Codex: %w",
|
||
"codex_token_refresh_missing_access_token": "A atualização do token do Codex não retornou um token de acesso.",
|
||
"codex_usage_limit_reached": "Limite de uso do Codex atingido",
|
||
"command_completed_successfully": "Comando concluído com sucesso",
|
||
"compression_level_jpeg_webp": "Nível de compressão 0-100 para formatos JPEG/WebP (padrão: não definido)",
|
||
"config_file_not_found": "arquivo de configuração não encontrado: %s",
|
||
"convert_html_readability": "Converter entrada HTML em uma visualização limpa e legível",
|
||
"copilot_debug_created_conversation": "Conversa do Copilot criada: %s",
|
||
"copilot_debug_failed_parse_sse_event": "Falha ao analisar evento SSE: %v",
|
||
"copilot_error_chat_request": "solicitação de chat falhou: %s - %s",
|
||
"copilot_error_create_conversation": "falha ao criar conversa: %s - %s",
|
||
"copilot_error_reading_stream": "erro ao ler stream: %w",
|
||
"copilot_error_stream_request": "falha na solicitação de stream: %s - %s",
|
||
"copilot_failed_create_conversation": "falha ao criar conversa: %w",
|
||
"copilot_failed_send_message": "falha ao enviar mensagem: %w",
|
||
"copilot_failed_stream_message": "falha ao transmitir mensagem: %w",
|
||
"copilot_tenant_client_id_required": "ID do locatário e ID do cliente são obrigatórios",
|
||
"copy_to_clipboard": "Copiar para a área de transferência",
|
||
"could_not_copy_to_clipboard": "não foi possível copiar para a área de transferência: %v",
|
||
"could_not_create_config_dir": "não foi possível criar o diretório de configuração: %w",
|
||
"could_not_create_env_file": "não foi possível criar o arquivo .env: %w",
|
||
"could_not_determine_home_dir": "não foi possível determinar o diretório home do usuário: %w",
|
||
"could_not_stat_env_file": "não foi possível verificar o arquivo .env: %w",
|
||
"custom_notification_command": "Comando personalizado para executar notificações (substitui notificações integradas)",
|
||
"custom_patterns_directory_question": "Informe o caminho para seu diretório de padrões personalizados",
|
||
"custom_patterns_label": "Padrões personalizados",
|
||
"custom_patterns_setup_description": "Padrões personalizados - Definir diretório para seus padrões personalizados",
|
||
"custom_patterns_warning_create_directory": "Aviso: Não foi possível criar o diretório de padrões personalizados %s: %v\n",
|
||
"db_error_loading_env_file": "erro ao carregar o arquivo .env: %w",
|
||
"db_error_updating_env_file": "erro ao atualizar o arquivo .env: %w",
|
||
"defaults_model_context_length_question": "Informe o comprimento do contexto do modelo",
|
||
"defaults_model_question": "Informe o índice ou o nome do seu modelo padrão",
|
||
"defaults_setup_description": "Provedor e modelo de IA padrão",
|
||
"digitalocean_failed_parse_control_plane_url": "Falha ao analisar a URL do plano de controle do DigitalOcean: %w",
|
||
"digitalocean_model_list_unavailable": "lista de modelos do DigitalOcean indisponível. Defina DIGITALOCEAN_TOKEN para buscar modelos do plano de controle",
|
||
"digitalocean_model_list_unavailable_with_error": "lista de modelos do DigitalOcean indisponível: %w. Defina DIGITALOCEAN_TOKEN para buscar modelos do plano de controle",
|
||
"digitalocean_models_request_failed_read_error": "requisição de modelos do DigitalOcean falhou com status %d: %w",
|
||
"digitalocean_models_request_failed_with_status": "requisição de modelos do DigitalOcean falhou com status %d: %s",
|
||
"disable_openai_responses_api": "Desabilitar API OpenAI Responses (padrão: false)",
|
||
"disable_pattern_variable_replacement": "Desabilitar substituição de variáveis de padrão",
|
||
"enable_web_search_tool": "Habilitar ferramenta de busca web para modelos suportados (Anthropic, OpenAI, Gemini, Grok)",
|
||
"end_tag_thinking_sections": "Tag final para seções de pensamento",
|
||
"error_creating_audio_file": "erro ao criar arquivo de áudio: %v",
|
||
"error_creating_file": "erro ao criar arquivo: %v",
|
||
"error_fetching_playlist_videos": "erro ao buscar vídeos da playlist: %w",
|
||
"error_parsing_config_file": "erro ao analisar arquivo de configuração: %w",
|
||
"error_reading_config_file": "erro ao ler arquivo de configuração: %w",
|
||
"error_reading_piped_message": "erro ao ler mensagem redirecionada do stdin: %w",
|
||
"error_writing_audio_data": "erro ao escrever dados de áudio no arquivo: %v",
|
||
"error_writing_to_file": "erro ao escrever no arquivo: %v",
|
||
"extension_cmd_template_required": "o modelo de comando é obrigatório para a operação %s",
|
||
"extension_command_template_label": " Modelo de comando: %s\n",
|
||
"extension_config_hash_mismatch": "discrepância de hash do arquivo de configuração para %s",
|
||
"extension_config_path_label": " Caminho de configuração: %s\n\n",
|
||
"extension_description_label": " Descrição: %s\n",
|
||
"extension_empty_command": "comando vazio após a formatação",
|
||
"extension_executable_hash_mismatch": "discrepância de hash do executável para %s",
|
||
"extension_executable_label": " Executável: %s\n",
|
||
"extension_executable_not_found": "executável não encontrado: %w",
|
||
"extension_executable_required": "o caminho do executável é obrigatório",
|
||
"extension_executing_command": "Executando comando: %s\n",
|
||
"extension_execution_failed_err": "execução falhou: %w\nerr: %s",
|
||
"extension_execution_failed_stderr": "execução falhou: %w\nstderr: %s",
|
||
"extension_execution_timed_out": "execução expirou após %v",
|
||
"extension_failed_format_command": "falha ao formatar o comando: %w",
|
||
"extension_failed_get_absolute_path": "falha ao obter o caminho absoluto: %w",
|
||
"extension_failed_get_extension": "falha ao obter a extensão: %w",
|
||
"extension_failed_get_output_path": "falha ao obter o caminho de saída: %w\nerr: %s",
|
||
"extension_failed_hash_executable": "falha ao calcular o hash do executável: %w",
|
||
"extension_failed_marshal_registry": "falha ao serializar o registro de extensões: %w",
|
||
"extension_failed_parse_config": "falha ao analisar o arquivo de configuração: %w",
|
||
"extension_failed_parse_registry": "falha ao analisar o registro de extensões: %w",
|
||
"extension_failed_read_config": "falha ao ler o arquivo de configuração: %w",
|
||
"extension_failed_read_output_file": "falha ao ler o arquivo de saída: %w",
|
||
"extension_failed_read_registry": "falha ao ler o registro de extensões: %w",
|
||
"extension_failed_register": "falha ao registrar a extensão: %w",
|
||
"extension_failed_remove": "falha ao remover a extensão: %w",
|
||
"extension_failed_verify_executable": "falha ao verificar o executável: %w",
|
||
"extension_file_config_label": " Configuração de arquivo:\n",
|
||
"extension_invalid_config_path": "caminho de configuração inválido: %w",
|
||
"extension_invalid_definition": "definição de extensão inválida: %w",
|
||
"extension_invalid_timeout": "valor de tempo limite inválido '%s': deve ser uma duração como '30s' ou '1m': %w",
|
||
"extension_invalid_timeout_format": "formato de tempo limite inválido: %w",
|
||
"extension_name_contains_spaces": "o nome da extensão '%s' contém espaços - nomes não devem conter espaços",
|
||
"extension_name_detail_label": "Nome: %s\n",
|
||
"extension_name_empty": "o nome da extensão não pode estar vazio",
|
||
"extension_name_label": "Extensão: %s\n",
|
||
"extension_name_required": "o nome da extensão é obrigatório",
|
||
"extension_no_file_config": "nenhuma configuração de arquivo encontrada",
|
||
"extension_no_output_file": "nenhum arquivo de saída especificado na configuração",
|
||
"extension_not_found": "extensão %s não encontrada",
|
||
"extension_operation_not_found": "operação %s não encontrada para a extensão %s",
|
||
"extension_operation_required": "pelo menos uma operação deve ser definida",
|
||
"extension_operations_label": " Operações:\n",
|
||
"extension_registered_success": "Extensão registrada com sucesso:\n",
|
||
"extension_registry_not_initialized": "registro de extensões não inicializado",
|
||
"extension_status_disabled": " Status: DESABILITADA - Verificação de hash falhou: %v\n",
|
||
"extension_status_enabled": " Status: HABILITADA\n",
|
||
"extension_timeout_label": " Tempo limite: %s\n",
|
||
"extension_type_label": " Tipo: %s\n",
|
||
"extension_type_required": "o tipo da extensão é obrigatório",
|
||
"extension_version_label": " Versão: %s\n",
|
||
"extension_warning_load_registry": "Aviso: não foi possível carregar o registro de extensões: %v\n",
|
||
"fabric_command_complete": "Comando Fabric concluído",
|
||
"fabric_command_complete_with_pattern": "Fabric: %s concluído",
|
||
"fetch_content_exceeds_limit": "fetch: conteúdo muito grande: excede %d bytes",
|
||
"fetch_content_not_utf8": "fetch: o conteúdo não é texto UTF-8 válido",
|
||
"fetch_content_null_bytes": "fetch: o conteúdo contém bytes nulos",
|
||
"fetch_content_too_large": "fetch: conteúdo muito grande: %d bytes (máx %d bytes)",
|
||
"fetch_error_create_request": "fetch: erro ao criar a requisição: %v",
|
||
"fetch_error_fetching_url": "fetch: erro ao buscar a URL: %v",
|
||
"fetch_error_reading_response": "fetch: erro ao ler a resposta: %v",
|
||
"fetch_http_error": "fetch: erro HTTP: %d - %s",
|
||
"fetch_unknown_operation": "fetch: operação desconhecida %q (suportada: get)",
|
||
"fetch_unsupported_content_type": "fetch: tipo de conteúdo não suportado %q - apenas conteúdo de texto permitido",
|
||
"file_already_exists_choose_different": "arquivo %s já existe. Por favor escolha um nome de arquivo diferente ou remova o arquivo existente",
|
||
"file_already_exists_not_overwriting": "o arquivo %s já existe, não será sobrescrito. Renomeie o arquivo existente ou escolha um nome diferente",
|
||
"file_manager_applied_operation": "Operação %s aplicada a %s",
|
||
"file_manager_empty_path": "caminho vazio para alteração de arquivo %d",
|
||
"file_manager_failed_create_directory": "falha ao criar diretório %s para alteração de arquivo %d: %w",
|
||
"file_manager_failed_parse_json": "falha ao analisar %s JSON: %w",
|
||
"file_manager_failed_write_file": "falha ao escrever arquivo %s para alteração de arquivo %d: %w",
|
||
"file_manager_file_content_too_large": "conteúdo do arquivo muito grande para alteração de arquivo %d: %d bytes",
|
||
"file_manager_invalid_format_no_json_array": "formato %s inválido: nenhum array JSON encontrado",
|
||
"file_manager_invalid_format_unbalanced_brackets": "formato %s inválido: colchetes desbalanceados",
|
||
"file_manager_invalid_operation": "operação inválida para alteração de arquivo %d: %s",
|
||
"file_manager_suspicious_path": "caminho suspeito para alteração de arquivo %d: %s",
|
||
"gemini_audio_data_too_small": "dados de audio muito pequenos: %d bytes, minimo requerido: %d",
|
||
"gemini_empty_pcm_data": "dados PCM vazios fornecidos",
|
||
"gemini_invalid_location_format": "formato de local de busca invalido %q: deve ser fuso horario (ex. 'America/Los_Angeles') ou codigo de idioma (ex. 'en-US')",
|
||
"gemini_invalid_voice": "voz invalida '%s'. As vozes validas sao: %v",
|
||
"gemini_no_audio_data": "nenhum dado de audio recebido do modelo TTS",
|
||
"gemini_no_text_for_tts": "nenhum conteudo de texto encontrado para geracao TTS",
|
||
"gemini_pcm_data_too_large": "dados PCM muito grandes: %d bytes, maximo permitido: %d",
|
||
"gemini_stream_error": "Erro: %v",
|
||
"gemini_tts_failed": "falha na geracao TTS: %w",
|
||
"gemini_unexpected_data_type": "tipo de dado inesperado: %s, esperado dados de audio",
|
||
"gemini_voice_not_found": "Voz '%s' não encontrada",
|
||
"gemini_wav_data_invalid": "dados WAV gerados invalidos: %d bytes, minimo requerido: %d",
|
||
"gemini_wav_generation_failed": "falha ao gerar arquivo WAV: %w",
|
||
"githelper_failed_clone_repository": "Falha ao clonar o repositório: %w",
|
||
"githelper_failed_create_dest_directory": "Falha ao criar o diretório de destino: %w",
|
||
"githelper_failed_create_temp_directory": "Falha ao criar o diretório temporário: %w",
|
||
"githelper_failed_get_commit": "Falha ao obter o commit: %w",
|
||
"githelper_failed_get_head": "Falha ao obter o HEAD do repositório: %w",
|
||
"githelper_failed_get_tree": "Falha ao obter a árvore: %w",
|
||
"githelper_failed_git_cli_clone": "Falha na clonagem git: %w: %s",
|
||
"githelper_failed_git_cli_fallback": "%w; o fallback do git CLI também falhou: %v",
|
||
"grab_comments_from_youtube": "Obter comentários do vídeo do YouTube e enviar ao chat",
|
||
"grab_transcript_from_youtube": "Obter transcrição do vídeo do YouTube e enviar ao chat (usado por padrão).",
|
||
"grab_transcript_with_timestamps": "Obter transcrição do vídeo do YouTube com timestamps e enviar ao chat",
|
||
"groups_items_number_out_of_range": "número %d está fora do intervalo",
|
||
"help_message": "Mostrar esta mensagem de ajuda",
|
||
"help_options_header": "Opções de ajuda:",
|
||
"html_readability_error": "usa a entrada original, porque não é possível aplicar a legibilidade HTML",
|
||
"i18n_download_failed": "Falha ao baixar tradução para o idioma '%s': %v",
|
||
"i18n_load_failed": "Falha ao carregar arquivo de tradução: %v",
|
||
"image_compression_jpeg_webp_only": "compressão de imagem só pode ser usada com formatos JPEG e WebP, não %s",
|
||
"image_compression_range_error": "compressão de imagem deve estar entre 0 e 100, recebido %d",
|
||
"image_dimensions_help": "Dimensões da imagem: 1024x1024, 1536x1024, 1024x1536, auto (padrão: auto)",
|
||
"image_file_already_exists": "arquivo de imagem já existe: %s",
|
||
"image_parameters_require_image_file": "parâmetros de imagem (--image-size, --image-quality, --image-background, --image-compression) só podem ser usados com --image-file",
|
||
"image_quality_help": "Qualidade da imagem: low, medium, high, auto (padrão: auto)",
|
||
"invalid_config_path": "caminho de configuração inválido: %w",
|
||
"invalid_image_background": "fundo de imagem inválido '%s'. Fundos suportados: opaque, transparent",
|
||
"invalid_image_file_extension": "extensão de arquivo de imagem inválida '%s'. Formatos suportados: .png, .jpeg, .jpg, .webp",
|
||
"invalid_image_quality": "qualidade de imagem inválida '%s'. Qualidades suportadas: low, medium, high, auto",
|
||
"invalid_image_size": "tamanho de imagem inválido '%s'. Tamanhos suportados: 1024x1024, 1536x1024, 1024x1536, auto",
|
||
"jina_error_creating_request": "erro ao criar a requisição: %v",
|
||
"jina_error_reading_response_body": "erro ao ler o corpo da resposta: %v",
|
||
"jina_error_sending_request": "erro ao enviar a requisição: %v",
|
||
"jina_label": "Jina AI",
|
||
"jina_setup_description": "Serviço Jina AI - para obter uma página web como texto limpo e compatível com LLM",
|
||
"language_label": "Idioma",
|
||
"language_output_question": "Informe o seu idioma de saída padrão (por exemplo: zh_CN)",
|
||
"language_setup_description": "Idioma - Idioma de saída padrão do provedor de IA",
|
||
"list_all_available_models": "Listar todos os modelos disponíveis",
|
||
"list_all_contexts": "Listar todos os contextos",
|
||
"list_all_patterns": "Listar todos os padrões/patterns",
|
||
"list_all_registered_extensions": "Listar todas as extensões registradas",
|
||
"list_all_sessions": "Listar todas as sessões",
|
||
"list_all_strategies": "Listar todas as estratégias",
|
||
"list_all_vendors": "Listar todos os fornecedores",
|
||
"list_gemini_tts_voices": "Listar todas as vozes TTS do Gemini disponíveis",
|
||
"list_transcription_models": "Listar todos os modelos de transcrição disponíveis",
|
||
"lmstudio_api_url_question": "Digite sua URL %v (como lembrete, geralmente é %v)",
|
||
"lmstudio_error_reading_response": "erro ao ler a resposta: %w",
|
||
"lmstudio_failed_create_request": "falha ao criar a requisição: %w",
|
||
"lmstudio_failed_decode_response": "falha ao decodificar a resposta: %w",
|
||
"lmstudio_failed_marshal_payload": "falha ao serializar o payload: %w",
|
||
"lmstudio_failed_send_request": "falha ao enviar a requisição: %w",
|
||
"lmstudio_invalid_response_missing_choices": "formato de resposta inválido: escolhas ausentes ou vazias",
|
||
"lmstudio_invalid_response_missing_content": "formato de resposta inválido: conteúdo ausente ou não é uma string na mensagem",
|
||
"lmstudio_invalid_response_missing_message": "formato de resposta inválido: mensagem ausente na primeira escolha",
|
||
"lmstudio_invalid_response_missing_text": "formato de resposta inválido: texto ausente ou não é uma string na primeira escolha",
|
||
"lmstudio_no_embeddings_returned": "nenhum embedding retornado",
|
||
"lmstudio_unexpected_status_code": "código de status inesperado: %d",
|
||
"model_context_length_ollama": "Comprimento do contexto do modelo (afeta apenas ollama)",
|
||
"model_for_transcription": "Modelo para usar na transcrição (separado do modelo de chat)",
|
||
"no_description_available": "Nenhuma descrição disponível",
|
||
"no_items_found": "Nenhum %s",
|
||
"no_notification_system_available": "nenhum sistema de notificação disponível",
|
||
"notifications_no_provider_available": "Nenhum provedor de notificações disponível",
|
||
"number_of_latest_patterns": "Número dos padrões mais recentes a listar",
|
||
"ollama_cannot_parse_url": "Não é possível analisar a URL '%s': %v",
|
||
"ollama_chat_request_failed": "Requisição de chat falhou: %v",
|
||
"ollama_empty_address": "endereço vazio",
|
||
"ollama_error_building_chat_url": "erro ao construir a URL /chat: %v",
|
||
"ollama_error_creating_chat_request": "erro ao criar a requisição /chat: %v",
|
||
"ollama_error_endpoint": "testando endpoint",
|
||
"ollama_error_getting_chat_body": "erro ao obter o corpo /chat: %v",
|
||
"ollama_error_marshalling_body": "erro ao serializar o corpo: %v",
|
||
"ollama_error_parse_upstream_response": "Erro: falha ao analisar resposta upstream",
|
||
"ollama_error_prefix": "Erro: %s",
|
||
"ollama_error_reading_body": "erro ao ler o corpo: %v",
|
||
"ollama_error_scanning_body": "erro ao escanear o corpo: %v",
|
||
"ollama_error_unmarshalling_body": "erro ao desserializar o corpo: %v",
|
||
"ollama_error_writing_response": "erro ao escrever resposta: %v",
|
||
"ollama_failed_create_request": "falha ao criar a requisição",
|
||
"ollama_failed_decode_data_url": "falha ao decodificar URL de dados: %v",
|
||
"ollama_failed_fetch_image": "falha ao buscar imagem de %s: %s",
|
||
"ollama_failed_scan_sse_stream": "falha ao escanear fluxo de resposta SSE: %v",
|
||
"ollama_failed_unmarshal_fabric_response": "falha ao desserializar resposta Fabric",
|
||
"ollama_http_timeout_question": "Insira o tempo limite HTTP (por exemplo, 20m, 60s)",
|
||
"ollama_invalid_address": "endereço inválido: %w",
|
||
"ollama_invalid_address_missing_host": "endereço inválido: host ausente",
|
||
"ollama_invalid_address_missing_hostname": "endereço inválido: nome do host ausente",
|
||
"ollama_invalid_address_path_not_allowed": "endereço inválido: componente de caminho não permitido em endereço simples",
|
||
"ollama_invalid_data_url_format": "formato de URL de dados inválido",
|
||
"ollama_invalid_http_timeout_using_default": "Tempo limite HTTP inválido '%s': %v, usando o padrão",
|
||
"ollama_invalid_num_ctx_in_request": "num_ctx inválido na requisição: %v",
|
||
"ollama_invalid_request_body": "corpo de solicitação inválido",
|
||
"ollama_no_content_from_upstream": "nenhum conteúdo recebido do servidor Fabric upstream",
|
||
"ollama_num_ctx_exceeds_maximum": "num_ctx excede o valor máximo permitido de %d",
|
||
"ollama_num_ctx_invalid_type": "num_ctx deve ser um número, recebeu tipo inválido",
|
||
"ollama_num_ctx_must_be_finite": "num_ctx deve ser um número finito",
|
||
"ollama_num_ctx_must_be_integer": "num_ctx deve ser um inteiro, recebeu float com parte fracionária",
|
||
"ollama_num_ctx_must_be_positive": "num_ctx deve ser positivo, recebeu: %d",
|
||
"ollama_num_ctx_must_be_valid_number": "num_ctx deve ser um número válido",
|
||
"ollama_num_ctx_must_be_valid_number_got": "num_ctx deve ser um número válido, recebeu: %s",
|
||
"ollama_num_ctx_value_out_of_range": "valor num_ctx fora do intervalo",
|
||
"ollama_num_ctx_value_too_large": "valor num_ctx muito grande: %d",
|
||
"ollama_sse_buffer_limit": "Linha SSE excede limite de buffer de 1MB - linha de dados muito grande",
|
||
"ollama_upstream_non_2xx": "Servidor Fabric upstream retornou status não-2xx %d: %s",
|
||
"ollama_upstream_non_2xx_body_unreadable": "Servidor Fabric upstream retornou status não-2xx %d e o corpo não pôde ser lido: %v",
|
||
"ollama_upstream_request_failed": "falha ao conectar ao servidor Fabric upstream",
|
||
"ollama_upstream_returned_status": "servidor Fabric upstream retornou status %d",
|
||
"ollama_warning_no_content": "Aviso: nenhum conteúdo recebido do servidor Fabric upstream",
|
||
"ollama_warning_parse_variables": "Aviso: falha ao analisar options.variables como JSON: %v",
|
||
"openai_api_base_url_not_configured": "URL base da API não configurada para o provedor %s",
|
||
"openai_audio_ffmpeg_failed": "ffmpeg falhou: %v: %s",
|
||
"openai_audio_ffmpeg_not_found_install": "ffmpeg não encontrado: por favor instale",
|
||
"openai_audio_file_exceeds_limit_enable_split": "O arquivo %s excede o limite de 25MB; use --split-media-file para habilitar a divisão automática",
|
||
"openai_audio_file_exceeds_limit_splitting": "O arquivo %s é maior que o limite de tamanho... dividindo em partes...",
|
||
"openai_audio_model_not_supported_for_transcription": "o modelo '%s' não é suportado para transcrição",
|
||
"openai_audio_running_ffmpeg_split_chunks": "Executando ffmpeg para dividir o áudio em partes de %d segundos...",
|
||
"openai_audio_unable_to_split_acceptable_size_chunks": "não foi possível dividir o arquivo em partes de tamanho aceitável",
|
||
"openai_audio_unsupported_audio_format": "formato de áudio não suportado '%s'",
|
||
"openai_audio_using_model_to_transcribe_part": "Usando o modelo %s para transcrever a parte %d (arquivo: %s)...",
|
||
"openai_compatible_unknown_static_model_list": "Lista de modelos estática desconhecida: %s",
|
||
"openai_failed_to_create_models_url": "falha ao criar URL de modelos: %w",
|
||
"openai_image_failed_to_create_directory": "falha ao criar o diretório %s: %w",
|
||
"openai_image_failed_to_decode_image_data": "falha ao decodificar os dados da imagem: %w",
|
||
"openai_image_failed_to_save_image": "falha ao salvar a imagem em %s: %w",
|
||
"openai_image_saved_to": "Imagem salva em: %s",
|
||
"openai_model_no_image_generation": "o modelo '%s' não suporta geração de imagens. Modelos suportados: %s",
|
||
"openai_models_rate_limited": "limite de taxa excedido ao buscar modelos do provedor %s; tente novamente após %s segundos",
|
||
"openai_models_response_too_large": "resposta de modelos muito grande do provedor %s (>%d bytes)",
|
||
"openai_unable_to_parse_models_response": "não foi possível analisar a resposta de modelos; resposta bruta: %s",
|
||
"openai_unexpected_status_code_read_error": "código de status inesperado: %d do provedor %s (falha ao ler corpo da resposta: %v)",
|
||
"openai_unexpected_status_code_with_body": "código de status inesperado: %d do provedor %s, corpo da resposta: %s",
|
||
"openai_warning_model_no_image_generation": "Aviso: O modelo '%s' não suporta geração de imagens. Modelos suportados: %s. Considere usar -m gpt-5.2 para geração de imagens.\n",
|
||
"optional_marker": "(opcional)",
|
||
"options_placeholder": "[OPÇÕES]",
|
||
"output_entire_session": "Saída de toda a sessão (incluindo temporária) para o arquivo de saída",
|
||
"output_full": "Saída: %s",
|
||
"output_raw_list_shell_completion": "Saída de lista bruta sem cabeçalhos/formatação (para conclusão de shell)",
|
||
"output_to_file": "Exportar para arquivo",
|
||
"output_truncated": "Saída: %s...",
|
||
"output_video_metadata": "Exibir metadados do vídeo",
|
||
"path_to_yaml_config": "Caminho para arquivo de configuração YAML",
|
||
"pattern_not_found_list_available": "padrão '%s' não encontrado. Execute 'fabric -l' para ver os padrões disponíveis",
|
||
"pattern_invalid_name": "nome de padrão inválido: %q",
|
||
"pattern_not_found_no_patterns": "padrão '%s' não encontrado.\n\nNenhum padrão instalado! Para resolver:\n • Execute 'fabric --setup' para configurar e baixar padrões\n • Ou execute 'fabric -U' para baixar/atualizar padrões diretamente",
|
||
"pattern_variables_help": "Valores para variáveis do padrão, ex. -v=#role:expert -v=#points:30",
|
||
"patterns_cloning_repository": "Clonando repositório %s (caminho: %s)...\\n",
|
||
"patterns_debug_included_custom_directory": "📂 Também incluídos os padrões do diretório personalizado: %s\\n",
|
||
"patterns_detected_old_path": "🔄 Caminho antigo 'patterns' detectado, tentando migrar para 'data/patterns'...",
|
||
"patterns_download_success": "✅ Padrões baixados e instalados com sucesso em %s\\n",
|
||
"patterns_downloaded_temp": "%d padrões baixados para o diretório temporário\\n",
|
||
"patterns_downloading": "Baixando padrões e populando %s...\\n",
|
||
"patterns_error_create_directory": "Não foi possível criar o diretório de padrões: %v",
|
||
"patterns_error_get_home_directory": "Não foi possível obter o diretório home: %v",
|
||
"patterns_error_load_from_file": "Não foi possível carregar o padrão do arquivo %s: %w",
|
||
"patterns_error_read_pattern_file": "Não foi possível ler o arquivo de padrão %s: %v",
|
||
"patterns_error_read_unique_file": "Não foi possível ler o arquivo de padrões únicos. Execute --updatepatterns (%s)",
|
||
"patterns_error_resolve_file_path": "Não foi possível resolver o caminho do arquivo: %v",
|
||
"patterns_error_save_pattern": "Não foi possível salvar o padrão: %v",
|
||
"patterns_failed_access_directory": "falha ao acessar o diretório de padrões '%s': %w",
|
||
"patterns_failed_create_temp_dir": "falha ao criar diretório temporário: %w",
|
||
"patterns_failed_create_temp_folder": "falha ao criar a pasta temporária de padrões: %w",
|
||
"patterns_failed_download_from_git": "falha ao baixar padrões do repositório Git: %w",
|
||
"patterns_failed_download_from_repo": "falha ao baixar padrões de %s: %w",
|
||
"patterns_failed_loaded_marker": "falha ao criar o arquivo marcador '%s': %w",
|
||
"patterns_failed_move_patterns": "falha ao mover os padrões para o diretório de configuração: %w",
|
||
"patterns_failed_move_test_patterns": "falha ao mover padrões de teste para a pasta temporária: %w",
|
||
"patterns_failed_read_directory": "falha ao ler o diretório de padrões: %w",
|
||
"patterns_failed_read_temp_directory": "falha ao ler o diretório temporário de padrões: %w",
|
||
"patterns_failed_unique_file": "falha ao criar o arquivo de padrões únicos: %w",
|
||
"patterns_failed_write_unique_file": "falha ao gravar o arquivo de padrões únicos: %w",
|
||
"patterns_found_new_path": "✅ %d padrões encontrados no novo caminho '%s', atualizando configuração...\\n",
|
||
"patterns_git_repo_folder_question": "Informe a pasta padrão no repositório Git onde os padrões ficam armazenados",
|
||
"patterns_git_repo_url_question": "Informe a URL padrão do repositório Git para os padrões",
|
||
"patterns_loader_label": "Carregador de padrões",
|
||
"patterns_no_patterns_copied": "nenhum padrão foi copiado com sucesso para %s",
|
||
"patterns_no_patterns_found_in_directories": "nenhum padrão encontrado nos diretórios %s e %s",
|
||
"patterns_no_patterns_found_in_directory": "nenhum padrão encontrado no diretório %s",
|
||
"patterns_no_patterns_migration_failed": "nenhum padrão encontrado no repositório no caminho %s e a migração falhou: %w",
|
||
"patterns_not_found_header": "⚠️ Nenhum padrão encontrado!",
|
||
"patterns_option_run_setup": "Opção 1 (Recomendada): Execute a configuração para baixar padrões",
|
||
"patterns_option_run_setup_command": "fabric --setup",
|
||
"patterns_option_run_update": "Opção 2: Baixar/atualizar padrões diretamente",
|
||
"patterns_option_run_update_command": "fabric -U",
|
||
"patterns_preserve_warning": "Aviso: não foi possível preservar o padrão personalizado '%s': %v\\n",
|
||
"patterns_preserved_custom_pattern": "Padrão personalizado preservado: %s\\n",
|
||
"patterns_required_to_work": "Padrões são necessários para o Fabric funcionar. Para resolver:",
|
||
"patterns_saving_updated_configuration": "💾 Salvando configuração atualizada (caminho alterado de '%s' para '%s')...\\n",
|
||
"patterns_setup_description": "Padrões - Baixa os padrões",
|
||
"patterns_unable_to_find_or_migrate": "não foi possível encontrar padrões no caminho atual '%s' ou migrar para a nova estrutura",
|
||
"patterns_unique_file_created": "📝 Arquivo de padrões únicos criado com %d padrões\\n",
|
||
"patterns_warning_custom_directory": "Aviso: não foi possível ler o diretório de padrões personalizado %s: %v\\n",
|
||
"patterns_warning_remove_test_folder": "Aviso: não foi possível remover a pasta temporária de teste '%s': %v\\n",
|
||
"perplexity_api_key_not_configured": "chave API não configurada para %s. Defina a variável de ambiente %s ou execute 'fabric --setup' para configurar %s",
|
||
"perplexity_api_request_failed": "requisição à API Perplexity falhou: %w",
|
||
"perplexity_citations_header": "\n\n**Citações:**\n",
|
||
"perplexity_failed_configure": "falha ao configurar Perplexity: %w",
|
||
"perplexity_streaming_error": "erro de streaming Perplexity: %v",
|
||
"plugin_configured": " ✓",
|
||
"plugin_enable_bool_question": "Ativar %v %v (true/false)",
|
||
"plugin_enter_value": "Informe seu %v %v",
|
||
"plugin_invalid_bool": "bool inválido: %q",
|
||
"plugin_invalid_boolean_value": "valor booleano inválido: %v",
|
||
"plugin_not_configured": " ⚠️ NÃO CONFIGURADO",
|
||
"plugin_question_bool": "%v%v (true/false, deixe em branco para '%s' ou digite '%v' para remover o valor):",
|
||
"plugin_question_optional": "%v%v (deixe em branco para pular):",
|
||
"plugin_question_with_default": "%v%v (deixe em branco para '%s' ou digite '%v' para remover o valor):",
|
||
"plugin_registry_could_not_find_vendor": "não foi possível encontrar o fornecedor",
|
||
"plugin_registry_error_configuring_custom_patterns": "Erro ao configurar CustomPatterns: %w",
|
||
"plugin_registry_model_not_available_for_vendor": "Modelo %s não disponível para o fornecedor %s",
|
||
"plugin_registry_run_setup_select_defaults": "execute 'fabric --setup' e selecione o modelo e fornecedor padrão",
|
||
"plugin_setting_not_valid": "%v=%v não é válido",
|
||
"plugin_setup_configured": "[%v] configurado",
|
||
"plugin_setup_skipped": "[%v] ignorado\\n",
|
||
"prefer_playlist_over_video": "Preferir playlist ao vídeo se ambos os IDs estiverem presentes na URL",
|
||
"print_context": "Imprimir contexto",
|
||
"print_current_version": "Imprimir versão atual",
|
||
"print_metadata_to_stderr": "Imprimir metadados (tokens de entrada/saída) no stderr",
|
||
"print_pattern_contents": "Imprimir o conteúdo do padrão indicado no terminal",
|
||
"print_session": "Imprimir sessão",
|
||
"register_new_extension": "Registrar uma nova extensão do caminho do arquivo de configuração",
|
||
"remove_registered_extension": "Remover uma extensão registrada por nome",
|
||
"required_marker": "[obrigatório]",
|
||
"run_setup_for_reconfigurable_parts": "Executar a configuração para todas as partes reconfiguráveis do fabric",
|
||
"save_generated_image_to_file": "Salvar imagem gerada no caminho de arquivo especificado (ex. 'output.png')",
|
||
"scrape_website_url": "Fazer scraping da URL do site para markdown usando Jina AI",
|
||
"scraping_not_configured": "funcionalidade de scraping não está configurada. Por favor configure o Jina para ativar o scraping",
|
||
"search_question_jina": "Pergunta de busca usando Jina AI",
|
||
"seed_for_lmm_generation": "Seed para ser usado na geração LMM",
|
||
"send_desktop_notification": "Enviar notificação desktop quando o comando for concluído",
|
||
"serve_fabric_api_ollama_endpoints": "Servir a API REST do Fabric com endpoints ollama",
|
||
"serve_fabric_rest_api": "Servir a API REST do Fabric",
|
||
"server_api_key_required": "recusando servir no endereço não loopback %s sem chave de API: defina --api-key ou FABRIC_API_KEY, ou vincule um endereço loopback como 127.0.0.1:8080",
|
||
"server_chat_error": "Erro: %v",
|
||
"server_error_marshaling_response": "erro ao serializar resposta: %v",
|
||
"server_error_writing_response": "erro ao escrever resposta: %v",
|
||
"server_invalid_request_format": "formato de solicitação inválido: %v",
|
||
"server_no_api_key_warning": "Iniciando o servidor da API REST sem autenticação por chave de API. Isso pode representar riscos de segurança.",
|
||
"sessions_creating_new": "Criando nova sessão: %s\n",
|
||
"set_debug_level": "Definir nível de debug (0=desligado, 1=básico, 2=detalhado, 3=rastreamento, 4=wire)",
|
||
"set_frequency_penalty": "Definir penalidade de frequência",
|
||
"set_location_web_search": "Definir localização para resultados de busca web (ex. 'America/Los_Angeles')",
|
||
"set_presence_penalty": "Definir penalidade de presença",
|
||
"set_reasoning_thinking_level": "Definir nível de raciocínio/pensamento (ex. off, low, medium, high, ou tokens numéricos para Anthropic ou Google Gemini)",
|
||
"set_temperature": "Definir temperatura",
|
||
"set_top_p": "Definir top P",
|
||
"setup_add_more_providers_later": "Você poderá adicionar mais provedores depois com 'fabric --setup'",
|
||
"setup_ai_provider_required": "O Fabric precisa de pelo menos um provedor de IA para funcionar.",
|
||
"setup_available_ai_providers": "Provedores de IA Disponíveis:",
|
||
"setup_available_plugins": "Plugins disponíveis:",
|
||
"setup_complete_header": "✅ Configuração completa! Agora você pode usar o Fabric.",
|
||
"setup_configure_more": "• Configurar mais opções: fabric --setup",
|
||
"setup_enter_ai_provider_number": "Número do Provedor de IA",
|
||
"setup_failed_download_patterns": "falha ao baixar padrões: %w",
|
||
"setup_failed_download_strategies": "falha ao baixar estratégias: %w",
|
||
"setup_failed_set_defaults": "falha ao configurar provedor e modelo padrão: %w",
|
||
"setup_invalid_selection": "seleção inválida: %s",
|
||
"setup_list_patterns": "• Listar padrões disponíveis: fabric -l",
|
||
"setup_next_steps": "Próximos passos:",
|
||
"setup_no_ai_provider_selected": "nenhum provedor de IA selecionado - pelo menos um é necessário",
|
||
"setup_optional_configuration_header": "━━━ CONFIGURAÇÃO OPCIONAL ━━━\n\nFerramentas Opcionais",
|
||
"setup_plugin_number": "Número do Plugin",
|
||
"setup_plugin_prompt": "Informe o número do plugin a configurar",
|
||
"setup_required_configuration_header": "━━━ CONFIGURAÇÃO OBRIGATÓRIA ━━━\n\nProvedores de IA [pelo menos um obrigatório]",
|
||
"setup_required_tools": "Ferramentas Obrigatórias",
|
||
"setup_step_configure_ai_provider": "🤖 Passo 3: Configurar um provedor de IA",
|
||
"setup_step_downloading_patterns": "📥 Passo 1: Baixando padrões (necessários para o Fabric funcionar)...",
|
||
"setup_step_downloading_strategies": "📥 Passo 2: Baixando estratégias (necessárias para o Fabric funcionar)...",
|
||
"setup_step_setting_defaults": "⚙️ Passo 4: Configurando provedor e modelo padrão...",
|
||
"setup_try_pattern": "• Experimentar um padrão: echo 'seu texto' | fabric --pattern summarize",
|
||
"setup_validation_ai_provider_configured": "✓ Provedor de IA configurado",
|
||
"setup_validation_ai_provider_missing": "✗ Provedor de IA não configurado - Necessário para o Fabric funcionar",
|
||
"setup_validation_complete": "✓ Todos os componentes necessários estão configurados!",
|
||
"setup_validation_defaults_configured": "✓ Provedor/modelo padrão definido: %s/%s",
|
||
"setup_validation_defaults_missing": "✗ Provedor/modelo padrão não definido - Necessário para o Fabric funcionar",
|
||
"setup_validation_header": "Status da Configuração:",
|
||
"setup_validation_incomplete_help": "Execute 'fabric --setup' novamente para configurar itens faltantes,\nou execute 'fabric -U' para baixar padrões e estratégias.",
|
||
"setup_validation_incomplete_warning": "⚠️ Configuração incompleta! Componentes necessários ausentes.",
|
||
"setup_validation_patterns_configured": "✓ Padrões baixados",
|
||
"setup_validation_patterns_missing": "✗ Padrões não encontrados - Necessários para o Fabric funcionar",
|
||
"setup_validation_strategies_configured": "✓ Estratégias baixadas",
|
||
"setup_validation_strategies_missing": "✗ Estratégias não encontradas - Necessárias para o Fabric funcionar",
|
||
"setup_welcome_header": "🎉 Bem-vindo ao Fabric! Vamos configurar tudo.",
|
||
"show_dry_run": "Mostrar o que seria enviado ao modelo sem enviar de fato",
|
||
"specify_language_code": "Especificar código de idioma para o chat, ex. -g=en -g=zh -g=pt-BR -g=pt-PT",
|
||
"specify_vendor_for_model": "Especificar fornecedor para o modelo selecionado (ex. -V \"LM Studio\" -m openai/gpt-oss-20b)",
|
||
"split_media_files_ffmpeg": "Dividir arquivos de áudio/vídeo maiores que 25MB usando ffmpeg",
|
||
"spotify_api_request_failed": "a solicitação da API falhou: status %d, resposta: %s",
|
||
"spotify_audio_preview_label": "**Prévia de áudio**: %s",
|
||
"spotify_client_id_question": "Insira seu CLIENT ID do Spotify",
|
||
"spotify_client_secret_question": "Insira seu CLIENT SECRET do Spotify",
|
||
"spotify_description_header": "## Descrição",
|
||
"spotify_duration_label": "**Duração**: %d minutos",
|
||
"spotify_episode_header": "# Episódio do Spotify",
|
||
"spotify_error_getting_metadata": "erro ao obter metadados do Spotify: %v",
|
||
"spotify_explicit_label": "**Explícito**: %v",
|
||
"spotify_failed_create_request": "falha ao criar a solicitação: %w",
|
||
"spotify_failed_create_token_request": "falha ao criar a solicitação de token: %w",
|
||
"spotify_failed_decode_token_response": "falha ao decodificar a resposta do token: %w",
|
||
"spotify_failed_execute_request": "falha ao executar a solicitação: %w",
|
||
"spotify_failed_get_access_token": "falha ao obter o token de acesso: status %d, resposta: %s",
|
||
"spotify_failed_get_show_episodes": "falha ao obter os episódios do programa: %w",
|
||
"spotify_failed_parse_episode_metadata": "falha ao analisar os metadados do episódio: %w",
|
||
"spotify_failed_parse_episodes": "falha ao analisar os episódios: %w",
|
||
"spotify_failed_parse_search_results": "falha ao analisar os resultados da pesquisa: %w",
|
||
"spotify_failed_parse_show_metadata": "falha ao analisar os metadados do programa: %w",
|
||
"spotify_failed_read_response_body": "falha ao ler o corpo da resposta: %w",
|
||
"spotify_failed_request_access_token": "falha ao solicitar o token de acesso: %w",
|
||
"spotify_invalid_url": "URL do Spotify inválida, não é possível obter o ID do programa ou episódio: '%s'",
|
||
"spotify_label": "Spotify",
|
||
"spotify_language_field_label": "**Idioma**: %s",
|
||
"spotify_languages_label": "**Idiomas**: %s",
|
||
"spotify_media_type_label": "**Tipo de mídia**: %s",
|
||
"spotify_no_episode_found": "nenhum episódio encontrado com o ID: %s",
|
||
"spotify_no_show_found": "nenhum programa encontrado com o ID: %s",
|
||
"spotify_not_configured": "Spotify não está configurado, por favor execute o procedimento de configuração",
|
||
"spotify_publisher_label": "**Editora**: %s",
|
||
"spotify_release_date_label": "**Data de lançamento**: %s",
|
||
"spotify_search_description_label": "- **Descrição**: %s",
|
||
"spotify_search_episodes_label": "- **Episódios**: %d",
|
||
"spotify_search_failed": "a pesquisa falhou: %w",
|
||
"spotify_search_publisher_label": "- **Editora**: %s",
|
||
"spotify_search_results_header": "# Resultados de pesquisa do Spotify",
|
||
"spotify_search_url_label": "- **URL**: %s",
|
||
"spotify_setup_description": "Spotify - para obter metadados de podcasts/programas do Spotify",
|
||
"spotify_show_header": "# Podcast/Programa do Spotify",
|
||
"spotify_show_name_label": "**Programa**: %s",
|
||
"spotify_title_label": "**Título**: %s",
|
||
"spotify_total_episodes_label": "**Total de episódios**: %d",
|
||
"spotify_url_help": "URL de podcast ou episódio do Spotify para obter metadados e enviar ao chat",
|
||
"spotify_url_label": "**URL**: %s",
|
||
"start_tag_thinking_sections": "Tag inicial para seções de pensamento",
|
||
"storage_error_delete": "Não foi possível excluir %s: %v",
|
||
"storage_error_load": "Não foi possível carregar %s: %v",
|
||
"storage_error_marshal": "Não foi possível serializar %s: %s",
|
||
"storage_error_read_directory": "Não foi possível ler os itens do diretório: %v",
|
||
"storage_error_rename": "Não foi possível renomear %s para %s: %v",
|
||
"storage_error_resolve_directory": "Não foi possível resolver o caminho do diretório: %v",
|
||
"storage_error_save": "Não foi possível salvar %s: %v",
|
||
"storage_error_stat_entry": "Não foi possível obter informações da entrada %s: %v",
|
||
"storage_error_unmarshal": "Não foi possível desserializar %s: %s",
|
||
"storage_invalid_name": "nome inválido: %q",
|
||
"strategies_available_header": "Estratégias disponíveis:",
|
||
"strategies_cloning_repository": "Clonando repositório %s (caminho: %s)...\\n",
|
||
"strategies_download_success": "✅ Estratégias baixadas e instaladas com sucesso em %s\\n",
|
||
"strategies_downloaded_count": "%d estratégias baixadas\\n",
|
||
"strategies_downloading": "Baixando estratégias e populando %s...\\n",
|
||
"strategies_failed_create_directory": "falha ao criar diretório de estratégias: %w",
|
||
"strategies_failed_download": "falha ao baixar estratégias: %w",
|
||
"strategies_git_repo_folder_question": "Informe a pasta padrão no repositório Git onde as estratégias ficam armazenadas",
|
||
"strategies_git_repo_url_question": "Informe a URL padrão do repositório Git para as estratégias",
|
||
"strategies_home_dir_error": "não foi possível obter o diretório home: %v",
|
||
"strategies_home_dir_fallback": "não foi possível obter o diretório home: %v, usando o diretório atual",
|
||
"strategies_label": "Estratégias de prompt",
|
||
"strategies_none_found": "nenhuma estratégia encontrada. Execute 'fabric --setup' para baixar estratégias",
|
||
"strategies_setup_description": "Estratégias - Baixa estratégias de prompting (como chain of thought)",
|
||
"strategy_not_found": "estratégia %s não encontrada. Execute 'fabric --liststrategies' para ver a lista",
|
||
"strategy_path_traversal": "o nome da estratégia %q resolve fora do diretório de estratégias",
|
||
"stream_help": "Streaming",
|
||
"suppress_thinking_tags": "Suprimir texto contido em tags de pensamento",
|
||
"template_datetime_error_invalid_number": "número inválido no tempo relativo: %q",
|
||
"template_datetime_error_invalid_relative_format": "formato de tempo relativo inválido",
|
||
"template_datetime_error_invalid_unit": "unidade de tempo inválida: %q",
|
||
"template_datetime_error_relative_requires_value": "o tempo relativo requer um valor",
|
||
"template_datetime_error_unknown_operation": "datetime: operação desconhecida %q",
|
||
"template_extension_error": "Erro na extensão %s: %v",
|
||
"template_file_error_expand_home_dir": "arquivo: não foi possível expandir o diretório home: %v",
|
||
"template_file_error_invalid_line_count": "arquivo: contagem de linhas inválida %q",
|
||
"template_file_error_line_count_positive": "arquivo: a contagem de linhas deve ser positiva",
|
||
"template_file_error_open_file": "arquivo: não foi possível abrir: %v",
|
||
"template_file_error_path_contains_parent_ref": "arquivo: o caminho não pode conter '..'",
|
||
"template_file_error_read_file": "arquivo: não foi possível ler: %v",
|
||
"template_file_error_scanner_read": "arquivo: erro ao ler: %v",
|
||
"template_file_error_size_exceeds_limit": "arquivo: tamanho %d excede o limite de %d bytes",
|
||
"template_file_error_stat_file": "arquivo: não foi possível obter o estado do arquivo: %v",
|
||
"template_file_error_stat_open_file": "arquivo: não foi possível obter o estado: %v",
|
||
"template_file_error_tail_requires_path_lines": "arquivo: tail requer o formato caminho|linhas",
|
||
"template_file_error_unknown_operation": "arquivo: operação desconhecida %q (suportadas: read, tail, exists, size, modified)",
|
||
"template_file_log_cleaned_path": "Arquivo: caminho limpo %q",
|
||
"template_file_log_exists_for_path": "Arquivo: exists=%v para o caminho %q",
|
||
"template_file_log_modified_for_path": "Arquivo: modified=%q para o caminho %q",
|
||
"template_file_log_operation_value": "Arquivo: operação=%q valor=%q",
|
||
"template_file_log_read_bytes": "Arquivo: %d bytes lidos",
|
||
"template_file_log_read_total_return_last": "Arquivo: %d linhas lidas no total, retornando as últimas %d",
|
||
"template_file_log_reading_last_lines": "Arquivo: lendo as últimas %d linhas de %q",
|
||
"template_file_log_size_for_path": "Arquivo: tamanho=%d para o caminho %q",
|
||
"template_file_log_tail_returning_lines": "Arquivo: tail retornando %d linhas",
|
||
"template_file_log_validating_path": "Arquivo: validando caminho %q",
|
||
"template_hash_open_file": "Abrir arquivo: %w",
|
||
"template_hash_read_file": "Ler arquivo: %w",
|
||
"template_missing_required_variable": "Variável obrigatória ausente: %s",
|
||
"template_plugin_error": "Erro no plugin %s: %v",
|
||
"template_processing_stuck": "Processamento do modelo travado - possível loop infinito",
|
||
"template_sys_error_env_requires_var": "env: nome da variável obrigatório",
|
||
"template_sys_error_home": "falha ao obter o diretório home: %v",
|
||
"template_sys_error_hostname": "falha ao obter o nome do host: %v",
|
||
"template_sys_error_pwd": "falha ao obter o diretório de trabalho: %v",
|
||
"template_sys_error_unknown_operation": "sys: operação desconhecida %q",
|
||
"template_sys_error_user": "falha ao obter o usuário atual: %v",
|
||
"template_text_empty_input": "Texto: entrada vazia para a operação %q",
|
||
"template_text_unknown_operation": "Texto: operação de texto desconhecida %q (suportadas: upper, lower, title, trim)",
|
||
"template_unknown_plugin_namespace": "Namespace de plugin desconhecido: %s",
|
||
"template_utils_failed_get_absolute_path": "Falha ao obter o caminho absoluto: %w",
|
||
"template_utils_failed_get_home_dir": "Falha ao obter o diretório home do usuário: %w",
|
||
"template_utils_path_not_exist": "O caminho não existe: %w",
|
||
"transcription_model_required": "modelo de transcrição é necessário (use --transcribe-model)",
|
||
"transparent_background_png_webp_only": "fundo transparente só pode ser usado com formatos PNG e WebP, não %s",
|
||
"tts_audio_generated_successfully": "Áudio TTS gerado com sucesso e salvo em: %s\n",
|
||
"tts_model_requires_audio_output": "modelo TTS '%s' requer saída de áudio. Por favor especifique um arquivo de saída de áudio com a flag -o (ex. -o output.wav)",
|
||
"tts_voice_name": "Nome da voz TTS para modelos suportados (ex. Kore, Charon, Puck)",
|
||
"unsupported_conversion": "conversão não suportada de %v para %v",
|
||
"update_patterns": "Atualizar os padrões/patterns",
|
||
"usage_header": "Uso:",
|
||
"use_model_defaults_raw_help": "Usa os padrões do modelo sem enviar opções de chat (temperature, top_p etc.). Afeta apenas provedores compatíveis com o OpenAI. Os modelos da Anthropic sempre utilizam seleção inteligente de parâmetros para cumprir os requisitos específicos de cada modelo.",
|
||
"util_error_accessing_config_path": "Erro ao acessar o caminho de configuração padrão: %w",
|
||
"util_error_determine_home_directory": "Não foi possível determinar o diretório home do usuário: %w",
|
||
"util_error_get_absolute_path": "Não foi possível obter o caminho absoluto",
|
||
"util_error_path_is_empty": "O caminho está vazio",
|
||
"util_error_resolve_home_directory": "Não foi possível resolver o diretório home",
|
||
"util_error_resolve_symlinks": "Não foi possível resolver os links simbólicos: %w",
|
||
"vendor_no_transcription_support": "o fornecedor %s não suporta transcrição de áudio",
|
||
"vendor_not_configured": "o fornecedor %s não está configurado",
|
||
"vendor_not_found": "provedor %s não encontrado",
|
||
"vendors_no_ai_vendors_configured_read_models": "nenhum provedor de IA configurado para ler modelos",
|
||
"vertexai_client_not_initialized": "cliente VertexAI nao inicializado",
|
||
"vertexai_error_api_status": "API retornou status %d: %s",
|
||
"vertexai_error_create_request": "falha ao criar requisição: %w",
|
||
"vertexai_error_parse_response": "falha ao analisar resposta: %w",
|
||
"vertexai_error_read_response": "falha ao ler resposta: %w",
|
||
"vertexai_error_request_failed": "requisição falhou: %w",
|
||
"vertexai_error_response_too_large": "resposta muito grande (>%d bytes)",
|
||
"vertexai_failed_gemini_client": "falha ao criar cliente Gemini: %w",
|
||
"vertexai_failed_google_credentials": "falha ao obter credenciais do Google (certifique-se de que o ADC esteja configurado): %w",
|
||
"vertexai_no_content_in_response": "sem conteudo na resposta",
|
||
"vertexai_no_conversational_models": "nenhum modelo conversacional encontrado",
|
||
"vertexai_no_models_found": "nenhum modelo encontrado de nenhum editor",
|
||
"vertexai_no_valid_messages": "nenhuma mensagem valida para enviar",
|
||
"vertexai_stream_error": "Erro: %v",
|
||
"wipe_context": "Limpar contexto",
|
||
"wipe_session": "Limpar sessão",
|
||
"youtube_api_key_required": "chave de API do YouTube necessária para comentários e metadados. Execute 'fabric --setup' para configurar",
|
||
"youtube_auth_required_bot_detection": "YouTube requer autenticação (detecção de bot). Use --yt-dlp-args='--cookies-from-browser BROWSER' onde BROWSER pode ser chrome, firefox, brave, etc.",
|
||
"youtube_empty_seconds_string": "string de segundos vazia",
|
||
"youtube_error_getting_comments": "erro ao obter comentários: %v",
|
||
"youtube_error_getting_metadata": "erro ao obter metadados do vídeo: %v",
|
||
"youtube_error_getting_video_details": "erro ao obter detalhes do vídeo: %v",
|
||
"youtube_error_parsing_duration": "erro ao analisar a duração do vídeo: %v",
|
||
"youtube_error_saving_csv": "erro ao salvar vídeos em CSV: %v",
|
||
"youtube_extract_visual_data_help": "Extrair dados visuais do vídeo usando OCR e FFmpeg",
|
||
"youtube_failed_create_temp_dir": "falha ao criar diretório temporário: %v",
|
||
"youtube_failed_fetch_comments": "Falha ao buscar comentários: %v",
|
||
"youtube_failed_get_stream_url": "falha ao obter a URL do stream via yt-dlp: %v",
|
||
"youtube_failed_parse_http_stream_url": "falha ao analisar uma URL HTTP válida de stream da saída do yt-dlp",
|
||
"youtube_failed_walk_directory": "falha ao percorrer o diretório: %v",
|
||
"youtube_ffmpeg_frame_extraction_failed": "extração de quadros com ffmpeg falhou: %v, saída: %s",
|
||
"youtube_ffmpeg_required_visual_extraction": "ffmpeg é necessário para extração visual, mas não foi encontrado no PATH",
|
||
"youtube_invalid_duration_string": "string de duração inválida: %s",
|
||
"youtube_invalid_seconds_format": "formato de segundos inválido %q: %w",
|
||
"youtube_invalid_timestamp_format": "formato de timestamp inválido: %s",
|
||
"youtube_invalid_url": "URL do YouTube inválida, não é possível obter o ID do vídeo ou da playlist: '%s'",
|
||
"youtube_invalid_ytdlp_arguments": "argumentos do yt-dlp inválidos: %v",
|
||
"youtube_label": "YouTube",
|
||
"youtube_no_clear_text_visual_frames": "nenhum texto legível encontrado nos quadros visuais do vídeo",
|
||
"youtube_no_transcript_content": "nenhum conteúdo de transcrição encontrado no arquivo VTT",
|
||
"youtube_no_url_provided": "Nenhuma URL do YouTube fornecida",
|
||
"youtube_no_video_found_with_id": "nenhum vídeo encontrado com o ID: %s",
|
||
"youtube_no_video_id_found": "nenhum ID de vídeo encontrado na URL",
|
||
"youtube_no_vtt_files_found": "nenhum arquivo VTT encontrado no diretório",
|
||
"youtube_not_configured": "YouTube não está configurado, por favor execute o procedimento de configuração",
|
||
"youtube_playlist_header": "Lista de reprodução: %s",
|
||
"youtube_playlist_saved_to": "Lista de reprodução salva em %s",
|
||
"youtube_rate_limit_exceeded": "Limite de taxa do YouTube excedido. Tente novamente mais tarde ou use argumentos diferentes do yt-dlp como '--sleep-requests 1' para desacelerar as requisições.",
|
||
"youtube_setup_description": "YouTube - para obter transcrições de vídeo (via yt-dlp) e comentários/metadados (via API do YouTube)",
|
||
"youtube_tesseract_frame_failed": "tesseract falhou no quadro %d: %v, stderr: %s",
|
||
"youtube_tesseract_required_visual_extraction": "tesseract é necessário para extração visual, mas não foi encontrado no PATH",
|
||
"youtube_url_help": "Vídeo do YouTube ou URL da playlist para obter transcrição, comentários e enviar ao chat ou imprimir no console e armazenar no arquivo de saída",
|
||
"youtube_url_is_playlist_not_video": "a URL é uma playlist, não um vídeo",
|
||
"youtube_video_id_title_header": "VideoID: Título",
|
||
"youtube_visual_fps_help": "Extrair um número específico de quadros por segundo em vez de usar detecção de cenas",
|
||
"youtube_visual_frame_cue": "[MARCADOR DE QUADRO VISUAL]",
|
||
"youtube_visual_sensitivity_help": "Tolerância para detecção de cenas do FFmpeg (0.0 - 1.0)",
|
||
"youtube_ytdlp_not_found": "yt-dlp não encontrado no PATH. Por favor instale o yt-dlp para usar a funcionalidade de transcrição do YouTube",
|
||
"youtube_ytdlp_required_visual_extraction": "yt-dlp é necessário para extração visual, mas não foi encontrado no PATH",
|
||
"youtube_ytdlp_stderr_error": "erro ao ler stderr do yt-dlp"
|
||
}
|