import type { TranslationResources } from "./en"; import { pluginSettings } from "./plugin-settings"; export const ptBR: TranslationResources = { common: { back: "Voltar", loading: "Carregando...", actions: { back: "Voltar", cancel: "Cancelar", close: "Fechar", copy: "Copiar", dismiss: "Dispensar", retry: "Tentar novamente", search: "Buscar", select: "Selecionar", }, placeholders: { search: "Buscar...", }, empty: { noResults: "Nenhum resultado encontrado", noOptionsMatchSearch: "Nenhuma opção corresponde à sua busca.", }, states: { loading: "Carregando...", starting: "Iniciando...", copied: "Copiado", copiedLabel: "{{label}} copiado", downloadComplete: "Download concluído", downloadFailed: "Falha no download", }, errors: { error: "Erro", unableToSave: "Não foi possível salvar", nameRequired: "O nome é obrigatório", daemonUnavailable: "Daemon indisponível", daemonClientUnavailable: "Cliente do daemon indisponível", daemonClientDisconnected: "O cliente do daemon está desconectado", noFileFound: "Nenhum arquivo encontrado para {{token}}", unexpectedDictationError: "Ocorreu um erro inesperado ao processar o ditado.", }, connectionStatus: { online: "Online", connecting: "Conectando", offline: "Offline", error: "Erro", idle: "Ocioso", }, }, shell: { menu: { toggleSidebar: "Alternar barra lateral", open: "Abrir menu", close: "Fechar menu", }, commandCenter: { placeholder: "Buscar comandos, arquivos, espaços de trabalho e agentes...", filePlaceholder: "Pesquisar arquivos...", searchingFiles: "Pesquisando arquivos...", noMatches: "Nenhuma correspondência", actions: "Ações", files: "Arquivos", workspaces: "Espaços de trabalho", agents: "Agentes", newAgent: "Novo agente", addProject: "Adicionar projeto", home: "Início", groupByProject: "Agrupar por projeto", groupByStatus: "Agrupar por status", modelGroupLabel: "Modelo", modelSearchKeywords: "trocar modelo mudar modelo definir modelo selecionar modelo", thinkingGroupLabel: "Raciocínio", thinkingSearchKeywords: "raciocínio esforço pensamento", modeGroupLabel: "Modo", modeSearchKeywords: "acesso permissão aprovação modo", planModeGroupLabel: "Modo plano", planModeSearchKeywords: "plano planejamento modo plano", fastModeGroupLabel: "Rápido", fastModeSearchKeywords: "rápido velocidade baixa latência", settingOn: "Ligado", settingOff: "Desligado", }, }, composer: { placeholders: { desktop: "Envie uma mensagem ao agente, marque @files ou use /commands e /skills", mobile: "Mensagem, @files, /commands", fallback: "Mensagem...", terminal: "Prompt", }, input: { accessibilityLabel: "Enviar mensagem ao agente...", terminalAccessibilityLabel: "Terminal prompt", focusHint: "{{shortcut}} para focar", addAttachment: "Adicionar anexo", interruptAgent: "Interromper agente", queueMessage: "Enfileirar mensagem", sendAndInterrupt: "Enviar e interromper", sendAndSteer: "Enviar e orientar", sendMessage: "Enviar mensagem", queue: "Fila", send: "Enviar", }, cancel: { cancelingAgent: "Cancelando agente", stopAgent: "Parar agente", interrupt: "Interromper", }, voice: { enableVoiceMode: "Ativar modo de voz", voiceMode: "Modo de voz", unmuteVoiceMode: "Ativar som do modo de voz", muteVoiceMode: "Silenciar modo de voz", stopDictation: "Parar ditado", startDictation: "Iniciar ditado", unmuteVoice: "Ativar som da voz", muteVoice: "Silenciar voz", dictation: "Ditado", interruptBeforeVoice: "Interrompa o agente antes de iniciar o modo de voz", }, attachments: { addImage: "Adicionar imagem", pasteImage: "Colar imagem", addFile: "Enviar arquivo", addIssueOrPr: "Adicionar issue ou PR", addIssueOrPr_mr: "Adicionar issue ou MR", dropImagesHere: "Solte imagens aqui", dropFilesHere: "Solte arquivos aqui", editQueuedMessage: "Editar mensagem na fila", sendQueuedMessageNow: "Enviar mensagem da fila agora", openImage: "Abrir anexo de imagem", removeImage: "Remover anexo de imagem", removeFile: "Remover anexo de arquivo", openGithub: "Abrir {{kind}} {{number}}", removeGithub: "Remover {{kind}} {{number}}", element: "Elemento", openBrowserElement: "Abrir anexo de elemento do navegador", removeBrowserElement: "Remover anexo de elemento do navegador", openReview: "Abrir anexo de revisão", removeReview: "Remover anexo de revisão", }, errors: { failedToSend: "Falha ao enviar mensagem", failedToCreateAgent: "Falha ao criar agente", noHostSelected: "Nenhum host selecionado", initialPromptRequired: "O prompt inicial é obrigatório", alreadyLoading: "Já está carregando", uploadFailed: "Falha ao enviar arquivo", noClipboardImage: "Não há imagem na área de transferência", pasteImageFailed: "Falha ao colar a imagem", fileTooLarge: "{{fileName}} é grande demais (máximo {{size}})", }, clientCommands: { archiveAgent: "Arquivar o agente atual", freshDraft: "Arquivar este agente e iniciar um novo rascunho", }, github: { searching: "Buscando...", noResults: "Nenhum resultado encontrado.", searchPlaceholder: "Buscar issues e PRs...", searchPlaceholder_mr: "Buscar issues e MRs...", title: "Anexar issue ou PR", title_mr: "Anexar issue ou MR", }, }, agentControls: { provider: { fallback: "Provedor", select: "Selecionar provedor do agente", }, thinking: { title: "Raciocínio", unknown: "Desconhecido", extraHigh: "Extra alto", select: "Selecionar opção de raciocínio", selectWithValue: "Selecionar opção de raciocínio ({{value}})", }, model: { unknown: "Modelo desconhecido", }, features: { title: "Recursos", open: "Abrir recursos do agente", on: "Ativado", off: "Desativado", }, mode: { title: "Modo", searchPlaceholder: "Buscar modos...", selectWithValue: "Selecionar modo do agente ({{value}})", }, hints: { thinking: "Modo de raciocínio", model: "Alterar modelo", mode: "Alterar modo de permissão", }, }, agentStream: { empty: "Comece a conversar com este agente...", scrollToBottom: "Rolar para o fim", historyLoadFailed: "Não foi possível carregar o histórico do agente", permission: { plan: "Plano", required: "Permissão necessária", deny: "Negar", accept: "Aceitar", implement: "Implementar", question: "Como você quer prosseguir?", proposedPlan: "Plano proposto", }, }, agentPanel: { states: { notFound: "Agente não encontrado", failedToLoad: "Falha ao carregar agente", reconnecting: "Reconectando", timelineSyncFailed: "Não foi possível atualizar o histórico do agente. Tentando novamente…", archivingTitle: "Arquivando agente...", archivingSubtitle: "Aguarde enquanto arquivamos este agente.", }, unavailable: { selectedHost: "Host selecionado", unknownHost: "Não é possível abrir este agente porque {{serverLabel}} não está configurado neste dispositivo.", addHost: "Adicione o host nas Configurações ou abra um agente em um servidor configurado para continuar.", preparingSession: "Preparando sessão de {{serverLabel}}...", connecting: "Conectando a {{serverLabel}}...", showSoon: "Mostraremos este agente em instantes.", showWhenOnline: "Mostraremos este agente quando o host estiver online.", reconnectingTo: "Reconectando a {{serverLabel}}...", showAgainWhenReachable: "Mostraremos este agente novamente assim que o host estiver acessível.", }, archived: { callout: "Este agente está arquivado", unarchive: "Desarquivar", }, }, sessions: { title: "Histórico de agentes", empty: "Nenhuma sessão ainda", noMatches: "Nenhuma sessão corresponde", tooManyMatches: "Muitos resultados — refine a busca", hostLoadFailed: "{{host}}: Não foi possível carregar o histórico", searchPlaceholder: "Buscar no histórico", actions: { loadMore: "Carregar mais", clearSearch: "Limpar busca", }, }, agentList: { fallbackTitle: "Nova sessão", dateSections: { recent: "Recentes", today: "Hoje", yesterday: "Ontem", thisWeek: "Esta semana", thisMonth: "Este mês", older: "Mais antigas", }, status: { initializing: "Iniciando", idle: "Ocioso", running: "Em execução", error: "Erro", closed: "Fechada", }, badges: { archived: "Arquivado", pending: "{{count}} pendente(s)", attention: "Atenção", }, archiveSheet: { hostOffline: "Host offline", runningAgent: "Este agente ainda está em execução. Arquivá-lo interromperá o agente.", archive: "Arquivar", }, }, message: { diagram: { diagram: "Diagrama", zoomIn: "Aproximar", zoomOut: "Afastar", resetZoom: "Redefinir visualização", viewSource: "Ver fonte", viewDiagram: "Ver diagrama", }, actions: { copyCode: "Copiar código", copyTurn: "Copiar turno", copyMessage: "Copiar mensagem", forkMenu: "Bifurcar mensagem", forkInNewTab: "Bifurcar em uma nova aba", forkInNewWorkspace: "Bifurcar em um novo workspace", forkUnavailable: "Atualize o host para usar isto.", forkMissingWorkspace: "Este agente não está em um workspace.", forkFailed: "Falha ao bifurcar o chat", openFile: "Abrir arquivo", copied: "Copiado", }, attachments: { dismissImage: "Dispensar imagem", closeImage: "Fechar imagem", imageLoadFailed: "Não foi possível carregar a imagem", imageUnavailable: "Imagem indisponível", imagePreviewUnavailable: "Prévia da imagem indisponível.", imagePreviewLoadFailed: "Não foi possível carregar a prévia da imagem.", review: "Revisão", commentsOne: "1 comentário", commentsMany: "{{count}} comentários", textAttachment: "Anexo de texto", text: "Texto", file: "Arquivo", }, speak: { header: "Falou", }, activity: { details: "Detalhes", }, dictation: { start: "Iniciar ditado por voz", cancel: "Cancelar ditado", retry: "Tentar ditado novamente", insert: "Inserir transcrição", insertAndSend: "Inserir transcrição e enviar", failed: "Falha no ditado: {{error}}", failedRetry: "Falha no ditado. Toque para tentar novamente.", }, question: { submit: "Enviar", next: "Próximo", answerPlaceholder: "Digite sua resposta...", otherPlaceholder: "Outro...", }, todo: { title: "Tarefas", empty: "Nenhuma tarefa ainda.", tasksProgress: "{{completed}}/{{total}} tarefas", activity: { created: "{{count}} tarefas criadas", added: "Adicionada", started: "Iniciada", completed: "Concluída", reopened: "Reaberta", }, }, compaction: { loading: "Compactando...", auto: "Contexto compactado automaticamente", manual: "Contexto compactado manualmente", withTokens: "Contexto compactado ({{tokens}}K tokens)", completed: "Contexto compactado", }, }, importSession: { title: "Importar sessão", filters: { all: "Tudo", }, status: { connectHost: "Conecte-se a um host para importar sessões", updateHost: "Atualize o host para importar sessões.", noProviders: "Nenhum provedor importável está ativado.", loading: "Carregando sessões recentes...", failedAll: "Não foi possível carregar sessões recentes.", failedProviders: "Não foi possível carregar sessões de {{providers}}.", failedImport: "Não foi possível importar a sessão selecionada.", }, actions: { refresh: "Atualizar sessões", }, preview: { untitledSession: "Sessão sem título", noPrompt: "Nenhuma prévia de prompt", }, empty: { noRecent: "Nenhuma sessão recente para importar.", alreadyImported: "Todas as sessões recentes já foram importadas.", noProviderSessions: "Nenhuma sessão de {{provider}} encontrada.", }, row: { importing: "Importando...", }, }, workspace: { route: { loading: "Carregando workspace", connecting: "Conectando", hostOffline: "{{hostName}} está offline", cannotReachHost: "Não é possível acessar {{hostName}}", hostStatus: "Status do host: {{status}}", needsHostUpgrade: "Atualize o host para restaurar este workspace", manageHost: "Gerenciar host", recovery: { archivedTitle: "Workspace arquivado", restoreDescription: "{{workspaceName}} foi arquivado e sua worktree foi removida. Restaure a branch {{branch}} para abri-lo novamente.", unarchiveDescription: "{{workspaceName}} está arquivado. Desarquive-o para abri-lo novamente.", restoreAction: "Restaurar", unarchiveAction: "Desarquivar", restoringTitle: "Restaurando workspace", restoringAction: "Restaurando...", unavailableTitle: "Workspace indisponível", checkFailedTitle: "Não foi possível verificar o workspace", }, }, hoverCard: { scriptsAccessibility: "Scripts do workspace", copyPath: "Copiar caminho", copyBranchName: "Copiar nome da branch", copied: "Copiado", }, fileActions: { openFile: "Abrir arquivo", copyPath: "Copiar caminho", copyRelativePath: "Copiar caminho relativo", revealIn: "Mostrar no {{target}}", download: "Baixar", addToChat: "Adicionar ao chat", moreActions: "Mais ações", newFile: "Novo arquivo", newFolder: "Nova pasta", collapseFolder: "Recolher pasta", rename: "Renomear", duplicate: "Duplicar", revert: "Descartar alterações", delete: "Excluir", confirmDelete: { fileTitle: "Excluir arquivo?", folderTitle: "Excluir pasta?", message: '"{{name}}" será excluído permanentemente.', confirm: "Excluir", cancel: "Cancelar", }, confirmRevert: { title: "Descartar alterações?", message: 'As alterações em "{{name}}" serão descartadas permanentemente.', confirm: "Descartar", cancel: "Cancelar", failed: "Falha ao descartar alterações", }, }, fileExplorer: { sort: { name: "Nome", modified: "Modificado", size: "Tamanho", }, context: { size: "Tamanho", modified: "Modificado", }, actions: { back: "Voltar", retry: "Tentar novamente", refresh: "Atualizar arquivos", refreshing: "Atualizando arquivos", hideHiddenFiles: "Ocultar arquivos ocultos", showHiddenFiles: "Mostrar arquivos ocultos", }, empty: { noFiles: "Nenhum arquivo", noVisibleFiles: "Nenhum arquivo visível", }, states: { unavailable: "Workspace indisponível", loading: "Carregando arquivos...", }, errors: { failedToListDirectory: "Falha ao listar diretório", createFailed: "Falha ao criar entrada", renameFailed: "Falha ao renomear entrada", duplicateFailed: "Falha ao duplicar entrada", revealFailed: "Falha ao mostrar entrada", deleteFailed: "Falha ao excluir entrada", }, draft: { filePlaceholder: "Nome do arquivo", folderPlaceholder: "Nome da pasta", }, }, setup: { descriptor: { label: "Configuração", completed: "Configuração concluída", failed: "Falha na configuração", workspace: "Configuração do workspace", }, status: { running: "Em execução", completed: "Concluído", failed: "Falhou", waiting: "Aguardando saída da configuração", }, waiting: "Configurando workspace...", empty: { noCommands: "Nenhum comando de configuração foi executado para este workspace.", }, accessibility: { noCommands: "Nenhum comando de configuração foi executado para este workspace", log: "Log de configuração do workspace", }, log: { noOutput: "Nenhuma saída", }, }, browser: { unavailable: { title: "O navegador é exclusivo do desktop", subtitle: "Abra este workspace no Electron para usar o navegador integrado.", }, session: "Sessão do navegador {{browserId}}", controls: { back: "Voltar", forward: "Avançar", stopLoading: "Parar carregamento", refresh: "Atualizar", browserUrl: "URL do navegador", enterUrl: "Inserir URL", openDevTools: "Abrir ferramentas de desenvolvedor do navegador", cancelSelector: "Cancelar seletor de elemento", annotateElement: "Anotar elemento", screenshotElement: "Capturar elemento", screenshotCopied: "Captura copiada para a área de transferência", elementCopied: "Elemento copiado para a área de transferência", screenshotFailed: "Não foi possível copiar a captura", selectorLoading: "Aguarde o carregamento da página terminar", selectorFailed: "Não foi possível iniciar o seletor de elemento", }, annotate: { title: "Anotar elemento", placeholder: "Mensagem ao agente sobre este elemento…", submit: "Anexar", cancel: "Cancelar", }, devices: { label: "Tamanho do dispositivo", responsive: "Responsivo", }, errors: { failedToLoad: "Falha ao carregar página", invalidUrl: "URL de navegador inválida", unsupportedProtocol: "URL de navegador sem suporte bloqueada: {{protocol}}", }, }, terminal: { hostDisconnected: "Host não está conectado", updateHost: "Atualize o host para usar o renderizador de terminal nativo.", unableToSubscribe: "Não foi possível assinar o terminal", }, tabs: { loading: "Carregando...", modified: "Alterações não salvas", loadingAgentTitle: "Carregando título do agente", emptyPane: "Nenhuma aba neste painel.", fallback: { newAgent: "Novo agente", setup: "Configuração", workspaceSetup: "Configuração do workspace", terminal: "Terminal", browser: "Navegador", agent: "Agente", workspace: "Workspace", }, switcher: { trigger: "Alternar abas ({{count}} abertas)", title: "Alternar aba", searchPlaceholder: "Buscar abas", }, menu: { openFor: "Abrir menu de {{label}}", copyResumeCommand: "Copiar comando de retomada", copyAgentId: "Copiar ID do agente", copyTerminalId: "Copiar ID do terminal", copyFilePath: "Copiar caminho do arquivo", rename: "Renomear", closeAbove: "Fechar abas acima", closeBelow: "Fechar abas abaixo", closeLeft: "Fechar à esquerda", closeRight: "Fechar à direita", closeOthers: "Fechar outras abas", reloadAgent: "Recarregar agente", reloadAgentTooltip: "Recarregue o agente para atualizar skills, MCPs ou status de login.", close: "Fechar", renameTerminal: "Renomear terminal", renameAgent: "Renomear agente", }, actions: { newTab: "Nova aba", newAgent: "Novo agente", newTerminal: "Novo terminal", preparingTerminal: "Preparando aba de terminal", preparingTerminalTooltip: "Preparando terminal...", newBrowser: "Novo navegador", maximizePane: "Maximizar painel", restorePane: "Restaurar painel", exitFocusMode: "Sair do modo de foco", splitRight: "Dividir painel à direita", splitDown: "Dividir painel abaixo", changes: "Alterações", files: "Arquivos", pullRequest: "Pull request", terminalProfilesMenu: "Perfis de terminal", editTerminalProfiles: "Editar perfis…", }, explorer: { open: "Abrir explorador", close: "Fechar explorador", toggle: "Alternar explorador", changes: "Alterações", files: "Arquivos", }, toasts: { copyFailed: "Falha ao copiar", agentIdCopiedLabel: "ID do agente", terminalIdCopiedLabel: "ID do terminal", resumeCommandCopiedLabel: "comando de retomada", filePathCopiedLabel: "Caminho do arquivo", resumeIdUnavailable: "ID de retomada indisponível", resumeCommandUnavailable: "Comando de retomada indisponível", reloadingAgent: "Recarregando agente...", reloadedAgent: "Agente recarregado", failedToReloadAgent: "Falha ao recarregar agente", failedToCloseAgent: "Falha ao fechar agente", }, confirmations: { unsavedTitle: "Alterações não salvas", unsavedMessage: "Esta aba tem alterações não salvas. Fechá-la descartará o rascunho.", closeWithoutSaving: "Fechar sem salvar", closePaneTitle: "Fechar painel?", bulkUnsaved: "{{count}} aba(s) têm alterações não salvas. Fechar descartará esses rascunhos.", close: "Fechar", cancel: "Cancelar", archive: "Arquivar", closeTerminalTitle: "Fechar terminal?", closeTerminalMessage: "Qualquer processo em execução neste terminal será interrompido imediatamente.", archiveRunningAgentTitle: "Arquivar agente em execução?", archiveRunningAgentMessage: "Este agente ainda está em execução. Arquivá-lo interromperá o agente e fechará a aba.", closeTabsLeftTitle: "Fechar abas à esquerda?", closeTabsRightTitle: "Fechar abas à direita?", closeOtherTabsTitle: "Fechar outras abas?", bulk: { all: "Isso vai arquivar {{agents}} agente(s), fechar {{terminals}} terminal(ais) e fechar {{tabs}} aba(s). Qualquer processo em execução em um terminal fechado será interrompido imediatamente.", agentsAndTerminals: "Isso vai arquivar {{agents}} agente(s) e fechar {{terminals}} terminal(ais). Qualquer processo em execução em um terminal fechado será interrompido imediatamente.", terminalsAndTabs: "Isso vai fechar {{terminals}} terminal(ais) e fechar {{tabs}} aba(s). Qualquer processo em execução em um terminal fechado será interrompido imediatamente.", agentsAndTabs: "Isso vai arquivar {{agents}} agente(s) e fechar {{tabs}} aba(s).", terminals: "Isso vai fechar {{terminals}} terminal(ais). Qualquer processo em execução em um terminal fechado será interrompido imediatamente.", tabs: "Isso vai fechar {{tabs}} aba(s).", agents: "Isso vai arquivar {{agents}} agente(s).", }, }, }, header: { actions: { workspaceActions: "Ações do workspace", newAgent: "Novo agente", newTerminal: "Novo terminal", newBrowser: "Nova aba de navegador", importSession: "Importar sessão", copyPath: "Copiar caminho do workspace", copyBranchName: "Copiar nome da branch", showSetup: "Mostrar configuração", }, toasts: { workspacePathUnavailable: "O caminho do workspace ainda não está disponível", branchNameUnavailable: "Nome da branch indisponível", terminalQueued: "Preparando workspace, abrindo terminal quando estiver pronto...", workspacePathCopiedLabel: "Caminho do workspace", branchNameCopiedLabel: "Nome da branch", }, }, scripts: { title: "Scripts", actions: { chooseUrl: "Escolher URL", copyUrl: "Copiar URL", openService: "Ver serviço", restart: "Reiniciar", run: "Executar", stop: "Parar", view: "Ver terminal", }, accessibility: { trigger: "Scripts do workspace", openService: "Ver serviço {{scriptName}}", viewTerminal: "Ver terminal de {{scriptName}}", runScript: "Executar script {{scriptName}}", stopScript: "Parar {{scriptName}}", restartScript: "Reiniciar {{scriptName}}", copyUrl: "Copiar URL de {{scriptName}}", chooseUrl: "Escolher URL para {{scriptName}}", script: "script {{scriptName}}", }, routes: { public: "Proxy reverso", paseo: "Memorable", direct: "Direta", }, states: { exitCode: "saída {{code}}", startFailed: "Falha ao iniciar {{scriptName}}", stopFailed: "Falha ao parar {{scriptName}}", }, }, git: { actions: { moreOptions: "Mais opções", moreActions: "Mais ações", commit: { label: "Commit", pending: "Fazendo commit...", success: "Commit concluído", }, pull: { label: "Pull", pending: "Fazendo pull...", success: "Pull concluído", }, push: { label: "Push", pending: "Fazendo push...", success: "Push concluído", }, pullAndPush: { label: "Pull e push", pending: "Fazendo pull e push...", success: "Pull e push concluídos", }, viewPr: "Ver PR", createPr: { label: "Criar PR", pending: "Criando PR...", success: "PR criada", label_mr: "Criar MR", pending_mr: "Criando MR...", success_mr: "MR criada", }, mergeBranch: { label: "Fazer merge localmente", pending: "Fazendo merge...", success: "Mergeada", }, mergeFromBase: { label: "Atualizar a partir de {{baseRef}}", pending: "Atualizando...", success: "Atualizado", }, archive: { label: "Arquivar workspace", pending: "Arquivando...", success: "Arquivado", }, mergePr: { squash: "Merge", merge: "Merge", rebase: "Merge", pending: "Fazendo merge da PR...", success: "PR mergeada", squash_mr: "Merge", merge_mr: "Merge", rebase_mr: "Merge", pending_mr: "Fazendo merge da MR...", success_mr: "MR mergeada", }, viewPr_mr: "Ver MR", autoMerge: { enableSquash: "Merge automático", enableMerge: "Merge automático", enableRebase: "Merge automático", enabled: "Merge automático ativado", enabling: "Ativando merge automático...", disabling: "Desativando merge automático...", disabled: "Merge automático desativado", }, unavailable: { viewPrNoForge: "Ver {{noun}} não está disponível agora porque o {{brand}} não está conectado", pullNoRemote: "Pull não está disponível aqui porque esta branch ainda não está conectada a um remoto", pullDirty: "Pull não está disponível enquanto há alterações locais. Faça commit ou stash primeiro", pullUpToDate: "Pull não está disponível porque esta branch já está atualizada", pushNoRemote: "Push não está disponível aqui porque esta branch ainda não está conectada a um remoto", pushBehind: "Push ainda não está disponível porque há alterações mais recentes para trazer primeiro", pushNothing: "Push não está disponível porque não há nada novo para enviar", pullAndPushNoRemote: "Pull e push não estão disponíveis aqui porque esta branch ainda não está conectada a um remoto", pullAndPushDirty: "Pull e push não estão disponíveis enquanto há alterações locais. Faça commit ou stash primeiro", pullAndPushNoIncoming: "Pull e push não estão disponíveis porque não há alterações de entrada para puxar primeiro", pullAndPushInSync: "Pull e push não estão disponíveis porque esta branch já está sincronizada", pullAndPushNothingToPush: "Pull e push não estão disponíveis porque não há nada novo para enviar depois do pull", createPrNoForge: "Criar {{noun}} não está disponível agora porque o {{brand}} não está conectado", createPrNoCommits: "Criar PR não está disponível porque esta branch ainda não tem commits novos", mergeNoBase: "Merge não está disponível porque não foi possível determinar a branch base", mergeDirty: "Merge não está disponível enquanto há alterações locais. Faça commit ou stash primeiro", mergeNothing: "Merge não está disponível porque esta branch ainda não tem nada novo para merge", updateNoBase: "Atualizar não está disponível porque não foi possível determinar a branch base", updateDirty: "Atualizar não está disponível enquanto há alterações locais. Faça commit ou stash primeiro", updateCurrent: "Atualizar não está disponível porque esta branch já está atualizada com {{baseRef}}", mergePrNoGithub: "Merge da PR não está disponível agora porque o GitHub não está conectado", archiveNotWorktree: "Arquivar não está disponível aqui porque este workspace não foi criado como um worktree do Paseo", mergePrNoForge: "Merge da {{noun}} não está disponível agora porque o {{brand}} não está conectado", mergePrMissing: "Merge da PR não está disponível porque ainda não há uma pull request", mergePrDraft: "Merge da PR não está disponível porque a pull request ainda é um rascunho", mergePrMerged: "Merge da PR não está disponível porque a pull request já foi mergeada", mergePrClosed: "Merge da PR não está disponível porque a pull request está fechada", mergePrConflicts: "Merge da PR não está disponível porque a pull request tem conflitos", mergePrQueue: "Merge da PR não está disponível aqui porque este repositório usa uma merge queue", mergePrNotReady: "Merge da {{noun}} não está disponível até o {{brand}} informar que a {{noun}} está pronta para merge", autoMergeCannotDisable: "O merge automático está ativado, mas esta conta não pode desativá-lo", }, toasts: { failedCommit: "Falha ao fazer commit", failedPull: "Falha ao fazer pull", failedPush: "Falha ao fazer push", failedPullAndPush: "Falha ao fazer pull e push", failedCreatePr: "Falha ao criar PR", failedMergePr: "Falha ao fazer merge da PR", failedEnableAutoMerge: "Falha ao ativar merge automático", failedDisableAutoMerge: "Falha ao desativar merge automático", baseRefUnavailable: "Ref base indisponível", failedMerge: "Falha ao fazer merge", failedMergeFromBase: "Falha ao fazer merge da base", }, archiveWarning: { title: 'Arquivar "{{workspaceName}}"?', confirm: "Arquivar", cancel: "Cancelar", uncommittedChanges: "Alterações sem commit", uncommittedChangesWithDiff: "Alterações sem commit ({{diffStat}})", addedLine: "{{count}} linha adicionada", addedLines: "{{count}} linhas adicionadas", deletedLine: "{{count}} linha removida", deletedLines: "{{count}} linhas removidas", unpushedCommit: "{{count}} commit não enviado", unpushedCommits: "{{count}} commits não enviados", }, }, diff: { openChangesTab: "Abrir a aba Alterações", closeChangesTab: "Fechar a aba Alterações", binaryFile: "Arquivo binário", tooLarge: "Diff grande demais para exibir", previewTooLargeTitle: "Este diff é grande demais para visualizar", previewTooLargeDescription: "Reduza a comparação para visualizá-la aqui", unified: "Diff unificado", split: "Diff lado a lado", switchToUnified: "Alternar para diff unificado", switchToSplit: "Alternar para diff lado a lado", showTreeView: "Mostrar árvore de pastas", hideTreeView: "Ocultar árvore de pastas", options: "Opções do diff", hideWhitespace: "Ocultar espaços em branco", showWhitespace: "Mostrar espaços em branco", scrollLongLines: "Rolar linhas longas", wrapLongLines: "Quebrar linhas longas", collapseAllFolders: "Recolher todas as pastas", expandAllFolders: "Expandir todas as pastas", collapseAllFiles: "Recolher todos os arquivos", expandAllFiles: "Expandir todos os arquivos", refreshing: "Atualizando", refresh: "Atualizar", refreshState: "Atualizar estado do git e do {{brand}}", failedRefresh: "Falha ao atualizar estado do git.", emptyHiddenWhitespace: "Nenhuma alteração visível após ocultar espaços em branco", emptyUncommitted: "Nenhuma alteração sem commit", emptyAgainstBase: "Nenhuma alteração vs {{baseRef}}", checkingRepository: "Verificando repositório...", notRepository: "Não é um repositório git", diffMode: "Modo de diff", uncommitted: "Sem commit", committed: "Com commit", branchUnknown: "Desconhecido", base: "base", newFile: "Novo", deletedFile: "Excluído", modifiedFile: "Modificado", commits: { title: "Commits", countLabel: "{{count}} commits do espaço de trabalho", noneAhead: "Ainda não há commits à frente de {{baseRef}}", fileDiffEmpty: "Nenhuma alteração para exibir", fileDiffError: "Falha ao carregar diff do arquivo", loading: "Carregando commits…", loadError: "Falha ao carregar commits", empty: "Ainda não há commits", }, }, openInEditor: { open: "Abrir", chooseEditor: "Escolher editor", openIn: "Abrir workspace em {{target}}", openFileIn: "Abrir {{fileName}} em {{target}}", failedOpen: "Falha ao abrir workspace", }, pr: { actions: { viewPullRequest: "Ver", openOn: "Abrir no {{brand}}", }, checksSummary: { passedLabel: "passou", failedLabel: "falhou", runningLabel: "em andamento", passedAccessible: "Verificações aprovadas", failedAccessible: "Verificações com falha", runningAccessible: "Verificações em andamento", }, sections: { checks: "Verificações", pipeline: "Pipeline", reviews: "Revisões", }, empty: { noJobs: "Sem jobs", loadingPipeline: "Carregando pipeline...", pipelineJobsLoadFailed: "Não foi possível carregar os jobs do pipeline", allowedToFail: "permitido falhar", }, approvals: "{{given}} de {{required}} aprovações", accessibility: { pullRequest: "Pull request #{{number}}", pullRequest_mr: "Merge request !{{number}}", }, states: { draft: "Rascunho", merged: "Mergeada", closed: "Fechada", open: "Aberta", }, activity: { commented: "Comentou", approved: "Aprovado", requestedChanges: "Solicitou alterações", reviewed: "Revisado", }, time: { justNow: "agora mesmo", }, thread: { discussion: "Tópico de discussão", }, errors: { statusLoadFailed: "Não foi possível carregar o status da pull request", activityLoadFailed: "Não foi possível carregar a atividade da pull request", }, }, forgeSetup: { installCli: "Instale a CLI {{cli}} para usar os recursos do {{brand}}.", signIn: "Execute {{command}} para usar os recursos do {{brand}}.", generic: "Configure o {{brand}} neste host para usar seus recursos.", }, }, }, sidebar: { display: { trigger: "Preferências de exibição", heading: "Exibição", grouping: { label: "Agrupamento", project: "Projeto", status: "Status", }, titleSource: { label: "Título", title: "Título", branch: "Nome da branch", }, show: { label: "Mostrar", branch: "Branch", project: "Projeto", host: "Host", changeRequest: "Pull request", checks: "Verificações", services: "Serviços", diff: "Estatísticas de diff", timestamp: "Última atividade", }, checks: { iconAndText: "Ícone e texto", icon: "Somente ícone", none: "Oculto", }, hostFilter: { label: "Host", all: "Todos os hosts", }, }, pinned: { title: "Fixados", }, host: { noHost: "Nenhum host", switchTitle: "Trocar host", searchPlaceholder: "Buscar hosts...", }, actions: { addProject: "Adicionar projeto", newWorkspace: "Novo workspace", hosts: "Hosts", home: "Início", settings: "Configurações", closeSidebar: "Fechar barra lateral", }, help: { trigger: "Ajuda e suporte", sectionHelp: "Ajuda", diagnostics: "Executar diagnóstico", shortcuts: "Atalhos de teclado", reportIssue: "Relatar um problema", discord: "Discord", github: "Criar issue no GitHub", whatsNew: "Novidades", appName: "Paseo", }, sections: { sessions: "Histórico", schedules: "Agendamentos", }, worktreeSetup: { title: "Configurar scripts de worktree", description: "Adicione comandos de configuração para que novos worktrees instalem dependências e se preparem automaticamente.", openProjectSettings: "Abrir configurações do projeto", }, project: { actions: { menu: "Ações do projeto", openSettings: "Abrir configurações do projeto", openNewWindow: "Abrir em nova janela", openNewWindowFailed: "Não foi possível abrir uma nova janela", openFolder: "Open in file manager", openFolderFailed: "Couldn't open folder", remove: "Remover projeto", removing: "Removendo...", }, confirmations: { removeTitle: "Remover projeto?", removeMessage: 'Remover "{{projectName}}" da barra lateral?\n\nOs arquivos no disco não serão alterados.', removeConfirm: "Remover", cancel: "Cancelar", }, toasts: { hostDisconnected: "Host não está conectado", removeFailed: "Falha ao remover alguns workspaces", updateHostToRemove: "Atualize o host para remover projetos.", }, empty: { title: "Nenhum projeto ainda", description: "Adicione um projeto para começar", }, }, workspace: { status: { serviceRunning: "Serviço {{name}} em execução", serviceUnhealthy: "Serviço {{name}} com falha", creating: "Criando...", }, actions: { menu: "Ações do workspace", newWorkspace: "Novo workspace", showMore: "Mostrar mais", showLess: "Mostrar menos", createWorkspaceFor: "Criar um novo workspace para {{projectName}}", copyPath: "Copiar caminho", copyBranchName: "Copiar nome da branch", rename: "Renomear workspace", pin: "Fixar no topo", unpin: "Desafixar", archive: "Arquivar", archiveWorkspace: "Arquivar workspace", hideFromSidebar: "Ocultar da barra lateral", archiving: "Arquivando...", hiding: "Ocultando...", }, confirmations: { hideTitle: "Ocultar workspace?", hideMessage: 'Ocultar "{{workspaceName}}" da barra lateral?\n\nOs arquivos no disco não serão alterados.', hideConfirm: "Ocultar", cancel: "Cancelar", }, rename: { title: "Renomear workspace", submit: "Renomear", invalidBranchName: "Nome de branch inválido", }, toasts: { workspacePathUnavailable: "Caminho do workspace indisponível", pathCopied: "Caminho copiado", branchNameCopied: "Nome da branch copiado", hostDisconnected: "Host não está conectado", hideFailed: "Falha ao ocultar workspace", archiveFailed: "Falha ao arquivar workspace", }, }, }, newWorkspace: { title: "Novo workspace", create: "Criar", isolation: { local: "Local", worktree: "Novo worktree", label: "Isolamento", }, fields: { project: "Projeto", base: "Base", baseNotApplicable: "Não aplicável", }, titlePlaceholder: "Título (opcional)", errors: { hostDisconnected: "Host não está conectado", createWorktreeFailed: "Falha ao criar worktree", composerStateRequired: "O estado do composer é obrigatório", selectModel: "Selecione um modelo", }, tooltips: { project: "Choose the project", host: "Choose the host", isolation: "Choose the isolation level", startingRef: "Escolha de onde começar", launch: "Choose what to launch", }, refPicker: { startingRef: "Ref inicial", intoBase: "em {{baseRef}}", searching: "Buscando...", noMatchingRefs: "Nenhuma ref correspondente.", searchPlaceholder: "Buscar branches e PRs", title: "Começar de", }, launch: { title: "What to launch", chat: "Chat", terminal: "Terminal", manageProfiles: "Manage profiles", submit: "Launch", promptPlaceholder: "Prompt {{name}}", commandPlaceholder: "Run a command, or leave empty for a blank terminal", }, }, desktop: { quitting: { title: "Saindo do Paseo...", detail: "Parando o daemon local.", }, daemon: { title: "Daemon", status: { title: "Status", builtInOnly: "Apenas o daemon desktop integrado é exibido aqui", running: "em execução", notRunning: "não está em execução", pid: "PID {{pid}}", }, management: { title: "Gerenciar daemon integrado", hint: "Permitir que o Paseo inicie e pare o daemon integrado", pauseTitle: "Pausar daemon integrado", pauseMessage: "Isso vai parar o daemon integrado imediatamente. Agentes e terminais em execução conectados ao daemon integrado serão interrompidos.", pauseAndStop: "Pausar e parar", registrationFailed: "O daemon integrado foi iniciado, mas o Paseo não conseguiu salvar a conexão localhost. Desative e reative o gerenciamento do daemon ou adicione localhost manualmente.", pausedStopFailed: "O gerenciamento do daemon integrado foi pausado, mas o Paseo não conseguiu parar o daemon.", updateFailed: "Não foi possível atualizar o gerenciamento do daemon integrado.", }, keepRunning: { title: "Manter daemon em execução ao sair", hint: "O daemon continua em execução quando você sai do Paseo", }, logs: { title: "Arquivo de log", modalTitle: "Logs do daemon", unavailable: "Caminho do log indisponível", empty: "(arquivo de log vazio)", copied: "Caminho do log copiado.", copyFailed: "Não foi possível copiar o caminho do log.", open: "Abrir logs", copyPath: "Copiar caminho", }, fullStatus: { title: "Status completo", modalTitle: "Status do daemon", hint: "Executa `paseo daemon status` e mostra a saída", view: "Ver status", copied: "Status copiado para a área de transferência.", fetchFailed: "Falha ao buscar status do daemon: {{message}}", }, advancedSettings: "Configurações avançadas", openAdvancedSettings: "Abrir configurações avançadas do daemon", versionMismatch: "As versões do app e do daemon não coincidem. Atualize ambos para a mesma versão para a melhor experiência.", loadFailed: "Não foi possível carregar o status do daemon desktop.", }, updates: { status: { checking: "Verificando atualizações do app...", installing: "Instalando atualização do app...", upToDate: "O app está atualizado.", upToDateWithLastChecked: "Atualizado. Última verificação às {{time}}.", pending: "Avisaremos quando a atualização estiver pronta.", pendingWithLastChecked: "Avisaremos quando a atualização estiver pronta. Última verificação às {{time}}.", pendingWithVersion: "Atualização encontrada: {{version}}. Baixando...", pendingWithVersionAndLastChecked: "Atualização encontrada: {{version}}. Baixando... Última verificação às {{time}}.", availableWithVersion: "Atualização pronta: {{version}}", availableWithVersionAndLastChecked: "Atualização pronta: {{version}}. Última verificação às {{time}}.", available: "Há uma atualização do app pronta para instalar.", availableWithLastChecked: "Há uma atualização do app pronta para instalar. Última verificação às {{time}}.", installed: "Atualização do app instalada. Reinicialização obrigatória.", failed: "Falha ao atualizar o app.", idle: "O status de atualização ainda não foi verificado.", }, installError: "Não foi possível instalar a atualização do app desktop.", callout: { installingTitle: "Instalando atualização", failedTitle: "Falha na atualização", availableTitle: "Atualização disponível", genericError: "Algo deu errado.", whatsNew: "Novidades", installingAction: "Instalando...", installAndRestart: "Instalar e reiniciar", installingDescription: "Instalando e reiniciando...", versionReady: "{{version}} está pronta para instalar.", newVersionReady: "Uma nova versão está pronta para instalar.", restartWarning: "Atualizar o app vai interromper agentes em execução e fechar sessões de terminal.", }, }, settings: { loadFailed: "Não foi possível carregar as configurações do desktop.", saveFailed: "Não foi possível salvar as configurações do desktop.", }, rosetta: { title: "Baixar a build para Apple Silicon", runningIntel: "Você está executando a build Intel do Paseo pelo Rosetta no Apple Silicon.", highCpu: "Isso causa alto uso de CPU. Baixe a build para Apple Silicon para corrigir.", download: "Baixar", }, permissions: { notifications: { allowed: "As notificações são permitidas pelo sistema operacional.", denied: "As notificações estão negadas nas configurações do sistema.", notGranted: "As notificações ainda não foram concedidas.", webOnly: "O status de notificações desktop só está disponível no runtime web.", supported: "Notificações desktop são compatíveis.", unsupported: "Notificações desktop não são compatíveis nesta plataforma.", apiUnavailable: "A Web Notification API não está disponível neste ambiente.", requestsWebOnly: "Solicitações de notificação desktop só estão disponíveis no runtime web.", requestUnavailable: "Web Notification API requestPermission() está indisponível.", requestFailed: "Falha ao solicitar permissão de notificação: {{message}}", unexpectedState: "Estado inesperado de permissão de notificação: {{state}}", }, microphone: { webOnly: "O status do microfone desktop só está disponível no runtime web.", navigatorUnavailable: "Navigator não está disponível neste ambiente.", granted: "O acesso ao microfone foi concedido.", denied: "O acesso ao microfone está negado nas configurações do sistema.", notGranted: "A permissão do microfone ainda não foi concedida.", unexpectedState: "Estado inesperado de permissão do microfone: {{state}}", statusApiUnavailable: "A API de status do microfone não está disponível neste runtime. Use Solicitar para verificar o acesso.", queryFailed: "Falha ao consultar o status do microfone: {{message}}", captureUnavailable: "A captura do microfone não está disponível neste ambiente.", permissionApiUnavailable: "A API de status de permissão não está disponível. Use Solicitar para verificar o acesso.", requestsWebOnly: "Solicitações de microfone desktop só estão disponíveis no runtime web.", captureApiUnavailable: "A API de captura do microfone não está disponível neste ambiente.", requestDenied: "A permissão do microfone foi negada pelo usuário ou pelo sistema.", noDevice: "Nenhum dispositivo de microfone foi encontrado.", requestFailed: "Falha ao solicitar permissão do microfone: {{message}}", }, empty: { notifications: "O status das notificações ainda não foi verificado.", microphone: "O status do microfone ainda não foi verificado.", }, testNotification: { title: "Teste de notificação do Paseo", body: "Se você consegue ver isto, as notificações desktop funcionam.", notDelivered: "A notificação não foi entregue. Verifique Ajustes do Sistema > Notificações.", failed: "Falha ao enviar notificação.", }, }, integrations: { cli: { statusFailed: "Não foi possível verificar o status de instalação da CLI.", installFailed: "Não foi possível instalar a CLI do Paseo.", }, skills: { statusFailed: "Não foi possível verificar o status das skills de orquestração.", installFailed: "Não foi possível instalar as skills de orquestração.", updateFailed: "Não foi possível atualizar as skills de orquestração.", uninstallFailed: "Não foi possível desinstalar as skills de orquestração.", saveSelectionFailed: "Não foi possível salvar a seleção de skills de orquestração.", }, }, }, rootError: { title: "O Paseo encontrou um problema.", body: "Tente novamente para recarregar o app. Se isso continuar acontecendo, inclua os detalhes abaixo ao relatar o problema.", details: "Detalhes", }, startup: { errorTitle: "Algo deu errado", errorDescription: "O servidor local falhou ao iniciar. Se isso continuar acontecendo, reporte o problema no GitHub e inclua os logs abaixo.", logs: { loading: "Carregando logs do daemon...", unavailable: "Nenhum log do daemon disponível.", loadFailed: "Não foi possível carregar logs do daemon: {{message}}", }, }, openProject: { tiles: { addProject: { title: "Adicionar um projeto", description: "Abra uma pasta na sua máquina", }, importSession: { title: "Importar sessão", description: "Importe sessões externas recentes da CLI", }, setupProviders: { title: "Configurar provedores", description: "Configure Claude Code, Codex e outros", }, pairDevice: { title: "Parear dispositivo", description: "Conecte seu celular a este daemon", }, }, }, projectPicker: { placeholder: "Digite para pesquisar...", browse: "Procurar…", opening: "Abrindo projeto...", searching: "Buscando...", empty: "Comece digitando um caminho", errors: { directory_not_found: "Diretório não encontrado.", open_failed: "Não foi possível abrir o projeto.", }, openPath: "Abrir caminho", }, branchSwitcher: { triggerTooltip: "Trocar branch do workspace", currentBranch: "Branch atual: {{branchName}}. Pressione para trocar de branch.", placeholder: "Trocar branch...", searchPlaceholder: "Filtrar branches...", empty: "Nenhuma branch encontrada.", title: "Trocar branch", uncommittedTitle: "Alterações sem commit", uncommittedMessage: "Você tem alterações sem commit. Fazer stash antes de trocar de branch?", stashAndSwitch: "Fazer stash e trocar", failedToStash: "Falha ao fazer stash das alterações", failedToSwitch: "Falha ao trocar de branch", restoreStashTitle: "Restaurar alterações em stash?", restoreStashMessage: "Esta branch tem alterações em stash de uma sessão anterior. Deseja restaurá-las?", restore: "Restaurar", later: "Depois", stashRestored: "Alterações em stash restauradas", }, agentAutocomplete: { searchingWorkspace: "Buscando workspace...", loadingCommands: "Carregando comandos...", noFiles: "Nenhum arquivo ou diretório encontrado", noCommands: "Nenhum comando encontrado", failedToLoad: "Falha ao carregar", }, loadOlderHistory: { failed: "Não foi possível carregar o histórico mais antigo", }, imageAttachmentPicker: { permissionTitle: "Permissão obrigatória", permissionMessage: "Permita acesso à sua biblioteca de fotos para anexar imagens.", errorTitle: "Erro", failedToSelect: "Falha ao selecionar imagem", dialogTitle: "Anexar imagens", dialogFilterName: "Imagens", }, workspaceSetup: { title: "Criar workspace", errors: { failedCreateWorktree: "Falha ao criar worktree", failedOpenProject: "Falha ao abrir projeto", selectModel: "Selecione um modelo", hostDisconnected: "Host não está conectado", pendingRequired: "Nenhuma configuração de workspace está pendente", composerStateRequired: "O estado do composer da configuração do workspace é obrigatório", }, }, onboarding: { title: "Bem-vindo ao Paseo", subtitle: "Conecte seu computador para começar", actions: { settings: "Configurações", }, }, modelSelector: { title: "Selecionar provedor", selectModel: "Selecionar modelo", selectedModel: "Selecionar modelo ({{model}})", loading: "Carregando...", loadingShort: "Carregando", loadingSelector: "Carregando seletor de modelos...", error: "Erro", defaultModel: "Padrão", profiles: "Perfis", providers: "Provedores", model: "Modelo", editProfiles: "Editar", editProfilesLabel: "Editar perfis de agente", createProfile: "Criar perfil", modelCount: "{{count}} modelo", modelCountPlural: "{{count}} modelos", retry: "Tentar novamente", retrying: "Tentando novamente...", noMatches: "Nenhum modelo corresponde à sua busca", noMatchesForQuery: "Nenhum modelo corresponde a «{{query}}»", searchAllPlaceholder: "Buscar em todos os modelos...", searchPlaceholder: "Buscar modelos...", openProviderSettings: "Abrir configurações de {{provider}}", }, providerCatalog: { title: "Adicionar provedor", search: "Buscar provedores", noProviders: "Nenhum provedor encontrado", actions: { add: "Adicionar", adding: "Adicionando", installed: "Instalado", cancel: "Cancelar", installInstructions: "Instruções de instalação", installInstructionsFor: "Instruções de instalação de {{provider}}", }, errors: { unableToInstall: "Não foi possível instalar provedor", }, }, providerSelection: { defaultModel: "Padrão", selectModel: "Selecionar modelo", loading: "Carregando...", error: "Erro", unavailable: "Indisponível", unknownError: "Erro desconhecido", readiness: { initialPromptRequired: "O prompt inicial é obrigatório", noProviders: "Nenhum provedor disponível no host selecionado", modelDefaultsLoading: "Os modelos padrão ainda estão carregando", noModelAvailable: "Nenhum modelo disponível para o provedor selecionado", workspaceDirectoryNotFound: "Diretório do workspace não encontrado", hostDisconnected: "Host não está conectado", }, }, pairing: { connectionMethods: { title: "Adicionar conexão", direct: { title: "Conexão direta", description: "Rede local ou VPN.", }, scanQr: { title: "Escanear QR code", description: "Conexão relay criptografada.", }, pasteLink: { title: "Colar link de pareamento", description: "Conexão relay criptografada.", }, }, direct: { title: "Conexão direta", helper: "Informe o endereço de um servidor Paseo.", fields: { host: "Host", port: "Porta", password: "Senha", optional: "Opcional", useSsl: "Usar SSL", connectionUri: "URI da conexão", }, advanced: { label: "Avançado", show: "Mostrar avançado", hide: "Ocultar avançado", }, passwordVisibility: { show: "Mostrar senha", hide: "Ocultar senha", }, actions: { cancel: "Cancelar", connect: "Conectar", connecting: "Conectando...", }, errors: { hostRequired: "Host é obrigatório", invalidPort: "A porta deve estar entre 1 e 65535", invalidConnection: "Conexão inválida", failedTitle: "Falha na conexão", failedToConnect: "Não foi possível conectar a {{endpoint}}.", noAdditionalDetails: "{{detail}} (nenhum detalhe adicional fornecido)", timedOut: "A conexão expirou. Verifique o host/porta e sua rede.", refused: "Conexão recusada. O servidor está em execução neste endereço?", hostNotFound: "Host não encontrado. Verifique o hostname e tente novamente.", hostUnreachable: "Host inacessível. Verifique sua rede e firewall.", tlsError: "Erro de TLS. Conexões diretas usam SSL apenas quando há um terminador TLS na frente do daemon.", unableToConnect: "Não foi possível conectar. Verifique o host/porta e se o daemon está acessível.", details: "Detalhes: {{detail}}", }, }, link: { title: "Colar link de pareamento", helper: "Cole o link de pareamento do seu servidor.", label: "Link de pareamento", errors: { required: "Cole um link de pareamento (.../#offer=...)", missingOffer: "O link deve incluir #offer=...", emptyOffer: "O payload da oferta está vazio", invalid: "Link de pareamento inválido", unableToPair: "Não foi possível parear host", }, alert: { failedTitle: "Falha no pareamento", }, actions: { cancel: "Cancelar", pair: "Parear", pairing: "Pareando...", }, }, scan: { title: "Escanear QR", webUnavailableTitle: "Indisponível na web", webUnavailableBody: 'Escanear QR não é compatível com a build web. Use "Colar link" em vez disso.', backToSettings: "Voltar para Configurações", cameraPermissionTitle: "Permissão da câmera", cameraPermissionBody: "Permita acesso à câmera para escanear o QR code de pareamento do daemon.", grantPermission: "Conceder permissão", pairing: "Pareando...", unableToPair: "Não foi possível parear host", errorTitle: "Erro", }, device: { loadingOffer: "Carregando oferta de pareamento...", failedToLoadOffer: "Falha ao carregar oferta de pareamento.", relayDisabled: "Relay não está ativado. Ative o relay para parear um dispositivo.", enableTitle: "Ativar o relay?", enableDescription: "O relay permite conectar este dispositivo de qualquer lugar. O tráfego de pareamento é criptografado de ponta a ponta.", relayDocs: "Como o relay funciona", relayDocsAccessibility: "Leia como o relay do Paseo funciona", enableRelay: "Ativar relay", enablingRelay: "Ativando...", notNow: "Agora não", directConnectionHint: "Sem relay, conecte diretamente por TCP, Tailscale ou outra VPN. Nenhum código QR é criado.", updateRequired: "Atualize o host para ativar o relay pelo Paseo Desktop.", unavailable: "Oferta de pareamento indisponível.", hint: "Escaneie este QR code com o Paseo no seu celular ou copie o link abaixo.", qrUnavailable: "QR code indisponível.", qrAccessibility: "Código QR de pareamento", retry: "Tentar novamente", copy: "Copiar", copied: "Copiado", }, }, realtimeVoice: { actions: { mute: "Silenciar voz em tempo real", unmute: "Ativar voz em tempo real", stop: "Parar voz em tempo real e interromper a resposta", }, }, rewind: { tooltip: "Voltar para esta mensagem", warning: "Esta ação não pode ser desfeita", actions: { conversation: "Reverter conversa", files: "Reverter arquivos", both: "Reverter conversa e arquivos", }, errors: { failed: "Falha ao reverter agente", }, }, diffViewer: { empty: "Nenhuma alteração para exibir", }, serviceUrl: { title: "Abrir URL do serviço", message: "Abrir {{url}}?", inPaseo: "No Paseo", externalBrowser: "Navegador externo", dontAskAgain: "Não perguntar novamente", }, downloads: { requestTokenFailed: "Falha ao solicitar token de download.", hostUnavailable: "Host de download indisponível.", cancelled: "Download cancelado.", failed: "Falha ao baixar arquivo.", shareFile: "Compartilhar arquivo", shareFileNamed: "Compartilhar {{fileName}}", }, menu: { backdrop: "Fundo do menu", }, subagents: { title: "Subagentes", pillLabelOne: "1 subagente", pillLabelMany: "{{count}} subagentes", detachAction: "Desanexar {{label}}", detachTooltip: "Desanexar subagente", archiveAction: "Arquivar {{label}}", archiveTooltip: "Arquivar subagente", archiveFinishedAction: "Arquivar subagentes concluídos", archiveFinishedRetry: "Tentar novamente ({{failed}}/{{total}})", }, panels: { draft: { newAgent: "Novo Agente", creatingAgent: "Criando agente", }, file: { directoryMissing: "Diretório do workspace não encontrado.", loading: "Carregando arquivo...", noPreview: "Nenhuma prévia disponível", binaryPreviewUnavailable: "Prévia binária indisponível", failedToLoad: "Falha ao carregar arquivo", failedToLoadPreview: "Falha ao carregar prévia do arquivo", editor: { fileSize: "Tamanho {{size}}", lines: "{{count}} linhas", editorStatus: "Status do editor: {{status}}", unsavedChanges: "Alterações não salvas", saving: "Salvando...", saveFailed: "Falha ao salvar", changedOnDisk: "Alterado no disco", vimMode: "Modo Vim {{mode}}", cursor: "Linha {{line}}, coluna {{column}}", preview: "Prévia", source: "Fonte", deletedTitle: "Arquivo excluído do disco", checkFailedTitle: "Não foi possível verificar o arquivo no disco", preservedDescription: "A cópia aberta foi preservada.", conflictDescription: "O conteúdo local foi preservado. Escolha qual versão manter.", overwrite: "Sobrescrever", reload: "Recarregar", reloadTitle: "Recarregar do disco?", reloadMessage: "Suas alterações locais serão perdidas.", }, }, files: { label: "Arquivos", subtitle: "Arquivos do espaço de trabalho", tooltip: "Explorar arquivos do espaço de trabalho", }, pullRequest: { label: "Pull request", subtitle: "Detalhes do pull request", emptyTitle: "Ainda não há pull request", emptyDescription: "Crie um pull request para este checkout para ver os detalhes aqui.", }, diff: { changesLabel: "Alterações", changesSubtitle: "Diff da árvore de trabalho", commitSubtitle: "Diff do commit", uncommittedSubtitle: "Alterações não commitadas", baseSubtitle: "Comparado com {{baseRef}}", directoryMissing: "Diretório do workspace não encontrado.", empty: "Nenhuma alteração", loadError: "Falha ao carregar diff", capabilityMissing: "Atualize o host para ver diffs de commits.", }, }, toolCallDetails: { error: "Erro", empty: "Nenhum detalhe adicional disponível", subAgentActivity: "Atividade do subagente", input: "Entrada", output: "Saída", }, toolCallGroup: { editedFiles: { one: "editou {{count}} arquivo", other: "editou {{count}} arquivos", }, commands: { one: "executou {{count}} comando", other: "executou {{count}} comandos", }, readFiles: { one: "leu {{count}} arquivo", other: "leu {{count}} arquivos", }, searches: { one: "pesquisou {{count}} vez", other: "pesquisou {{count}} vezes", }, otherTools: { one: "usou {{count}} outra ferramenta", other: "usou {{count}} outras ferramentas", }, paseoCalls: { one: "chamou o Paseo {{count}} vez", other: "chamou o Paseo {{count}} vezes", }, and: "e", }, renameModal: { rename: "Renomear", saving: "Salvando...", }, sidebarCallout: { dismiss: "Dispensar", }, contextWindow: { title: "Janela de contexto", used: "{{percentage}}% usado", tokens: "{{used}} / {{max}} tokens", sessionCost: "Custo da sessão {{cost}}", accessibility: "Janela de contexto {{percentage}}% usada", }, review: { comment: { add: "Adicionar comentário de revisão", edit: "Editar comentário de revisão", delete: "Excluir comentário de revisão", label: "Comentário de revisão", placeholder: "Deixe um comentário", cancel: "Cancelar", cancelAccessibility: "Cancelar comentário de revisão", save: "Comentar", saveAccessibility: "Salvar comentário de revisão", }, }, settings: { title: "Configurações", loading: "Carregando configurações...", groups: { app: "App", host: "Host", }, hostPicker: { switchHost: "Trocar host", local: "Local", }, backToWorkspace: "Voltar", addHost: "Adicionar host", enableBuiltInDaemon: "Ativar o daemon integrado", projects: "Projetos", projectList: { hostLoadFailed: "Não foi possível carregar projetos do host {{hostName}}: {{message}}", editProject: "Editar {{projectName}}", }, groupInfo: "Sobre {{title}}", sections: { general: "Geral", appearance: "Aparência", editor: "Editor", shortcuts: "Atalhos", integrations: "Integrações", notifications: "Notificações", permissions: "Permissões", diagnostics: "Diagnósticos", about: "Sobre", }, editor: { title: "Editor", vimKeybindings: "Atalhos do Vim", vimHint: "Aplica-se a arquivos-fonte na web e no desktop.", }, notifications: { title: "Notificações", permission: "Permissão de notificações", refreshAccessibility: "Atualizar permissão de notificações", playSound: "Reproduzir som", playSoundHint: "Reproduz um som quando chega uma notificação da área de trabalho", test: "Testar notificação", testHint: "Envia uma notificação usando estas configurações", permissionRequired: "Permita o acesso às notificações antes de testar", send: "Enviar", sending: "Enviando...", sentTitle: "Notificação de teste enviada", sentDescription: "O Paseo entregou a notificação ao sistema operacional.", sendFailedTitle: "Não foi possível enviar a notificação de teste", }, hostSections: { projects: "Projetos", connections: "Conexões", agents: "Agentes", metadata: "Metadados", workspaces: "Workspaces", providers: "Provedores", usage: "Uso", terminals: "Terminais", plugins: "Plugins", host: "Visão geral", }, plugins: pluginSettings["pt-BR"], metadataGeneration: { title: "Geração de metadados", description: "Escolha o modelo usado pelo Paseo para títulos de espaços de trabalho, nomes de branches, mensagens de commit e rascunhos de pull request", selection: "Seleção de modelo", automatic: "Automática", preferred: "Manual", automaticHint: "O Paseo escolhe um modelo rápido disponível", preferredHint: "Escolha o modelo que o Paseo usa", model: "Modelo", fallbackHint: "Se ele não estiver disponível, o Paseo usa outro modelo disponível", docs: "Documentação", saveError: "Não foi possível atualizar a geração de metadados", }, general: { title: "Geral", browserData: { title: "Dados do navegador", siteData: "Cookies e dados de sites", description: "As abas do navegador compartilham logins e dados de sites no Paseo.", clear: "Limpar dados do navegador", clearing: "Limpando...", confirmTitle: "Limpar dados do navegador?", confirmMessage: "Você será desconectado dos sites e as abas abertas do navegador serão recarregadas.", success: "Dados do navegador limpos.", error: "Não foi possível limpar os dados do navegador.", }, defaultSend: { label: "Envio padrão", descriptions: { interrupt: "Quando o agente está em execução, Enter interrompe. Command/Ctrl+Enter enfileira.", steer: "Quando o agente está em execução, Enter orienta o turno ativo. Command/Ctrl+Enter enfileira.", queue: "Quando o agente está em execução, Enter enfileira. Command/Ctrl+Enter envia.", }, options: { interrupt: "Interromper", steer: "Orientar", queue: "Fila", }, }, serviceUrls: { label: "URLs de serviço", description: "Onde abrir URLs de scripts em execução", options: { ask: "Perguntar", inApp: "No Paseo", external: "Navegador externo", }, }, terminalScrollback: { label: "Scrollback do terminal", description: "Linhas mantidas no buffer do terminal integrado", accessibilityLabel: "Linhas do scrollback do terminal", }, autoExpandReasoning: { label: "Sempre expandir raciocínio", description: "Mostrar os blocos de pensamento e raciocínio do agente totalmente expandidos por padrão", }, toolCallDetail: { label: "Exibição de chamadas de ferramentas", description: "Como as chamadas de ferramentas aparecem na linha do tempo", accessibilityLabel: "Selecionar exibição de chamadas de ferramentas ({{value}})", options: { overview: "Resumo", detailed: "Detalhes completos", }, }, language: { label: "Idioma", description: "Idioma do app", options: { system: "Sistema", ar: "Árabe", en: "Inglês", es: "Espanhol", fr: "Francês", ja: "Japonês", ko: "Coreano", ptBR: "Português brasileiro", ru: "Russo", zhCN: "Chinês simplificado", }, }, }, diagnostics: { title: "Diagnósticos", legacyTerminalRenderer: { label: "Usar renderizador de terminal anterior", description: "Usa o terminal WebView anterior após reabrir um terminal", accessibilityLabel: "Usar renderizador de terminal anterior", }, testAudio: "Testar áudio", playTest: "Reproduzir teste", playing: "Reproduzindo...", playbackFailed: "Falha na reprodução: {{message}}", app: { title: "App diagnostic", rowTitle: "App diagnostic", rowHint: "Collect connection, daemon, provider, desktop, and log details", run: "Run", running: "Running diagnostic...", copyLabel: "diagnostic", copyAccessibility: "Copy diagnostic", copyFailed: "Failed to copy diagnostic", refreshAccessibility: "Refresh diagnostic", refreshingAccessibility: "Refreshing diagnostic", progress: { client: "Client", desktop: "Desktop", }, }, }, about: { title: "Sobre", appVersion: "Versão do app", thisDevice: "Este dispositivo", connectedHosts: "Hosts conectados", offline: "Offline", versionDiffers: "A versão é diferente da deste dispositivo", releaseChannel: { label: "Canal de lançamento", description: "Troque para Beta para receber atualizações antes e ajudar a moldá-las", stable: "Stable", beta: "Beta", }, updates: { label: "Atualizações do app", readyToInstall: "Pronta para instalar: {{version}}", installTitle: "Instalar atualização desktop", installMessage: "Isso atualiza o Paseo neste computador", installConfirm: "Instalar atualização", update: "Atualizar", updateTo: "Atualizar para {{version}}", installing: "Instalando...", check: "Verificar", checking: "Verificando...", alertTitle: "Erro", alertMessage: "Não foi possível abrir o diálogo de confirmação da atualização.", }, }, appearance: { theme: { title: "Tema", accessibilityLabel: "Tema: {{value}}", options: { light: "Claro", dark: "Escuro", zinc: "Zinc", midnight: "Midnight", claude: "Claude", ghostty: "Ghostty", pureBlack: "Preto puro", auto: "Sistema", }, }, detailLevel: { title: "Nível de detalhe", }, chatOutline: { title: "Estrutura do chat", description: "Mostrar uma estrutura para navegar entre prompts", }, fonts: { title: "Fontes", systemDefault: "Sistema padrão", interfaceFont: "Fonte da interface", interfaceFontHint: "Usada em todo o app. Deixe vazio para usar o padrão do sistema", interfaceFontAccessibility: "Família da fonte da interface", interfaceSize: "Tamanho da interface", interfaceSizeAccessibility: "Tamanho da fonte da interface", codeFont: "Fonte de código", codeFontHint: "Usada em código, diffs e saída do terminal. Deixe vazio para usar o padrão do sistema", codeFontAccessibility: "Família da fonte de código", codeSize: "Tamanho do código", codeSizeAccessibility: "Tamanho da fonte de código", }, syntax: { title: "Sintaxe", highlightTheme: "Tema de destaque", highlightThemeHint: "Cores para código, independentes do tema do app", highlightThemeAccessibility: "Tema de destaque: {{value}}", previewAccessibility: "Prévia ao vivo do tema de sintaxe e da fonte de código", }, }, shortcuts: { dialogTitle: "Atalhos", searchPlaceholder: "Pesquisar atalhos", unavailableOnMobile: "Atalhos de teclado estão disponíveis apenas no desktop", capturePrompt: "Pressione o atalho...", unassigned: "Não definido", actions: { menu: "Ações para {{name}}", done: "Concluído", cancel: "Cancelar", bind: "Atribuir", rebind: "Reatribuir", clear: "Limpar", reset: "Redefinir para o padrão", resetAll: "Redefinir tudo", }, sections: { general: "Geral", workspaces: "Projetos e workspaces", tabsPanes: "Abas e painéis", layout: "Layout", agentInput: "Entrada do agente", }, help: { openProject: "Abrir projeto", newWorkspace: "Novo workspace", newWorktree: "Novo worktree", archiveWorkspace: "Arquivar workspace", newTab: "Nova aba", closeCurrentTab: "Fechar aba atual", jumpToWorkspace: "Ir para workspace", jumpToTab: "Ir para aba", previousWorkspace: "Workspace anterior", nextWorkspace: "Próximo workspace", previousTab: "Aba anterior", nextTab: "Próxima aba", splitPaneRight: "Dividir painel à direita", splitPaneDown: "Dividir painel abaixo", focusPaneLeft: "Focar painel à esquerda", focusPaneRight: "Focar painel à direita", focusPaneUp: "Focar painel acima", focusPaneDown: "Focar painel abaixo", moveTabLeft: "Mover aba para a esquerda", moveTabRight: "Mover aba para a direita", moveTabUp: "Mover aba para cima", moveTabDown: "Mover aba para baixo", closePane: "Fechar painel", newTerminal: "Novo terminal", searchFiles: "Pesquisar arquivos", toggleCommandCenter: "Alternar central de comandos", showKeyboardShortcuts: "Mostrar atalhos de teclado", toggleLeftSidebar: "Alternar barra lateral esquerda", toggleRightSidebar: "Alternar barra lateral direita", toggleBothSidebars: "Alternar ambas as barras laterais", toggleSettings: "Alternar Configurações", toggleFocusMode: "Alternar modo de foco", toggleExplorerPaneMaximization: "Alternar maximização do painel Explorador", cycleTheme: "Alternar tema", focusMessageInput: "Focar entrada de mensagem", cycleAgentMode: "Alternar modo do agente", toggleVoiceMode: "Alternar modo de voz", startStopDictation: "Iniciar/parar ditado", interruptAgent: "Interromper agente", sendMessage: "Enviar mensagem", queueMessage: "Enfileirar mensagem", muteUnmuteVoiceMode: "Silenciar/ativar modo de voz", switchProject: "Trocar projeto", }, helpNotes: { showKeyboardShortcuts: "Disponível quando o foco não está em um campo de texto ou terminal.", }, }, integrations: { title: "Integrações", docs: { cli: "Docs da CLI", skills: "Docs das skills", openCli: "Abrir documentação da CLI", openSkills: "Abrir documentação das skills", }, commandLine: { title: "Linha de comando", description: "Controle agentes e execute scripts pelo terminal", }, skills: { title: "Skills de orquestração", description: "Ensine seus agentes a orquestrar pela CLI", updateAvailable: "Atualização disponível", updateTitle: "Atualizar Paseo skills?", updateFallback: "Sincronize as skills incluídas com sua máquina.", uninstallTitle: "Desinstalar Paseo skills?", uninstallMessage: "Remove todas as skills de orquestração do Paseo de ~/.agents, ~/.claude e ~/.codex.", choose: "Escolher skills", chooseAll: "Todas as skills", chooseAllHint: "Mantenha instaladas todas as skills incluídas, inclusive as adicionadas depois.", chooseList: "Skills incluídas", chooseEmpty: "Esta versão não inclui skills.", removeTitle: "Remover as skills desmarcadas?", removeMessage: "{{skills}} serão excluídas de ~/.agents, ~/.claude e ~/.codex. Tudo o que você adicionou dentro dessas pastas de skills também é excluído.", saveFailed: "Não foi possível salvar sua seleção de skills.", }, actions: { install: "Instalar", installing: "Instalando...", installed: "Instalado", update: "Atualizar", working: "Trabalhando...", remove: "Remover", uninstall: "Desinstalar", save: "Salvar", saving: "Salvando...", }, operations: { add: "Adicionar skill", update: "Atualizar skill", delete: "Excluir skill", }, }, permissions: { title: "Permissões", microphone: "Microfone", refresh: "Atualizar", refreshing: "Atualizando...", refreshAccessibility: "Atualizar permissões do desktop", actions: { granted: "Concedida", request: "Solicitar", requesting: "Solicitando...", }, }, host: { appearance: { title: "Aparência", name: { label: "Nome", }, color: { label: "Cor", accessibilityLabel: "Cor, {{value}}", options: { none: "Padrão", violet: "Violeta", sky: "Céu", emerald: "Esmeralda", orange: "Laranja", pink: "Rosa", indigo: "Índigo", teal: "Verde-azulado", red: "Vermelho", amber: "Âmbar", blue: "Azul", }, }, badge: { label: "Selo da barra lateral", accessibilityLabel: "Selo da barra lateral, {{value}}", options: { name: "Nome", icon: "Somente ícone", hidden: "Oculto", }, }, preview: { workspaceName: "my-workspace", }, }, notFound: "Host não encontrado", badges: { relay: "Relay", local: "Local", }, connections: { title: "Conexões", removeTitle: "Remover conexão", removeMessage: "Remover {{name}}? Isso não pode ser desfeito.", removeAction: "Remover", removeErrorTitle: "Erro", removeErrorMessage: "Não foi possível remover a conexão", timeout: "Timeout", }, pairDevices: { title: "Parear dispositivos", rowTitle: "Parear um dispositivo", rowHint: "Escaneie um QR code ou copie um link para conectar seu celular a este host", }, orchestration: { title: "Orquestração", unavailable: "Conecte-se a este host para gerenciar a orquestração", enableTools: { title: "Ativar ferramentas do Paseo", hint: "Agentes poderão gerenciar worktrees, agentes e agendamentos", accessibilityLabel: "Injetar ferramentas do Paseo", }, systemPrompt: { title: "Prompt do sistema", hint: "Adiciona um prompt do sistema a todos os agentes", sheetTitle: "Acrescentar prompt do sistema", accessibilityLabel: "Acrescentar prompt do sistema", placeholder: "Mantenha as respostas sempre concisas.", edit: "Editar", reset: "Redefinir", save: "Salvar", saving: "Salvando...", }, }, agents: { unavailable: "Conecte-se a este host para gerenciar agentes", }, workspaces: { unavailable: "Conecte-se a este host para gerenciar workspaces", }, terminalProfiles: { unavailable: "Conecte-se a este host para gerenciar perfis de terminal", sectionTitle: "Perfis de terminal", editProfile: "Editar perfil", addProfileTitle: "Adicionar perfil de terminal", editProfileTitle: "Editar perfil de terminal", namePlaceholder: "Claude Code", commandPlaceholder: "claude", argsPlaceholder: "--dangerously-skip-permissions", nameLabel: "Nome", commandLabel: "Comando", argsLabel: "Argumentos", nameRequired: "O nome é obrigatório", commandRequired: "O comando é obrigatório", argsHint: "Argumentos separados por espaço passados para o comando", saving: "Salvando...", remove: "Remover", removeConfirmTitle: "Remover perfil?", removeConfirmMessage: 'Remover "{{name}}"?', moveUp: "Mover para cima", moveDown: "Mover para baixo", save: "Salvar", emptyState: "Nenhum perfil ainda. Adicione um para abrir terminais com um comando específico.", }, agentProfiles: { sectionTitle: "Perfis de agente", unavailable: "Conecte-se a este host para gerenciar perfis de agente", unsupported: "Este host executa um daemon que ainda não é compatível com perfis de agente", emptyState: "Nenhum perfil ainda. Adicione um para iniciar agentes a partir de um provedor e modelo salvos.", addProfileTitle: "Adicionar perfil de agente", newProfile: "Novo perfil", editProfile: "Editar perfil", editProfileTitle: "Editar perfil de agente", nameLabel: "Nome", namePlaceholder: "Trabalho de UI", iconLabel: "Ícone", noIcon: "Nenhum", providerLabel: "Provedor", providerPlaceholder: "Selecione um provedor", noProviders: "Nenhum provedor está disponível neste host", modelLabel: "Modelo", noModels: "Este provedor não tem modelos para escolher", modeLabel: "Modo", noModes: "Este provedor não tem modos para escolher", thinkingLabel: "Raciocínio", noThinkingOptions: "Este modelo não tem níveis de raciocínio", featuresLabel: "Recursos", featureCount: "{{count}} recursos", featureCountOne: "{{count}} recurso", notesLabel: "Notas para os agentes", notesPlaceholder: "Use para trabalho de UI — componentes, layout e tokens de design.", notesHint: 'Retornado pela ferramenta MCP "list_profiles". Escreva como uma instrução para outro agente.', save: "Salvar", saving: "Salvando...", remove: "Remover", removeConfirmTitle: "Remover perfil?", removeConfirmMessage: 'Remover "{{name}}"?', moveUp: "Mover para cima", moveDown: "Mover para baixo", }, daemon: { rename: { editLabel: "Editar rótulo", title: "Renomear host", placeholder: "Meu Host", submit: "Renomear", }, restart: { title: "Reiniciar daemon", hint: "Reinicia o processo do daemon. O app reconectará automaticamente", confirm: "Reiniciar", confirmTitle: "Reiniciar {{name}}", confirmMessage: "Isso vai reiniciar o daemon. Agentes em execução nele continuarão rodando; o app reconectará automaticamente.", restarting: "Reiniciando...", unableToReconnectTitle: "Não foi possível reconectar", unableToReconnectMessage: "{{name}} não voltou a ficar online. Verifique se ele reiniciou.", unavailableTitle: "Host indisponível", unavailableMessage: "Este host não está conectado. Aguarde até ele ficar online antes de reiniciar.", offlineTitle: "Host offline", offlineMessage: "Este host está offline. O Paseo reconecta automaticamente. Aguarde ele voltar a ficar online antes de reiniciar.", requestFailedTitle: "Erro", requestFailedMessage: "Falha ao enviar a solicitação de reinício. O Paseo reconecta automaticamente. Tente novamente quando o host aparecer como online.", dialogFailedMessage: "Não foi possível abrir o diálogo de confirmação de reinício.", }, update: { desktopManagedHint: "Este daemon é gerenciado pelo Paseo Desktop. Atualize o Paseo Desktop no host.", title: "Atualizar daemon", hint: "Atualiza o daemon para a versão mais recente e o reinicia", confirm: "Atualizar", confirmTitle: "Atualizar {{name}}", confirmMessage: "Isso vai atualizar o daemon para a versão mais recente e reiniciá-lo. Agentes em execução serão interrompidos brevemente.", updating: "Atualizando...", phaseStarting: "Preparando atualização...", phaseDownloading: "Baixando pacotes...", phaseInstalling: "Instalando...", phaseComplete: "Atualização concluída, reiniciando...", unableToReconnectTitle: "Não foi possível reconectar", unableToReconnectMessage: "{{name}} não voltou a ficar online após a atualização. Verifique se o daemon reiniciou.", unavailableTitle: "Host indisponível", unavailableMessage: "Este host não está conectado. Aguarde até ele ficar online antes de atualizar.", offlineTitle: "Host offline", offlineMessage: "Este host está offline. Aguarde até ele voltar a ficar online antes de atualizar.", requestFailedTitle: "Falha na atualização", requestFailedMessage: "Falha ao atualizar o daemon: {{error}}", dialogFailedMessage: "Não foi possível abrir o diálogo de confirmação da atualização.", }, dangerZone: "Zona de perigo", remove: { title: "Remover host", localTitle: "Remover conexão localhost", hint: "Remove este host e suas conexões salvas deste dispositivo", localHint: "Remove localhost deste dispositivo e interrompe o daemon integrado", localConfirmTitle: "Remover conexão localhost e parar daemon?", confirmMessage: "Remover {{name}}? Isso excluirá suas conexões salvas.", localConfirmMessage: "Isso vai remover a conexão localhost, desativar o gerenciamento do daemon integrado e parar o daemon gerenciado. Hosts remotos permanecem conectados.", errorTitle: "Erro", errorMessage: "Não foi possível remover host", localErrorMessage: "Não foi possível remover a conexão localhost", }, }, }, providers: { title: "Provedores", addProvider: "Adicionar provedor", providerDetails: "Detalhes do provedor {{name}}", enableProvider: "Ativar {{name}}", unavailable: "Conecte-se a este host para ver provedores", loading: "Carregando...", addErrorTitle: "Não foi possível adicionar provedor", updateErrorTitle: "Não foi possível atualizar provedor", actions: { menu: "{{name}} actions", remove: "Remove provider", removing: "Removing...", }, remove: { confirmTitle: "Remove {{name}}?", confirmMessage: "This deletes the provider entry from config.json. It cannot be undone.", confirm: "Remove", errorTitle: "Unable to remove provider", }, statuses: { disabled: "Desativado", loading: "Carregando", error: "Erro", available: "Disponível", notInstalled: "Não instalado", }, models: { one: "1 modelo", many: "{{count}} modelos", addModel: "Adicionar modelo", addCustomTitle: "Adicionar modelo personalizado", modelId: "ID do modelo", modelIdPlaceholder: "e.g. openai/gpt-5", add: "Adicionar", adding: "Adicionando...", failedToSave: "Falha ao salvar modelo", removeModel: "Remover {{id}}", searchPlaceholder: "Buscar modelos", loading: "Carregando modelos...", retry: "Tentar novamente", retrying: "Tentando novamente...", noSearchMatches: "Nenhum modelo corresponde à sua busca", noneDetected: "Nenhum modelo detectado", discovered: "Descobertos", custom: "Modelos personalizados", updated: "Atualizado {{time}}", }, diagnostic: { title: "Diagnóstico", button: "Diagnóstico", refresh: "Atualizar", refreshing: "Atualizando...", copyLabel: "diagnóstico", copyAccessibility: "Copiar diagnóstico", copyFailed: "Falha ao copiar diagnóstico", refreshAccessibility: "Atualizar diagnóstico", refreshingAccessibility: "Atualizando diagnóstico", running: "Executando diagnóstico...", none: "Nenhum diagnóstico disponível", failedToFetch: "Falha ao buscar diagnóstico", unknownError: "Erro desconhecido", }, }, project: { noEditableTarget: "Este projeto não pode ser editado neste host.", backToProjects: "Voltar para projetos", edit: { title: "Editar projeto", name: "Nome", nameLabel: "Nome do projeto", icon: "Ícone", chooseImage: "Escolher imagem", useAutomatic: "Usar automático", imageUrl: "URL de imagem ou site", save: "Salvar alterações", savedToast: "Projeto atualizado", }, readFailures: { invalidTitle: "Não foi possível analisar paseo.json", invalidDescription: "Corrija o arquivo no disco e recarregue.", missingTitle: "Este host não tem este projeto", missingSingleHost: "O host selecionado não tem registro deste projeto.", transportTitle: "Não foi possível carregar paseo.json", transportFallback: "O host não respondeu.", failedTitle: "Não foi possível carregar paseo.json", failedDescription: "Recarregue para tentar novamente.", }, worktree: { title: "Hooks de ciclo de vida do worktree", info: "Comandos executados quando um worktree é criado ou desmontado para este projeto", docs: "Docs", docsTooltip: "Veja a documentação para mais detalhes e as variáveis de ambiente disponíveis para estes comandos", setup: "Configuração", setupAccessibility: "Comandos de configuração do worktree", uncommittedTitle: "Faça commit das alterações no paseo.json", uncommittedDescription: "Novos worktrees usam o script de configuração do branch base selecionado.", teardown: "Desmontagem", teardownAccessibility: "Comandos de desmontagem do worktree", }, scripts: { title: "Scripts", info: "Serviços contínuos e comandos avulsos que você pode iniciar de qualquer agente neste projeto", empty: "Nenhum script ainda.", untitled: "Script sem título", port: "porta {{port}}", menuAccessibility: "Abrir menu do script", removeTitle: "Remover script?", removeMessage: "Remover {{name}}?", removeFallbackName: "este script", name: "Nome", command: "Comando", nameAccessibility: "Nome do script", commandAccessibility: "Comando do script", nameRequired: "O nome é obrigatório", commandRequired: "O comando é obrigatório", newScript: "Novo script", editScript: "Editar {{name}}", runAsService: "Executar como serviço", serviceHint: "O Paseo supervisiona o processo e atribui uma porta via $PASEO_PORT", actions: { add: "Adicionar script", edit: "Editar", remove: "Remover", }, }, metadata: { title: "Geração de metadados", info: "Instruções específicas do projeto injetadas nos prompts de IA que o Paseo usa para gerar metadados. Use-as para aplicar convenções da sua equipe, como nomes de branch, estilo de commit ou formato de PR", branchName: "Nomes de branch", branchNamePlaceholder: "Prefixe branches com feat/ ou fix/, mb/ para branches pessoais", commitMessage: "Mensagens de commit", commitMessagePlaceholder: "Use Conventional Commits com escopo", pullRequest: "Pull requests", pullRequestPlaceholder: "Comece com um resumo de um parágrafo e inclua uma seção Test plan", }, writeFailures: { staleTitle: "Configuração alterada no disco", staleDescription: "Recarregue para buscar o paseo.json mais recente antes de salvar.", failedTitle: "Não foi possível salvar paseo.json", failedDescription: "Tente novamente ou recarregue a versão mais recente do disco.", }, actions: { reload: "Recarregar", tryAgain: "Tentar novamente", save: "Salvar", saved: "Projeto salvo", saving: "Salvando...", cancel: "Cancelar", }, }, }, };