Files
SageTube/languages/pt.json
T
oop7 bb231ccd12 Refactor FFmpeg updater to version checker
Replaces the FFmpeg updater logic with a version checker across all supported languages and removes the updater module. The Windows installation logic in ytsage_ffmpeg.py is rewritten to use essentials build extraction and path configuration directly, removing dependency on the updater module. Dialogs and UI strings are updated to reflect the new version checking workflow and provide installation guide links.
2025-11-14 17:10:36 +02:00

493 lines
26 KiB
JSON

{
"language": {
"display_name": "Português (Portuguese)",
"select_language": "Selecionar idioma:",
"current_language": "Idioma atual: {language}",
"restart_required": "As alterações de idioma terão efeito após reiniciar a aplicação.",
"english": "Inglês",
"spanish": "Espanhol",
"portuguese": "Português",
"russian": "Русский (Russian)",
"chinese": "中文 (简体) (Chinese Simplified)",
"german": "Alemão",
"french": "Francês",
"hindi": "Hindi",
"indonesian": "Indonésio",
"turkish": "Turco",
"polish": "Polonês",
"italian": "Italiano",
"arabic": "Árabe",
"japanese": "Japonês",
"help_text": "Selecione seu idioma preferido para a interface.",
"restart_notice": "A alteração de idioma terá efeito após reiniciar a aplicação."
},
"app": {
"title": "YTSage",
"version": "v{version}",
"ready": "Pronto"
},
"formats": {
"show_formats": "Mostrar Formatos:",
"video_format": "Formato de Vídeo:",
"audio_format": "Formato de Áudio:",
"no_formats": "Nenhum formato disponível",
"loading": "Carregando formatos...",
"select": "Selecionar",
"quality": "Qualidade",
"extension": "Extensão",
"resolution": "Resolução",
"file_size": "Tamanho do Arquivo",
"codec": "Codec",
"audio": "Áudio",
"fps": "FPS",
"hdr": "HDR",
"will_merge_audio": "Irá mesclar áudio",
"has_audio": "✓ Tem Áudio",
"audio_only": "Apenas Áudio",
"best_4k": "Melhor (4K)",
"best_2k": "Melhor (2K)",
"high_1080p": "Alta (1080p)",
"high_720p": "Alta (720p)",
"medium_480p": "Média (480p)",
"low_quality": "Baixa Qualidade",
"best_audio": "Melhor Áudio",
"high_audio": "Áudio Alto",
"medium_audio": "Áudio Médio",
"low_audio": "Áudio Baixo",
"audio_only_resolution": "Apenas áudio"
},
"buttons": {
"download": "Baixar",
"pause": "Pausar",
"resume": "Retomar",
"cancel": "Cancelar",
"browse": "Procurar",
"clear": "Limpar",
"ok": "OK",
"apply": "Aplicar",
"close": "Fechar",
"run_command": "Executar Comando",
"custom_command_help": "Ajuda",
"about": "Sobre",
"analyze": "Analisar",
"paste_url": "Colar URL",
"select_videos": "Selecionar Vídeos...",
"video": "Vídeo",
"audio_only": "Apenas Áudio",
"custom_options": "Opções Personalizadas",
"trim_video": "Cortar Vídeo",
"download_settings": "Configurações de Download",
"update": "Atualizar yt-dlp",
"select_defaults": "Selecionar Padrões",
"select_all": "Selecionar Tudo",
"deselect_all": "Desmarcar Tudo",
"open_folder": "Abrir local da pasta",
"history": "Histórico"
},
"dialogs": {
"custom_options": "Opções Personalizadas",
"settings": "Configurações",
"select_folder": "Selecionar Pasta de Download",
"sponsorblock_categories": "Categorias SponsorBlock",
"sponsorblock_description": "Selecione quais tipos de segmentos de vídeo serão removidos automaticamente durante o download.\nO SponsorBlock usa dados enviados pela comunidade para identificar esses segmentos.",
"select_subtitles": "Selecionar Legendas",
"filter_languages_placeholder": "Filtrar idiomas (ex., en, pt)...",
"no_subtitles_available": "Nenhuma legenda disponível",
"matching": "correspondendo"
},
"tabs": {
"cookies": "Entrar com Cookies",
"custom_command": "Comando Personalizado",
"proxy": "Proxy",
"language": "Idioma",
"updater": "Atualizador"
},
"cookies": {
"help_text": "Escolha como fornecer cookies para fazer login.\nIsso permite baixar vídeos privados e áudio de qualidade premium.",
"cookie_source": "Fonte de Cookies",
"use_cookie_file": "Usar arquivo de cookies",
"extract_from_browser": "Extrair do navegador",
"recommended": "Recomendado",
"cookie_file": "Arquivo de Cookies",
"cookie_file_placeholder": "Caminho para o arquivo cookies.txt...",
"browser_selection": "Seleção de Navegador",
"browser_help": "Selecione o navegador do qual extrair cookies:",
"browser_label": "Navegador:",
"profile_label": "Perfil:",
"profile_placeholder": "padrão",
"browser_extract_message": "Os cookies do navegador serão extraídos quando aplicados",
"file_selected_message": "Arquivo de cookies selecionado - Clique em OK para aplicar",
"select_file_title": "Selecionar Arquivo de Cookies",
"file_filter": "Arquivos de cookies (*.txt *.lwp)",
"file_selected_title": "Arquivo de Cookies Aplicado",
"file_applied_message": "Arquivo de cookies aplicado: {path}",
"browser_selected_title": "Cookies do Navegador Aplicados",
"browser_applied_message": "Os cookies do navegador serão extraídos de: {browser}",
"cleared_title": "Cookies Limpos",
"cleared_message": "As configurações de cookies foram limpas"
},
"custom_command": {
"help_text": "Digite seu comando yt-dlp personalizado abaixo. A URL atual será anexada automaticamente.<br><br>Para a lista completa de opções e exemplos de uso, <a href=\"{docs_url}\">clique aqui para ver a documentação oficial do yt-dlp</a>.<br><br>Nota: O caminho de download e modelo de nome de arquivo serão tratados automaticamente.",
"input_label": "Argumentos yt-dlp:",
"input_placeholder": "Digite os argumentos yt-dlp aqui...\n\nex. --extract-audio --audio-format mp3",
"output_label": "Saída do Comando:",
"output_placeholder": "A saída do comando aparecerá aqui...",
"command_placeholder": "Digite comando yt-dlp personalizado...",
"command_help": "Marcadores disponíveis:\n{url} - URL do Vídeo\n{output} - Diretório de saída\n\nExemplo: --write-info-json --write-thumbnail",
"full_command": "🔧 Comando completo: {command}",
"command_success": "✅ Comando personalizado executado com sucesso!",
"command_failed": "❌ Comando falhou com código de saída {code}",
"command_error": "❌ Erro ao executar comando personalizado: {error}"
},
"proxy": {
"help_text": "Configure as definições de proxy para download. Deixe vazio para usar conexão direta.",
"main_proxy": "Proxy Principal",
"main_proxy_help": "Servidor proxy principal para todos os downloads. Suporta protocolos HTTP/HTTPS e SOCKS5.",
"proxy_url_label": "URL do Proxy:",
"proxy_url_placeholder": "http://proxy:porta ou socks5://proxy:porta",
"proxy_examples": "Exemplos:\n• HTTP: http://proxy.exemplo.com:8080\n• SOCKS5: socks5://proxy.exemplo.com:1080",
"geo_proxy": "Proxy de Contorno Geográfico",
"geo_proxy_help": "Proxy secundário especificamente para contornar restrições geográficas.",
"geo_proxy_url_label": "URL do Proxy de Contorno Geográfico:",
"geo_proxy_url_placeholder": "http://geo-proxy:porta",
"clear_main_proxy": "Limpar Proxy Principal",
"clear_geo_proxy": "Limpar Proxy Geográfico",
"proxy_url": "URL do Proxy",
"proxy_placeholder": "http://proxy:porta ou socks5://proxy:porta",
"geo_bypass": "Proxy de contorno geográfico (para restrições geográficas)",
"geo_bypass_placeholder": "http://proxy:porta para contornar bloqueios geográficos",
"invalid_main_url": "Formato de URL do proxy principal inválido",
"invalid_geo_url": "Formato de URL do proxy geográfico inválido",
"main_configured": "Proxy principal configurado",
"geo_configured": "Proxy geográfico configurado"
},
"download": {
"preparing": "Preparando download...",
"starting": "🚀 Iniciando download...",
"fetching_info": "🔍 Buscando informações do vídeo...",
"preparing_streams": "🎯 Preparando streams de vídeo...",
"downloading_audio": "⏬ Baixando áudio...",
"downloading_video": "⏬ Baixando vídeo...",
"downloading_subtitle": "⏬ Baixando legendas...",
"downloading": "⏬ Baixando...",
"completed": "✅ Download concluído!",
"video_completed": "✅ Download de vídeo concluído!",
"audio_completed": "✅ Download de áudio concluído!",
"subtitle_completed": "✅ Download de legendas concluído!",
"completed_cleaning": "✅ Download concluído! Limpando...",
"cancelled": "Download cancelado",
"processing_playlist": "📋 Processando dados da playlist...",
"paused": "Download pausado",
"resumed": "Download retomado",
"merging_formats": "✨ Pós-processamento: Mesclando formatos...",
"removing_sponsor_segments": "✨ Pós-processamento: Removendo segmentos patrocinados...",
"speed": "Velocidade",
"eta": "Tempo restante",
"please_enter_url": "Por favor, digite uma URL primeiro.",
"please_set_path": "Por favor, defina um caminho de download primeiro.",
"please_enter_url_and_path": "Por favor, digite uma URL e defina o caminho de download.",
"please_select_format": "Por favor, selecione um formato primeiro.",
"downloading_fallback": "⚡ Baixando..."
},
"update": {
"title": "Atualizar yt-dlp",
"checking": "Verificando atualizações...",
"update_available": "Atualização disponível!\nVersão atual: {current}\nÚltima versão: {latest}",
"up_to_date": "yt-dlp está atualizado (versão {version})",
"could_not_determine": "Não foi possível determinar as versões.",
"error_comparing": "Erro ao comparar versões: {error}",
"update_available_failed": "Atualização disponível! (Comparação falhou)\nAtual: {current}\nÚltima: {latest}",
"updating": "Atualizando...",
"initializing": "🚀 Inicializando processo de atualização...",
"checking_current": "🔍 Verificando instalação atual...",
"found_at": "📍 yt-dlp encontrado em: {path}",
"error_getting_path": "❌ Erro ao obter caminho do yt-dlp: {error}",
"updating_binary": "📦 Atualizando binário yt-dlp gerenciado pela aplicação...",
"update_failed": "❌ Falha ao atualizar yt-dlp. Tente novamente ou verifique sua conexão com a internet.",
"binary_updated": "✅ Binário atualizado com sucesso!",
"update_failed_stderr": "❌ Atualização do yt-dlp falhou: {error}",
"update_timeout": "❌ Atualização do yt-dlp expirou.",
"unexpected_error": "❌ Erro inesperado durante atualização: {error}",
"already_up_to_date": "✅ yt-dlp já está atualizado!",
"update_success": "✅ yt-dlp foi atualizado com sucesso!",
"already_latest": "yt-dlp está atualizado (versão {version})",
"network_error": "❌ Erro de rede durante a atualização: {error}",
"general_error": "❌ A atualização falhou: {error}"
},
"about": {
"title": "Sobre YTSage",
"version": "Versão {version}",
"description": "Downloader moderno do YouTube com interface limpa em PySide6.",
"author": "Por: {author}",
"github": "GitHub: {repo}",
"system_info": "Informações do Sistema",
"loading": "🔄 Carregando informações do sistema...",
"refresh": "🔄",
"refreshing": "🔄 Atualizando...",
"refresh_failed": "Atualização Falhou",
"refresh_failed_message": "Não foi possível atualizar as informações de versão.",
"detected": "✓ Detectado",
"missing": "✗ Ausente",
"not_available": "Não Disponível"
},
"time_range": {
"title": "Cortar Vídeo",
"time_range_group": "Intervalo de Tempo",
"start_time": "Tempo de Início (HH:MM:SS)",
"end_time": "Tempo de Fim (HH:MM:SS)",
"start_placeholder": "00:00:00",
"end_placeholder": "00:00:00",
"start_time_placeholder": "Tempo de início (HH:MM:SS)",
"end_time_placeholder": "Tempo de fim (HH:MM:SS)",
"force_keyframes": "Forçar quadros-chave nos pontos de corte",
"help_text": "Defina os tempos de início e fim para cortar o vídeo.\nDeixe vazio para baixar o vídeo completo.",
"invalid_format": "Formato de tempo inválido. Use o formato HH:MM:SS.",
"start_after_end": "O tempo de início não pode ser após o tempo de fim."
},
"settings": {
"title": "Configurações de Download",
"download_path": "Caminho de Download",
"browse": "Procurar...",
"speed_limit": "Limite de Velocidade",
"speed_limit_placeholder": "Nenhum",
"auto_update_ytdlp": "Auto-Atualizar yt-dlp",
"enable_auto_updates": "Habilitar atualizações automáticas do yt-dlp",
"update_frequency": "Frequência de atualização:",
"check_startup": "Verificar a cada inicialização (mínimo 1 hora entre verificações)",
"check_daily": "Verificar diariamente",
"check_weekly": "Verificar semanalmente",
"check_updates_now": "Atualizar yt-dlp",
"update_check_title": "Verificação de Atualização",
"could_not_determine_version": "Não foi possível determinar a versão atual do yt-dlp.",
"update_available_dialog": "Atualização disponível!\n\nAtual: {current}\nÚltima: {latest}\n\nClique em OK para continuar com a atualização.",
"up_to_date_dialog": "yt-dlp está atualizado!\n\nVersão atual: {version}",
"error_checking_updates": "Erro ao verificar atualizações: {error}",
"settings_saved_title": "Configurações Salvas",
"settings_saved_message": "Configurações de auto-atualização foram salvas com sucesso!",
"error_title": "Erro",
"failed_save_settings": "Falha ao salvar configurações de auto-atualização.",
"error_saving_settings": "Erro ao salvar configurações de auto-atualização: {error}",
"ytdlp_channel": "Canal de Lançamento do yt-dlp",
"ytdlp_channel_stable": "Estável (Lançamentos testados)",
"ytdlp_channel_nightly": "Nightly (Atualizações diárias, recomendado pelo yt-dlp)",
"ytdlp_channel_description": "Escolha entre lançamentos estáveis e nightly. Builds nightly são atualizadas diariamente com as últimas correções e recursos. Você pode trocar de canal a qualquer momento.",
"ytdlp_switching_channel": "Mudando para o canal {channel}...",
"ytdlp_channel_switched": "✅ Mudado com sucesso para o canal {channel}!",
"ytdlp_channel_switch_failed": "❌ Falha ao trocar de canal: {error}",
"ytdlp_current_channel": "Canal atual: {channel}",
"auto_update_title": "Configurações de Auto-Atualização",
"auto_update_header": "🔄 Configurações de Auto-Atualização",
"auto_update_description": "Configure atualizações automáticas para o yt-dlp para garantir que você sempre tenha os recursos mais recentes e correções de bugs.",
"current_status": "Status Atual",
"current_version_label": "Versão atual do yt-dlp: Verificando...",
"last_check_label": "Última verificação de atualização: Nunca",
"next_check_label": "Próxima verificação: Baseada nas configurações",
"manual_check_button": "🔍 Verificar Atualizações Agora",
"update_frequency_group": "Frequência de Atualização",
"save_settings": "Salvar Configurações",
"settings_saved_successfully": "✅ Configurações salvas com sucesso!",
"error_saving": "❌ Erro ao salvar configurações: {error}",
"output_format_settings": "Configurações de Formato de Saída",
"force_output_format": "Forçar formato de saída ao mesclar",
"preferred_format": "Formato preferido:",
"force_format_help": "Quando ativado, os vídeos mesclados serão convertidos para o seu formato preferido. Desative para deixar o yt-dlp decidir automaticamente.",
"format_mp4": "MP4 (Mais compatível)",
"format_webm": "WebM (Moderno, aberto)",
"format_mkv": "MKV (Rico em recursos)"
},
"main_ui": {
"url_placeholder": "Digite a URL do vídeo ou playlist do YouTube",
"merge_subtitles": "Mesclar Legendas",
"save_thumbnail": "Salvar Miniatura",
"save_description": "Salvar Descrição",
"embed_chapters": "Incorporar Capítulos",
"subtitles_selected": "{count} selecionadas",
"all_selected": "Todas selecionadas",
"select_videos_all": "Selecionar Vídeos... (Todas selecionadas)",
"please_enter_url": "Por favor, digite uma URL primeiro",
"error_title": "Erro",
"cookie_file_selected_title": "Arquivo de Cookies Selecionado",
"cookie_file_selected_message": "Arquivo de cookies selecionado: {path}",
"browser_cookies_selected_title": "Cookies do Navegador Selecionados",
"browser_cookies_selected_message": "Os cookies do navegador serão extraídos de: {browser}",
"error_no_format_info": "Erro: Nenhuma informação de formato disponível.",
"error_extract_info": "Erro: Não foi possível extrair informações básicas do vídeo. Verifique seu link.",
"analyzing_preparing": "Analisando (0%)... Preparando solicitação",
"analyzing_extracting_basic": "Analisando (15%)... Extraindo informações básicas",
"analyzing_extracting_detailed": "Analisando (30%)... Extraindo informações detalhadas",
"analyzing_processing_video": "Analisando (45%)... Processando dados do vídeo",
"analyzing_processing_formats": "Analisando (60%)... Processando formatos",
"analyzing_loading_thumbnail": "Analisando (75%)... Carregando miniatura",
"analyzing_processing_subtitles": "Analisando (85%)... Processando legendas",
"analyzing_updating_table": "Analisando (95%)... Atualizando tabela de formatos",
"analysis_complete": "Análise completa!",
"analyzing_extracting_ytdlp": "Analisando (30%)... Extraindo informações com yt-dlp",
"analyzing_processing_data": "Analisando (60%)... Processando dados",
"analyzing_processing_formats_ytdlp": "Analisando (75%)... Processando formatos",
"analyzing_loading_thumbnail_ytdlp": "Analisando (85%)... Carregando miniatura",
"analyzing_processing_subtitles_ytdlp": "Analisando (90%)... Processando legendas",
"select_subtitles": "Selecionar Legendas...",
"sponsorblock_categories": "Categorias SponsorBlock...",
"invalid_url_or_enter": "URL inválido ou por favor insira um URL.",
"zero_selected": "0 selecionados",
"analyze_first_tooltip": "Por favor analise o vídeo primeiro",
"audio_mode_disabled": "Não disponível no modo apenas áudio",
"select_subtitles_first": "Por favor selecione legendas primeiro"
},
"sponsorblock": {
"sponsor": "Patrocinador",
"sponsor_desc": "Promoção paga, referências pagas e anúncios diretos",
"selfpromo": "Promoção Não Paga/Própria",
"selfpromo_desc": "Promoção não paga do próprio conteúdo dos criadores",
"interaction": "Lembrete de Interação",
"interaction_desc": "Pedindo aos espectadores para curtir, se inscrever ou seguir nas redes sociais",
"intro": "Introdução",
"intro_desc": "Introdução do vídeo que pode ser pulada",
"outro": "Encerramento/Cards Finais",
"outro_desc": "Créditos ou quando o vídeo termina",
"preview": "Prévia/Recapitulação",
"preview_desc": "Recapitulação rápida de vídeos anteriores ou prévia do que está por vir",
"music_offtopic": "Seção Não Musical",
"music_offtopic_desc": "Apenas para vídeos musicais. Marca seções não musicais",
"filler": "Tangente de Preenchimento",
"filler_desc": "Cenas tangenciais adicionadas apenas para preenchimento ou humor"
},
"video_info": {
"channel": "Canal",
"views": "Visualizações",
"likes": "Curtidas",
"upload_date": "Data de upload",
"duration": "Duração",
"unknown_channel": "Canal desconhecido",
"unknown_date": "Data desconhecida",
"unknown_title": "Título desconhecido"
},
"command": {
"running": "Executando...",
"run_command": "Executar Comando"
},
"selection": {
"none_selected": "0 selecionadas",
"one_selected": "1 categoria selecionada",
"count_selected": "{count} selecionadas"
},
"status": {
"ready": "Pronto",
"file_exists": "⚠️ Arquivo já existe",
"video_file_exists": "⚠️ Arquivo de vídeo já existe",
"audio_file_exists": "⚠️ Arquivo de áudio já existe",
"subtitle_file_exists": "⚠️ Arquivo de legendas já existe",
"cancelling": "Cancelando download..."
},
"errors": {
"playlist_no_videos": "Erro: A playlist não contém vídeos válidos.",
"playlist_no_url": "Erro: Não foi possível obter a URL do primeiro vídeo da playlist.",
"ytdlp_not_found": "Erro: Executável yt-dlp não encontrado. Por favor, instale o yt-dlp primeiro.",
"ytdlp_not_found_path": "Erro: Executável yt-dlp não encontrado. Isso pode ser devido a uma instalação inadequada ou problema de PATH.",
"no_data_returned": "Erro: Nenhum dado retornado do yt-dlp",
"no_format_info": "Erro: Nenhuma informação de formato disponível.",
"analysis_timeout": "Erro: Tempo de análise esgotado. Por favor, tente novamente.",
"invalid_speed_limit": "❌ Erro: Valor de limite de velocidade inválido definido nas configurações.",
"ytdlp_failed": "Erro: yt-dlp falhou: {error}",
"parse_failed": "Erro: Falha ao analisar a saída do yt-dlp: {error}",
"analysis_failed": "Erro: Análise falhou: {error}",
"generic_error": "Erro: {error}"
},
"update_dialog": {
"title": "Atualização Disponível",
"new_version_available": "Uma nova versão do YTSage está disponível!",
"current_version_label": "Versão atual:",
"latest_version_label": "Última versão:",
"changelog": "Registro de alterações",
"download_update": "Baixar Atualização",
"remind_later": "Lembrar Mais Tarde"
},
"playlist": {
"unknown": "Playlist Desconhecida",
"total_videos": "Total de Vídeos: {count}",
"display_format": "Playlist: {title} | {count} vídeos",
"select_videos_title": "Selecionar Vídeos da Playlist"
},
"subtitle_selection": {
"count_selected": "{count} selecionadas"
},
"file_exists_dialog": {
"title": "Arquivo já existe",
"message": "O arquivo já existe:\n{filename}",
"info": "Este vídeo já foi baixado."
},
"auto_update": {
"last_check_never": "Última verificação: Nunca",
"last_check": "Última verificação: {time}",
"next_check_disabled": "Próxima verificação: Desativada",
"next_check_startup": "Próxima verificação: Na inicialização",
"next_check_overdue": "Próxima verificação: Agora (atrasada)",
"next_check": "Próxima verificação: {time}",
"next_check_error": "Próxima verificação: Erro ao calcular",
"checking": "🔄 Verificando...",
"check_now": "🔍 Verificar atualizações agora"
},
"url_validation": {
"empty_url": "O URL não pode estar vazio",
"invalid_format": "Formato de URL inválido",
"invalid_scheme": "O URL deve começar com http:// ou https://",
"missing_domain": "URL inválido: nome de domínio ausente",
"unsupported_platform": "YTSage suporta apenas URLs do YouTube e YouTube Music.\nO domínio '{domain}' não é suportado.",
"invalid_youtu_be": "URL youtu.be inválido: ID do vídeo ausente"
},
"ytdlp_errors": {
"private_video": "Este é um vídeo privado. Você pode baixá-lo fazendo login em sua conta usando cookies.\nVá para 'Opções Personalizadas' → 'Login com Cookies' → 'Extrair cookies do navegador' para autenticar.",
"age_restricted": "Este vídeo tem restrição de idade. Você precisa estar conectado para acessá-lo.\nUse 'Opções Personalizadas' → 'Login com Cookies' para autenticar com sua conta.",
"geo_blocked": "Este vídeo não está disponível em sua região (geo-bloqueado).\nVocê pode precisar usar uma VPN ou o vídeo pode estar restrito em seu país.",
"video_unavailable": "Este vídeo foi removido ou não está mais disponível.\nO vídeo pode ter sido excluído pelo uploader ou removido devido a violações de políticas.",
"live_stream": "Esta é uma transmissão ao vivo que não pode ser baixada enquanto está ativa.\nAguarde o término da transmissão e tente baixar a versão arquivada.",
"playlist_error": "Não é possível acessar esta playlist. Ela pode ser privada, excluída ou vazia.\nVerifique se a playlist existe e está acessível publicamente.",
"network_error": "Erro de conexão de rede. Verifique sua conexão com a internet e tente novamente.\nSe o problema persistir, o servidor de vídeo pode estar temporariamente indisponível.",
"invalid_url": "URL inválido ou não suportado. Verifique o link e tente novamente.\nCertifique-se de usar um URL válido do YouTube, Vimeo ou outra plataforma suportada.",
"premium_content": "Este conteúdo requer YouTube Premium ou associação ao canal.\nVocê precisa fazer login com uma conta que tenha acesso a este conteúdo.",
"copyright_blocked": "Este vídeo está bloqueado devido a reivindicações de direitos autorais.\nO proprietário do conteúdo restringiu o acesso a este vídeo.",
"extraction_failed": "Falha ao extrair informações do vídeo. Isso pode ser um problema temporário.\nTente novamente em alguns minutos ou verifique se o link do vídeo está correto.",
"generic_error": "Não foi possível extrair informações do vídeo. Verifique seu link.\nDetalhes técnicos: {error}"
},
"history": {
"title": "Histórico de Downloads",
"clear_all": "Limpar Tudo",
"clear_confirm_title": "Limpar Histórico?",
"clear_confirm_message": "Tem certeza? Isto não pode ser desfeito.",
"no_history": "Nenhum histórico ainda",
"no_history_description": "Seus downloads aparecerão aqui",
"search_placeholder": "Pesquisar...",
"open_location": "Abrir Local",
"redownload": "Baixar Novamente",
"remove": "Remover",
"file_not_found": "Arquivo não encontrado",
"file_not_found_message": "O arquivo foi movido ou excluído:\n{path}",
"downloaded_on": "Baixado: {date}",
"file_size": "Tamanho: {size}",
"audio_download": "Áudio",
"video_download": "Vídeo",
"remove_confirm_title": "Remover?",
"remove_confirm_message": "Remover do histórico?\n\n{title}",
"item_removed": "Removido",
"history_cleared": "Histórico limpo",
"entries_count": "{count} downloads",
"one_entry": "1 download",
"redownload_confirm_title": "Baixar Novamente?",
"redownload_confirm_message": "Baixar novamente?\n\n{title}",
"redownload_started": "Download iniciado"
},
"ffmpeg_updater": {
"title": "Verificador de Versão FFmpeg",
"current_version": "Versão Atual:",
"latest_version": "Última Versão:",
"status_up_to_date": "✓ Atualizado",
"status_update_available": "⚠ Atualização disponível",
"status_not_installed": "✗ Não instalado",
"status_idle": "Clique em 'Verificar Versão' para começar",
"status_checking": "🔄 Verificando versão...",
"check_updates": "Verificar Versão",
"check_failed": "Falha ao verificar versão. Verifique sua conexão com a Internet.",
"description": "Verifique sua versão do FFmpeg e compare com a última versão disponível.",
"guide_info": " Para instalar ou atualizar o FFmpeg, <a href='https://github.com/oop7/ffmpeg-install-guide'>clique aqui para ver nosso guia completo de instalação</a>."
}
}