2896 lines
168 KiB
JSON
2896 lines
168 KiB
JSON
{
|
||
"longformPersistence": {
|
||
"storage_unavailable_title": "Não foi possível carregar os projetos",
|
||
"storage_unavailable_body": "O VoiceStudio não conseguiu ler o armazenamento local de projetos. Os seus dados não foram alterados. Tente novamente para abri-los com segurança.",
|
||
"clear_projects": "Limpar projetos guardados",
|
||
"clear_confirm": "Isto elimina permanentemente todos os projetos guardados de Histórias e Audiolivros e quaisquer rascunhos não guardados para que o VoiceStudio possa voltar a abrir. Não é possível desfazer. Continuar?"
|
||
},
|
||
"backendUnreachable": {
|
||
"contact_recent": "Respondia há {{ago}} e depois parou de responder, e nenhuma falha foi registada — por isso pode continuar ativo, mas preso numa tarefa pesada que está a ocupar o motor.",
|
||
"contact_never": "Não respondeu nenhuma vez nesta sessão — pode ser que nunca tenha iniciado.",
|
||
"dev": "Não é possível contactar o backend local do VoiceStudio. {{contact}} Com `bun run dev` o backend corre com recarga automática: qualquer alteração de ficheiro — incluindo gravar enquanto havia um pedido em curso — reinicia-o e corta a ligação. Tente a ação novamente primeiro; se foi uma recarga, funciona. Se continuar a falhar, verifique o terminal com `bun run dev` para um traceback de Python ou uma mensagem de saída, e omnivoice.log na sua pasta de dados do VoiceStudio.",
|
||
"server": "Não foi possível conectar ao servidor backend do VoiceStudio. {{contact}} Verifique os logs do servidor para encontrar a causa (ex.: `docker logs <container>` ou `journalctl`) — e note que, se o Docker serve esta página, a própria página pode cair junto com o backend.",
|
||
"misrouted": "O servidor que responde em {{url}} não é um backend do VoiceStudio — ele devolveu a própria página 404. As requisições de API estão chegando ao host errado: verifique a URL do backend em Configurações → Compartilhamento ou, se um proxy reverso serve esta interface, a rota dele para os caminhos da API.",
|
||
"desktop": "Não foi possível conectar ao backend local do VoiceStudio. {{contact}} Abra o aviso de falha, se apareceu, ou Configurações → Logs → Backend para a última coisa registrada — \"{{retry}}\" o reinicia e \"{{cleanRetry}}\" reconstrói o ambiente dele se não voltar."
|
||
},
|
||
"nav": {
|
||
"clone": "Clonar",
|
||
"design": "Desenhar",
|
||
"dub": "Dublar",
|
||
"settings": "Configurações",
|
||
"stories": "Histórias",
|
||
"launchpad": "Barra de lançamento",
|
||
"gallery": "Galeria",
|
||
"transcripts": "Transcrições",
|
||
"omnidrive": "OmniDrive",
|
||
"catalogue": "Catálogo",
|
||
"move_rail_right": "Mova o trilho para a direita",
|
||
"move_rail_left": "Mova o trilho para a esquerda",
|
||
"flip_rail": "Vire o lado do trilho",
|
||
"voice": "Voz",
|
||
"audiobook": "Audiolivro",
|
||
"workspaces": "Áreas de trabalho"
|
||
},
|
||
"catalogue": {
|
||
"title": "Catálogo de modelos",
|
||
"summary_title": "Sua configuração",
|
||
"other_weights": "Outros pesos",
|
||
"change": "Alterar",
|
||
"status_setup": "Requer configuração",
|
||
"status_cpu": "Alternativa CPU",
|
||
"status_off": "Desligado",
|
||
"storage_link": "Configurações de armazenamento",
|
||
"reco_line": "{{installed}} de {{total}} modelos recomendados para {{device}} instalados · faltam {{remaining}} GB",
|
||
"install_rest": "Instalar o restante",
|
||
"device_remote": "Remoto"
|
||
},
|
||
"settings": {
|
||
"remote_backend_test": "Testar conexão",
|
||
"remote_backend_save": "Salvar e recarregar",
|
||
"remote_backend_recovery_title": "Não foi possível acessar o backend remoto",
|
||
"remote_backend_recovery_hint": "Você pode alterar o backend remoto depois em Configurações → Compartilhamento.",
|
||
"remote_backend_use_local": "Usar backend local",
|
||
"remote_backend_error_tls": "Não foi possível verificar a conexão segura. Confira o certificado e use a porta da API HTTP do VoiceStudio.",
|
||
"remote_backend_error_cors": "O backend remoto bloqueou este aplicativo. Permita a origem do aplicativo nas configurações de CORS.",
|
||
"remote_backend_error_network": "Não foi possível acessar o backend remoto. Confira o endereço, a rede e o firewall.",
|
||
"remote_backend_error_timeout": "O backend remoto não respondeu a tempo.",
|
||
"remote_backend_error_http": "O backend remoto retornou HTTP {{status}}.",
|
||
"remote_backend_error_wrong_port": "Este serviço não parece ser a API HTTP do VoiceStudio. A porta 7443 geralmente controla o worker remoto; tente a porta 3900.",
|
||
"openapi": "API do VoiceStudio",
|
||
"general": "Geral",
|
||
"theme": "Tema",
|
||
"language": "Idioma",
|
||
"language_desc": "Selecione o idioma da interface",
|
||
"appearance": "Aparência",
|
||
"sharing": "Compartilhamento",
|
||
"models": "Modelos",
|
||
"engines": "Motores",
|
||
"capture": "Captura",
|
||
"credentials": "Credenciais",
|
||
"llm_providers": "Provedores de LLM",
|
||
"llmp_desc": "Alimenta a tradução Cinematic e Autofit — o LLM reescreve cada linha para caber no tempo do seu segmento, mantendo a sincronização do vídeo. As chaves são armazenadas criptografadas; provedores locais (Ollama/LM Studio) permanecem totalmente offline.",
|
||
"llmp_catalogue_note": "O provedor marcado como ativo é o que responde sempre que a família de motores LLM no catálogo estiver definida como \"compatível com OpenAI\".",
|
||
"llmp_catalogue_link": "Abrir a família LLM no catálogo",
|
||
"llmp_provider": "Provedor",
|
||
"llmp_provider_hint": "Escolha um provedor para configurar. O ativo é usado na tradução Cinematic/Autofit. Provedores locais não precisam de chave, mas o servidor deles precisa estar em execução.",
|
||
"llmp_local_tag": "local",
|
||
"llmp_about": "Sobre",
|
||
"llmp_get_key": "Obter uma chave de API",
|
||
"llmp_account_id": "ID da conta",
|
||
"llmp_account_placeholder": "ID da conta Cloudflare",
|
||
"llmp_api_key": "Chave de API",
|
||
"llmp_key_env": "definida via ambiente (.env) — substitui este campo",
|
||
"llmp_key_stored": "armazenada — digite para substituir",
|
||
"llmp_key_paste": "cole sua chave de API",
|
||
"llmp_base_url": "URL base",
|
||
"llmp_model": "Modelo",
|
||
"llmp_model_placeholder": "nome do modelo",
|
||
"llmp_fetch_models": "Buscar modelos",
|
||
"llmp_models_loaded": "{{count}} modelos disponíveis neste provedor",
|
||
"llmp_status": "Status",
|
||
"llmp_save": "Salvar",
|
||
"llmp_save_active": "Salvar e usar na tradução",
|
||
"llmp_save_keep": "Salvar e manter o ativo",
|
||
"llmp_test": "Testar",
|
||
"llmp_active_badge": "ativo",
|
||
"llmp_test_ok": "ok — {{model}} · {{ms}} ms",
|
||
"llmp_err_config": "Falta a chave de API ou a URL base — preencha e salve.",
|
||
"llmp_err_auth": "Chave rejeitada (401/403) — verifique sua chave de API.",
|
||
"llmp_err_not_found": "Não encontrado (404) — verifique o nome do modelo e o caminho da URL base.",
|
||
"llmp_err_rate_limit": "Limite de requisições (429) — a chave funciona; tente novamente em instantes.",
|
||
"llmp_err_network": "Não foi possível acessar o provedor — verifique a URL base, sua rede ou se o servidor local está em execução.",
|
||
"llmp_err_error": "Falha no teste",
|
||
"llmp_load_failed": "Falha ao carregar provedores",
|
||
"llmp_save_failed": "Falha ao salvar",
|
||
"updates": "Atualizações",
|
||
"logs": "Registros",
|
||
"about": "Sobre",
|
||
"privacy": "Privacidade",
|
||
"title": "Configurações",
|
||
"ui_scale": "Escala da IU",
|
||
"ui_scale_setup_screen": "Tela: {{width}} × {{height}}",
|
||
"ui_scale_setup_title": "Escolha um tamanho confortável para a interface",
|
||
"ui_scale_setup_desc": "Veja a prévia ao vivo e escolha a escala que fica melhor nesta tela. Você pode alterá-la depois em Configurações.",
|
||
"ui_scale_setup_suggested": "Recomendado",
|
||
"ui_scale_setup_preview_title": "Pré-visualização ao vivo",
|
||
"ui_scale_setup_current_suggestion": "Ponto de partida recomendado: {{percent}}%",
|
||
"ui_scale_setup_continue": "Usar {{percent}}%",
|
||
"proxy": "Procurador",
|
||
"proxy_desc": "Proxy HTTP/SOCKS5 para downloads (downloads de vídeo, Hugging Face). Suporta http://, https://, socks5://. Aplica-se imediatamente aos novos downloads.",
|
||
"proxy_saved": "Proxy definido — os novos downloads irão usá-lo",
|
||
"proxy_save_failed": "Falha ao salvar proxy",
|
||
"proxy_cleared": "Proxy limpo",
|
||
"proxy_clear": "Limpar",
|
||
"ffmpeg": "FFmpeg",
|
||
"ffmpeg_found": "Encontrado",
|
||
"ffmpeg_missing": "Não encontrado",
|
||
"ffmpeg_current": "Caminho atual",
|
||
"ffmpeg_desc": "Defina um caminho ffmpeg personalizado se a detecção automática falhar.",
|
||
"ffmpeg_saved": "Conjunto de caminho FFmpeg – reinicie o back-end para aplicar.",
|
||
"diagnostics_copied": "Diagnóstico copiado – cole em seu relatório de problemas.",
|
||
"updater_desktop": "O atualizador só é executado no aplicativo de desktop.",
|
||
"latest_version": "Você está na versão mais recente.",
|
||
"logs_load_failed": "Falha ao carregar registros: {{message}}",
|
||
"clear_frontend_confirm": "Limpar o buffer de log do front-end na memória?",
|
||
"clear_frontend_title": "Limpar registros",
|
||
"frontend_logs_cleared": "Registros de front-end limpos",
|
||
"clear_tauri_confirm": "Truncar os arquivos de log do lado Tauri? O sistema operacional continuará a escrever novas entradas.",
|
||
"clear_tauri_title": "Limpar registros do Tauri",
|
||
"nothing_to_clear": "Nada para limpar – ainda não há arquivo de log do Tauri no disco.",
|
||
"cleared_tauri_one": "Arquivo de log Tauri {{count}} limpo",
|
||
"cleared_tauri_other": "Arquivos de log Tauri {{count}} limpos",
|
||
"clear_tauri_failed": "Falha ao limpar registros do Tauri: {{message}}",
|
||
"clear_backend_confirm": "Limpar o tempo de execução do back-end + registros de falhas? Isto não pode ser desfeito.",
|
||
"clear_backend_title": "Limpar registros",
|
||
"backend_logs_cleared": "Registros de back-end limpos",
|
||
"clear_backend_failed": "Falha ao limpar registros",
|
||
"copy_failed": "Falha na cópia: {{message}}",
|
||
"update_check_failed": "Falha na verificação de atualização: {{message}}",
|
||
"save_failed": "Falha ao salvar: {{message}}",
|
||
"clear_failed": "Falha na limpeza: {{message}}",
|
||
"engine_switched": "{{family}} alterado para {{engine}}",
|
||
"channel_set_failed": "Falha ao definir canal: {{message}}",
|
||
"updater_downloading": "Baixando {{version}}…",
|
||
"updater_installed": "Instalado – relançando.",
|
||
"updater_available_title": "Atualização disponível",
|
||
"updater_available_body": "A versão {{version}} está disponível.\n\n{{notes}}\n\nBaixe e instale agora?",
|
||
"updater_notes_fallback": "Veja as notas de lançamento no GitHub.",
|
||
"shortcut_load_failed": "Não foi possível carregar o atalho: {{message}}",
|
||
"shortcut_set": "Atalho de ditado definido como {{shortcut}}",
|
||
"shortcut_register_failed": "Não foi possível registrar: {{message}}",
|
||
"shortcut_reset": "Redefinir para o padrão",
|
||
"shortcut_reset_failed": "Falha na reinicialização: {{message}}",
|
||
"reset_longform_failed": "O VoiceStudio não conseguiu limpar com segurança os projetos salvos. Os dados dos seus projetos não foram alterados; libere espaço de armazenamento ou reinicie o aplicativo e tente novamente.",
|
||
"cancel": "Cancelar",
|
||
"hf_token_also_clear": "Excluir também os arquivos de tokens salvos do HuggingFace CLI",
|
||
"hf_token_clear_btn": "Limpar token",
|
||
"hf_token_clear_confirm": "Limpar o token HuggingFace da fonte App?",
|
||
"hf_token_clear_dialog": "Limpar token",
|
||
"hf_token_input": "Token HuggingFace",
|
||
"hf_token_sources": "Fontes do token HF",
|
||
"hf_token_test_now": "Testar agora",
|
||
"hf_token_test_now_title": "Reexecutar whoami para cada fonte",
|
||
"color_theme": "Tema de cores",
|
||
"font": "Fonte",
|
||
"autoplay_preview": "Pré-visualização da reprodução automática",
|
||
"autoplay_preview_label": "Reproduza a saída assim que a renderização terminar",
|
||
"autoplay_preview_hint": "Quando desativado, uma renderização finalizada não começa mais a ser reproduzida sozinha – útil ao gerar segmentos em lote.",
|
||
"appearance_help": "Esses controles costumavam ficar na barra de logs inferior – movidos para cá para que o rodapé possa permanecer focado nos logs. As alterações são aplicadas instantaneamente e persistem durante os lançamentos.",
|
||
"advanced": "Avançado",
|
||
"shortcut": "Atalho de ditado",
|
||
"credentials_desc": "Chaves e tokens de API definidos para esta sessão.",
|
||
"credentials_more": "Mais provedores",
|
||
"group_general": "Geral",
|
||
"group_voice": "Voz e motores",
|
||
"group_system": "Sistema",
|
||
"group_app": "Aplicativo",
|
||
"search_placeholder": "Configurações de pesquisa…",
|
||
"restart_required": "É necessário reiniciar",
|
||
"applies_now": "Aplica-se agora",
|
||
"dictation": "Ditado",
|
||
"pronunciation": "Pronúncia",
|
||
"translation": "Tradução",
|
||
"network": "Rede",
|
||
"performance": "Desempenho e dispositivo",
|
||
"storage": "Armazenamento",
|
||
"device": "Dispositivo e computação",
|
||
"device_desc": "Hardware ao vivo e leituras de back-end.",
|
||
"network_desc": "Caminhos proxy e FFmpeg para downloads e processamento de mídia.",
|
||
"translation_desc": "Como a dublagem traduz o diálogo e qual mecanismo o faz.",
|
||
"translate_quality": "Qualidade da tradução",
|
||
"translate_quality_desc": "Rápido é literal e rápido; Cinematic usa o LLM para fraseado natural.",
|
||
"translate_fast": "Rápido",
|
||
"translate_cinematic": "Cinematográfico",
|
||
"translation_providers": "Provedores de tradução",
|
||
"translation_providers_desc": "Chaves de API para tradutores online, definidas para esta sessão.",
|
||
"review_mode": "Modo de revisão",
|
||
"review_mode_on": "Revisão",
|
||
"review_mode_off": "Fogo rápido",
|
||
"review_mode_desc": "Faça uma pausa entre os estágios do pipeline para poder revisar a saída de ASR/tradução.",
|
||
"header_live_stats": "Mostrar métricas do sistema ao vivo no cabeçalho",
|
||
"header_live_stats_desc": "Adiciona um monitor RAM/CPU/VRAM ativo à barra superior (desativado por padrão).",
|
||
"nav_style": "Estilo de navegação",
|
||
"nav_style_desc": "Alterne entre áreas de trabalho por uma barra de ícones na borda da janela ou por abas na barra de título.",
|
||
"nav_style_rail": "Barra lateral",
|
||
"nav_style_tabs": "Abas na barra de título",
|
||
"storage_desc": "Onde VoiceStudio mantém seus dados e resultados.",
|
||
"history_retention": "Histórico de geração",
|
||
"history_retention_desc": "Quantas takes manter antes de limpar as mais antigas.",
|
||
"history_retention_help": "Após cada geração, as takes mais antigas sem estrela acima deste limite são removidas junto com seus arquivos de áudio. Takes com estrela são sempre mantidas. 0 = manter tudo.",
|
||
"history_retention_cap": "Takes a manter",
|
||
"history_retention_cap_hint": "Takes com estrela nunca contam para a limpeza · 0 = ilimitado",
|
||
"history_retention_saved": "Limite de retenção salvo",
|
||
"history_retention_save_failed": "Não foi possível salvar",
|
||
"history_retention_invalid": "Digite 0 ou mais",
|
||
"workers_title": "Workers remotos",
|
||
"workers_desc": "Envie trabalhos individuais para as GPUs das suas outras máquinas. Os resultados voltam para aqui. Nada é enviado até adicionar um worker e aprová-lo.",
|
||
"workers_enable": "Usar workers remotos",
|
||
"workers_enable_hint": "Enquanto isto estiver desligado, nenhuma ligação é aceite e nada sai desta máquina.",
|
||
"workers_port_conflict": "Os workers remotos não estão disponíveis porque outra instância do VoiceStudio já os aceita nesta porta. Feche a outra instância ou defina OMNIVOICE_WORKER_PORT para uma porta diferente e reinicie o VoiceStudio.",
|
||
"workers_endpoint": "Os workers ligam-se a",
|
||
"workers_endpoint_hint": "Um worker tem de conseguir alcançar este endereço. Em redes diferentes, uma VPN como o Tailscale é a forma fiável.",
|
||
"workers_add": "Adicionar um worker",
|
||
"workers_add_hint": "Gere um token e cole-o no OmniVoice na outra máquina.",
|
||
"workers_new_token": "Gerar token",
|
||
"workers_token_once": "Copie agora — é mostrado apenas uma vez, funciona apenas uma vez e expira em 15 minutos.",
|
||
"workers_copy": "Copiar",
|
||
"workers_copied": "Copiado",
|
||
"workers_copy_failed": "Não foi possível copiar.",
|
||
"workers_none": "Ainda não há workers. Gere um token para adicionar o primeiro.",
|
||
"workers_load": "Tarefas {{active}} / {{slots}}",
|
||
"workers_needs_consent": "Não aprovado",
|
||
"workers_status_online": "Online",
|
||
"workers_status_offline": "Offline",
|
||
"workers_status_paused": "Em pausa",
|
||
"workers_status_disabled": "Desativado",
|
||
"workers_resume": "Retomar",
|
||
"workers_disable": "Desativar",
|
||
"workers_enable_one": "Ativar",
|
||
"workers_remove": "Remover",
|
||
"workers_remove_title": "Remover o worker?",
|
||
"workers_remove_confirm": "Remover {{name}}? A sua chave é revogada, por isso não poderá voltar a ligar-se sem um novo token.",
|
||
"workers_rename": "Renomear worker",
|
||
"inbound_add_person": "Adicionar uma pessoa",
|
||
"inbound_add_person_hint": "Cria uma cadeia de ligação para uma pessoa. Dê uma própria a cada uma, para que remover uma não desligue todas as outras.",
|
||
"inbound_bind": "Acessível a partir de",
|
||
"inbound_bind_apply": "Aplicar",
|
||
"inbound_bind_exposed": "Qualquer pessoa que consiga alcançar {{address}} pode ligar-se com uma cadeia válida. O TLS encripta a sessão e fixa o certificado desta máquina; mantenha cada cadeia privada e remova acessos desnecessários.",
|
||
"inbound_bind_local": "Apenas esta máquina consegue aceder. Introduza o seu endereço de rede para permitir que outras máquinas se liguem.",
|
||
"inbound_connect": "Ligar",
|
||
"inbound_connect_desc": "Cole a cadeia de ligação que lhe deram. A máquina tem de estar a aceitar ligações para isto funcionar.",
|
||
"inbound_connect_hint": "Começa por ovnode:// e inclui a chave, o endereço, a porta e a impressão digital do certificado.",
|
||
"inbound_connect_placeholder": "ovnode://…@192.168.0.110:7444?fingerprint=…",
|
||
"inbound_request_failed": "Não foi possível contactar essa máquina GPU. Confirme que está online e aceita ligações e tente novamente.",
|
||
"inbound_connect_row": "Cadeia de ligação",
|
||
"inbound_connect_title": "Ligar a uma máquina com GPU",
|
||
"inbound_connected": "ligado",
|
||
"inbound_connected_now": "Ligados neste momento",
|
||
"inbound_connecting": "a ligar…",
|
||
"inbound_create": "Criar",
|
||
"inbound_desc": "Permita que outras máquinas se liguem para várias pessoas partilharem esta GPU. Cada ligação é encriptada e fixada ao certificado desta máquina.",
|
||
"inbound_disconnect": "Desligar",
|
||
"inbound_enable": "Aceitar ligações",
|
||
"inbound_enable_hint": "As outras pessoas ligam-se a esta máquina, em vez de ser ela a ligar-se a elas. Ninguém entra sem uma cadeia de ligação criada por si.",
|
||
"inbound_exposed_badge": "Na sua rede",
|
||
"inbound_forget": "Remover",
|
||
"inbound_hours_ago": "há {{count}} h",
|
||
"inbound_jobs_run": "{{count}} tarefas",
|
||
"inbound_just_now": "agora mesmo",
|
||
"inbound_label": "Nome",
|
||
"inbound_label_placeholder": "Portátil da Alice",
|
||
"inbound_last_seen": "usado pela última vez {{when}}",
|
||
"inbound_minutes_ago": "há {{count}} min",
|
||
"inbound_nobody": "Não há ninguém ligado.",
|
||
"inbound_people": "Pessoas com acesso",
|
||
"inbound_revoke": "Remover",
|
||
"inbound_revoke_confirm": "Remover o acesso de {{label}}? A cadeia de ligação deixa de funcionar imediatamente. Todas as outras pessoas permanecem ligadas.",
|
||
"inbound_revoke_title": "Remover o acesso?",
|
||
"inbound_shown_once": "Copie agora — não será mostrada novamente. Dê-a apenas a {{label}}.",
|
||
"inbound_shown_once_warning": "Trate-a como uma palavra-passe e envie-a em privado. A impressão digital do certificado fixa a ligação encriptada a esta máquina GPU.",
|
||
"inbound_title": "Partilhar esta GPU com outras pessoas",
|
||
"history_retention_load_failed": "Não foi possível carregar o limite de retenção atual",
|
||
"models_dir_help": "Onde os pesos dos modelos são armazenados. Escolha uma unidade maior ou mais rápida quando necessário; as alterações são aplicadas após reiniciar.",
|
||
"models_dir_saved": "Pasta de modelos salva — reinicie para aplicar",
|
||
"models_dir_reverted": "Pasta padrão restaurada — reinicie para aplicar",
|
||
"models_dir_reset_hint": "Voltar ao local padrão do cache",
|
||
"models_dir_effective": "Em uso agora",
|
||
"models_dir_configured": "Configurado",
|
||
"models_dir_default": "Usando o padrão",
|
||
"models_dir_restart": "↻ Reinicie o VoiceStudio para usar o novo local.",
|
||
"worker_join": "Associar",
|
||
"worker_join_code": "Código de associação",
|
||
"worker_join_code_hint": "De uso único e expira em 15 minutos. Gere-o na máquina que vai enviar o trabalho.",
|
||
"worker_join_desc": "Permita que outra cópia do VoiceStudio envie trabalhos para esta máquina. Cole o código de associação que ela mostrou — ou escaneie o QR dela com o telefone e cole-o aqui.",
|
||
"worker_join_env": "OMNIVOICE_WORKER_MODE está definido no ambiente desta máquina, então é ele que decide — altere-o lá.",
|
||
"worker_join_no_endpoint": "Nenhum plano de controle memorizado.",
|
||
"worker_join_ok": "Associado. Esta máquina agora aceita trabalho.",
|
||
"worker_join_placeholder": "ovw_…",
|
||
"worker_join_rejoin": "Associar a outro",
|
||
"worker_join_stopped": "Parado",
|
||
"worker_join_take_work": "Aceitar trabalho de",
|
||
"worker_join_title": "Emprestar a GPU desta máquina",
|
||
"worker_join_working": "Em atividade",
|
||
"workers_add_hint_qr": "Gere um token, depois escaneie o QR a partir da outra máquina ou cole o código nas configurações de Workers remotos dela.",
|
||
"workers_approve": "Aprovar",
|
||
"workers_last_seen": "visto pela última vez {{when}}",
|
||
"workers_qr_alt": "Código QR com este código — escaneie-o a partir da outra máquina",
|
||
"workers_secret_done": "Concluído",
|
||
"workers_seen_hr": "há {{count}} h",
|
||
"workers_seen_min": "há {{count}} min",
|
||
"workers_seen_now": "agora mesmo",
|
||
"workers_step_1": "Instale o VoiceStudio na máquina com a GPU.",
|
||
"workers_step_2": "Gere um token acima.",
|
||
"workers_step_3": "Escaneie o QR lá, ou cole o código nas configurações de Workers remotos dela.",
|
||
"workers_summary_none": "Ninguém conectado",
|
||
"workers_summary_online": "{{count}} online",
|
||
"workers_token_expired": "Expirado — gere um novo",
|
||
"workers_token_expires_in": "Expira em {{time}}",
|
||
"workers_token_qr_hint": "Na outra máquina: Configurações → Sistema → Workers remotos → Associar, depois escaneie ou cole.",
|
||
"compute_device": "Dispositivo de computação",
|
||
"compute_device_title": "Dispositivo de computação",
|
||
"compute_device_desc": "Em qual dispositivo o backend executa os modelos. Auto é o certo para quase todos.",
|
||
"compute_device_env_pinned": "Fixado pela variável de ambiente OMNIVOICE_DEVICE",
|
||
"compute_device_ignored": "Esse dispositivo não foi detectado nesta máquina — Auto está em vigor",
|
||
"compute_device_restart": "Entra em vigor após reiniciar o aplicativo",
|
||
"compute_device_note": "Apenas dispositivos detectados nesta máquina são listados. A CPU sempre funciona; fixar um dispositivo nunca inventa hardware.",
|
||
"compute_device_auto": "Auto (recomendado)",
|
||
"device_family_cuda": "NVIDIA GPU (CUDA)",
|
||
"device_family_rocm": "AMD GPU (ROCm)",
|
||
"device_family_xpu": "Intel GPU (XPU)",
|
||
"device_family_npu": "NPU",
|
||
"device_family_mps": "Apple GPU (MPS)",
|
||
"device_family_cpu": "CPU",
|
||
"device_family_gpu": "GPU",
|
||
"device_load_failed": "Falha ao carregar a configuração do dispositivo",
|
||
"perf_save_failed": "Falha ao salvar a configuração",
|
||
"generate_budget_title": "Orçamento de tempo de computação",
|
||
"generate_budget_desc": "Por quanto tempo uma geração pode ser executada antes de ser abandonada por ser pesada demais para este hardware. Renderizações em CPU são legitimamente mais lentas do que as aceleradas, por isso têm seu próprio limite, mais alto.",
|
||
"generate_timeout_gpu": "Orçamento acelerado (GPU)",
|
||
"generate_timeout_gpu_note": "Usado quando a geração é executada em CUDA, ROCm, MPS ou outro acelerador. Também usado para geração em CPU se nenhum orçamento de CPU estiver definido abaixo.",
|
||
"generate_timeout_cpu": "Orçamento de CPU",
|
||
"generate_timeout_cpu_note": "Usado quando a geração é executada na CPU. Depois de salvo aqui, este valor sempre rege a geração em CPU — independentemente do orçamento acelerado acima.",
|
||
"generate_timeout_invalid": "Insira um número de segundos maior que 0 e no máximo {{max}}.",
|
||
"generate_timeout_saved": "Salvo. Reinicie o VoiceStudio para que o novo orçamento tenha efeito.",
|
||
"generate_timeout_shadowed_badge": "Substituído externamente",
|
||
"generate_timeout_shadowed_note": "Uma variável de ambiente externa ao VoiceStudio (shell, arquivo .env ou contêiner) está definindo este valor no momento — o valor salvo aqui é ignorado até que essa variável seja removida.",
|
||
"generate_timeout_shadowed_toast": "Salvo, mas uma variável de ambiente externa ao VoiceStudio está definindo este valor no momento — ele continuará sendo usado até que essa variável seja removida.",
|
||
"hf_token_not_checked": "Não testado",
|
||
"hf_source_app_label": "VoiceStudio (criptografado, recomendado)",
|
||
"hf_source_cli_label": "HuggingFace CLI",
|
||
"hf_source_env_label": "Variável de ambiente",
|
||
"theme_auto": "Automático do Sistema",
|
||
"theme_light": "Claro",
|
||
"reduce_motion": "Reduzir movimento",
|
||
"reduce_motion_desc": "Para as animações de fundo e as transições. A definição do sistema continua a ser respeitada; esta acrescenta-se.",
|
||
"perf_torch_compile": "Desativar torch.compile",
|
||
"perf_torch_compile_note": "Usa execução direta para evitar erros de memória do Triton.",
|
||
"perf_torch_compile_hint": "Usa execução direta para evitar erros de memória do Triton. <issueLink>#65</issueLink> · <crashLink>#2135</crashLink>"
|
||
},
|
||
"bootstrap": {
|
||
"title": "VoiceStudio",
|
||
"checking": "Verificando o ambiente…",
|
||
"downloading_uv": "Baixando uv (gerenciador de pacotes Python)…",
|
||
"creating_venv": "Criando ambiente virtual Python…",
|
||
"installing_deps": "Instalando dependências — primeira execução, 5–10 min.",
|
||
"starting_backend": "Iniciando backend…",
|
||
"ready": "Pronto",
|
||
"failed": "Falha na configuração",
|
||
"what_to_try": "O que tentar:",
|
||
"retry": "Repetir",
|
||
"clean_retry": "Limpar e Repetir",
|
||
"clean_retry_confirm": "Isso apagará o ambiente Python em cache e baixará novamente as dependências (~5-10 min). Continuar?",
|
||
"hide_logs": "Ocultar registros",
|
||
"show_logs": "Mostrar registros",
|
||
"lines_one": "{{count}} linha",
|
||
"lines_other": "{{count}} linhas",
|
||
"copy": "Copiar",
|
||
"copied": "Copiado!",
|
||
"waiting_output": "Aguardando saída…",
|
||
"auto_detect": "Detectar automaticamente",
|
||
"suggest_lang": "Mudar para o Português?",
|
||
"select_lang": "Idioma:",
|
||
"region_global": "Global (direto)",
|
||
"region_china": "China (espelho)",
|
||
"region_russia": "Rússia (espelho)",
|
||
"region_restricted": "Restrito (espelho)",
|
||
"unknown_error": "Erro desconhecido",
|
||
"retrying": "Tentando novamente…",
|
||
"hint_readme": "README.md estava ausente do pacote. Isso agora é corrigido automaticamente — repetir deve funcionar.",
|
||
"hint_python_mirror": "A rede não alcançou o download do Python (release do github.com). Troque a região em Configurações → Rede (China / Rússia / Restrito passam por um espelho) ou instale o Python 3.11+ no sistema para que o app o utilize.",
|
||
"hint_uv_timeout": "Tempo limite de rede ao baixar o uv. Verifique sua conexão com a internet ou tente outra região em Configurações → Rede.",
|
||
"hint_uv_sync": "Falha na instalação das dependências. \"Limpar e Repetir\" apagará o venv em cache e começará do zero.",
|
||
"hint_build_backend": "Erro no backend de build do Python. \"Limpar e Repetir\" remove o venv defeituoso para reconstruí-lo do zero.",
|
||
"hint_ffmpeg": "Falha no download do ffmpeg. Não é fatal — repita ou instale o ffmpeg manualmente.",
|
||
"hint_port": "A porta 3900 já está em uso. Feche outras instâncias do VoiceStudio ou apps que usem essa porta.",
|
||
"hint_silent_crash": "O backend encerrou sem mensagem de erro. \"Limpar e Repetir\" costuma resolver problemas de venv corrompido.",
|
||
"hint_github_blocked": "Sua rede pode estar bloqueando o GitHub. Instale o Python 3.11+ de python.org (adicione ao PATH) e reinicie, ou defina UV_PYTHON_INSTALL_MIRROR — veja docs/install/troubleshooting.md.",
|
||
"hint_intel_mac": "Este Mac tem um processador Intel e o PyTorch não publica mais builds para Mac Intel — o backend de IA local não pode ser instalado, e tentar novamente não mudará isso. Você ainda pode apontar o app para um backend remoto em outra máquina (Configurações → Compartilhamento → Backend remoto) ou usar o VoiceStudio em um Mac com Apple Silicon, Windows ou Linux. Detalhes: docs/install/macos.md.",
|
||
"hint_default": "Tente \"Repetir\" primeiro. Se falhar de novo, \"Limpar e Repetir\" reconstruirá o ambiente do zero.",
|
||
"hint_stuck": "O back-end não terminou de iniciar. A partir do código-fonte, execute `uv sync` primeiro e certifique-se de que `uv` e Python estejam em seu PATH e, em seguida, tente novamente. Verifique o log abaixo (ou Configurações → Logs → Backend) para o ponto exato de travamento.",
|
||
"lines": "{{count}} linhas"
|
||
},
|
||
"stories": {
|
||
"title": "Editor de histórias",
|
||
"subtitle": "Audiolivro multitrilha com vozes por personagem",
|
||
"cast": "Elenco",
|
||
"castTitle": "Elenco – atribua uma voz a cada personagem",
|
||
"addCharacter": "Adicionar personagem",
|
||
"character": "Personagem",
|
||
"characterName": "Nome do personagem",
|
||
"narratorLocked": "O narrador está sempre presente",
|
||
"removeCharacter": "Remover personagem",
|
||
"noProfiles": "Nenhum perfil de voz instalado ainda – clone ou crie uma voz primeiro.",
|
||
"pasteSplit": "Colar e dividir",
|
||
"import": "Importar",
|
||
"autocast": "Transmissão automática",
|
||
"autocastHint": "Detecte quem está falando e atribua vozes automaticamente",
|
||
"autocastEmpty": "Nada para transmitir automaticamente – cole ou importe uma história primeiro.",
|
||
"autocastDone": "Transmissão automática de {{lines}} linhas em {{voices}} vozes",
|
||
"importFailed": "Não foi possível ler esse arquivo.",
|
||
"addLine": "Adicionar linha",
|
||
"addChapter": "Adicionar capítulo",
|
||
"chapterN": "Capítulo {{n}}",
|
||
"stems": "Caules",
|
||
"stemsDone": "Hastes de caracteres {{count}} exportadas",
|
||
"format": "Formato de exportação",
|
||
"mp3Fallback": "Codificação MP3 indisponível – em vez disso, baixei WAV.",
|
||
"projects": "Projetos",
|
||
"newStory": "Nova história",
|
||
"save": "Salvar",
|
||
"untitled": "História sem título",
|
||
"projectName": "Nome do projeto",
|
||
"deleteProject": "Excluir projeto",
|
||
"noProjects": "Nenhuma história salva ainda – Salve para manter esta.",
|
||
"projectSaved": "História salva",
|
||
"generateAll": "Gerar",
|
||
"splitPlaceholder": "Cole uma passagem longa. Vamos dividi-lo em segmentos nos limites das frases.",
|
||
"maxChars": "Máximo de caracteres por segmento",
|
||
"segmentsHint": "~{{count}} segmento(s) em {{max}} caracteres",
|
||
"pasteAbove": "Cole o texto acima",
|
||
"cancel": "Cancelar",
|
||
"splitIntoTracks": "Dividir em linhas",
|
||
"emptyText": "Comece sua história adicionando linhas de diálogo e narração. Atribua a cada personagem uma voz no elenco.",
|
||
"addFirst": "Adicionar primeira linha",
|
||
"linePlaceholder": "Insira um diálogo ou narração... use [pausa de 0,5s] para uma pausa silenciosa",
|
||
"text": "texto",
|
||
"voice": "voz",
|
||
"defaultVoice": "Padrão",
|
||
"inlineVoice": "Definir voz embutida",
|
||
"inlineVoiceHint": "Mude a voz para o texto destacado (ou insira uma chave no cursor)",
|
||
"resetInlineVoice": "Redefinir para voz de linha",
|
||
"insertPause": "Insira uma pausa [pausa 0,5s]",
|
||
"preview": "Visualize esta linha",
|
||
"removeLine": "Remover linha",
|
||
"tune": "Tom e velocidade",
|
||
"speed": "Velocidade",
|
||
"reset": "Redefinir",
|
||
"tones": {
|
||
"laugh": "Rir",
|
||
"sigh": "Suspiro",
|
||
"question": "Pergunta",
|
||
"surprise": "Surpresa",
|
||
"confirm": "Confirmar",
|
||
"dissatisfaction": "Hmph"
|
||
},
|
||
"lines": "{{count}} linhas",
|
||
"characters": "{{count}} caracteres",
|
||
"minutes": "~{{count}} minutos",
|
||
"chars": "{{count}} caracteres",
|
||
"exportDone": "Audiolivro baixado",
|
||
"exportFailed": "Falha na exportação – verifique se o back-end está em execução.",
|
||
"global_speed": "Velocidade",
|
||
"global_speed_hint": "Velocidade de leitura para todas as linhas sem sua própria substituição de velocidade",
|
||
"deleteProjectConfirm": "Excluir este projeto permanentemente?"
|
||
},
|
||
"common": {
|
||
"stop": "Pare",
|
||
"resume": "Retomar",
|
||
"paused": "Em pausa",
|
||
"open": "Abrir",
|
||
"cancel": "Cancelar",
|
||
"save": "Salvar",
|
||
"delete": "Excluir",
|
||
"loading": "Carregando…",
|
||
"error": "Algo deu errado",
|
||
"languages_count": "646 idiomas",
|
||
"clear": "Limpar",
|
||
"refresh": "Atualizar",
|
||
"close": "Fechar",
|
||
"minimize_window": "Minimizar janela",
|
||
"maximize_restore_window": "Maximizar ou restaurar janela",
|
||
"close_window": "Fechar janela",
|
||
"back": "Voltar",
|
||
"play": "Jogar",
|
||
"pause": "Pausa",
|
||
"reload": "Forçar recarga da IU",
|
||
"backend": "Back-end",
|
||
"frontend": "Interface",
|
||
"tauri": "Touro",
|
||
"cancelOp": "Cancelar operação",
|
||
"dismiss": "Dispensar",
|
||
"dismissStatus": "Dispensar status",
|
||
"search": "Pesquisar…",
|
||
"no_matches": "Nenhuma correspondência",
|
||
"recent_and_popular": "Recentes e populares",
|
||
"popular_label": "Populares",
|
||
"showing_of": "Mostrando {{shown}} de {{total}}. Digite para pesquisar…",
|
||
"yes": "Sim",
|
||
"no": "Não",
|
||
"more_info": "Mais informações",
|
||
"learn_more": "Saiba mais",
|
||
"saving": "Salvando…",
|
||
"remove": "Remover {{term}}",
|
||
"not_set": "Não definido"
|
||
},
|
||
"launchpad": {
|
||
"greeting": "Olá",
|
||
"hero_title": "Faça vozes que <1>soem como você</1>.",
|
||
"hero_desc": "Clone uma voz, crie uma nova ou duble um vídeo em <1>{{count}} idiomas</1>. Criado para criadores que se importam com o som.",
|
||
"clone_title": "Clone de voz",
|
||
"clone_desc": "Deixe um pequeno clipe – nós o espelharemos. Uma amostra geralmente é suficiente.",
|
||
"design_title": "Design de voz",
|
||
"design_desc": "Construa uma nova voz a partir de uma frase. Gênero, idade, sotaque, humor – você decide.",
|
||
"dub_title": "Dublagem de vídeo",
|
||
"dub_desc": "Transcreva, traduza, re-voz. Mantenha cada alto-falante, alinhe o tempo e envie-o.",
|
||
"ab_compare": "Comparação A/B",
|
||
"ab_compare_title": "Experimente duas vozes lado a lado",
|
||
"cloned_voices": "Vozes clonadas",
|
||
"designed_voices": "Vozes projetadas",
|
||
"dubbing_projects": "Projetos de dublagem",
|
||
"empty_hint": "Nada aqui ainda – escolha um cartão acima.",
|
||
"demo_callout": "Experimente a voz de demonstração – clique em Gerar para ouvi-la.",
|
||
"locked": "BLOQUEADO",
|
||
"open": "Abrir",
|
||
"try_it": "Experimente",
|
||
"audio_only": "Somente áudio",
|
||
"stories_title": "Histórias",
|
||
"stories_desc": "Audiolivros com múltiplas vozes – escolha seus personagens, insira um roteiro, exporte por capítulo.",
|
||
"gallery_title": "Galeria de Voz",
|
||
"gallery_desc": "Procure vozes projetadas e prontas por sotaque, idade e estilo — sem configuração.",
|
||
"transcripts_title": "Transcrições",
|
||
"transcripts_desc": "Transforme áudio ou vídeo em texto editável e pesquisável em 646 idiomas.",
|
||
"recent_files": "Arquivos recentes",
|
||
"view_all_files": "Ver todos os arquivos",
|
||
"file": "Arquivo",
|
||
"audiobook_title": "Audiolivro",
|
||
"audiobook_desc": "Transforme um roteiro longo ou EPUB em um audiolivro com capítulos – capas, metadados, um narrador.",
|
||
"convert_title": "Trocador de voz",
|
||
"convert_desc": "Diga uma vez — ouça em outra voz. Fala para fala, totalmente local."
|
||
},
|
||
"clone": {
|
||
"text_label": "Texto",
|
||
"paste": "Colar",
|
||
"paste_failed": "O acesso à área de transferência foi bloqueado. Cole diretamente no campo de texto usando o teclado.",
|
||
"prompt": "Alerta",
|
||
"language": "Idioma",
|
||
"steps": "Passos",
|
||
"voice_source": "Fonte de voz",
|
||
"reference_audio": "Áudio de referência",
|
||
"reference_hint": "Use de 5 a 15 segundos de fala nítida.",
|
||
"upload_audio": "Carregar áudio",
|
||
"optional_details": "Detalhes opcionais",
|
||
"starting_recording": "Iniciando…",
|
||
"unsupported_audio": "Escolha um arquivo de áudio compatível: WAV, MP3, M4A, FLAC, OGG, AAC ou WebM.",
|
||
"saved_profiles": "Perfis salvos",
|
||
"transcript": "Transcrição",
|
||
"style": "Estilo",
|
||
"save_as_profile": "Salvar como perfil de voz",
|
||
"profile_name": "Nome do perfil…",
|
||
"save": "Salvar",
|
||
"cancel": "Cancelar",
|
||
"synthesize": "Sintetizar áudio",
|
||
"synthesizing": "Sintetizando… ({{seconds}}s)",
|
||
"drop_audio": "Solte o áudio aqui – ou clique. WAV, MP3, M4A… 🎤",
|
||
"record": "Gravar",
|
||
"cleaning": "Limpeza…",
|
||
"using_profile": "Usando perfil: {{name}}",
|
||
"clear": "claro",
|
||
"production_overrides": "Substituições de produção",
|
||
"denoise": "Denoise",
|
||
"postprocess": "Pós-processamento",
|
||
"duration": "Duração",
|
||
"auto": "Automático",
|
||
"optional": "(Opcional)",
|
||
"toggle_sidebar": "Alternar barra lateral",
|
||
"delete_profile": "Excluir perfil",
|
||
"personality_narrator": "Narrador",
|
||
"personality_casual": "Casual",
|
||
"personality_news_anchor": "Âncora de notícias",
|
||
"personality_storyteller": "Contador de histórias",
|
||
"personality_corporate": "Corporativo",
|
||
"personality_energetic": "Energético",
|
||
"preset_narrator": "🎙️ Autorizado",
|
||
"preset_excited_child": "🧒 Criança animada",
|
||
"preset_anxious_whisper": "🤫 Sussurro",
|
||
"preset_surprised_woman": "😲 Surpreso",
|
||
"preset_elderly_story": "👴 Ancião",
|
||
"preset_sichuan": "🌶️ 四川话",
|
||
"prompt_placeholder": "O que essa voz deveria dizer?",
|
||
"design_placeholder": "Descreva a voz e digite o que ela diz…",
|
||
"speed": "Velocidade",
|
||
"tshift": "t_shift",
|
||
"pos_temp": "Pos-temperatura",
|
||
"class_temp": "Tempo de aula",
|
||
"layer_pen": "Caneta de Camada",
|
||
"auto_kicker": "· automático",
|
||
"cat_Gender": "Gênero",
|
||
"cat_Age": "Idade",
|
||
"cat_Pitch": "Argumento",
|
||
"cat_Style": "Estilo",
|
||
"cat_EnglishAccent": "Sotaque Inglês",
|
||
"cat_ChineseDialect": "Dialeto Chinês",
|
||
"vd_exclusive_cleared": "{{cleared}} limpo — um dialeto chinês e um sotaque inglês não podem ser combinados.",
|
||
"opt_Auto": "✨ Automóvel",
|
||
"opt_male": "masculino",
|
||
"opt_female": "feminino",
|
||
"opt_child": "criança",
|
||
"opt_teenager": "adolescente",
|
||
"opt_young_adult": "adulto jovem",
|
||
"opt_middle_aged": "meia-idade",
|
||
"opt_elderly": "idoso",
|
||
"opt_very_low_pitch": "tom muito baixo",
|
||
"opt_low_pitch": "tom baixo",
|
||
"opt_moderate_pitch": "tom moderado",
|
||
"opt_high_pitch": "tom alto",
|
||
"opt_very_high_pitch": "tom muito alto",
|
||
"opt_whisper": "sussurrar",
|
||
"style_placeholder": "por exemplo sussurrar",
|
||
"stop_playback": "Parar reprodução",
|
||
"describe_label": "Descreva a sua voz",
|
||
"describe_placeholder": "ex.: a warm elderly British storyteller, slightly raspy",
|
||
"describe_hint": "Descreva a voz, ou escolha um ponto de partida. Qualquer um dos dois preenche os detalhes abaixo.",
|
||
"describe_unmatched": "Não foi possível mapear: {{items}}",
|
||
"describe_no_match": "Ainda não foram reconhecidos traços de voz — experimente palavras como deep, elderly ou British.",
|
||
"define_by_design": "Por design",
|
||
"define_from_audio": "A partir de áudio",
|
||
"define_voice": "Definir voz",
|
||
"save_design_as_profile": "Salvar design como perfil",
|
||
"generating_done_status": "Geração concluída",
|
||
"generating_status": "Gerando áudio…",
|
||
"identity": "Identidade",
|
||
"identity_auto": "Auto — o modelo decide",
|
||
"insert": "Inserir",
|
||
"insert_token": "Inserir token de expressão",
|
||
"script": "Roteiro",
|
||
"starting_points": "Pontos de partida",
|
||
"voice_kicker": "Voz",
|
||
"seed_label": "Semente",
|
||
"seed_placeholder": "aleatório de cada vez",
|
||
"seed_keep": "Guarde esta semente",
|
||
"seed_reroll": "Nova semente",
|
||
"seed_reroll_hint": "Role uma nova semente aleatória e guarde-a",
|
||
"define_convert": "Converter",
|
||
"details": "Detalhes",
|
||
"edit": "Editar",
|
||
"cat_AccentDialect": "Sotaque ou dialeto",
|
||
"accent_dialect_hint": "um ou outro, nunca os dois",
|
||
"reset_to_description": "Redefinir conforme a descrição",
|
||
"chips_more": "mais {{count}}…",
|
||
"cfg": "CFG"
|
||
},
|
||
"about": {
|
||
"app": "Aplicativo",
|
||
"version": "Versão",
|
||
"tauri_runtime": "Tempo de execução Tauri",
|
||
"platform": "Plataforma",
|
||
"architecture": "Arquitetura",
|
||
"python": "Pitão",
|
||
"compute_device": "Dispositivo de computação",
|
||
"gpu_active": "GPU ativa",
|
||
"ram": "memória RAM",
|
||
"vram": "VRAM",
|
||
"backend": "Back-end",
|
||
"active_model": "Modelo ativo",
|
||
"asr_model": "Modelo ASR",
|
||
"translator": "Tradutor",
|
||
"hf_token": "Conjunto de tokens HF",
|
||
"data_dir": "Diretório de dados",
|
||
"outputs": "Resultados",
|
||
"crash_log": "Registro de falhas",
|
||
"update_endpoint": "Atualizar ponto de extremidade",
|
||
"yes": "sim",
|
||
"no": "não",
|
||
"web_preview": "visualização da web",
|
||
"downloading": "Baixando…",
|
||
"check_updates": "Verifique se há atualizações",
|
||
"copy_diagnostics": "Copiar diagnóstico",
|
||
"github": "VoiceStudio no GitHub",
|
||
"commercial_license": "Licença Comercial",
|
||
"update_channel": "Canal de atualização",
|
||
"channel_stable": "Estável",
|
||
"channel_preview": "Prévia",
|
||
"channel_set": "Canal de atualização definido como {{channel}}",
|
||
"channel_preview_hint": "A prévia acompanha a compilação mais recente da main — recursos mais novos, menos testados. Volta para a estável se uma versão estável estiver à frente.",
|
||
"self_check": "Executar autoverificação",
|
||
"self_check_failed": "A autoverificação falhou: {{message}}",
|
||
"self_check_ok": "OK",
|
||
"self_check_warn": "Aviso",
|
||
"self_check_fail": "Falhou",
|
||
"self_check_healthy": "Todas as verificações passaram — esta instalação parece saudável.",
|
||
"self_check_attention": "{{count}} verificação(ões) falharam — veja as dicas acima.",
|
||
"save_bundle": "Salvar pacote de diagnóstico",
|
||
"bundle_saved": "Pacote de diagnóstico salvo: {{filename}}",
|
||
"bundle_failed": "Não foi possível criar o pacote de diagnóstico: {{message}}"
|
||
},
|
||
"privacy": {
|
||
"desc": "Tudo roda em <1>esta máquina</1>. Seu áudio, vídeo e transcrições nunca saem do seu computador, a menos que você use explicitamente um tradutor online (Google, DeepL, etc.) ou envie para o HuggingFace.",
|
||
"uploads_at": "Carregamentos armazenados em",
|
||
"outputs_at": "Saídas armazenadas em",
|
||
"gen_history": "História de geração",
|
||
"network_calls": "Chamadas de rede",
|
||
"model_telemetry": "Telemetria de modelo",
|
||
"local_sqlite": "SQLite local",
|
||
"translator_online": "O tradutor está online: {{provider}}",
|
||
"translator_offline": "Tradutor off-line",
|
||
"no_tracking": "Nenhum – sem rastreamento",
|
||
"watermark_title": "Marca de água invisível",
|
||
"watermark_subtitle": "Ativada por predefinição. Marca o áudio gerado como criado por IA para poder ser identificado mais tarde. Afeta apenas o áudio gerado a partir de agora.",
|
||
"watermark_on_toast": "Marca de água invisível ativada para novo áudio.",
|
||
"watermark_off_toast": "Marca de água invisível desativada para novo áudio.",
|
||
"watermark_failed": "Não foi possível alterar a definição da marca de água."
|
||
},
|
||
"consent": {
|
||
"title": "Ajudar a melhorar o VoiceStudio?",
|
||
"desc": "Estatísticas de uso anônimas e sem conteúdo que nos ajudam a corrigir bugs mais rápido — totalmente opcionais, desativadas por padrão.",
|
||
"step_label": "Melhorar o VoiceStudio",
|
||
"body": "Estatísticas de uso anônimas e sem conteúdo: quais mecanismos são usados, quanto tempo as gerações levam e o tipo de erros. Nunca o seu texto, o seu áudio, os seus arquivos ou qualquer coisa que o identifique. Nada é enviado a menos que você aceite, e você pode mudar de ideia a qualquer momento em Configurações → Privacidade.",
|
||
"learn_more": "O que exatamente é enviado?",
|
||
"yes": "Sim, compartilhar estatísticas anônimas",
|
||
"no": "Não, obrigado",
|
||
"dismiss": "Dispensar (a análise continua desativada)"
|
||
},
|
||
"langPrompt": {
|
||
"offer": "O VoiceStudio abriu em {{language}}. Prefere inglês?",
|
||
"switch": "Mudar para inglês",
|
||
"keep": "Manter {{language}}"
|
||
},
|
||
"credentials": {
|
||
"title": "Credenciais",
|
||
"desc": "As chaves e tokens de API são definidos <1>apenas para esta sessão</1>. Para persistência entre reinicializações, defina-as como variáveis de ambiente em seu perfil de shell.",
|
||
"hf_token": "Token AbraçandoFace",
|
||
"hf_help": "Necessário para diarização de alto-falantes e downloads de modelos mais rápidos. Obtenha o seu em huggingface.co/settings/tokens.",
|
||
"translate_key": "Chave de API LLM",
|
||
"translate_help": "Opcional — para DeepL, OpenAI ou provedores de tradução pagos. Não é necessário para o Google Translate (nível gratuito).",
|
||
"save": "Salvar",
|
||
"saved": "✓ Definir",
|
||
"not_set": "✗ Não definido",
|
||
"get_token": "Obter token →",
|
||
"saved_session": "{{key}} salvo para esta sessão",
|
||
"save_failed": "Falha ao salvar",
|
||
"save_error": "Falha ao salvar: {{message}}",
|
||
"deepl_key": "Chave API DeepL",
|
||
"deepl_help": "Para mecanismo de tradução DeepL. Obtenha sua chave em deepl.com/pro-api.",
|
||
"deepl_base_url": "URL base do DeepL",
|
||
"deepl_base_url_help": "Endpoint personalizado da API DeepL (padrão: https://api.deepl.com/v2). Mudança para proxy/auto-hospedado.",
|
||
"microsoft_key": "Chave do Microsoft Tradutor",
|
||
"microsoft_help": "Para mecanismo Microsoft Translator. Obtenha sua chave no Portal do Azure.",
|
||
"microsoft_base_url": "URL base do Microsoft Tradutor",
|
||
"microsoft_base_url_help": "Ponto de extremidade personalizado do Azure Translator (padrão: https://api.cognitive.microsofttranslator.com).",
|
||
"llm_base_url": "URL base do LLM",
|
||
"llm_base_url_help": "Para qualidade cinematográfica ou mecanismo LLM. Qualquer endpoint compatível com OpenAI (OpenAI, Ollama, LM Studio, etc.).",
|
||
"llm_model": "Modelo LLM",
|
||
"llm_model_help": "Nome do modelo a ser usado com o mecanismo LLM (por exemplo, gpt-4o, deepseek-chat, qwen2.5).",
|
||
"group_huggingface": "Abraçando o rosto",
|
||
"group_translate": "Tradução (LLM / Cinematográfica)",
|
||
"group_deepl": "Ponto final personalizado do DeepL",
|
||
"group_microsoft": "Ponto final personalizado do Microsoft Translator"
|
||
},
|
||
"engines": {
|
||
"banners_on": "Banners de palco ativados",
|
||
"banners_off": "Banners de palco desativados",
|
||
"backend": "Back-end",
|
||
"status": "Estado",
|
||
"ready": "pronto",
|
||
"unavailable": "indisponível",
|
||
"use": "Usar",
|
||
"configureProviders": "Configurar provedores",
|
||
"loading": "Carregando motores…",
|
||
"refresh": "Atualizar",
|
||
"matrixTitle": "Motores",
|
||
"ariaTest": "Testar {{engine}}",
|
||
"ariaRecheck": "Verificar {{engine}} novamente",
|
||
"ariaSelfTest": "Autoteste de {{engine}}",
|
||
"ariaUnload": "Liberar {{engine}} da memória",
|
||
"ariaUse": "Usar {{engine}}",
|
||
"ariaAcceptLicense": "Revisar e aceitar a licença de {{engine}}",
|
||
"weights": "Pesos",
|
||
"noWeights": "Sem pesos no catálogo — este motor baixa o que precisa no primeiro uso.",
|
||
"colRunsOn": "Executa em",
|
||
"detailsFor": "Detalhes de {{engine}}",
|
||
"runsIsolated": "Executa isolado",
|
||
"selectHint": "Selecione um motor para ver o que ele precisa, testá-lo ou instalá-lo.",
|
||
"loadFailed": "Falha ao carregar motores: {{message}}",
|
||
"couldNotLoad": "Não foi possível carregar os motores: {{message}}",
|
||
"retry": "Tentar novamente",
|
||
"activeEngine": "Ativo {{family}}: {{engine}}",
|
||
"engineCompatLabel": "{{family}} compatibilidade do motor",
|
||
"dictation_model": "Modelo de ditado",
|
||
"dictation_model_hint": "Usado pelo ditado ao vivo e por este mecanismo ao transcrever.",
|
||
"dictation_not_installed": "Não instalado — selecione para baixar",
|
||
"active": "ativo",
|
||
"whyUnavailable": "O que falta",
|
||
"diskDetails": "Detalhes do disco",
|
||
"diskModelDownload": "Download do modelo",
|
||
"diskPackageDownload": "Download de pacotes",
|
||
"diskUniqueInstalled": "Instalação exclusiva",
|
||
"diskPotentiallyShared": "Possivelmente compartilhado",
|
||
"diskTemporary": "Espaço livre temporário",
|
||
"diskDestination": "Destino",
|
||
"diskDestination_hf_model_cache": "Volume de cache de modelos do Hugging Face",
|
||
"diskDestination_engine_data": "Volume de dados dos mecanismos do VoiceStudio",
|
||
"diskActualModel": "Modelo real",
|
||
"diskActualEnvironment": "Ambiente real",
|
||
"diskActualCache": "Cache compartilhado real",
|
||
"diskActualTotal": "Total próprio real",
|
||
"diskEstimateConfidence": "Confiança da estimativa",
|
||
"diskActualConfidence": "Confiança da medição",
|
||
"diskConfidence_exact": "Exata",
|
||
"diskConfidence_measured": "Medida",
|
||
"diskConfidence_estimated": "Estimada",
|
||
"diskConfidence_unknown": "Desconhecida",
|
||
"diskDedup_uv_same_volume": "O uv deduplica wheels idênticos apenas quando o cache e o ambiente do mecanismo estão no mesmo volume.",
|
||
"sectionReady": "Prontos para usar",
|
||
"sectionMore": "Adicionar mais motores",
|
||
"lastError": "Último erro: {{error}}",
|
||
"installedAndReady": "Instalado e pronto",
|
||
"notInstalled": "Não instalado",
|
||
"available": "Disponível",
|
||
"subprocessTitle": "Executa em seu próprio subprocesso + venv",
|
||
"inProcessTitle": "É executado no processo VoiceStudio Python",
|
||
"testEngine": "Motor de teste",
|
||
"testing": "Testando…",
|
||
"recheck": "Verifique novamente",
|
||
"rechecking": "Verificando novamente…",
|
||
"latencyMs": "{{ms}} ms",
|
||
"failed": "falhou",
|
||
"acceptLicense": "Aceitar licença",
|
||
"noBackends": "Nenhum back-end registrado.",
|
||
"switch_failed": "Falha ao trocar de motor",
|
||
"routingAccelerated": "GPU ativa",
|
||
"routingCpuFallback": "Reserva de CPU",
|
||
"routingCpuOnly": "CPU",
|
||
"routingRemote": "Remoto",
|
||
"routingUnknown": "Desconhecido",
|
||
"routingEffectiveChip": "Funciona em {{device}} nesta máquina",
|
||
"gpuVulkan": "Vulkan",
|
||
"routingCaveatTitle": "GPU selecionada, mas: {{reason}}",
|
||
"selectCpuFallback": "{{engine}}: em execução na CPU — {{reason}}",
|
||
"selectWithCaveat": "Alterado para {{engine}} — {{reason}}",
|
||
"generateCaveat": "{{engine}} pode ficar lento nesta máquina — {{reason}}",
|
||
"cpuLongText": "{{engine}} é executado na CPU aqui e este texto é longo — a geração pode ultrapassar o limite de tempo. Um texto mais curto ou um motor otimizado para CPU (OmniVoice GGUF, Supertonic-3) será bem mais rápido.",
|
||
"cpuLongTextTuned": "{{engine}} é executado na CPU aqui e este texto é longo — a geração pode ultrapassar o limite de tempo. Um texto mais curto, ou dividido em algumas partes, será bem mais rápido.",
|
||
"familyMatrixTitle": "Motores {{family}}",
|
||
"familyDesc_tts": "Transforma o roteiro em fala. Estúdio, Dublagem e Lote usam o motor ativo.",
|
||
"familyDesc_asr": "Transforma áudio em texto para transcrição, dublagem, legendas e ditado.",
|
||
"familyDesc_llm": "Assistente de texto opcional para tradução e reescrita. “Desativado” ignora essas etapas.",
|
||
"mpsLongText": "{{engine}} é executado em Apple Silicon (MPS) aqui e este texto é longo — a geração pode ultrapassar o limite de tempo. Um texto mais curto, ou dividido em algumas partes, será bem mais rápido.",
|
||
"inMemory": "Na memória",
|
||
"localInstallRequired": "Instale este motor no computador do backend pelo localhost ou pelo guia de configuração. A instalação remota está desativada.",
|
||
"argosRuntimeUnavailable": "O ambiente de execução do Argos está indisponível. Reinstale o backend ou selecione NLLB."
|
||
},
|
||
"capture": {
|
||
"desc": "As teclas de atalho globais funcionam apenas no aplicativo de desktop. A IU da web usa um atalho <1>Ctrl+Shift+Space</1> na página enquanto a janela está em foco.",
|
||
"desc_detail": "A tecla de atalho funciona em todo o sistema enquanto o VoiceStudio está em execução – ela foca a janela e inicia o ditado. Evite combos já reivindicados pelo sistema operacional (no macOS, <1>⌘+Space</1> é Spotlight e <2>⌘+⇧+Space</2> alterna fontes de entrada). Se o registro falhar, escolha um combo diferente.",
|
||
"active_shortcut": "Atalho ativo",
|
||
"new_shortcut": "Novo atalho",
|
||
"press_key": "Pressione uma combinação de teclas…",
|
||
"listening": "⌨︎ ouvindo (Esc para cancelar)",
|
||
"record_shortcut": "Atalho de gravação",
|
||
"recording": "Gravando…",
|
||
"save": "Salvar",
|
||
"reset_default": "Redefinir para o padrão",
|
||
"listening_label": "Ouvindo…",
|
||
"transcribing_label": "Transcrevendo…",
|
||
"a11y_setup": "Permita Acessibilidade para que o ditado possa digitar por você",
|
||
"pasted": "Colado",
|
||
"inserted": "Inserido",
|
||
"copied": "Copiado para a área de transferência",
|
||
"no_speech": "Nenhuma fala detectada",
|
||
"mic_denied": "Acesso ao microfone negado",
|
||
"mic_denied_toast": "Acesso ao microfone negado. {{hint}}",
|
||
"mic_hint_mac": "macOS: abra Configurações do sistema → Privacidade e segurança → Microfone e ative VoiceStudio.",
|
||
"mic_hint_windows": "Windows: abra Configurações → Privacidade e segurança → Microfone, ative 'Acesso ao microfone' e 'Permitir que aplicativos da área de trabalho acessem seu microfone' e permita o VoiceStudio.",
|
||
"mic_hint_linux": "Linux: verifique se seu usuário está no grupo de áudio e se o WebView tem acesso ao microfone.",
|
||
"transcription_failed": "Falha na transcrição: {{message}}",
|
||
"mic_not_found": "Nenhum microfone encontrado. Conecte ou ative um microfone e tente novamente.",
|
||
"mic_in_use": "O microfone está ocupado ou indisponível. Feche outros aplicativos que possam estar usando-o e tente novamente.",
|
||
"mic_error_generic": "Não foi possível iniciar o microfone: {{message}}"
|
||
},
|
||
"logs": {
|
||
"no_tauri_log": "Nenhum log do Tauri no disco ainda – inicie através da versão desktop para produzir um",
|
||
"empty_frontend": "Nenhuma entrada do console front-end foi capturada ainda. Interaja com o aplicativo — todos os consoles.* aparecerão aqui.",
|
||
"empty_tauri": "Nenhum registro Tauri disponível. É executado apenas no shell da área de trabalho.",
|
||
"empty_backend": "O log de tempo de execução está vazio. A atividade aparecerá aqui conforme o back-end a registra.",
|
||
"title": "Registros",
|
||
"source_backend": "Back-end",
|
||
"source_frontend": "Interface",
|
||
"source_tauri": "Touro",
|
||
"expand": "Expandir registros",
|
||
"collapse": "Recolher registros",
|
||
"expand_aria": "Expandir painel de registros",
|
||
"collapse_aria": "Recolher painel de registros",
|
||
"drag_resize": "Arraste para redimensionar",
|
||
"refresh": "Atualizar",
|
||
"refresh_aria": "Atualizar registros",
|
||
"copy_visible": "Copiar log visível",
|
||
"copy_visible_aria": "Copiar log visível",
|
||
"clear": "Limpar",
|
||
"clear_aria": "Limpar registro",
|
||
"report_issue": "Reportar problema (copiar diagnóstico)",
|
||
"report_issue_aria": "Informar problema",
|
||
"close": "Fechar",
|
||
"close_aria": "Fechar painel de registros",
|
||
"join_discord": "Junte-se ao nosso Discord",
|
||
"join_discord_aria": "Junte-se à nossa comunidade Discord",
|
||
"support_project": "Apoie este projeto",
|
||
"support_project_aria": "Apoie este projeto",
|
||
"empty_frontend_short": "Nenhuma saída do console frontend ainda.",
|
||
"empty_lines": "Sem filas.",
|
||
"all_clear": "✅ Tudo limpo – nenhum problema detectado",
|
||
"log_cleared": "{{source}} registro limpo",
|
||
"clear_failed": "Falha na limpeza: {{message}}",
|
||
"log_copied": "Registro {{source}} copiado",
|
||
"copy_failed": "Falha na cópia: {{message}}",
|
||
"report_copied": "Relatório de diagnóstico copiado – cole-o em um problema do GitHub.",
|
||
"report_failed": "Falha no relatório: {{message}}",
|
||
"version_updates": "Verifique se há atualizações",
|
||
"version_updates_aria": "Atualizações abertas — versão do aplicativo {{v}}",
|
||
"update_available": "Atualização disponível ({{version}}) — clique para atualizar",
|
||
"update_available_aria": "Atualização disponível ({{version}}) — atualizações abertas",
|
||
"contact": "Contato",
|
||
"contact_aria": "Abra a página de contato"
|
||
},
|
||
"voice_profile": {
|
||
"test_text": "Olá - este é um teste desta voz.",
|
||
"not_found": "Voz não encontrada.",
|
||
"needs_name": "O perfil de voz precisa de um nome.",
|
||
"saved": "Salvo",
|
||
"save_failed": "Falha ao salvar: {{message}}",
|
||
"delete_confirm": "Excluir \"{{name}}\" permanentemente? Isso também remove o áudio de referência do disco.",
|
||
"deleted": "Voz excluída",
|
||
"delete_failed": "Falha na exclusão: {{message}}",
|
||
"unlock_confirm": "Desbloquear esta voz? As gerações futuras não serão mais reproduzíveis em bits.",
|
||
"unlocked": "Voz desbloqueada",
|
||
"unlock_failed": "Falha no desbloqueio: {{message}}",
|
||
"gen_failed": "Falha na geração: {{message}}",
|
||
"designed": "Projetado",
|
||
"cloned": "Clonado",
|
||
"edit": "Editar",
|
||
"name_placeholder": "Nome de voz",
|
||
"locked": "Bloqueado",
|
||
"free": "Grátis",
|
||
"locked_ref": "Referência bloqueada",
|
||
"ref_audio": "Áudio de referência",
|
||
"details": "Detalhes",
|
||
"style_instruct": "Instrução de estilo",
|
||
"style_placeholder": "por exemplo sussurrar, animado, gentil",
|
||
"language": "Idioma",
|
||
"ref_transcript": "Transcrição de referência",
|
||
"ref_help": "O que diz o áudio de referência. Usado para melhorar a precisão do clone.",
|
||
"locked_explain": "Esta voz é pouco reproduzível. Cada geração usa a mesma referência + semente.",
|
||
"unlock": "Desbloquear",
|
||
"try_voice": "Experimente esta voz",
|
||
"test_phrase": "Frase de teste",
|
||
"test_help": "Digite qualquer coisa – nós iremos gerá-la com as configurações atuais desta voz.",
|
||
"test_placeholder": "Digite algo para ouvir essa voz dizer…",
|
||
"gen_preview": "Gerar visualização",
|
||
"generating": "Gerando…",
|
||
"used_title": "Onde esta voz foi usada",
|
||
"used_empty": "Esta voz ainda não foi usada. Gere uma prévia acima ou escolha-a em uma dublagem.",
|
||
"synth_clips_one": "{{count}} clipe de sintetizador",
|
||
"synth_clips_other": "{{count}} clipes de sintetizador",
|
||
"projects_count_one": "Projeto {{count}}",
|
||
"projects_count_other": "{{count}} projetos",
|
||
"dubbed_segments_one": "{{count}} segmento dublado",
|
||
"dubbed_segments_other": "{{count}} segmentos dublados",
|
||
"verified": "Verificado",
|
||
"persona_export": "Exportar persona",
|
||
"persona_exporting": "Construindo personalidade…",
|
||
"persona_exported": "Pessoa exportada",
|
||
"persona_export_no_audio": "Esta voz não tem áudio legível para criar uma visualização.",
|
||
"persona_export_failed": "Falha na exportação.",
|
||
"persona_include_ref": "Incluir clipe de voz",
|
||
"persona_include_ref_hint": "Inclua o clipe de referência bruto. Desativado = compartilhe apenas uma visualização com marca d'água (recomendado).",
|
||
"consent_title": "Propriedade de voz",
|
||
"consent_explain": "Grave-se lendo a declaração abaixo para verificar se esta é sua própria voz. A verificação será necessária para recursos de agente e compartilhamento de comunidade – nunca para síntese local.",
|
||
"consent_statement": "Confirmo que este perfil de voz é minha própria voz e autorizo que o VoiceStudio o clone em meu nome.",
|
||
"consent_record": "Registrar declaração de consentimento",
|
||
"consent_stop": "Pare de gravar",
|
||
"consent_saved": "Propriedade de voz verificada",
|
||
"consent_failed": "Falha na verificação: {{message}}",
|
||
"consent_verified_explain": "Você gravou uma declaração de consentimento em {{date}}. A revogação remove a gravação e o status verificado.",
|
||
"consent_revoke": "Revogar",
|
||
"consent_revoke_confirm": "Revogar a verificação de propriedade de voz? A gravação de consentimento será excluída e os recursos do agente não poderão mais usar esta voz.",
|
||
"consent_revoked": "Verificação revogada"
|
||
},
|
||
"dub": {
|
||
"timing_label": "Sincronização",
|
||
"timing_concise": "Conciso",
|
||
"timing_stretch_video": "Estender vídeo",
|
||
"install_engine_pkg": "Instalar {{pkg}}",
|
||
"needs_install_short": "Requer instalação",
|
||
"install_popover_title": "Instalar este motor",
|
||
"install_popover_frozen_body": "Esta versão empacotada não consegue instalar motores — o seu ambiente Python é somente leitura e assinado. Execute o comando abaixo numa instalação a partir do código-fonte, ou mude para o motor Argos incluído.",
|
||
"switch_to_argos": "Mudar para o Argos (incluído, offline)",
|
||
"copy_command": "Copiar comando",
|
||
"install_cmd_copied": "Comando copiado",
|
||
"dismiss_error": "Dispensar",
|
||
"transcribe": "Transcrever",
|
||
"translate": "Traduzir",
|
||
"generate": "Gerar",
|
||
"export": "Exportar",
|
||
"no_video": "Nenhum vídeo carregado",
|
||
"segments": "segmentos",
|
||
"speakers": "alto-falantes",
|
||
"video_dubbing_studio": "Estúdio de Dublagem de Vídeo",
|
||
"drop_here": "Solte vídeo ou áudio aqui",
|
||
"paste_url": "…ou cole o URL do YouTube/vídeo",
|
||
"ingest": "Ingerir",
|
||
"pull_captions": "Obtenha legendas + traduções automáticas do YouTube",
|
||
"batch_queue_link": "Dublando muitos vídeos? Abra a fila em lote",
|
||
"youtube_auth": "Login no YouTube (opcional)",
|
||
"youtube_cookie_file": "Escolher uma exportação cookies.txt",
|
||
"remove_cookie_file": "Remover arquivo de cookies",
|
||
"cookie_transport_error": "A exportação de cookies requer HTTPS ou o aplicativo local.",
|
||
"cookie_size_error": "A exportação de cookies deve ter no máximo 1 MB.",
|
||
"save": "Salvar",
|
||
"reset": "Redefinir",
|
||
"save_project": "Salvar projeto",
|
||
"change_file": "Alterar arquivo",
|
||
"import_srt": "Importar .srt",
|
||
"import_srt_alt": "Importe .srt em vez disso",
|
||
"cast": "STARRING",
|
||
"speaker": "Palestrante {{n}}:",
|
||
"default": "Padrão",
|
||
"language": "Idioma",
|
||
"auto": "Automático",
|
||
"iso_code": "Código ISO",
|
||
"style": "Estilo",
|
||
"style_placeholder": "por exemplo feminino",
|
||
"optional": "opcional",
|
||
"translate_all": "Traduzir tudo",
|
||
"translating": "Traduzindo…",
|
||
"retranslate": "Traduzir novamente",
|
||
"transcript": "Transcrição",
|
||
"generate_dub": "Gerar dublagem",
|
||
"export_mp4": "MP4",
|
||
"export_wav": "WAV",
|
||
"export_srt": "SRT",
|
||
"upload_transcribe": "Carregar e transcrever",
|
||
"multi_lang": "Multi-idioma",
|
||
"prep_download": "Baixando vídeo…",
|
||
"prep_extract": "Extraindo áudio…",
|
||
"prep_demucs": "Separando vocais/música (Demucs)…",
|
||
"prep_scene": "Detectando cortes de cena…",
|
||
"prep_cached": "Usando resultados em cache…",
|
||
"prep_preparing": "Preparando…",
|
||
"prep_chip_download": "baixar",
|
||
"prep_chip_extract": "extrair",
|
||
"prep_chip_demucs": "demucs",
|
||
"prep_chip_scene": "cena",
|
||
"prep_chip_cached": "armazenado em cache",
|
||
"prep_demucs_note": "Demucs pode levar vários minutos em vídeos longos. Áudio longo = espera mais longa.",
|
||
"transcribing": "Transcrevendo áudio…",
|
||
"elapsed": "decorrido",
|
||
"remaining": "resta",
|
||
"sidebar_toggle": "Alternar barra lateral",
|
||
"retry_transcription": "Tentar novamente a transcrição",
|
||
"supported_formats": "MP4 · MOV · MKV · WEBM · MP3 · WAV · FLAC · M4A",
|
||
"pull_captions_title": "Quando o URL for um host com legenda (YouTube, Vimeo, TED…), extraia também as legendas originais e quaisquer traduções automáticas do YouTube. Semeia o editor sem executar o Whisper; pule Traduzir tudo para idiomas que o YouTube já cobre.",
|
||
"time_col": "Hora",
|
||
"spkr_col": "Spkr",
|
||
"text_col": "Texto",
|
||
"voice_col": "Voz",
|
||
"segs": "segmentos",
|
||
"preview": "Visualização",
|
||
"original_audio": "Originais",
|
||
"dubbed_audio": "Dublado ({{code}})",
|
||
"first_play_hint": "a primeira jogada pode demorar um pouco para misturar",
|
||
"cast_title": "Atribua uma voz a cada alto-falante detectado. Os clones multilíngues mantêm a mesma identidade de falante em um novo idioma.",
|
||
"from_video": "🎤 Do vídeo · {{duration}}s",
|
||
"clone_profiles": "Clonar perfis",
|
||
"design_presets": "Predefinições de projeto",
|
||
"casting_board": "Quadro de elenco",
|
||
"casting_board_hint": "Abrir o quadro de elenco — arraste uma voz para um falante",
|
||
"casting_voices": "Vozes",
|
||
"casting_drag_hint": "Arraste um chip de voz para um falante, ou pressione Enter num falante para escolher de uma lista.",
|
||
"casting_assign_to": "Atribuir uma voz a {{speaker}}",
|
||
"casting_assigned": "{{voice}} atribuída a {{speaker}}",
|
||
"edit_settings": "Editar configurações de tradução",
|
||
"style_label_prefix": "estilo:",
|
||
"collapse_settings": "Recolher configurações de tradução",
|
||
"quality_label": "Qualidade",
|
||
"quality_title": "Cinematográfico = refinamento LLM em 3 etapas (traduzir → refletir → adaptar). Precisa de um LLM configurado.",
|
||
"fast_quality": "Rápido",
|
||
"cinematic_quality": "Cinematográfico",
|
||
"auto_glossary_label": "Glossário automático",
|
||
"auto_glossary_title": "Uma passagem extra do LLM lê toda a transcrição e extrai o tema do vídeo e os termos-chave, mantendo nomes e terminologia consistentes entre segmentos. Suas entradas manuais do glossário sempre vencem.",
|
||
"reflect_label": "Passe de revisão",
|
||
"reflect_title": "Após a tradução direta de cada segmento, o LLM a critica e reescreve como diálogo falado natural. Usa 3 chamadas ao LLM por segmento em vez de 1; se o refinamento falhar, a tradução direta é mantida.",
|
||
"restore": "↺ Restaurar",
|
||
"restore_title": "Restaure todos os segmentos ao texto transcrito original",
|
||
"clean_up": "Limpar",
|
||
"clean_up_title": "Mesclar pequenos fragmentos e segmentos curtos adjacentes",
|
||
"popular": "Populares",
|
||
"all_languages": "Todos os idiomas",
|
||
"engine_label": "Motor",
|
||
"install_engine": "Instale este motor",
|
||
"installing_engine": "…instalando",
|
||
"needs_dev_install": "precisa de instalação do desenvolvedor",
|
||
"install_disabled_title": "As instalações estão desativadas em compilações empacotadas",
|
||
"needs_install_suffix": "- precisa ser instalado",
|
||
"glossary_title": "Fixar traduções para termos recorrentes (nomes, palavras de marca, jargão)",
|
||
"glossary_btn": "+ Glossário ({{count}})",
|
||
"selected_count": "{{count}} selecionado",
|
||
"set_voice": "Definir voz…",
|
||
"clear_voice": "⊘ Padrão",
|
||
"set_lang": "Definir idioma…",
|
||
"default_lang": "(Padrão)",
|
||
"delete_selected": "Excluir",
|
||
"clear_selection": "Limpar",
|
||
"tracks_done": "Pronto! Faixas: {{tracks}}",
|
||
"segments_changed": "{{count}} segmento(s) alterado(s) desde a última geração",
|
||
"all_up_to_date": "todos os segmentos {{count}} atualizados",
|
||
"output_options": "Opções de saída:",
|
||
"mix_bg_audio": "Misture áudio BG",
|
||
"dual_subs": "Legendas duplas",
|
||
"dual_subs_title": "Exporte legendas com o texto traduzido na parte superior e o original em itálico embaixo.",
|
||
"burn_subs": "Gravar legendas",
|
||
"burn_subs_title": "Renderize legendas diretamente no stream de vídeo MP4 (hardsubs). Usa o formato de legenda dupla quando Legendas duplas está ativado.",
|
||
"timing_smart_fit": "Ajuste inteligente",
|
||
"timing_smart_fit_title": "Divide o ajuste: acelera ligeiramente o áudio (tom preservado, até 1,5×) e desacelera ligeiramente esse trecho do vídeo (até 2×) para que a fala em ritmo natural caiba. O que passar dos limites é cortado e sinalizado. A exportação recodifica o vídeo.",
|
||
"voice_match": "Correspondência de voz:",
|
||
"voice_match_title": "Correspondência de voz — se cada fala dublada é clonada do seu próprio clipe de origem ou todas as falas de um falante compartilham uma única referência.",
|
||
"voice_match_per_line": "Por fala",
|
||
"voice_match_per_line_title": "Cada fala é clonada de um clipe do seu próprio áudio de origem. Melhor prosódia por fala, mas a identidade da voz pode variar de fala em fala.",
|
||
"voice_match_consistent": "Consistente",
|
||
"voice_match_consistent_title": "Todas as falas de um falante são clonadas de uma referência compartilhada (o clone do falante ou o melhor clipe único quando não houver). Identidade de voz mais estável em toda a dublagem.",
|
||
"timing_lip_sync": "Sincronização labial",
|
||
"default_track": "Faixa padrão:",
|
||
"original_track": "Originais",
|
||
"selected_dub": "{{code}} (dublagem selecionada)",
|
||
"dub_track": "{{code}} (dublagem)",
|
||
"export_tracks": "Exportar faixas:",
|
||
"stopping": "Parando…",
|
||
"stop_progress": "Parar ({{current}}/{{total}})",
|
||
"regen_changed": "Regeneração {{count}} alterada",
|
||
"export_btn": "Exportar…",
|
||
"prep_stop": "Pare",
|
||
"install_progress": "Instalando {{engine}}…",
|
||
"install_restart": "{{engine}} instalado. Reinicie o back-end para carregá-lo.",
|
||
"install_already": "{{engine}} já estava instalado",
|
||
"install_ok": "{{engine}} instalado",
|
||
"install_failed": "Falha na instalação: {{message}}",
|
||
"prep_elapsed": "{{time}} decorrido",
|
||
"add_language": "Adicionar idioma",
|
||
"search_languages": "Pesquisar idiomas…",
|
||
"more_to_narrow": "+{{count}} mais — digite para restringir",
|
||
"no_matches": "Nenhuma correspondência",
|
||
"diagnostic_copied": "Diagnóstico copiado",
|
||
"copy_failed": "Falha na cópia",
|
||
"open_docs": "Abrir documentos",
|
||
"copy_diagnostic": "Copiar diagnóstico",
|
||
"dialect_label": "Dialeto",
|
||
"dialect_default": "Padrão",
|
||
"dialect_title": "Dialeto regional e vocabulário para a tradução (ex.: Argentina → “vos sos” em vez de “tú eres”). Aplicado pelos motores LLM (OpenAI/Ollama) e pela qualidade Cinematic.",
|
||
"num_speakers_label": "Falantes",
|
||
"num_speakers_auto": "Automático",
|
||
"num_speakers_help": "Quantos falantes há neste vídeo? Deixe em branco para detecção automática. Defina um número se a detecção automática mesclar vários falantes em um.",
|
||
"advanced": "Avançado",
|
||
"cinematic_needs_llm_hint": "O Cinematográfico precisa de um LLM. Configure um em Configurações → Credenciais → endpoint do LLM (o Ollama roda localmente, sem precisar de chave).",
|
||
"generate_dub_multi": "Gerar {{count}} dublagens",
|
||
"pipeline": "Pipeline de dublagem",
|
||
"preview_language": "Idioma da visualização",
|
||
"target_language": "Dublar para",
|
||
"source_language": "Idioma de origem",
|
||
"retry_failed": "Tentar novamente {{count}} falhas",
|
||
"skip_failed": "Ignorar falhas",
|
||
"transcript_after_extract": "A transcrição aparece após a extração.",
|
||
"qc_btn": "Verifique o tempo de dublagem (verificação de segunda passagem)",
|
||
"verify": "Verificar",
|
||
"qc_running": "Verificando o tempo de dublagem…",
|
||
"qc_result": "{{flagged}} de {{total}} linhas podem precisar de uma nova escuta",
|
||
"qc_clean": "Todas as linhas {{total}} correspondem ao script",
|
||
"qc_failed": "Falha na verificação de tempo: {{message}}",
|
||
"paste_translation_btn": "Colar tradução",
|
||
"paste_translation_title": "Colar uma tradução",
|
||
"paste_translation_desc": "Cole uma tradução feita noutro lugar (ChatGPT, DeepL, um tradutor humano). Ela é mapeada nos segmentos que já existem — os tempos e a transcrição original ficam intactos.",
|
||
"paste_translation_placeholder": "Cole legendas (SRT/VTT), linhas numeradas (1. …) ou uma linha traduzida por segmento — ou solte aqui um ficheiro .srt/.vtt.",
|
||
"paste_translation_load_file": "Carregar ficheiro .srt / .vtt",
|
||
"paste_translation_mode_timestamped": "Com marcações de tempo (SRT/VTT)",
|
||
"paste_translation_mode_numbered": "Linhas numeradas",
|
||
"paste_translation_mode_plain": "Linhas simples",
|
||
"paste_translation_counts": "{{segments}} segmentos · {{lines}} linhas · {{unmatched}} sem correspondência",
|
||
"paste_translation_unused": "{{count}} linha(s) colada(s) não utilizada(s)",
|
||
"paste_translation_none_matched": "Nada correspondeu. Verifique se o texto colado bate com os segmentos abaixo.",
|
||
"paste_translation_row_unmatched": "sem correspondência — inalterado",
|
||
"paste_translation_apply": "Aplicar a {{count}} segmentos",
|
||
"paste_translation_cancel": "Cancelar",
|
||
"paste_translation_more_rows": "Linhas adicionais: {{count}}",
|
||
"languages_selected": "Idiomas selecionados: {{count}}",
|
||
"languages_selected_one": "{{count}} idioma selecionado",
|
||
"languages_selected_other": "{{count}} idiomas selecionados",
|
||
"multi_translating": "Traduzindo → {{lang}} ({{current}}/{{total}})…",
|
||
"multi_lang_skipped": "A tradução de {{langs}} falhou; essas dublagens foram ignoradas para evitar uma faixa no idioma errado.",
|
||
"manage_languages": "Gerenciar idiomas",
|
||
"languages_done": "Concluído",
|
||
"languages_pending": "Pendente",
|
||
"live_preview": "Prévia ao vivo",
|
||
"live_preview_title": "Ouça uma linha enquanto a edita — o segmento editado transmite TTS com sua voz do CAST após uma breve pausa. Apenas reprodução: nada é salvo e a exportação continua renderizando em qualidade total.",
|
||
"live_preview_pick_voice": "Atribua uma voz do CAST a esta linha ou ao seu falante para ouvir a prévia ao vivo.",
|
||
"autofit_quality": "Ajuste automático"
|
||
},
|
||
"glossary": {
|
||
"title": "Glossário",
|
||
"load_error": "Falha ao carregar o glossário: {{message}}",
|
||
"needs_project": "O glossário precisa de um projeto carregado.",
|
||
"add_error": "Falha na adição: {{message}}",
|
||
"update_error": "Falha na atualização: {{message}}",
|
||
"delete_error": "Falha na exclusão: {{message}}",
|
||
"clear_auto_confirm": "Remover todos os termos extraídos automaticamente? As entradas manuais são mantidas.",
|
||
"clear_error": "Falha na limpeza: {{message}}",
|
||
"pick_target": "Escolha primeiro um idioma alvo.",
|
||
"no_segments": "Não há segmentos para digitalizar.",
|
||
"auto_empty": "A extração automática não encontrou novos termos.",
|
||
"auto_added_one": "Adicionado termo automático {{count}}. Revise e edite antes de traduzir.",
|
||
"auto_added_other": "Adicionados {{count}} termos automáticos. Revise e edite antes de traduzir.",
|
||
"auto_error": "Falha na extração automática: {{message}}",
|
||
"count": "{{count}} termos",
|
||
"count_one": "{{count}} prazo",
|
||
"count_other": "{{count}} termos",
|
||
"auto_count": "{{count}} automático",
|
||
"auto_title": "Peça ao LLM para verificar segmentos em busca de nomes próprios + termos recorrentes",
|
||
"auto_btn": "Automático",
|
||
"clear_auto_title": "Remova todos os termos extraídos automaticamente, mantenha os manuais",
|
||
"clear_auto_btn": "Limpar automaticamente",
|
||
"empty_save": "Salve a dublagem como um projeto para iniciar um glossário.",
|
||
"source": "Fonte",
|
||
"target": "Alvo",
|
||
"note": "Nota",
|
||
"no_terms": "Ainda não há termos. Adicione um abaixo ou clique em Auto.",
|
||
"source_placeholder": "Fonte ({{lang}})",
|
||
"target_placeholder": "Alvo ({{lang}})",
|
||
"note_placeholder": "Nota (opcional)",
|
||
"add_term": "Adicionar termo",
|
||
"hint": "O glossário é injetado em cada prompt de tradução cinematográfica. As entradas manuais têm precedência.",
|
||
"auto_badge": "automático",
|
||
"manual_badge": "manual",
|
||
"close": "Recolher glossário"
|
||
},
|
||
"segment": {
|
||
"time": "Hora",
|
||
"spkr": "Spkr",
|
||
"text": "Texto",
|
||
"lang": "Lang",
|
||
"voice": "Voz",
|
||
"vol": "Vol.",
|
||
"vol_title": "Volume (0–200%)",
|
||
"search_placeholder": "Pesquisar texto…",
|
||
"all_speakers": "Todos os alto-falantes",
|
||
"select_all_title": "Selecione tudo filtrado",
|
||
"sel_count": "{{count}} sel",
|
||
"select_title": "Selecione o segmento (shift+clique para ver o intervalo)",
|
||
"sync_title": "O áudio gerado tem {{pct}}% a duração do original",
|
||
"sync_label": "Sincronizar: {{pct}}%",
|
||
"rate_title": "Ajuste da taxa de fala: {{ratio}}× em relação ao slot{{error}}",
|
||
"speaker_id": "ID do palestrante",
|
||
"translate_error_title": "Erro de tradução: {{error}}",
|
||
"translate_degraded_title": "Traduzido (simples) — o polimento foi ignorado: {{reason}}",
|
||
"budget_title": "O texto é {{pct}}% do original – considere velocidade mais alta ou fraseado mais curto",
|
||
"text_title": "Cmd/Ctrl+D para dividir no cursor · Cmd/Ctrl+M para mesclar com o próximo · Cmd/Ctrl+Shift+M para mesclar com o anterior",
|
||
"orig_label": "original",
|
||
"restore_title": "Restaurar texto original",
|
||
"lang_default": "(Definitivo)",
|
||
"voice_default": "Padrão",
|
||
"from_video": "Do vídeo",
|
||
"clone_profiles": "Clonar perfis",
|
||
"design_presets": "Predefinições de projeto",
|
||
"preview_title": "Visualização ao vivo",
|
||
"set_direction": "Defina a direção…",
|
||
"edit_direction": "Editar direção…",
|
||
"split_label": "Dividir no cursor",
|
||
"merge_label": "Mesclar com o próximo",
|
||
"merge_prev_label": "Mesclar com o anterior",
|
||
"insert_label": "Inserir linha abaixo",
|
||
"direction_title": "Direção: {{dir}}",
|
||
"more_actions_title": "Mais ações",
|
||
"speaker_pick": "Escolha…",
|
||
"speaker_title_detected": "Alto-falante – escolha entre detectado ou digite um nome personalizado",
|
||
"speaker_title_custom": "Palestrante — digite um nome (nenhum clone de diarização detectado)",
|
||
"time_edit_title": "Clique para editar a hora de início (m:ss.s). Enter para confirmar, Esc para cancelar.",
|
||
"time_edit_end_title": "Clique para editar a hora de término (m:ss.s). Enter para confirmar, Esc para cancelar.",
|
||
"time_nudge_start_earlier": "Adiantar o início em 0,1 segundo",
|
||
"time_nudge_start_later": "Atrasar o início em 0,1 segundo",
|
||
"time_nudge_end_earlier": "Adiantar o fim em 0,1 segundo",
|
||
"time_nudge_end_later": "Atrasar o fim em 0,1 segundo",
|
||
"fit_fits": "Serve",
|
||
"fit_fits_title": "Áudio de taxa natural cabe dentro do slot.",
|
||
"fit_overflows": "Estouro +{{seconds}}s",
|
||
"fit_overflows_title": "O texto traduzido era maior que o espaço original em {{seconds}}s. O áudio foi cortado; encurte o texto ou mude o tempo para \"Alongar vídeo\".",
|
||
"fit_stretched": "Vídeo {{ratio}}×",
|
||
"fit_stretched_title": "Modo Stretch Video: o vídeo deste segmento foi desacelerado para {{ratio}}× para se ajustar ao áudio de dublagem natural.",
|
||
"fit_slowed": "desacelerado {{ratio}}×",
|
||
"fit_slowed_title": "A fala dublada ficou mais curta que o seu intervalo — desacelerada {{ratio}}× (tom preservado) para cobrir o tempo de fala original em vez de deixar um buraco",
|
||
"fit_compressed_title": "O áudio TTS é {{pct}}% do slot – fortemente compactado.",
|
||
"fit_audio_title": "O áudio cabe dentro do slot.",
|
||
"fit_ratio_title": "O áudio TTS é {{pct}}% do slot.",
|
||
"qc_verify": "Verifique",
|
||
"qc_verify_title": "ASR de segunda passagem ouvido: \"{{heard}}\" — ouça novamente ou duble esta linha.",
|
||
"live_play_title": "Transmitir esta linha agora (prévia ao vivo)",
|
||
"live_stop_title": "Parar a prévia ao vivo",
|
||
"plan_apply": "Usar versão mais curta",
|
||
"plan_apply_title": "Substituir esta linha pela versão mais curta sugerida: “{{text}}”",
|
||
"plan_impossible": "Não cabe +{{seconds}}s",
|
||
"plan_impossible_title": "Fala prevista ≈{{est}}s para {{avail}}s disponíveis. Cerca de {{seconds}}s excedem qualquer ajuste possível e o áudio seria cortado. Encurte o texto antes de gerar.",
|
||
"plan_tight": "Ajuste apertado",
|
||
"plan_tight_title": "Fala prevista ≈{{est}}s para {{avail}}s disponíveis. O ajuste inteligente pode compensar com uma aceleração audível ou desaceleração do vídeo. Encurte o texto para um resultado melhor."
|
||
},
|
||
"timeline": {
|
||
"track_label": "Linha do tempo de segmentos",
|
||
"keyboard_hint": "As setas selecionam um segmento · Enter alterna o modo de edição · Delete remove · S encaixa no início de fala mais próximo",
|
||
"segment_aria": "Segmento {{index}}: {{start}} a {{end}}",
|
||
"overlap_warning": "Sobrepõe um segmento adjacente — as duas falas tocarão juntas",
|
||
"moved_announce": "Segmento {{index}} movido para {{start}}",
|
||
"resized_announce": "Segmento {{index}}: {{start}} a {{end}}",
|
||
"deleted_announce": "Segmento {{index}} excluído",
|
||
"snapped_announce": "Borda encaixada no início de fala em {{time}}",
|
||
"edit_mode_on": "Modo de edição: setas movem o início, Shift o fim, Alt o segmento inteiro, Esc conclui",
|
||
"edit_mode_off": "Modo de edição desativado",
|
||
"play_slot": "Reproduzir este trecho",
|
||
"preview_dub": "Pré-visualizar a dublagem aqui"
|
||
},
|
||
"voice": {
|
||
"personality": "Personalidade",
|
||
"pick_personality": "Escolha uma predefinição de personalidade…",
|
||
"instruct": "Instruir",
|
||
"reference_text": "Texto de referência",
|
||
"language": "Idioma",
|
||
"generate": "Gerar",
|
||
"name": "Nome"
|
||
},
|
||
"tools": {
|
||
"title": "Ferramentas",
|
||
"desc": "Processamento de áudio, conversão de formato e utilitários",
|
||
"directorial_ai": "IA de direção",
|
||
"directorial_desc": "Digite uma direção de linguagem natural - veja os tokens de taxonomia para os quais ela mapeia + a instrução TTS + dica de tradução + tendência de velocidade de fala.",
|
||
"direction": "Direção",
|
||
"parse": "Analisar",
|
||
"method": "método:",
|
||
"tts_instruct": "instruções tts:",
|
||
"translate_hint": "dica de tradução:",
|
||
"rate_bias": "viés de taxa:",
|
||
"tokens": "fichas",
|
||
"taxonomy": "taxonomia",
|
||
"speech_rate_fit": "Ajuste de velocidade de fala",
|
||
"speech_rate_desc": "Verifique como uma linha traduzida se compara ao seu intervalo de tempo.",
|
||
"translated_line": "Linha traduzida",
|
||
"slot_seconds": "Slot (segundos)",
|
||
"target_language": "Idioma alvo",
|
||
"fit": "Ajustar",
|
||
"ratio": "proporção:",
|
||
"attempts": "tentativas:",
|
||
"result": "resultado:",
|
||
"probe_file": "Arquivo de sondagem",
|
||
"probe_desc": "Wrapper ffprobe – inspeciona codec, streams, profundidade de bits, duração.",
|
||
"absolute_path": "Caminho absoluto",
|
||
"probe": "Sondar",
|
||
"probe_placeholder": "/Usuários/você/Movies/sample.mp4",
|
||
"probe_failed": "Falha na análise: {{message}}",
|
||
"parse_failed": "Falha na análise: {{message}}",
|
||
"fit_failed": "Falha no ajuste: {{message}}"
|
||
},
|
||
"projects": {
|
||
"title": "Projetos",
|
||
"empty": "Ainda não há projetos",
|
||
"create": "Novo Projeto",
|
||
"all": "Todos",
|
||
"dub_projects": "Projetos de dublagem",
|
||
"voice_profiles": "Perfis de voz",
|
||
"transcripts": "Transcrições",
|
||
"history": "História",
|
||
"exports": "Exportações",
|
||
"search_placeholder": "Pesquise dublagens, clones, transcrições, exportações…",
|
||
"card_grid": "Grade de cartão",
|
||
"list": "Lista",
|
||
"no_matches": "Nenhuma correspondência para \"{{query}}\"",
|
||
"empty_hint": "Nada aqui ainda. Inicie uma dublagem, crie uma voz ou gere áudio para vê-la aparecer.",
|
||
"generated_audio": "Áudio gerado",
|
||
"export": "Exportar",
|
||
"transcription": "Transcrição",
|
||
"designed_voice": "Voz projetada",
|
||
"cloned_voice": "Voz clonada",
|
||
"stories": "Histórias",
|
||
"untitled_story": "História sem título",
|
||
"story_lines": "{{count}} linha",
|
||
"story_lines_plural": "{{count}} linhas",
|
||
"story_voices": "{{count}} voz",
|
||
"story_voices_plural": "{{count}} vozes",
|
||
"audiobooks": "Audiolivros",
|
||
"audiobook": "Audiolivro",
|
||
"story": "História"
|
||
},
|
||
"batch": {
|
||
"title": "Dublagem em lote",
|
||
"active": "Ativo",
|
||
"completed": "Concluído",
|
||
"failed": "Falha",
|
||
"back": "← Voltar",
|
||
"refresh": "Atualizar",
|
||
"add_videos": "Adicionar vídeos",
|
||
"file_input_label": "Escolher arquivos de vídeo",
|
||
"cancel": "Cancelar",
|
||
"delete": "Excluir",
|
||
"no_active": "Nenhum trabalho ativo.",
|
||
"no_completed": "Nada foi concluído recentemente.",
|
||
"no_failed": "Nenhum trabalho fracassado – aproveite o silêncio.",
|
||
"drop_hint": "Solte os vídeos acima para iniciar a dublagem em lote.",
|
||
"enqueue_failed": "Falha ao enfileirar {{name}}: {{message}}",
|
||
"enqueued": "{{count}} vídeos adicionados à fila",
|
||
"job_cancelled": "Trabalho cancelado",
|
||
"cancel_failed": "Falha no cancelamento: {{message}}",
|
||
"job_deleted": "Trabalho excluído",
|
||
"delete_failed": "Falha na exclusão: {{message}}",
|
||
"completed_in": "Concluído em {{duration}}",
|
||
"seg": "segmento {{current}}/{{total}}",
|
||
"stage_extract": "🎬 Extraindo áudio…",
|
||
"stage_transcribe": "📝 Transcrevendo…",
|
||
"stage_translate": "🌐 Traduzindo…",
|
||
"stage_generate": "🗣️ Gerando discurso…",
|
||
"stage_mix": "🎛️ Misturando áudio…",
|
||
"stage_complete": "✅ Completo",
|
||
"status_queued": "na fila",
|
||
"status_running": "correndo",
|
||
"status_done": "feito",
|
||
"status_failed": "falhou",
|
||
"status_cancelled": "cancelado",
|
||
"add_to_queue_title": "Adicionar vídeos à fila",
|
||
"drop_hint_text": "Solte os arquivos de vídeo aqui ou clique para navegar",
|
||
"drop_formats": "MP4 · MOV · MKV · WEBM",
|
||
"files_kicker": "ARQUIVOS ({{count}})",
|
||
"file_size_mb": "{{size}}MB",
|
||
"target_languages": "IDIOMAS ALVO",
|
||
"voice_kicker": "VOZ",
|
||
"default_option": "Padrão",
|
||
"clone_profiles": "Clonar perfis",
|
||
"presets": "Predefinições",
|
||
"preserve_bg": "Preservar o áudio de fundo (música/FX)",
|
||
"estimate": "{{videos}} vídeo(s) × {{langs}} idioma(s) = {{jobs}} trabalho(s)",
|
||
"select_files_langs": "Selecione arquivos e idiomas",
|
||
"add_to_queue": "Adicionar à fila",
|
||
"watch_folder": "Monitorar pasta",
|
||
"watching": "Monitorando {{folder}}",
|
||
"watch_paused": "Pausado — {{folder}}",
|
||
"watch_added": "{{count}} adicionados automaticamente",
|
||
"watch_pause": "Pausar",
|
||
"watch_resume": "Retomar",
|
||
"watch_stop": "Parar",
|
||
"watch_started": "Monitorando {{folder}} — vídeos novos entram na fila automaticamente",
|
||
"watch_unsupported": "O monitoramento de pastas requer o app para desktop ou um navegador baseado em Chromium — use Adicionar vídeos.",
|
||
"watch_failed": "Monitoramento interrompido — a pasta não pode mais ser lida (movida, excluída ou permissões alteradas). Selecione-a novamente para retomar.",
|
||
"watch_start_failed": "Não foi possível começar a monitorar essa pasta — selecione-a novamente para tentar de novo."
|
||
},
|
||
"gallery": {
|
||
"title": "VoiceStudio Galeria",
|
||
"search_placeholder": "Pesquisar no YouTube…",
|
||
"all_voices": "Todas as vozes ({{count}})",
|
||
"no_voices": "Ainda não há vozes",
|
||
"download_hint": "Pesquise acima para baixar clipes",
|
||
"search_btn": "Pesquisar",
|
||
"download_btn": "Baixar",
|
||
"saving": "Salvando…",
|
||
"trim": "Aparar",
|
||
"delete_confirm": "Excluir este clipe de voz?",
|
||
"view_mode_list": "Lista",
|
||
"view_mode_grid": "Grade",
|
||
"youtube_results": "Resultados do YouTube ({{count}})",
|
||
"clone_profile": "Clonar perfil",
|
||
"crop_audio": "Cortar áudio",
|
||
"subtitle": "Centenas de vozes projetadas e prontas - escolha uma e pronto.",
|
||
"zone_archetypes": "Arquétipos",
|
||
"zone_imports": "Minhas importações",
|
||
"all": "Todos",
|
||
"favorites": "Favoritos",
|
||
"favorite": "Favorito",
|
||
"reset": "Redefinir",
|
||
"preview": "Visualização",
|
||
"use_voice": "Usar voz",
|
||
"more_actions": "Mais ações",
|
||
"use_in_stories": "Usar em Histórias",
|
||
"set_audiobook_default": "Definir como voz padrão do Audiolivro",
|
||
"open_designer": "Abrir no Designer",
|
||
"no_matches": "Nenhuma voz corresponde a esses filtros.",
|
||
"load_more": "Carregar mais",
|
||
"saved_as_profile": "Adicionado \"{{name}}\" às suas vozes.",
|
||
"use_failed": "Não foi possível criar essa voz: {{message}}",
|
||
"preview_failed": "Visualização indisponível: {{message}}",
|
||
"import_explainer": "Cole um URL ao qual você tenha direitos (ou carregue um arquivo), corte a parte necessária e salve-o como uma voz. Você é responsável pelo licenciamento de tudo o que importa.",
|
||
"import_placeholder": "Cole um URL de vídeo/áudio ou digite para pesquisar…",
|
||
"imported_clip": "Clipe importado",
|
||
"upload": "Carregar arquivo",
|
||
"import": "Importar",
|
||
"my_imports": "Minhas importações",
|
||
"no_imports": "Nada importado ainda. Cole um URL acima para começar.",
|
||
"search_results": "{{count}} resultados",
|
||
"download_failed": "Falha no download: {{msg}}",
|
||
"search_failed": "A pesquisa falhou: {{message}}",
|
||
"upload_failed": "Falha no upload: {{message}}",
|
||
"save_failed": "Não foi possível salvar o perfil: {{message}}",
|
||
"confirm_delete": "Excluir \"{{name}}\"?",
|
||
"trim_load_failed": "Não foi possível carregar o áudio para corte: {{message}}",
|
||
"delete": "Excluir",
|
||
"community_empty": "Nenhuma voz da comunidade carregada ainda — conecte-se à internet e reabra, ou seja o primeiro a enviar uma.",
|
||
"community_explainer": "Predefinições projetadas e vozes gravadas compartilhadas pela comunidade, carregadas da omnivoice-gallery.",
|
||
"no_designer": "Voz gravada — use \"Usar voz\" em vez disso.",
|
||
"no_preview": "Sem visualização — adicione-a com \"Usar voz\" para ouvi-la.",
|
||
"submit_failed": "Não foi possível abrir o formulário de envio.",
|
||
"submit_preset": "Enviar uma predefinição",
|
||
"submit_voice": "Enviar uma voz",
|
||
"zone_community": "Comunidade",
|
||
"import_persona": "Importe um pacote de persona .ovsvoice",
|
||
"persona_imported": "Importado \"{{name}}\"{{unverified}}.",
|
||
"persona_unverified_suffix": "(não verificado)",
|
||
"persona_too_large": "Esse pacote é muito grande (máximo de 100 MB).",
|
||
"persona_import_failed": "Não foi possível importar esse pacote pessoal.",
|
||
"filters": "Filtros"
|
||
},
|
||
"transcriptions": {
|
||
"title": "Transcrições",
|
||
"entries": "{{count}} entradas",
|
||
"search_placeholder": "Pesquisar transcrições…",
|
||
"export": "Exportar",
|
||
"clear": "Limpar",
|
||
"export_title": "Exportar tudo",
|
||
"clear_title": "Limpar tudo",
|
||
"empty_title": "Ainda não há transcrições",
|
||
"empty_desc": "Selecione Iniciar ditado ou pressione {{shortcut}} para gravar e transcrever áudio.",
|
||
"capture": "Iniciar ditado",
|
||
"capture_failed": "Não foi possível iniciar o ditado. Verifique o acesso ao microfone e tente novamente.",
|
||
"empty_search_title": "Nenhuma transcrição correspondente",
|
||
"empty_search_desc": "Experimente um termo de pesquisa diferente.",
|
||
"copy": "Copiar",
|
||
"delete": "Excluir",
|
||
"segments_title": "Segmentos",
|
||
"copied": "Copiado para a área de transferência",
|
||
"copy_failed": "Falha na cópia",
|
||
"exported": "Transcrições exportadas",
|
||
"just_now": "Agora mesmo",
|
||
"m_ago": "{{count}}m atrás",
|
||
"h_ago": "{{count}}h atrás"
|
||
},
|
||
"setup": {
|
||
"ready_desc": "Você já pode criar sua primeira voz. Configure o ditado agora ou depois nas Configurações.",
|
||
"welcome": "Bem vindo",
|
||
"system_check": "Verificação do sistema",
|
||
"install_models": "Instalar modelos",
|
||
"pick_engines": "Escolha motores",
|
||
"system_check_desc": "Teste RAM, disco, GPU, ffmpeg e rede. Os bloqueadores são sinalizados antecipadamente para que você saiba antes de fazer o download.",
|
||
"install_models_desc": "Baixe ~2,4 GB de pesos — apenas o modelo TTS é obrigatório. Adicione modelos de transcrição selecionados para seu hardware agora ou depois nas Configurações.",
|
||
"pick_engines_desc": "Escolha back-ends TTS/ASR/LLM. Os padrões funcionam imediatamente: personalize a qualquer momento nas Configurações.",
|
||
"hero_desc": "Dublagem, clonagem de voz e design de voz — tudo executado localmente em sua máquina.",
|
||
"first_run": "A primeira execução leva de 5 a 10 minutos para ser baixada. Depois disso, cada lançamento é instantâneo e totalmente offline.",
|
||
"get_started": "Comece",
|
||
"back": "Voltar",
|
||
"continue_ok": "Tudo bem - continuar",
|
||
"continue_warn": "Continuar (com avisos)",
|
||
"continue_blocked": "Resolva os bloqueadores para continuar",
|
||
"waiting_models": "Aguardando os modelos necessários…",
|
||
"models_ready": "Modelos necessários prontos – continuar",
|
||
"still_needed": "Ainda necessário:",
|
||
"enter_studio": "Entre no estúdio",
|
||
"probing": "Sistema de sondagem…",
|
||
"checking": "Verificando configuração…",
|
||
"system_preflight": "Comprovação do sistema",
|
||
"recheck": "Verifique novamente",
|
||
"resolve_blockers": "Resolva as verificações com falha acima para continuar.",
|
||
"footer_downloads": "Downloads de huggingface.co",
|
||
"open_finder": "Abrir no Finder",
|
||
"open": "Abrir",
|
||
"install_required_models": "Instale os modelos necessários acima para continuar.",
|
||
"try_dictation": "Experimente o ditado",
|
||
"try_dictation_desc": "Pressione seu atalho uma vez para confirmar que o ditado funciona antes de concluir a configuração.",
|
||
"dictation_step_label": "Ditado",
|
||
"next_try_dictation": "Próximo: Experimente o ditado",
|
||
"step_aria": "Etapa {{num}}: {{label}}",
|
||
"step_completed": "concluída",
|
||
"cache_label": "Cache de modelo"
|
||
},
|
||
"donate": {
|
||
"title": "Suporte",
|
||
"desc": "Se você gosta deste projeto, considere fazer uma doação para apoiar nosso desenvolvimento.",
|
||
"hero_title": "Suporte VoiceStudio",
|
||
"hero_desc": "VoiceStudio é gratuito, de código aberto e roda inteiramente em seu hardware. Se isso agrega valor ao seu fluxo de trabalho, considere apoiar a equipe principal.",
|
||
"github_desc": "Recorrente ou único — diretamente pelo GitHub.",
|
||
"coffee_desc": "Compre um café para a equipe. Nenhuma conta é necessária.",
|
||
"paypal_desc": "Rápido, único ou recorrente via PayPal.",
|
||
"platforms": "Plataformas",
|
||
"footer": "Cada contribuição ajuda a ultrapassar os limites da IA local.",
|
||
"back": "De volta ao estúdio",
|
||
"commercial": "Licença Comercial",
|
||
"pill": "Suporte VoiceStudio",
|
||
"suggested_title": "Escolha um valor",
|
||
"most_common": "mais comum",
|
||
"custom": "Personalizado",
|
||
"choose_method": "Escolha como dar",
|
||
"choose_method_amount": "Continuar com ${{amount}}",
|
||
"goal": {
|
||
"title": "Apoie o desenvolvimento do VoiceStudio",
|
||
"of": "de",
|
||
"per_month": "/mês",
|
||
"aria": "{{raised}} da meta mensal de {{goal}}",
|
||
"remaining": "{{amount}} para ir",
|
||
"met": "🎉 Meta atingida — {{raised}} aumentada. Obrigado!",
|
||
"social_proof": "Junte-se a {{count}} apoiadores que financiam IA local"
|
||
},
|
||
"postcard": {
|
||
"title": "Apoie o desenvolvimento do VoiceStudio",
|
||
"lead_default": "Que bom que funcionou! VoiceStudio é gratuito e totalmente local. Se você economizar tempo, uma pequena contribuição mensal financiará Claude Max por trás disso.",
|
||
"lead_first_clone": "Seu primeiro clone de voz está pronto – ótimo! VoiceStudio é executado inteiramente em sua máquina e seu suporte mantém isso assim.",
|
||
"lead_tenth_dub": "Dez dublagens - você está claramente colocando isso para funcionar. Uma pequena contribuição mensal financia o Claude Max que fornece esses recursos.",
|
||
"lead_sustained": "Você está no VoiceStudio há um mês. Se conquistou um lugar em seu fluxo de trabalho, considere ajudar a financiar o que vem a seguir.",
|
||
"chip_in": "Contribua",
|
||
"later": "Talvez mais tarde",
|
||
"star": "Estrela no GitHub",
|
||
"opt_out": "Não pergunte novamente",
|
||
"dismiss_aria": "Dispensar"
|
||
}
|
||
},
|
||
"enterprise": {
|
||
"title": "Licença Comercial",
|
||
"desc": "Licenciamento profissional e suporte técnico para usuários comerciais.",
|
||
"back": "De volta ao estúdio",
|
||
"badge": "Licença Comercial",
|
||
"hero_title": "Envie vozes de IA em produção",
|
||
"hero_desc": "O VoiceStudio é um software livre e de código aberto sob a GNU Affero General Public License v3 (AGPL-3.0) — gratuito para qualquer uso, incluindo uso comercial e empresarial interno. Uma licença comercial só é necessária se você quiser incorporar o VoiceStudio em um produto ou serviço proprietário ou de código fechado sem as obrigações copyleft da AGPL-3.0.",
|
||
"why_title": "Por que as empresas escolhem VoiceStudio",
|
||
"pricing_title": "Preços",
|
||
"faq_title": "Perguntas comuns",
|
||
"pricing_desc": "Os níveis e os preços ainda estão sendo finalizados.",
|
||
"pricing_detail": "Até que sejam públicas, cada implantação comercial será cotada individualmente para que possamos dimensionar adequadamente sua equipe e carga de trabalho.",
|
||
"request_quote": "Solicite um orçamento",
|
||
"footer_email": "Perguntas? Entre em contato com VoiceStudio@palash.dev",
|
||
"footer_discord": "Junte-se ao nosso Discord para obter suporte da comunidade.",
|
||
"benefit_ip": "Propriedade total de IP",
|
||
"benefit_ip_desc": "Você possui todos os resultados, todos os modelos, todas as derivadas. Sem locação compartilhada, sem vazamento de dados.",
|
||
"benefit_cost": "Custo zero por minuto",
|
||
"benefit_cost_desc": "Sem contas de API, sem excedentes surpresa. Funciona em seu próprio hardware desde o primeiro dia.",
|
||
"benefit_team": "Acesso para toda a equipe",
|
||
"benefit_team_desc": "Uma licença cobre usuários ilimitados em sua organização.",
|
||
"benefit_support": "Suporte direto",
|
||
"benefit_support_desc": "Suporte prioritário por e-mail e videochamada da equipe principal de engenharia.",
|
||
"benefit_source": "Núcleo disponível na fonte",
|
||
"benefit_source_desc": "Visibilidade total da pilha. Audite, bifurque e adapte-se aos termos da licença.",
|
||
"benefit_lang": "646 idiomas",
|
||
"benefit_lang_desc": "Transcreva, traduza e duble em 646 idiomas com qualidade de nível humano.",
|
||
"hero_note": "Uso, auto-hospedagem e uso comercial são gratuitos sob a AGPL-3.0 — inclusive em grande escala. A AGPL é uma licença copyleft de rede: se você modificar o VoiceStudio e oferecer essa versão modificada a terceiros pela rede, deverá compartilhar seu código-fonte modificado sob os mesmos termos. Uma licença comercial remove essas obrigações copyleft para implantações proprietárias de código fechado. Os planos de preços chegam em breve — entre em contato enquanto isso.",
|
||
"hero_simple": "VoiceStudio é gratuito e de código aberto sob a AGPL-3.0 – inclusive para uso comercial e interno. Você só precisa de uma licença comercial para incorporá-lo em um produto de código fechado, sem as obrigações de copyleft da AGPL.",
|
||
"contact_lead": "O preço é cotado por implantação para se adequar à sua equipe e carga de trabalho. Diga-me seu caso de uso e eu lhe farei um orçamento."
|
||
},
|
||
"exportModal": {
|
||
"export": "Exportar",
|
||
"export_options": "Opções de exportação",
|
||
"close_drawer": "Fechar gaveta de exportação",
|
||
"presets": "PREDEFINIÇÕES",
|
||
"preset_title": "Vá para a guia {{tab}} com padrões {{label}}",
|
||
"preset_youtube": "YouTube",
|
||
"preset_archive": "Arquivo",
|
||
"preset_web": "Rede",
|
||
"preset_podcast": "Podcast",
|
||
"preset_studyset": "Conjunto de estudo",
|
||
"tracks": "TRILHAS",
|
||
"track_all": "Todos",
|
||
"track_none": "Nenhum",
|
||
"track_dubs_only": "Somente dublagens",
|
||
"primary": "primário",
|
||
"tab_video": "Vídeo",
|
||
"tab_audio": "Áudio",
|
||
"tab_subs": "Legendas",
|
||
"tab_pkg": "Pacote",
|
||
"container": "Recipiente",
|
||
"mp4_h264": "MP4 (H.264)",
|
||
"default_audio_track": "Faixa de áudio padrão",
|
||
"default_audio_hint": "Qual fluxo de áudio é reproduzido por padrão quando o visualizador abre o arquivo",
|
||
"original": "Originais",
|
||
"dub_suffix": "(Dublagem)",
|
||
"bg_audio": "Áudio de fundo",
|
||
"mix_bg_video": "Misture música/FX em cada faixa dublada",
|
||
"subs_in_video": "Legendas em vídeo",
|
||
"hardsub": "Gravar legendas na imagem (hardsub)",
|
||
"dual_subs_video": "Dual (traduzido sobre o original em itálico)",
|
||
"subs_style_line": "Linha",
|
||
"subs_style_karaoke": "Karaokê (destaque por palavra)",
|
||
"karaoke_dual_note": "O karaokê não está disponível com legendas duplas",
|
||
"format": "Formato",
|
||
"wav_lossless": "WAV (sem perdas)",
|
||
"mp3_compressed": "MP3 (compactado)",
|
||
"bitrate": "Taxa de bits",
|
||
"what_to_export": "O que exportar",
|
||
"export_each_dub": "Cada dublagem selecionada (arquivos separados)",
|
||
"export_single_lang": "Idioma único",
|
||
"mix_bg_audio": "Misture música/FX sob a voz dublada",
|
||
"both": "Ambos",
|
||
"layout": "Disposição",
|
||
"single_line": "Linha única",
|
||
"dual_subs": "Dupla (traduzido + original)",
|
||
"languages": "Idiomas",
|
||
"current_target": "Alvo atual ({{code}})",
|
||
"all_selected_dubs": "Todas as dublagens selecionadas ({{count}})",
|
||
"subs_note": "As legendas são geradas a partir do texto do segmento como está – edite a tabela de segmentos antes de exportar se você encontrar erros de digitação.",
|
||
"retime_note": "O reajuste de tempo por segmento recodifica o vídeo inteiro na exportação — espere cerca de 0,5–2× a duração do vídeo na CPU.",
|
||
"pkg_clips_title": "Clipes por segmento (.zip)",
|
||
"pkg_clips_body": "Cada segmento gerado como um WAV numerado dentro de um zip – bom para revisão, postagem de narração ou construção de conjunto de dados.",
|
||
"pkg_clips_cta": "Exportar clipes zip",
|
||
"pkg_stems_title": "Hastes (.zip)",
|
||
"pkg_stems_body": "Faixa vocal isolada + fundo (música/FX) como WAVs separados. Útil para edição de áudio downstream.",
|
||
"pkg_stems_cta": "Exportar hastes zip",
|
||
"pkg_audio_title": "Faixas de áudio (arquivos individuais)",
|
||
"pkg_audio_body_one": "Vá para a guia Áudio para exportar dublagens por idioma em WAV ou MP3 (dub {{count}} disponível).",
|
||
"pkg_audio_body_other": "Vá para a guia Áudio para exportar dublagens por idioma em WAV ou MP3 (dubs {{count}} disponíveis).",
|
||
"pkg_audio_cta": "Abra a guia de áudio",
|
||
"license_text": "O uso comercial requer um",
|
||
"license_link": "licença",
|
||
"output": "SAÍDA",
|
||
"nothing_selected": "Nada selecionado ou faixa indisponível",
|
||
"export_mp4": "Exportar MP4",
|
||
"export_n_audio_one": "Exportar arquivo de áudio {{count}}",
|
||
"export_n_audio_other": "Exportar arquivos de áudio {{count}}",
|
||
"export_audio": "Exportar áudio",
|
||
"export_subtitles": "Exportar legendas"
|
||
},
|
||
"demo": {
|
||
"clone_coachmark": "Esta é uma demonstração guiada – experimente o prompt sugerido ou escreva o seu próprio.",
|
||
"hear_demo": "Ouça a demonstração",
|
||
"stop_demo": "Parar demonstração",
|
||
"prerendered_chip": "Amostra pré-renderizada — instale um mecanismo TTS para sintetizar novo texto.",
|
||
"preset_preview": "Visualização",
|
||
"preset_stop": "Pare",
|
||
"preset_use": "Use este desenho →",
|
||
"dictation_title": "Experimente o ditado",
|
||
"dictation_lede": "Leia um deles em voz alta depois de pressionar a tecla de atalho ou pressione Replay para enviar a amostra agrupada através do transcritor para que você possa ver o trabalho do ditado de ponta a ponta sem falar.",
|
||
"dictation_status_ok": "Verificado – a tecla de atalho funciona nesta máquina",
|
||
"dictation_status_pending": "Pressione seu atalho em qualquer lugar para testar",
|
||
"dictation_status_taken": "Outra aplicação já usa este atalho — escolha outro nas Definições.",
|
||
"dictation_status_warn": "Nenhuma tecla de atalho registrada – defina uma abaixo",
|
||
"dictation_hear": "Ouça",
|
||
"dictation_stop": "Pare",
|
||
"dictation_replay": "Repetir",
|
||
"dictation_transcribing": "Transcrevendo…",
|
||
"dubbing_title": "Veja a dublagem em ação",
|
||
"dubbing_sync": "Reprodução sincronizada",
|
||
"dubbing_picker": "Tente outro idioma:",
|
||
"dubbing_cta": "Execute isso em seu próprio vídeo →",
|
||
"dubbing_loading": "Carregando demonstração de dublagem…",
|
||
"dubbing_dismiss": "Ignorar demonstração de dublagem",
|
||
"original_tag": "originais",
|
||
"dubbed_tag": "dublado",
|
||
"script_conversational": "Conversacional",
|
||
"script_technical": "Vocabulário técnico",
|
||
"script_french": "Não Inglês (Francês)",
|
||
"aria_pause": "Pausa {{label}}",
|
||
"aria_hear": "Ouça {{label}}",
|
||
"aria_replay": "Reproduzir {{label}} através do transcritor",
|
||
"dictation_lede_hotkey_only": "Segure o atalho acima em qualquer lugar da área de trabalho, fale e solte — o texto cai no app em foco. Pressione agora para verificar."
|
||
},
|
||
"direction": {
|
||
"title": "Direção para o segmento #{{id}}",
|
||
"desc": "Diga ao pipeline como essa linha deve ser. O inglês simples funciona – o sistema mapeia suas palavras em uma taxonomia estável (energia/emoção/ritmo/intimidade/formalidade) e, em seguida, encadeia a taxonomia por meio de tradução cinematográfica, TTS e ajuste de slot.",
|
||
"label": "Direção",
|
||
"lineHint": "Linha: \"{{text}}\"",
|
||
"placeholder": "por exemplo urgente e surpreso / caloroso, esperançoso / sussurrado, íntimo",
|
||
"previewParse": "Análise de visualização",
|
||
"previewFailed": "Falha na visualização: {{message}}",
|
||
"clear": "Limpar",
|
||
"cancel": "Cancelar",
|
||
"saveDirection": "Salvar direção",
|
||
"ttsInstruct": "Instrução TTS:",
|
||
"nothingParsed": "- (nada analisado)",
|
||
"translateHint": "Dica de tradução:",
|
||
"rateBias": "Viés de taxa:",
|
||
"speedsUp": "acelera",
|
||
"slowsDown": "desacelera",
|
||
"taxonomyTokens": "tokens de taxonomia"
|
||
},
|
||
"errors": {
|
||
"title": "Esta guia encontrou um obstáculo.",
|
||
"desc": "Não se preocupe – o resto do aplicativo ainda funciona. Você pode alternar as guias ou tentar novamente abaixo.",
|
||
"tryAgain": "Tente novamente",
|
||
"openDocs": "Abra documentos para este erro",
|
||
"crash_port_in_use": "O backend não conseguiu iniciar porque a porta 3900 já está em uso — outra cópia do VoiceStudio (ou um app que reivindicou essa porta) está a ocupá-la. Feche a outra instância e reinicie; se nada estiver visivelmente em execução, um backend órfão de uma sessão anterior ainda ocupa a porta.",
|
||
"crash_oom_kill": "Foi terminado à força (sinal 9), o que normalmente significa que o sistema operativo ficou sem memória (RAM). Feche aplicações que consomem muita memória, escolha um modelo ASR mais pequeno em Definições → Modelos, ou descarregue o modelo TTS antes de transcrever.",
|
||
"crash_native_fault": "Falhou dentro da pilha de computação em vez de ficar sem memória — isso aponta para um controlador de GPU que não corresponde ao runtime CUDA incluído, ou para um ficheiro de modelo descarregado de forma incompleta. Atualize o controlador da GPU e volte a descarregar o modelo em Definições → Modelos (repara um download parcial no local). Se continuar a acontecer, mude para um motor isolado em Definições → Motores: «VoiceStudio (subprocess)» para síntese e «Faster-Whisper (crash-isolated subprocess)» para transcrição. Estes executam o modelo num processo separado, pelo que uma falha destas derruba esse processo em vez de todo o backend.",
|
||
"report": "Relatar este bug",
|
||
"report_failed": "Não foi possível abrir o relatório de bug. Tente novamente ou copie os detalhes acima para uma nova issue.",
|
||
"searchIssues": "Pesquisar problemas semelhantes",
|
||
"unexpected": "Erro inesperado: {{message}}",
|
||
"backend_shutting_down": "O VoiceStudio está sendo encerrado. Reabra o aplicativo e tente novamente.",
|
||
"crash_broken_env": "Ele morreu enquanto carregava as próprias dependências de Python, então não é questão de memória nem da sua GPU — o ambiente está incompleto ou ficou atualizado pela metade. Use \"Limpar e Repetir\" em Configurações → Logs → Backend, que o reconstrói do zero e o repara no lugar, sem tocar nas suas vozes ou projetos. Se continuar falhando, os detalhes da falha nomeiam o pacote exato que não importava.",
|
||
"crash_vram_default": "Em GPUs menores, a causa habitual é ficar sem VRAM ao carregar o modelo ASR junto com o modelo TTS: descarregue primeiro o modelo TTS, ou escolha um modelo ASR menor em Catálogo de modelos → Modelos.",
|
||
"stream_cut_backend_alive": "O stream terminou mais cedo, mas o backend continua em execução — portanto, não travou. Em uma instalação servida ou em contêiner, isso geralmente é um proxy reverso ou balanceador de carga fazendo buffer da conexão ou encerrando-a por tempo limite: desative o buffering de resposta para esta rota (nginx: proxy_buffering off; X-Accel-Buffering: no) e aumente o tempo limite de leitura. Executar o aplicativo desktop diretamente, ou em localhost sem proxy, confirmará isso.",
|
||
"stream_cut_backend_alive_local": "A transmissão terminou antes do fim, mas o backend continua em execução — portanto não travou. O app perdeu a conexão com o backend no meio da tarefa; isso acontece quando uma etapa longa fica minutos sem enviar nada, e normalmente o backend conclui a tarefa mesmo assim. Aguarde alguns minutos e reabra a tarefa pelo histórico, ou verifique o log do backend (Configurações → Registros → Back-end) para ver o que ele estava fazendo."
|
||
},
|
||
"keyboard": {
|
||
"title": "Atalhos de teclado",
|
||
"footer": "Pressione <1>?</1> a qualquer momento para abrir.",
|
||
"or": "ou",
|
||
"nav": "Navegação",
|
||
"nav_cheatsheet": "Mostrar esta folha de dicas",
|
||
"nav_enginePickerKey": "Cmd/Ctrl+E",
|
||
"nav_workspacesKey": "Cmd/Ctrl+1–9",
|
||
"nav_closeModal": "Fechar modal/cancelar",
|
||
"nav_save": "Salvar projeto/comprometer corte",
|
||
"segmentEditor": "Editor de segmento",
|
||
"seg_split": "Dividir segmento no cursor",
|
||
"seg_merge": "Mesclar com o próximo segmento",
|
||
"seg_merge_prev": "Mesclar com o segmento anterior",
|
||
"seg_undo": "Desfazer",
|
||
"seg_redo": "Refazer",
|
||
"seg_click": "Ação primária",
|
||
"seg_shiftClick": "Seleção de intervalo",
|
||
"trimmer": "Aparador de áudio",
|
||
"trim_playPause": "Visualizar reprodução/pausa",
|
||
"trim_nudgeStart": "Alavanca de partida",
|
||
"trim_nudgeEnd": "Empurre a alça final",
|
||
"trim_fineNudge": "Bela cutucada",
|
||
"trim_coarseNudge": "Empurrão grosseiro",
|
||
"trim_zoomIn": "Aumentar/diminuir zoom",
|
||
"trim_fitAll": "Ajustar tudo / Ajustar seleção",
|
||
"trim_confirm": "Confirmar corte",
|
||
"dub": "Duplicar",
|
||
"dub_generate": "Gerar dublagem",
|
||
"dub_sidebar": "Alternar barra lateral"
|
||
},
|
||
"network": {
|
||
"sharing_on_title": "Compartilhamento ativado – clique para obter detalhes",
|
||
"share_on_network": "Compartilhe na sua rede",
|
||
"switching": "Trocando…",
|
||
"network": "Rede",
|
||
"local": "locais",
|
||
"share_confirm_title": "Compartilhar na sua rede?",
|
||
"share_confirm_hint": "Outros dispositivos no seu Wi-Fi/Ethernet poderão acessar o VoiceStudio usando o PIN de acesso mostrado quando estiver ligado.",
|
||
"enabling": "Habilitando…",
|
||
"enable": "Habilitar",
|
||
"shared_title": "Compartilhado em sua rede",
|
||
"no_interface": "Nenhuma interface de rede acessível – conecte-se a Wi-Fi/Ethernet.",
|
||
"copy_link": "Copiar link",
|
||
"open_in_browser": "Abrir no navegador",
|
||
"qr_alt": "QR para {{ip}}",
|
||
"pin": "PIN:",
|
||
"stop_sharing": "Pare de compartilhar",
|
||
"copied": "Copiado",
|
||
"enable_error": "Não foi possível ativar o compartilhamento: {{message}}",
|
||
"disable_error": "Não foi possível desativar: {{message}}"
|
||
},
|
||
"readiness": {
|
||
"checking_system": "Verificando sistema…",
|
||
"all_ready": "Todos os sistemas prontos",
|
||
"system_readiness": "Preparação do sistema",
|
||
"asr_model": "Modelo ASR",
|
||
"tts_model": "Modelo TTS",
|
||
"loaded_ready": "Carregado e pronto",
|
||
"loading_first_run": "Carregando… (isso pode levar de 1 a 2 minutos na primeira execução)",
|
||
"failed_to_load": "Falha ao carregar",
|
||
"not_loaded_yet": "Ainda não carregado — será carregado na primeira transcrição",
|
||
"tts_not_loaded_yet": "Ainda não carregado — será carregado na primeira geração de voz",
|
||
"error_check_logs": "Erro: {{error}}. Verifique os logs e tente reiniciar.",
|
||
"check_logs_restart": "Verifique os logs para erros de carregamento do modelo. Tente reiniciar.",
|
||
"llm_cinematic": "LLM (Cinemático)",
|
||
"llm_configure": "Configure TRANSLATE_BASE_URL para qualidade de tradução cinematográfica",
|
||
"llm_set_env": "Defina as variáveis de ambiente TRANSLATE_BASE_URL e TRANSLATE_API_KEY. Funciona com Ollama, OpenAI, LM Studio, etc.",
|
||
"llm_optional": "Opcional — defina TRANSLATE_BASE_URL para qualidade cinematográfica"
|
||
},
|
||
"license": {
|
||
"title": "Supertonic-3 – Aceitação de licença",
|
||
"intro": "O Supertonic-3 é enviado sob duas licenças distintas. Revise ambos antes de ativar o mecanismo.",
|
||
"sdk_heading": "Código SDK · MIT",
|
||
"sdk_desc": "O SDK de inferência Python (supertonic) é licenciado pelo MIT. Uso permissivo, inclusive comercial.",
|
||
"read_mit": "Leia a licença do MIT →",
|
||
"model_heading": "Pesos do modelo · OpenRAIL-M",
|
||
"model_desc": "Os pesos do modelo Supertonic-3 são lançados sob a licença OpenRAIL-M. Esta licença restringe o uso a fins não maliciosos — consulte a licença vinculada para obter o conjunto completo de restrições baseadas no uso.",
|
||
"read_openrail": "Leia a licença OpenRAIL-M →",
|
||
"footer": "Clicar em Aceitar registra sua aceitação nas configurações locais do VoiceStudio e ativa o mecanismo. Sua aceitação é armazenada apenas nesta máquina – nada é relatado à Supertone Inc. ou a terceiros.",
|
||
"saving": "Salvando…",
|
||
"accept": "Aceitar",
|
||
"accepted_toast": "Licença Supertonic-3 aceita.",
|
||
"accept_error": "Falha ao registrar a aceitação da licença: {{message}}",
|
||
"pockettts_title": "Aceitação das licenças do PocketTTS",
|
||
"pockettts_intro": "O PocketTTS da Kyutai é distribuído sob duas licenças e os pesos também têm condições de acesso no Hugging Face. Reveja tudo antes de ativar o mecanismo.",
|
||
"pockettts_sdk_desc": "A biblioteca Python pocket-tts usa a licença MIT permissiva, incluindo para uso comercial.",
|
||
"pockettts_model_heading": "Pesos do modelo (CC-BY-4.0)",
|
||
"pockettts_model_desc": "Os pesos do modelo PocketTTS são publicados sob CC-BY-4.0. O uso comercial é permitido com atribuição.",
|
||
"read_cc_by": "Ler a licença CC-BY-4.0",
|
||
"gate_heading": "Acesso restrito",
|
||
"gate_desc": "Os pesos são restritos no Hugging Face. Antes do primeiro download, precisa de uma conta gratuita, de partilhar os seus dados de contacto e de aceitar as condições de acesso.",
|
||
"pockettts_conditions_desc": "As condições proíbem usos de voz ilegais, nocivos, enganosos, fraudulentos, não autorizados ou sem consentimento. Leia as condições completas antes de continuar.",
|
||
"review_access_conditions": "Rever as condições de acesso",
|
||
"pockettts_footer": "Ao clicar em Aceitar, a confirmação é guardada apenas nas definições locais do VoiceStudio e o mecanismo é ativado. O acesso e a transferência do modelo usam o Hugging Face, que recebe os dados habituais do pedido e da conta.",
|
||
"pockettts_accepted_toast": "Condições do PocketTTS aceites."
|
||
},
|
||
"voicePreview": {
|
||
"title": "Visualização de voz",
|
||
"close": "Fechar visualização",
|
||
"default_text": "Olá! Esta é uma prévia de como soo nesta voz.",
|
||
"default_voice": "Voz padrão",
|
||
"clone_profiles": "Clonar perfis",
|
||
"designed_voices": "Vozes projetadas",
|
||
"presets": "Predefinições",
|
||
"placeholder": "Digite algo para ouvir…",
|
||
"stop": "Pare",
|
||
"regenerate": "Regenerar",
|
||
"preview": "Visualização",
|
||
"hint": "8 etapas · visualização rápida"
|
||
},
|
||
"header": {
|
||
"speech": "Fala",
|
||
"kicker_studio": "Estúdio",
|
||
"kicker_library": "Biblioteca",
|
||
"kicker_preferences": "Preferências",
|
||
"kicker_licensing": "Licenciamento",
|
||
"label_launchpad": "Barra de lançamento",
|
||
"label_clone": "Clone de voz",
|
||
"label_design": "Design de voz",
|
||
"label_dub": "Dublagem",
|
||
"label_projects": "OmniDrive",
|
||
"label_gallery": "Galeria",
|
||
"label_transcriptions": "Transcrições",
|
||
"label_settings": "Configurações",
|
||
"label_catalogue": "Catálogo de modelos",
|
||
"label_enterprise": "Licença Comercial",
|
||
"status_ready": "Pronto",
|
||
"status_loading": "Carregando…",
|
||
"status_idle": "Inativo",
|
||
"memory_management": "Gerenciamento de memória",
|
||
"flush": "Lavar",
|
||
"loaded_models": "Modelos carregados",
|
||
"no_models": "Nenhum modelo carregado",
|
||
"unload": "Descarregar",
|
||
"flush_caches": "Liberar caches",
|
||
"unload_all_flush": "Descarregar tudo + liberar"
|
||
},
|
||
"sidebar": {
|
||
"tab_drive": "Dirigir",
|
||
"tab_history": "História",
|
||
"tab_exports": "Exportações",
|
||
"save_project": "Salvar projeto de dublagem",
|
||
"save_new_project": "Salvar como novo projeto de dublagem",
|
||
"dub_projects": "Projetos de dublagem",
|
||
"voice_clones": "Clones de voz",
|
||
"designed_voices": "Vozes projetadas",
|
||
"no_dub_projects": "Nenhum projeto de dublagem salvo",
|
||
"no_dub_hint": "Carregue um vídeo e clique em Salvar para manter seu trabalho.",
|
||
"no_clones": "Ainda não há clones de voz",
|
||
"no_clones_hint": "Grave ou carregue áudio e clique em Salvar como perfil de voz.",
|
||
"no_designs": "Nenhuma voz projetada ainda",
|
||
"no_designs_hint": "Gere uma voz e salve-a no Histórico.",
|
||
"history_subtitle": "Histórico de geração · Armazenado em SQLite",
|
||
"no_history": "Sem histórico de geração",
|
||
"no_history_hint": "Sintetize áudio ou duble um vídeo – os resultados aparecerão aqui.",
|
||
"clear_history": "Limpar histórico",
|
||
"clear_confirm": "Limpar todos os itens do histórico {{count}}? Isto não pode ser desfeito.",
|
||
"history_cleared": "Histórico apagado",
|
||
"recent_exports": "Exportações recentes",
|
||
"no_exports": "Nenhuma saída baixada",
|
||
"no_exports_hint": "Exporte um arquivo via Tauri para vê-lo rastreado aqui.",
|
||
"show_in_folder": "Mostrar na pasta",
|
||
"open": "Abrir",
|
||
"select": "Selecione",
|
||
"try_voice": "Experimente",
|
||
"consistent": "consistente",
|
||
"locked": "Bloqueado",
|
||
"clone_label": "Clonar",
|
||
"design_label": "Projeto",
|
||
"dub_label": "Duplicar",
|
||
"save_label": "Salvar",
|
||
"lock_identity": "Bloquear identidade de voz",
|
||
"in_folder": "em {{folder}}",
|
||
"search": "Pesquisar…",
|
||
"rename": "Renomear",
|
||
"rename_save": "Salvar nome"
|
||
},
|
||
"trimmer": {
|
||
"title": "Cortar áudio de referência",
|
||
"decoding": "Decodificando áudio…",
|
||
"meta_length": "Comprimento {{duration}} · {{sampleRate}} Hz",
|
||
"meta_rendering": "renderizando forma de onda {{percent}}%",
|
||
"keyboard_hint": "scroll = zoom · shift+scroll = pan · alt+drag = pan · ⏐ ⟵ ⟶ ⏐ teclas ajustam as alças",
|
||
"zoom_in": "Ampliar (+)",
|
||
"zoom_out": "Diminuir zoom (-)",
|
||
"fit_all": "Caber tudo (casa)",
|
||
"fit_selection": "Seleção de ajuste (Fim)",
|
||
"fit_sel_btn": "AJUSTE SEL",
|
||
"view_range": "Visualizar {{start}} → {{end}} ({{duration}})",
|
||
"start_label": "Começar",
|
||
"end_label": "Fim",
|
||
"length_label": "Comprimento",
|
||
"too_long": ">{{max}}s",
|
||
"too_short": "muito curto",
|
||
"length_ok": "ok",
|
||
"loop_preview": "Pré-visualização do loop",
|
||
"pause": "Pausa",
|
||
"preview_selection": "Seleção de visualização",
|
||
"play_hint": "Espaço para jogar · Enter para confirmar · Esc para cancelar",
|
||
"cancel": "Cancelar",
|
||
"use_trimmed": "Use aparado",
|
||
"decode_failed": "Falha na decodificação: {{message}}",
|
||
"playback_failed": "Falha na reprodução: {{message}}",
|
||
"audio_load_failed": "Falha ao carregar áudio",
|
||
"unit_seconds": "é"
|
||
},
|
||
"casting": {
|
||
"title": "Elenco de alto-falante",
|
||
"auto_assign_title": "Atribuir automaticamente vozes de clones de alto-falantes extraídos",
|
||
"auto_cast": "Transmissão automática",
|
||
"all_cast": "Todo o elenco",
|
||
"segments_count": "{{count}} segmentos",
|
||
"assign_voice": "Atribuir voz…",
|
||
"from_video": "🎤 Do vídeo ({{name}})",
|
||
"no_profiles": "Nenhum perfil de voz salvo ainda.",
|
||
"preview_voice": "Visualizar voz"
|
||
},
|
||
"checkpoint": {
|
||
"timing_review": "{{count}} segmentos precisam de revisão de tempo",
|
||
"asr_title": "Transcrições prontas",
|
||
"asr_cta": "Traduzir",
|
||
"asr_hint": "Corrija quaisquer erros de ASR agora – a dicção precisa salva tentativas de TTS posteriormente.",
|
||
"translate_title": "Traduções prontas",
|
||
"translate_cta": "Gerar dublagem",
|
||
"translate_hint": "Dê uma olhada no texto de destino. Linhas longas aumentam a velocidade; você também pode editar diretamente.",
|
||
"done_title": "Dublagem concluída",
|
||
"done_hint": "Revise as proporções de tempo e sincronização. Ajuste qualquer linha e clique em \"Regen alterado\" para um refazer parcial rápido.",
|
||
"segment_one": "segmento {{count}}",
|
||
"segment_other": "{{count}} segmentos",
|
||
"dismiss_title": "Dispensar – não reaparecerá nesta fase até recarregar",
|
||
"timing_review_one": "{{count}} segmento precisa de revisão de tempo",
|
||
"timing_review_other": "{{count}} segmentos precisam de revisão de tempo",
|
||
"timing_review_zero": "{{count}} segmentos precisam de revisão de tempo",
|
||
"timing_review_two": "{{count}} segmentos precisam de revisão de tempo",
|
||
"timing_review_few": "{{count}} segmentos precisam de revisão de tempo",
|
||
"timing_review_many": "{{count}} segmentos precisam de revisão de tempo"
|
||
},
|
||
"compare": {
|
||
"title": "Comparação de voz A/B",
|
||
"close": "Comparação aproximada",
|
||
"desc": "Compare duas vozes lado a lado para tomar decisões de elenco. O aplicativo permanece interativo por trás.",
|
||
"test_phrase": "Frase de teste",
|
||
"voice_a": "Voz A",
|
||
"voice_b": "Voz B",
|
||
"select_voice": "— Selecione a voz —",
|
||
"preset_suffix": "(Predefinido)",
|
||
"no_audio": "Ainda não há áudio",
|
||
"close_btn": "Fechar",
|
||
"comparing": "Comparando…",
|
||
"compare_btn": "Comparar",
|
||
"preparing_voice": "Preparando voz...",
|
||
"generating_voice_a": "Gerando Voz A...",
|
||
"generating_voice_b": "Gerando Voz B...",
|
||
"comparison_complete": "Comparação concluída!",
|
||
"play_failed": "Falha na reprodução: {{message}}"
|
||
},
|
||
"models": {
|
||
"hf_token_set_toast": "Conjunto de tokens HuggingFace – downloads mais rápidos habilitados",
|
||
"hf_token_save_failed": "Falha ao salvar o token",
|
||
"install_started": "Instalação iniciada — progresso na linha",
|
||
"delete_confirm": "Excluir {{repoId}}? Você pode reinstalá-lo mais tarde.",
|
||
"delete_confirm_title": "Excluir modelo",
|
||
"deleted": "Excluído {{repoId}}",
|
||
"reinstall_confirm": "Reinstalar {{repoId}}? Isso excluirá a cópia atual e fará o download novamente.",
|
||
"reinstall_confirm_title": "Reinstale o modelo",
|
||
"reinstalling": "Reinstalando",
|
||
"recommended_installed": "Os modelos recomendados já estão instalados.",
|
||
"started_downloading_one": "Iniciou o download do modelo {{count}}",
|
||
"started_downloading_other": "Iniciou o download dos modelos {{count}}",
|
||
"install_failed": "Falha na instalação: {{message}}",
|
||
"removing_cached": "Removendo revisões em cache…",
|
||
"resolving_metadata": "Resolvendo metadados do repositório",
|
||
"retry_attempt": "Nova tentativa {{attempt}} — {{error}}",
|
||
"connecting_hf": "Conectando-se ao HuggingFace…",
|
||
"resolving_files_one": "Resolvendo arquivo {{count}}…",
|
||
"resolving_files_other": "Resolvendo arquivos {{count}}…",
|
||
"resolving_files_active": "Resolvendo arquivo(s) {{count}}… · {{file}}",
|
||
"measuring": "medindo…",
|
||
"files_progress": "Arquivos {{done}}/{{total}}",
|
||
"install_error": "Falha na instalação: {{error}}",
|
||
"view_on_hf": "Ver no HuggingFace",
|
||
"install_btn": "Instalar",
|
||
"section_tts": "TTS (síntese de voz)",
|
||
"section_asr": "ASR (transcrição offline)",
|
||
"section_dictation": "Ditado (streaming)",
|
||
"section_diarisation": "Diarização",
|
||
"section_other": "Outros",
|
||
"show_incompatible": "Mostrar incompatíveis ({{count}})",
|
||
"hide_incompatible": "Ocultar incompatíveis ({{count}})",
|
||
"incompatible_title": "Modelos que não funcionam neste sistema",
|
||
"recommended_title": "Seleção para esta máquina — opcional",
|
||
"download_all_remaining_title": "Baixar todos os modelos recomendados restantes",
|
||
"reco_install_one": "Instalar {{label}}",
|
||
"reinstall_btn": "Reinstale",
|
||
"downloading": "baixando",
|
||
"deleting": "excluindo",
|
||
"working": "trabalhando",
|
||
"installed": "instalado",
|
||
"not_installed": "não instalado",
|
||
"required_tag": "obrigatório",
|
||
"delete_btn": "Excluir",
|
||
"hf_token_btn": "Token HF",
|
||
"hf_set_title": "Defina o token HuggingFace para downloads mais rápidos",
|
||
"get_token": "Obter token →",
|
||
"reco_installed_for": "Pacote recomendado instalado para {{device}}",
|
||
"reco_for": "Recomendado para {{device}}",
|
||
"starting": "Começando…",
|
||
"required_size": "Obrigatório ~{{size}} GB",
|
||
"all_size": "Todos ~{{size}} GB",
|
||
"req_tag": "solicitação",
|
||
"search_placeholder": "Pesquisar modelos…",
|
||
"search_label": "Pesquisar modelos",
|
||
"no_matches": "Nenhum modelo corresponde aos seus filtros.",
|
||
"sort_by": "Classificar por {{column}}",
|
||
"column_model": "Modelo",
|
||
"column_role": "Função",
|
||
"column_size": "Tamanho",
|
||
"column_status": "Estado",
|
||
"ready_badge": "Pronto",
|
||
"loading_badge": "Carregando…",
|
||
"idle_badge": "Inativo",
|
||
"started_downloading_required_one": "Iniciou o download do modelo necessário {{count}}",
|
||
"started_downloading_required_other": "Iniciou o download de {{count}} modelos necessários",
|
||
"to_download": "baixar",
|
||
"cached": "armazenado em cache",
|
||
"fast_download_badge": "download rápido",
|
||
"fast_download_title": "Downloads rápidos via Xet {{version}} — transferência paralela em partes",
|
||
"voice_previews": "Prévias de voz",
|
||
"voice_previews_desc": "Baixe prévias renderizadas com antecedência para que as vozes toquem na hora, mesmo antes de um modelo de voz terminar de baixar. Nada é baixado até você ativar isto.",
|
||
"voice_previews_off": "Desativado — as prévias são geradas neste dispositivo",
|
||
"voice_previews_ready": "Conjunto em destaque em cache",
|
||
"voice_previews_partial": "{{cached}} de {{total}} prévias em destaque em cache",
|
||
"voice_previews_checked": "verificado {{when}}",
|
||
"voice_previews_never": "ainda não verificado",
|
||
"voice_previews_check": "Verificar agora",
|
||
"voice_previews_rejected": "Atualização da galeria de vozes rejeitada: {{message}}",
|
||
"role_llm": "LLM",
|
||
"role_tts": "TTS",
|
||
"role_asr": "ASR"
|
||
},
|
||
"enterprise_faq": {
|
||
"q_internal_tools": "Preciso de uma licença para ferramentas internas?",
|
||
"a_internal_tools": "Não. O uso por seus funcionários e contratados — incluindo modificação e auto-hospedagem internas — é gratuito sob a AGPL-3.0. Uma licença comercial só é necessária se você incorporar o VoiceStudio em um produto ou serviço proprietário ou de código fechado e não quiser cumprir as obrigações de compartilhamento de código-fonte da AGPL.",
|
||
"q_try_before": "Posso tentar antes de me comprometer?",
|
||
"a_try_before": "Sim. O aplicativo completo é gratuito para baixar, executar e auto-hospedar sob a AGPL-3.0 — nenhum acordo necessário. Quando quiser discutir uma licença comercial (uso proprietário), envie um e-mail e resolveremos os detalhes juntos.",
|
||
"q_watermark": "E a marca d’água?",
|
||
"a_watermark": "A marca de água invisível AudioSeal é incorporada por predefinição para todos. Pode desativá-la em Definições → Privacidade; afeta apenas o áudio gerado após a alteração."
|
||
},
|
||
"gallery_extra": {
|
||
"save_prompt": "Digite um nome para este perfil de voz:",
|
||
"saved_as_profile": "Voz salva como perfil!",
|
||
"save_profile_failed": "Falha ao salvar o perfil",
|
||
"download_failed": "Falha no download: {{message}}",
|
||
"trim_load_failed": "Falha ao carregar áudio para corte: {{message}}",
|
||
"upload_crop_failed": "Falha ao enviar voz cortada: {{message}}"
|
||
},
|
||
"dub_workflow": {
|
||
"preparing_audio": "Preparando áudio…",
|
||
"preparing_video": "Preparing video…",
|
||
"extracting_audio_scenes": "Extraindo áudio e cenas…",
|
||
"transcribing_audio": "Transcribing audio…",
|
||
"transcription_complete": "Transcription complete",
|
||
"upload_cancelled": "Upload cancelled",
|
||
"upload_failed": "Falha no upload: {{message}}",
|
||
"downloading_video": "Baixando vídeo…",
|
||
"ingested": "Ingested {{url}}",
|
||
"ingest_cancelled": "Ingestão cancelada",
|
||
"ingest_failed": "Falha na ingestão de URL: {{message}}",
|
||
"retry_cancelled": "Retry cancelled",
|
||
"transcribe_stream_dropped": "O fluxo de transcrição terminou antes que qualquer segmento chegasse, e não foi possível contatar o backend para saber o motivo. Verifique o log do backend e, se o modelo ASR ainda estava sendo baixado, os pesos dele em Catálogo de modelos.",
|
||
"transcription_failed": "Falha na transcrição: {{message}}",
|
||
"import_srt_no_job": "Carregue ou ingira um vídeo primeiro – não há trabalho para anexar legendas.",
|
||
"import_srt_after_speakers": "SRT na fila. A análise dos falantes será concluída primeiro para preservar as vozes clonadas.",
|
||
"imported_cues": "Sugestão(s) {{count}} importada(s) de {{file}}",
|
||
"skipped_malformed": "{{count}} ignorado (malformado)",
|
||
"dropped_overlap": "{{count}} caiu (sobreposição)",
|
||
"clamped_to_duration": "{{count}} preso ao comprimento da mídia",
|
||
"srt_import_failed": "Falha na importação de SRT",
|
||
"cleaned_one": "Cleaned {{count}} fragment",
|
||
"cleaned_other": "Fragmentos {{count}} limpos",
|
||
"segments_clean": "Segments already clean",
|
||
"cleanup_failed": "Clean up failed: {{message}}",
|
||
"cinematic_no_llm": "A qualidade cinematográfica precisa de um LLM - defina TRANSLATE_BASE_URL + TRANSLATE_API_KEY (Ollama funciona localmente). Voltando ao Fast.",
|
||
"dialect_not_applied": "O dialeto selecionado precisa de um LLM — mude o motor para OpenAI/Ollama ou escolha a qualidade Cinematic.",
|
||
"translate_errors": "{{errorCount}}/{{totalCount}} segmento(s) falhou: {{firstError}}",
|
||
"translate_degraded": "Todos os {{totalCount}} segmento(s) traduzidos — {{count}} usam a tradução simples porque o polimento foi ignorado ({{reason}})",
|
||
"translated_segments": "Segmento(s) {{count}} traduzido(s) → {{lang}}",
|
||
"translated_cinematic_suffix": "(Cinemático)",
|
||
"translation_failed": "Falha na tradução: {{message}}",
|
||
"regenerating": "Regenerando segmento(s) {{count}}…",
|
||
"generating_dub": "Gerando dublagem…",
|
||
"generating_progress": "Gerando dublagem… {{current}}/{{total}}",
|
||
"generation_aborted": "Geração abortada.",
|
||
"dubbing_aborted": "Dubbing aborted",
|
||
"generation_stream_ended": "O fluxo de geração terminou antes da conclusão",
|
||
"dub_complete": "Dublagem concluída",
|
||
"stop_failed": "Failed to stop",
|
||
"save_first": "Clique primeiro em 'Carregar e transcrever' para que o vídeo seja processado no servidor antes de salvá-lo.",
|
||
"project_saved": "Projeto salvo",
|
||
"project_created": "Projeto criado",
|
||
"save_failed": "Falha ao salvar: {{message}}",
|
||
"opened_project": "Aberto: {{name}}",
|
||
"delete_project_confirm": "Excluir este projeto? Isto não pode ser desfeito.",
|
||
"project_deleted": "Projeto excluído",
|
||
"delete_history_confirm": "Excluir este item do histórico?",
|
||
"history_deleted": "Item do histórico excluído",
|
||
"restored_state": "Estado restaurado da geração anterior",
|
||
"upgrading_preview": "Atualizando segmento(s) de qualidade de visualização {{count}} para qualidade total…",
|
||
"session_expired": "Esta sessão de dublagem expirou ou foi limpa. Reenvie seu vídeo para iniciar uma nova."
|
||
},
|
||
"tts_errors": {
|
||
"profile_language_rejected": "Automático usa o idioma do perfil de voz ({{language}}), não suportado por este motor. Altere o idioma do perfil, escolha um idioma compatível ou mude de motor.",
|
||
"enter_text": "Por favor insira o texto",
|
||
"upload_or_select": "Carregue um áudio ou selecione um perfil de voz",
|
||
"trim_hint": "O áudio é {{duration}}s – ajuste para ≤{{max}}s para melhor clonagem",
|
||
"timeout": "O tempo de geração expirou — o modelo ainda pode estar sendo baixado. Verifique Configurações → Registros e tente novamente.",
|
||
"generation_in_progress": "Já existe uma geração em andamento — aguarde a conclusão antes de iniciar outra.",
|
||
"error_prefix": "Erro: {{message}}",
|
||
"ignored_unsupported": "Instrução não suportada ignorada: {{items}}",
|
||
"ignored_duplicate": "Ignorado (categoria já definida): {{items}}",
|
||
"ignored_conflict": "{{items}} ignorado — um dialeto chinês e um sotaque inglês não podem ser combinados.",
|
||
"dialect_accent_conflict": "Um dialeto chinês e um sotaque inglês não podem ser usados juntos. Limpe um deles antes de gerar novamente.",
|
||
"instruct_category_conflict": "Foram selecionadas duas opções de design de voz conflitantes na mesma categoria (ex.: dois gêneros). Limpe uma delas antes de gerar novamente.",
|
||
"ref_audio_unusable": "Nenhuma fala foi detectada no áudio de referência — o clipe está em silêncio ou quase, então não há voz para clonar. Grave novamente mais perto do microfone (confira se o dispositivo de entrada correto está selecionado e se o nível se move) ou escolha outro clipe.",
|
||
"ref_audio_too_long": "Uma referência pode ter no máximo 20 segundos com transcrição ou 75 segundos sem ela. Corte-a para um trecho de fala claro de 3–10 segundos; se fornecer texto, corte a transcrição para o mesmo trecho.",
|
||
"ref_audio_no_speech": "A detecção automática não encontrou palavras faladas na referência. Corte-a para um trecho de fala claro de 3–10 segundos ou forneça uma transcrição correspondente."
|
||
},
|
||
"sharing": {
|
||
"title": "Compartilhamento e acesso remoto",
|
||
"help": "Exponha esta instância do VoiceStudio em execução às outras máquinas sem reiniciá-la. Somente loopback é o padrão – nada é compartilhado até que você o ative aqui.",
|
||
"local_network": "Rede local",
|
||
"local_help": "Compartilhe no seu Wi-Fi/Ethernet com um PIN de acesso único. Outros dispositivos escaneiam o código QR ou abrem o link.",
|
||
"ports_title": "Portas",
|
||
"ports_help": "Eles são definidos por meio de variáveis de ambiente lidas na inicialização. Altere o back-end ou a porta da UI definindo a variável e reiniciando o VoiceStudio.",
|
||
"backend_port": "Porta de back-end",
|
||
"ui_port": "Porta da IU",
|
||
"lan_share_port": "Porta de compartilhamento LAN",
|
||
"port_error": "Insira uma porta entre 1024 e 65535",
|
||
"port_saved": "Porta de compartilhamento LAN salva — aplica-se na próxima vez que você ativar o compartilhamento",
|
||
"port_save_failed": "Não foi possível salvar a porta: {{message}}",
|
||
"saving": "Salvando…",
|
||
"ports_note": "As portas de back-end e UI se aplicam na reinicialização. A porta de compartilhamento LAN será aplicada na próxima vez que você ativar o compartilhamento.",
|
||
"tailscale_title": "Tailscale (acesso remoto privado)",
|
||
"tailscale_checking": "Verificando Tailscale…",
|
||
"tailscale_absent": "Tailscale não detectado. Instale-o para acessar o VoiceStudio com segurança de qualquer lugar em sua rede privada.",
|
||
"tailscale_install": "Instale o Tailscale",
|
||
"tailscale_running": "Tailscale está em execução. Sirva VoiceStudio em sua rede privada.",
|
||
"tailscale_not_logged_in": "Tailscale está instalado, mas não conectado. Inicie e faça login no Tailscale primeiro.",
|
||
"tailscale_enabled": "Serviço Tailscale ativado",
|
||
"tailscale_enable_failed": "Não foi possível ativar o Tailscale",
|
||
"tailscale_enable_error": "Não foi possível ativar o Tailscale: {{message}}",
|
||
"tailscale_disabled": "Serviço Tailscale desativado",
|
||
"tailscale_disable_failed": "Não foi possível desativar o Tailscale",
|
||
"tailscale_disable_error": "Não foi possível desativar o Tailscale: {{message}}",
|
||
"tailscale_enabling": "Habilitando…",
|
||
"tailscale_enable_btn": "Ativar veiculação Tailscale",
|
||
"tailscale_disabling": "Desativando…",
|
||
"tailscale_disable_btn": "Parar o serviço Tailscale",
|
||
"tailscale_copy": "Copiar link",
|
||
"tailscale_open": "Abrir no navegador",
|
||
"copied": "Copiado",
|
||
"tailscale_qr_alt": "Código QR para o URL Tailscale"
|
||
},
|
||
"reportBug": {
|
||
"label": "Reportar um bug",
|
||
"title": "Abre uma página pré-preenchida de problemas do GitHub em seu navegador. Nada é enviado até você clicar em Enviar.",
|
||
"staleTitle": "Atualização disponível",
|
||
"staleMessage": "Você está usando o VoiceStudio {{current}}, mas a {{latest}} já foi lançada — este bug pode já estar corrigido. Ver a versão mais recente antes de reportar?",
|
||
"staleView": "Ver atualização",
|
||
"staleFileAnyway": "Reportar mesmo assim"
|
||
},
|
||
"app": {
|
||
"loading": "Carregando…",
|
||
"trimmed_loaded": "Áudio cortado carregado",
|
||
"toast_exported": "Exportado: {{name}}",
|
||
"toast_export_failed": "Falha na exportação: {{message}}",
|
||
"toast_open_folder_failed": "Não foi possível abrir a pasta: {{message}}",
|
||
"toast_saving": "Salvando {{name}}...",
|
||
"toast_saved": "Salvo: {{path}}",
|
||
"toast_save_error": "Erro ao salvar: {{message}}",
|
||
"toast_processing": "Processando {{name}}...",
|
||
"toast_downloaded": "Baixado {{name}}",
|
||
"toast_download_error": "Erro de download: {{message}}",
|
||
"toast_upload_first": "Clique primeiro em 'Carregar e transcrever' para que o vídeo seja processado no servidor antes de salvá-lo.",
|
||
"toast_save_failed": "Falha ao salvar: {{message}}",
|
||
"toast_opened": "Aberto: {{name}}",
|
||
"toast_project_deleted": "Projeto excluído",
|
||
"toast_restored_state": "Estado restaurado da geração anterior",
|
||
"toast_history_deleted": "Item do histórico excluído",
|
||
"toast_flushed": "Liberado — RAM {{ram}}G · VRAM {{vram}}G{{unloaded}}",
|
||
"toast_model_unloaded": "· modelo descarregado",
|
||
"toast_flush_failed": "Falha na liberação: {{message}}",
|
||
"toast_project_saved": "Projeto salvo",
|
||
"toast_project_created": "Projeto criado"
|
||
},
|
||
"update": {
|
||
"available": "Atualização {{version}} disponível",
|
||
"install": "Instalar e reiniciar",
|
||
"install_hint": "Baixe a atualização e reinicie na nova versão",
|
||
"downloading": "Atualizando… {{pct}}%",
|
||
"restart": "Reiniciar para atualizar",
|
||
"busy": "Aguarde o trabalho em andamento terminar — depois instale a atualização.",
|
||
"whats_new": "O que há de novo",
|
||
"failed": "Falha na atualização",
|
||
"retry": "Tentar novamente",
|
||
"dismiss": "Dispensar",
|
||
"toast_available": "VoiceStudio {{version}} está disponível",
|
||
"toast_install": "Instalar e reiniciar",
|
||
"toast_whats_new": "Novidades",
|
||
"toast_later": "Mais tarde"
|
||
},
|
||
"archetypes": {
|
||
"featured": "Destaque",
|
||
"browse_all": "Navegar por tudo",
|
||
"use_narration": "Narração e história",
|
||
"use_conversational": "Conversacional",
|
||
"use_characters": "Personagens e Animação",
|
||
"use_social": "Mídias Sociais",
|
||
"use_entertainment": "Entretenimento e TV",
|
||
"use_advertisement": "Anúncio",
|
||
"use_informative": "Informativo e Educacional",
|
||
"facet_gender": "Gênero",
|
||
"facet_age": "Idade",
|
||
"facet_pitch": "Argumento",
|
||
"facet_accent": "Sotaque",
|
||
"facet_lang": "Idioma",
|
||
"facet_whisper": "Sussurro"
|
||
},
|
||
"support": {
|
||
"tab_support": "Suporte",
|
||
"tab_license": "Licença Comercial",
|
||
"toggle_label": "Suporte ou licença comercial",
|
||
"other_ways": "Outras maneiras de ajudar",
|
||
"star_github": "Estrela no GitHub",
|
||
"join_discord": "Junte-se à discórdia"
|
||
},
|
||
"updates": {
|
||
"tab": "Atualizações",
|
||
"up_to_date": "Atualizado · v{{version}}",
|
||
"check_now": "Verifique agora",
|
||
"releases": "Lançamentos",
|
||
"current": "atual",
|
||
"prerelease": "visualização",
|
||
"loading": "Carregando lançamentos…",
|
||
"none": "Nenhum lançamento encontrado",
|
||
"load_error": "Não foi possível carregar as versões (off-line?)",
|
||
"retry_load": "Tentar novamente"
|
||
},
|
||
"firstrun": {
|
||
"backend_stop_failed": "O VoiceStudio não conseguiu parar o backend anterior em segurança. Feche qualquer outra janela ou processo do VoiceStudio e tente novamente.",
|
||
"loading": "Preparando a configuração…",
|
||
"title": "Configurar o VoiceStudio",
|
||
"subtitle": "Nada foi instalado ainda — confira onde tudo será salvo e então comece. Você pode mudar depois nas Configurações.",
|
||
"language": "Idioma",
|
||
"mode_title": "Modo de instalação",
|
||
"mode_installed": "Instalado",
|
||
"mode_installed_desc": "Usa as pastas padrão do sistema. Recomendado para a maioria.",
|
||
"mode_portable": "Portátil",
|
||
"mode_portable_desc": "Tudo fica em uma pasta ao lado do app — mova-a para outro disco ou máquina como uma unidade.",
|
||
"mode_portable_unavailable": "Indisponível: a pasta ao lado do app não é gravável.",
|
||
"storage_title": "Armazenamento",
|
||
"portable_folder": "Pasta portátil",
|
||
"portable_folder_desc": "Ambiente, modelos e seus dados de voz — uma pasta, totalmente móvel.",
|
||
"portable_moved": "Registado junto da aplicação como caminho relativo, por isso mover a aplicação e esta pasta em conjunto — mesmo para outra máquina ou letra de unidade — mantém a instalação a funcionar.",
|
||
"portable_moved_machine_bound": "Esta localização exata é memorizada nesta máquina. Se a aplicação ou esta pasta mudarem de sítio, ou se usar outra máquina, terá de a indicar novamente à aplicação.",
|
||
"env_dir": "Ambiente do aplicativo",
|
||
"env_dir_desc": "Runtime Python e bibliotecas de IA.",
|
||
"data_dir": "Dados de voz e projetos",
|
||
"data_dir_desc": "Suas vozes, dublagens, saídas e o banco de dados de projetos.",
|
||
"models_dir": "Cache de modelos",
|
||
"models_dir_desc": "Modelos de IA baixados — a parte maior e mais fácil de realocar.",
|
||
"needs": "precisa de ~{{size}}",
|
||
"free": "{{size}} livres",
|
||
"checking": "verificando…",
|
||
"not_writable": "sem permissão de escrita",
|
||
"change": "Alterar…",
|
||
"compute_title": "Computação",
|
||
"compute_label": "GPU / acelerador",
|
||
"compute_auto": "Auto (NVIDIA CUDA / Apple MPS / CPU)",
|
||
"compute_rocm": "GPU AMD (ROCm, Linux)",
|
||
"channel_label": "Canal de atualização",
|
||
"channel_stable": "Estável",
|
||
"channel_preview": "Preview (main mais recente)",
|
||
"network_title": "Rede",
|
||
"region_label": "Região de download",
|
||
"mirrors_title": "Mirrors personalizados (avançado)",
|
||
"mirror_pypi": "URL do índice PyPI",
|
||
"mirror_hf": "Endpoint do Hugging Face",
|
||
"mirror_python": "Mirror de downloads do Python",
|
||
"insufficient_space": "Espaço insuficiente: este layout precisa de ~{{need}} em um mesmo disco, e só há {{free}} disponíveis. Escolha outro local.",
|
||
"blocked_not_writable": "Uma pasta escolhida não é gravável — escolha outro local.",
|
||
"total_required": "Espaço total necessário: ~{{size}} (download único no primeiro uso)",
|
||
"start": "Iniciar instalação",
|
||
"starting": "Iniciando…",
|
||
"compute_detected": "Detectado",
|
||
"compute_match": "corresponde a esta máquina",
|
||
"compute_auto_desc": "Escolhe o melhor backend desta máquina em tempo de execução — CUDA em NVIDIA, MPS em Apple Silicon, senão CPU.",
|
||
"compute_rocm_desc": "Instala as wheels ROCm do PyTorch para placas AMD no Linux. Deixe em Auto se não tiver certeza.",
|
||
"channel_stable_desc": "Apenas versões testadas — as atualizações chegam após validação da comunidade.",
|
||
"channel_preview_desc": "Builds contínuas do main mais recente — novos motores e correções primeiro, com arestas ocasionais.",
|
||
"installing_title": "Instalando",
|
||
"activity_title": "Atividade",
|
||
"stage_setup": "Configuração",
|
||
"stage_models": "Modelos e motores",
|
||
"chip_required": "obrigatório",
|
||
"chip_optional": "opcional",
|
||
"chip_engine": "motor",
|
||
"lib_download": "Baixar",
|
||
"lib_downloading": "baixando…",
|
||
"lib_use": "Usar",
|
||
"lib_active": "ativo",
|
||
"lib_in_settings": "instalar depois em Configurações",
|
||
"lib_show_all": "Mostrar {{count}} modelos opcionais",
|
||
"trust_line": "Privacidade em primeiro lugar: suas vozes, gravações e projetos nunca saem desta máquina — sem conta, sem processamento na nuvem.",
|
||
"resume_note": "Downloads interrompidos retomam sozinhos — fechar o app é seguro.",
|
||
"eta_left": "faltam ~{{eta}}",
|
||
"first_sound_text": "Bem-vindo ao seu estúdio. Cada palavra que você ouve foi gerada nesta máquina, agora mesmo.",
|
||
"first_sound_done": "Essa voz? Gerada há segundos, localmente. Bem-vindo.",
|
||
"hf_token_title": "Token do Hugging Face (opcional)",
|
||
"hf_token_hint": "Desbloqueia modelos restritos — ex.: diarização de falantes para dublagem multivoz (pyannote). Token de conta gratuita; fica nesta máquina.",
|
||
"hf_token_save": "Salvar",
|
||
"hf_token_saving": "salvando…",
|
||
"hf_token_saved": "Token do Hugging Face salvo",
|
||
"hf_token_error": "Não foi possível salvar o token — tente de novo ou configure depois em Configurações → Credenciais.",
|
||
"chip_recommended": "recomendado",
|
||
"chip_recommended_title": "Recomendado para esta máquina — opcional",
|
||
"size_left": "{{size}} esquerda",
|
||
"hf_token_card_title": "Adicione um token Hugging Face gratuito para downloads mais rápidos",
|
||
"hf_token_get": "Não tem um token? Ganhe um grátis →",
|
||
"hf_token_saved_fast": "Token Hugging Face salvo – downloads agora são mais rápidos",
|
||
"hf_token_inline_prompt": "Acelere os downloads com um token Hugging Face gratuito",
|
||
"hf_token_inline_ph": "Cole o token hf_… (opcional)",
|
||
"hf_token_get_short": "Ganhe um grátis →",
|
||
"hf_token_active_using": "Token do Hugging Face encontrado em {{source}} — {{masked}}",
|
||
"hf_token_replace": "Substituir token…",
|
||
"hf_token_replace_warning": "Isso substitui o token salvo para este aplicativo. Não revoga o token antigo."
|
||
},
|
||
"history": {
|
||
"dub_meta": "{{segments}} segmentos · {{duration}} s",
|
||
"dub_meta_zero": "{{count}} segmentos · {{duration}} s",
|
||
"dub_meta_one": "{{count}} segmento · {{duration}} s",
|
||
"dub_meta_two": "{{count}} segmentos · {{duration}} s",
|
||
"dub_meta_few": "{{count}} segmentos · {{duration}} s",
|
||
"dub_meta_many": "{{count}} segmentos · {{duration}} s",
|
||
"dub_meta_other": "{{count}} segmentos · {{duration}} s",
|
||
"dub_title": "Histórico de dublagens",
|
||
"empty": "Nada por aqui ainda — suas gerações aparecerão à direita.",
|
||
"empty_dub": "Suas dublagens aparecerão aqui.",
|
||
"title": "Histórico",
|
||
"star_take": "Marcar — manter esta take",
|
||
"unstar_take": "Desmarcar — permitir limpeza",
|
||
"play_take": "Carregar como saída ativa",
|
||
"filter_starred": "Marcadas",
|
||
"load_take_failed": "Não foi possível carregar essa take: {{message}}",
|
||
"mode_clone": "Clonagem",
|
||
"mode_synth": "Síntese",
|
||
"generation_seconds": "{{duration}} s",
|
||
"expand_text": "Expandir texto",
|
||
"collapse_text": "Recolher texto",
|
||
"seed": "Seed {{seed}}",
|
||
"load_config": "Carregar configurações",
|
||
"delete_confirm": "Excluir este item do histórico?"
|
||
},
|
||
"openapi": {
|
||
"title": "API do VoiceStudio",
|
||
"loading": "Carregando a especificação da API…",
|
||
"unreachable_title": "Especificação do backend indisponível",
|
||
"unreachable_body": "Não foi possível acessar a especificação OpenAPI do backend local em {{url}}. Verifique se o backend está em execução e tente novamente.",
|
||
"retry": "Tentar novamente",
|
||
"copy_url": "Copiar URL da especificação",
|
||
"copy_url_aria": "Copiar a URL de /openapi.json",
|
||
"copied": "URL da especificação copiada",
|
||
"copy_failed": "Falha ao copiar — selecione e copie manualmente a URL acima.",
|
||
"open_raw": "Abrir especificação bruta",
|
||
"open_raw_aria": "Abrir o JSON OpenAPI bruto no navegador"
|
||
},
|
||
"recording": {
|
||
"cleaned_loaded": "Gravação limpa e carregada!",
|
||
"loaded_raw": "Gravação carregada (bruta — remoção de ruído indisponível)",
|
||
"too_short": "Gravação muito curta",
|
||
"input_device": "Dispositivo de entrada",
|
||
"default_input": "Padrão do sistema",
|
||
"microphone_number": "Microfone {{number}}",
|
||
"channels": "Canais",
|
||
"channels_auto": "Automático",
|
||
"channels_mono": "Mono",
|
||
"channels_stereo": "Estéreo",
|
||
"input_level": "Nível de entrada do microfone",
|
||
"input_detected": "Entrada detectada",
|
||
"no_input_detected": "Nenhuma entrada detectada"
|
||
},
|
||
"pronunciation": {
|
||
"title": "Dicionário de pronúncia",
|
||
"help": "Ensine o motor a dizer palavras complicadas. Cada entrada substitui uma palavra por uma nova grafia antes da síntese, portanto ela se aplica a todos os mecanismos. Defina uma entrada para um idioma ou deixe-a global. Inline, [[word|respelling]] substitui o dicionário uma vez.",
|
||
"term": "Prazo",
|
||
"term_placeholder": "palavra ou frase (por exemplo, GIF)",
|
||
"replacement": "Substituição",
|
||
"replacement_placeholder": "reescrevendo (por exemplo, jiff)",
|
||
"scope": "Escopo",
|
||
"global": "Globais",
|
||
"type": "Tipo",
|
||
"type_respelling": "Reescrever",
|
||
"type_ipa": "IPA",
|
||
"type_cmu": "UMC",
|
||
"enabled": "Habilitado",
|
||
"add": "Adicionar entrada",
|
||
"remove": "Remover {{term}}",
|
||
"empty": "Nenhuma entrada ainda. Adicione uma abaixo para corrigir uma palavra mal pronunciada.",
|
||
"test_label": "Teste uma frase",
|
||
"test_placeholder": "Digite uma frase para visualizar a substituição…",
|
||
"test_result": "Será falado como:",
|
||
"test_nochange": "Nenhuma entrada corresponde – falada como escrita.",
|
||
"test_inert": "Guardado mas ainda não aplicado neste motor: {{terms}}. As entradas IPA e CMU são guardadas e validadas, mas hoje só o respelling altera o texto falado.",
|
||
"not_applied_badge": "Ainda não aplicado",
|
||
"load_error": "Não foi possível carregar o dicionário de pronúncia.",
|
||
"save_error": "Não foi possível salvar essa entrada.",
|
||
"lang_label": "Código do idioma (por exemplo, en, de) ou deixe em branco para Global",
|
||
"enable_entry": "Ativar {{term}}",
|
||
"lang_placeholder": "en, de… (vazio = Global)",
|
||
"test_language": "Idioma da pré-visualização",
|
||
"test_global_hint": "Pré-visualizando apenas entradas globais — escolha um idioma para incluir entradas por idioma.",
|
||
"test_error": "Pré-visualização indisponível — não foi possível contatar o backend.",
|
||
"backup_title": "Backup e restauração",
|
||
"backup_hint": "Baixe o dicionário como arquivo JSON ou importe entradas de uma exportação anterior.",
|
||
"export": "Exportar JSON",
|
||
"import": "Importar JSON",
|
||
"import_replace_prompt": "Substituir as {{count}} entradas existentes pelo arquivo importado? Escolha Não para adicionar as entradas importadas junto às existentes.",
|
||
"import_done": "{{count}} entradas importadas.",
|
||
"import_error": "Não foi possível importar esse arquivo — era esperado JSON de uma exportação de pronúncia.",
|
||
"export_error": "Não foi possível exportar o dicionário."
|
||
},
|
||
"audiobook": {
|
||
"cast": "Elenco",
|
||
"cast_hint": "Atribua uma voz a cada [voice:NAME] do seu roteiro.",
|
||
"cast_empty": "Adicione tags [voice:NAME] ao roteiro para usar várias vozes.",
|
||
"cast_uses_default": "usa a voz padrão",
|
||
"markup_toolbar": "Inserir marcação",
|
||
"insert_pause": "Pausa",
|
||
"insert_voice": "Voz",
|
||
"insert_slow": "Lento",
|
||
"insert_fast": "Rápido",
|
||
"insert_emphasis": "Ênfase",
|
||
"insert_spell": "Soletrar",
|
||
"insert_reactions": "Reações",
|
||
"stats": "{{chapters}} capítulos · {{words}} palavras · {{runtime}} de duração est.",
|
||
"warnings_title": "Antes de criar",
|
||
"warn_unknown_voice": "Voz desconhecida «{{name}}» — a padrão será usada",
|
||
"warn_empty_chapter": "O capítulo «{{title}}» não tem texto falado",
|
||
"warn_unknown_tag": "Tag não reconhecida {{tag}} — será lida em voz alta",
|
||
"untitled": "Audiolivro sem título",
|
||
"dismiss": "Dispensar",
|
||
"output": "Saída",
|
||
"title": "Audiolivro",
|
||
"tab_script": "Roteiro",
|
||
"tab_voices": "Vozes",
|
||
"tab_book": "Livro",
|
||
"subtitle": "Escreva ou importe sua história, escolha cada voz e exporte um audiolivro bem-acabado com capítulos de verdade.",
|
||
"script": "Roteiro",
|
||
"script_placeholder": "# Capítulo Um\nEra uma vez… [pausa de 500ms] o fim.\n\n# Capítulo Dois\n[voz: narrador] E assim continuou.",
|
||
"default_voice": "Voz padrão",
|
||
"engine_default": "Padrão do mecanismo",
|
||
"preview_plan": "Plano de visualização",
|
||
"stop": "Parar",
|
||
"stopped_note": "Parado — os capítulos concluídos estão em cache; clique em Criar novamente para retomar.",
|
||
"recovery_title": "Audiolivro interrompido",
|
||
"recovery_progress": "{{done}} de {{total}} capítulos estão em cache",
|
||
"recovery_hint": "Retomar reutiliza os capítulos concluídos e sintetiza apenas o que falta.",
|
||
"resume": "Retomar",
|
||
"open_chapter_cache": "Abrir cache dos capítulos",
|
||
"cache_location_hint": "Cache de áudio dos capítulos: {{cachePath}} · Manifesto de retomada: {{manifestPath}}",
|
||
"resume_failed": "Não foi possível retomar o audiolivro: {{message}}",
|
||
"open_cache_failed": "Não foi possível abrir o cache dos capítulos",
|
||
"progress_summary": "Sintetizando {{current}} de {{total}} capítulos",
|
||
"eta": "~{{time}} restante",
|
||
"chapter_n": "Capítulo {{n}}",
|
||
"cached_tag": "em cache",
|
||
"failed_tag": "falhou",
|
||
"empty_hint": "Ainda não há nada para narrar — use Carregar exemplo para testar um roteiro de demonstração.",
|
||
"create": "Criar audiolivro",
|
||
"plan_heading": "Plano - {{count}} capítulo(s)",
|
||
"chapter_meta": "{{spans}} span(s) · {{chars}} caracteres",
|
||
"synthesizing": "Sintetizando o capítulo {{current}} de {{total}} {{title}}",
|
||
"assembling": "Montando o audiolivro…",
|
||
"ready": "Audiolivro pronto",
|
||
"download": "Baixar",
|
||
"lyrics": "Acompanhe o texto",
|
||
"format": "Formato",
|
||
"format_m4b": "M4B (capítulos)",
|
||
"format_mp3": "MP3",
|
||
"loudness": "Volume",
|
||
"loudness_off": "Volume: desligado",
|
||
"loudness_acx": "Normalizar (ACX)",
|
||
"loudness_podcast": "Normalizar (podcast)",
|
||
"details": "Capa e detalhes",
|
||
"cover": "Capa",
|
||
"cover_add": "Adicionar capa",
|
||
"cover_remove": "Remover tampa",
|
||
"meta_title": "Título",
|
||
"meta_author": "Autor",
|
||
"meta_narrator": "Narrador",
|
||
"meta_year": "Ano",
|
||
"meta_genre": "Gênero",
|
||
"meta_description": "Descrição",
|
||
"preview_chapter": "Capítulo de visualização: {{title}}",
|
||
"cached_note": "Capítulo(s) {{count}} já renderizados reutilizados.",
|
||
"failed_note": "{{count}} capítulo(s) falhou — clique em Criar novamente para tentar novamente apenas aqueles.",
|
||
"import": "Importar",
|
||
"import_failed": "Falha na importação: {{message}}",
|
||
"load_sample": "Carregar exemplo",
|
||
"load_sample_hint": "Preencha o editor com um script de demonstração que mostra capítulos, vozes por personagem, pausas e tags expressivas — experimente antes do trabalho real",
|
||
"load_sample_confirm": "Substituir o script atual pelo exemplo?",
|
||
"lexicon": "Pronúncia",
|
||
"lex_word": "Palavra",
|
||
"lex_say": "Diga como…",
|
||
"lex_add": "Adicionar palavra",
|
||
"lex_remove": "Remover",
|
||
"markup_help": "Referência de marcação",
|
||
"markup_hint": "# Título do capítulo · [voice:NAME] mudar voz · [pause 500ms] / [pause 1s] · [slow]…[/slow] · [fast]…[/fast] · [emphasis]…[/emphasis] · [spell]…[/spell] · Reações (VoiceStudio): [laughter] [sigh] [confirmation-en] [question-en] [question-ah] [question-oh] [question-ei] [question-yi] [surprise-ah] [surprise-oh] [surprise-wa] [surprise-yo] [dissatisfaction-hnn]",
|
||
"language": "Idioma",
|
||
"expressive": "Substituições de produção",
|
||
"reset": "Repor",
|
||
"seed": "Semente",
|
||
"seed_ph": "Automático",
|
||
"vary_repeats": "Variar linhas repetidas",
|
||
"vary_repeats_help": "Dê takes distintos a linhas idênticas em vez de reutilizar uma gravação.",
|
||
"emotion_help": "Emoção graduada — aplicada apenas pelo mecanismo IndexTTS2.",
|
||
"emotion_text": "Descrição da emoção",
|
||
"emotion_text_ph": "ex.: soa exausto e triste",
|
||
"emotion_alpha": "Força emocional"
|
||
},
|
||
"voicePanel": {
|
||
"title": "Voz",
|
||
"subtitle": "Ditado local de fala para texto com modelos no dispositivo.",
|
||
"enable_label": "Ativar ditado de voz",
|
||
"enable_sub": "Pressione {{shortcut}} para ditar o texto em qualquer painel em foco.",
|
||
"mode_label": "Modo de ditado",
|
||
"mode_sub": "Alternar: pressione uma vez para iniciar, novamente para parar. Hold: dita enquanto a tecla é pressionada.",
|
||
"mode_toggle": "Alternar",
|
||
"mode_hold": "Espera",
|
||
"model_label": "Modelo de fala",
|
||
"model_sub": "Escolha o modelo no dispositivo usado para ditado.",
|
||
"badge_offline": "off-line",
|
||
"badge_streaming": "streaming",
|
||
"badge_recommended": "recomendado",
|
||
"download_model": "Baixar modelo",
|
||
"delete_model": "Excluir modelo",
|
||
"downloading": "Baixando…",
|
||
"downloading_pct": "Baixando {{pct}}%",
|
||
"delete_confirm": "Excluir o modelo de fala \"{{label}}\"? Você pode baixá-lo novamente mais tarde.",
|
||
"delete_confirm_title": "Excluir modelo de fala",
|
||
"engine_unavailable": "O mecanismo de ditado ao vivo não está disponível nesta instalação. O ditado volta ao caminho de transcrição padrão.",
|
||
"model_desc": {
|
||
"sherpa-parakeet-tdt-v3": "Ditado rápido e preciso em 25 idiomas europeus.",
|
||
"sherpa-parakeet-tdt-v2": "Ditado rápido e preciso somente em inglês.",
|
||
"sherpa-zipformer-bilingual-zh-en": "Streaming de chinês + inglês com parciais ao vivo.",
|
||
"sherpa-paraformer-bilingual-zh-en": "Streaming Chinês + Inglês, modelo compacto.",
|
||
"sherpa-zipformer-en-20m": "Modelo inglês de streaming minúsculo – latência mais baixa.",
|
||
"sherpa-zipformer-zh-14m": "Modelo chinês de streaming minúsculo – latência mais baixa.",
|
||
"sherpa-whisper-tiny": "Recomendado. Ditado multilíngue em mais de 90 idiomas com detecção automática de idioma."
|
||
}
|
||
},
|
||
"profiles": {
|
||
"need_name_audio": "Precisa de um nome e áudio de referência",
|
||
"synthesizing_preview": "Sintetizando visualização para {{name}}...",
|
||
"synthesizing_segment": "Sintetizando segmento...",
|
||
"preview_ready": "Visualização pronta!",
|
||
"playback_failed": "Falha na reprodução",
|
||
"preview_failed": "Falha na visualização: {{message}}",
|
||
"saved": "Voz salva nos perfis!",
|
||
"save_failed": "Falha ao salvar o perfil de voz",
|
||
"locked": "Voz bloqueada! A identidade agora é consistente em todas as gerações.",
|
||
"lock_failed": "Falha ao bloquear perfil",
|
||
"unlocked": "Voz desbloqueada. As gerações irão variar novamente.",
|
||
"unlock_failed": "Falha ao desbloquear perfil"
|
||
},
|
||
"transcriptionPicker": {
|
||
"title": "Importar de uma transcrição",
|
||
"search_placeholder": "Pesquisar transcrições…",
|
||
"empty": "Ainda não há transcrições. Grave um na guia Transcrições.",
|
||
"empty_search": "Nenhuma transcrição corresponde à sua pesquisa."
|
||
},
|
||
"waveform": {
|
||
"source_missing": "Mídia de origem ausente — este arquivo pode ter sido movido ou excluído. Reenvie o vídeo para continuar.",
|
||
"load_failed": "Não foi possível carregar o áudio deste arquivo",
|
||
"controls": "Controles de reprodução",
|
||
"restart": "Reiniciar reprodução",
|
||
"shortcuts": "J/K/L: retroceder, reproduzir/pausar, avançar",
|
||
"zoom": "Nível de zoom",
|
||
"timeline": "Linha do tempo da forma de onda",
|
||
"loading": "Carregando forma de onda…"
|
||
},
|
||
"tts": {
|
||
"routingFallback": "Rodando em CPU — este mecanismo não possui caminho de GPU em sua máquina, então a geração será mais lenta. {{reason}}",
|
||
"routingCaveat": "Usando a GPU, mas: {{reason}}",
|
||
"droppedChunks_one": "Atenção: {{count}} parte do seu texto não gerou áudio, então falta nesta gravação. Tente gerar de novo — outra semente costuma resolver.",
|
||
"droppedChunks_other": "Atenção: {{count}} partes do seu texto não geraram áudio, então faltam nesta gravação. Tente gerar de novo — outra semente costuma resolver.",
|
||
"droppedChunksWithText_one": "Atenção: {{count}} parte do seu texto não gerou áudio e falta nesta gravação — “{{text}}”. Tente gerar de novo; outra semente costuma resolver.",
|
||
"droppedChunksWithText_other": "Atenção: {{count}} partes do seu texto não geraram áudio e faltam nesta gravação — “{{text}}”. Tente gerar de novo; outra semente costuma resolver.",
|
||
"streamingOffRemote": "A pré-visualização progressiva está desativada enquanto {{label}} renderiza — a gravação final será reproduzida assim que chegar."
|
||
},
|
||
"voiceSelector": {
|
||
"engineDefault": "Padrão do mecanismo",
|
||
"clone": "Vozes clonadas",
|
||
"designed": "Vozes projetadas",
|
||
"presets": "Predefinições",
|
||
"fromVideo": "Do vídeo",
|
||
"missingVoice": "Voz não encontrada (re-escolha)",
|
||
"preview": "Visualizar voz",
|
||
"openGallery": "Abrir na Galeria de Voz",
|
||
"createVoice": "Crie uma nova voz",
|
||
"gallery": "Galeria",
|
||
"addingVoice": "Adicionando voz…",
|
||
"addVoiceFailed": "Não foi possível adicionar essa voz"
|
||
},
|
||
"remote_gate": {
|
||
"title": "Digite o PIN de acesso",
|
||
"body": "Esta instância do VoiceStudio é compartilhada na rede. Digite o PIN mostrado no host.",
|
||
"label": "PIN de acesso",
|
||
"connect": "Conectar"
|
||
},
|
||
"remote_apikey_gate": {
|
||
"title": "Enter API key",
|
||
"body": "This backend requires an API key. Enter the value of OMNIVOICE_API_KEY set on the server.",
|
||
"label": "API key",
|
||
"connect": "Connect"
|
||
},
|
||
"contact": {
|
||
"hero_title": "Entre em contato",
|
||
"hero_desc": "Dúvidas, bugs, licenciamento ou apenas para dizer oi – veja como entrar em contato comigo.",
|
||
"email": "E-mail",
|
||
"email_desc": "Licenciamento, parcerias ou qualquer coisa privada.",
|
||
"website": "Site",
|
||
"website_desc": "Mais sobre o projeto e o criador.",
|
||
"follow_title": "Siga no X",
|
||
"follow_desc": "Notas de versão, novos motores e, de vez em quando, uma espreitadela ao que vem a seguir. Prático se preferir não estar num servidor de chat.",
|
||
"follow_cta": "Seguir no X"
|
||
},
|
||
"permissions": {
|
||
"title": "Permissões",
|
||
"desc": "O VoiceStudio roda inteiramente no seu dispositivo — estas permissões do sistema são usadas apenas para os recursos listados aqui, e o áudio nunca sai da sua máquina.",
|
||
"microphone": "Microfone",
|
||
"microphone_why": "Usado para ditado e gravação de voz. O áudio é processado localmente.",
|
||
"accessibility": "Acessibilidade",
|
||
"accessibility_why": "Permite que o ditado cole ou digite o texto em outros aplicativos.",
|
||
"status_granted": "Concedida",
|
||
"status_denied": "Negada",
|
||
"status_prompt": "Ainda não solicitada",
|
||
"status_unknown": "Desconhecida",
|
||
"open_settings": "Abrir configurações",
|
||
"web_note": "O status das permissões só pode ser lido no aplicativo de desktop — no navegador, o acesso ao microfone é gerenciado pelo próprio navegador."
|
||
},
|
||
"asr_missing": {
|
||
"message": "Nenhum modelo de fala para texto está instalado — este recurso precisa de um para transcrever áudio.",
|
||
"download": "Baixar {{label}} ({{size}} GB)",
|
||
"started": "Baixando {{label}} — acompanhe o progresso em Configurações → Modelos e tente novamente.",
|
||
"install_failed": "Não foi possível iniciar o download: {{message}}",
|
||
"choose": "Escolha o modelo que se ajusta ao seu trabalho — precisão, idiomas e tamanho do download variam. Os downloads só começam ao clicar.",
|
||
"group_offline": "Melhor precisão — transcreve depois que você para de falar",
|
||
"group_streaming": "Menor latência — texto ao vivo enquanto você fala",
|
||
"use": "Usar {{label}}",
|
||
"installed": "Instalado"
|
||
},
|
||
"model_missing": {
|
||
"message": "Este modelo não foi baixado em {{target}}.",
|
||
"download": "Baixar modelo",
|
||
"download_size": "Baixar ({{size}})",
|
||
"started": "Baixando em {{target}} — tente Gerar novamente ao terminar.",
|
||
"failed": "Não foi possível iniciar o download: {{message}}",
|
||
"manual_worker": "Instale este mecanismo diretamente em {{target}}."
|
||
},
|
||
"backend_start_failure": {
|
||
"notice": "O backend do VoiceStudio não conseguiu iniciar — nada funcionará até que ele inicie.",
|
||
"view": "Ver o motivo",
|
||
"title": "O backend não conseguiu iniciar",
|
||
"intro": "O app registrou isto ao tentar iniciar o backend. Incluir esta saída em um relatório nos ajuda a corrigir.",
|
||
"output_title": "O que o app relatou",
|
||
"retry_hint": "Tente \"Tentar novamente\" em Configurações → Logs → Backend. Se falhar de novo, \"Limpar e tentar novamente\" reconstrói o ambiente do zero."
|
||
},
|
||
"crash": {
|
||
"notice_unclean": "A sessão anterior terminou sem um encerramento limpo há {{ago}}. Muitas vezes é inofensivo — o computador dormiu, o app foi encerrado à força ou uma VM/contêiner parou.",
|
||
"details_intro_unclean": "O marcador de encerramento da execução anterior nunca foi limpo, há {{ago}}. O VoiceStudio não consegue saber se foi uma falha ou apenas uma interrupção — suspender, forçar o encerramento ou parar uma VM/contêiner deixa o mesmo rastro. Se tudo funciona agora, não há nada a fazer.",
|
||
"report_needs_log": "Nenhuma saída de erro foi capturada para este evento, então um relatório de um clique ficaria vazio. Se algo estiver mesmo errado, anexe as últimas linhas de Configurações → Logs → Backend a uma nova issue."
|
||
},
|
||
"gpu": {
|
||
"local": "Local",
|
||
"picker": "Onde os trabalhos são executados",
|
||
"tasks": "tarefas",
|
||
"coverage": "apenas {{ops}}",
|
||
"opLocal": "Local — {{op}} ainda não é executado remotamente",
|
||
"dictationLocal": "O ditado é sempre executado nesta máquina",
|
||
"ops": {
|
||
"tts": "TTS",
|
||
"clone": "clonagem de voz",
|
||
"dub": "dublagem",
|
||
"audiobook": "renderização de audiolivros",
|
||
"longform": "narração de histórias",
|
||
"asr": "transcrição"
|
||
}
|
||
},
|
||
"compute": {
|
||
"add_machine": "Adicionar uma máquina",
|
||
"manage": "Configurações de workers remotos",
|
||
"off_hint": "Tudo é executado nesta máquina. Ative Remoto para usar outra.",
|
||
"quick_settings": "Computação — onde os trabalhos são executados",
|
||
"remote": "Remoto",
|
||
"title": "Onde os trabalhos são executados",
|
||
"token_once": "Escaneie ou cole isto na outra máquina. Mostrado apenas uma vez."
|
||
},
|
||
"voices": {
|
||
"active": "Voz ativa",
|
||
"active_clone_recipe": "Clonada a partir do seu clipe de referência",
|
||
"cta_clone": "Solte um clipe de 3 s em Voz ← para clonar uma",
|
||
"cta_design": "Descreva uma em Voz ← para desenhá-la",
|
||
"new": "Nova voz",
|
||
"none_selected": "Nenhuma voz selecionada — descreva uma, solte um áudio ou escolha abaixo."
|
||
},
|
||
"convert": {
|
||
"cloning_required": "Escolha um modelo de síntese de voz pronto para uso que permita clonar vozes.",
|
||
"source_kicker": "Clipe de origem",
|
||
"drop_audio": "Solte o clipe a converter — ou clique. WAV, MP3, M4A…",
|
||
"target_voice": "Voz de destino",
|
||
"pick_voice": "Escolha um perfil de voz…",
|
||
"match_duration": "Igualar duração de origem",
|
||
"match_duration_hint": "Estica o resultado no tempo (tom preservado) para se aproximar da duração do clipe de origem.",
|
||
"convert": "Converter",
|
||
"converting": "Convertendo…",
|
||
"transcript": "O que foi ouvido",
|
||
"result_kicker": "Take convertido",
|
||
"need_source_and_voice": "Adicione primeiro um clipe de origem e escolha uma voz de destino."
|
||
},
|
||
"player": {
|
||
"pause": "Pausar",
|
||
"play": "Reproduzir"
|
||
},
|
||
"dubIntegrity": {
|
||
"missingSpeech": "A fala está ausente ou ilegível. Gere novamente o segmento afetado antes de exportar.",
|
||
"timingOverflow": "A fala excede o intervalo de tempo. Encurte a tradução ou escolha um intervalo estrito ou estique o vídeo.",
|
||
"backgroundUnavailable": "Não foi possível preservar o som original. Verifique a separação do fundo e os tempos do diálogo e tente novamente, ou escolha exportar apenas a fala."
|
||
},
|
||
"dubStyle": {
|
||
"label": "Instruções de estilo de tradução",
|
||
"help": "Descreva o tom, o público e a adaptação, como preservar piadas e adaptar expressões naturalmente. Salvas no projeto para tradução e ajustes de duração. Deixe em branco para usar o estilo padrão."
|
||
},
|
||
"dubActivity": {
|
||
"output": "Traduções",
|
||
"waiting": "Nenhum resultado recebido ainda.",
|
||
"progress": "{{done}} / {{total}} segmentos validados",
|
||
"cancelled": "Cancelado",
|
||
"fitting": "Ajustando o tempo"
|
||
},
|
||
"sponsorSlot": {
|
||
"book": "Reserve seu espaço",
|
||
"preview": "Prévia do patrocinador",
|
||
"message": "Sua marca, site e mensagem",
|
||
"email_app": "Abrir app de e-mail",
|
||
"copy_email": "Copiar e-mail",
|
||
"preview_detail": "Seu logo, link e apresentação podem aparecer aqui."
|
||
},
|
||
"supportPlans": {
|
||
"remove": "Remover barra de patrocinadores",
|
||
"title": "Grátis vs Pro",
|
||
"free": "Grátis",
|
||
"pro": "Pro",
|
||
"sponsor_bar": "Barra de patrocinadores",
|
||
"visible": "Visível",
|
||
"hideable": "Pode ser ocultada",
|
||
"unavailable": "A ativação do Pro ainda não foi configurada.",
|
||
"telemetry": "Telemetria",
|
||
"opt_in": "Opcional, com consentimento",
|
||
"disabled": "Desativada",
|
||
"badge": "Selo Pro",
|
||
"advanced": "Ferramentas avançadas",
|
||
"standard": "Padrão",
|
||
"included": "Incluídas"
|
||
},
|
||
"integrationCatalog": {
|
||
"title": "Integrações",
|
||
"featured": "Destaque",
|
||
"description": "Descubra integrações e parceiros em destaque."
|
||
},
|
||
"directoryExamples": {
|
||
"example": "Exemplo do diretório",
|
||
"notice": "Apenas exemplos do diretório — não são patrocinadores nem integrações conectadas."
|
||
}
|
||
}
|