Files
paseo/packages/app/src/i18n/resources/pt-BR.ts
T
Mohamed Boudra 60bafad3ee feat(app): make the New tab launcher keyboard-first
Cmd/Ctrl+T now opens the focused pane's launcher, while explicit target shortcuts bypass the menu. Dispatcher ownership is scoped to the app tree so retained workspaces cannot intercept commands.
2026-08-17 21:15:16 +02:00

2539 lines
96 KiB
TypeScript

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",
},
},
},
};