{
  "Language": {
    "followSystem": "Seguir o sistema",
    "english": "Inglês",
    "simplifiedChinese": "Chinês simplificado",
    "traditionalChinese": "Chinês tradicional",
    "japanese": "Japonês",
    "korean": "Coreano",
    "spanish": "Espanhol",
    "german": "Alemão",
    "french": "Francês",
    "portuguese": "Português",
    "arabic": "Árabe"
  },
  "GitCredentialDialog": {
    "title": "Autenticação necessária",
    "description": "O servidor remoto requer credenciais. Insira seu nome de usuário e senha (ou token de acesso pessoal).",
    "username": "Nome de usuário",
    "usernamePlaceholder": "Nome de usuário ou e-mail",
    "password": "Senha / Token",
    "passwordPlaceholder": "Senha ou token de acesso pessoal",
    "passwordHint": "Insira o nome de usuário e a senha do servidor.",
    "cancel": "Cancelar",
    "authenticate": "Autenticar",
    "authenticating": "Autenticando...",
    "invalidCredentials": "Credenciais inválidas. Tente novamente.",
    "saveCredentials": "Salvar credenciais para operações futuras",
    "githubTitle": "Autenticação do GitHub",
    "githubDescription": "Insira um token de acesso pessoal para se conectar ao GitHub. O token será validado e salvo automaticamente.",
    "githubToken": "Token de acesso pessoal",
    "githubTokenPlaceholder": "ghp_xxxxxxxxxxxx",
    "githubTokenHint": "Gere um token em GitHub → Settings → Developer settings → Personal access tokens.",
    "githubAuthenticate": "Validar e conectar",
    "generateToken": "Gerar token"
  },
  "SettingsShell": {
    "title": "Configurações",
    "preferences": "Preferências",
    "nav": {
      "general": "Geral",
      "appearance": "Aparência",
      "agents": "Agentes",
      "mcp": "MCP",
      "skills": "Skills",
      "shortcuts": "Atalhos",
      "version_control": "Controle de versão",
      "system": "Sistema",
      "chat_channels": "Canais de chat",
      "web_service": "Serviço Web",
      "model_providers": "Provedores de Modelos",
      "experts": "Especialistas",
      "quick_messages": "Mensagens rápidas"
    }
  },
  "AppearanceSettings": {
    "sectionTitle": "Aparência do tema",
    "sectionDescription": "Escolha claro, escuro ou seguir o sistema. As configurações são salvas automaticamente.",
    "themeMode": "Modo de tema",
    "placeholder": "Selecionar modo de tema",
    "system": "Seguir o sistema",
    "light": "Claro",
    "dark": "Escuro",
    "currentTheme": "Tema efetivo atual: {theme}",
    "resolvedTheme": {
      "light": "Claro",
      "dark": "Escuro",
      "unknown": "--"
    },
    "themeColor": {
      "sectionTitle": "Cor do tema",
      "sectionDescription": "Escolha uma paleta de cores para acentos, botões e destaques.",
      "current": "Cor atual: {color}",
      "options": {
        "neutral": "Neutral",
        "zinc": "Zinc",
        "slate": "Slate",
        "stone": "Stone",
        "gray": "Gray",
        "red": "Red",
        "rose": "Rose",
        "orange": "Orange",
        "green": "Green",
        "blue": "Blue",
        "yellow": "Yellow",
        "violet": "Violet"
      }
    },
    "zoomLevel": {
      "sectionTitle": "Zoom da janela",
      "sectionDescription": "Dimensiona toda a interface. Aplica imediatamente e é salvo por dispositivo.",
      "placeholder": "Selecione o nível de zoom",
      "default": "Padrão",
      "current": "Zoom atual: {zoom}%"
    },
    "fonts": {
      "sectionTitle": "Fontes",
      "sectionDescription": "Escolha as fontes para a interface, o editor de código e o terminal. As fontes incluídas são carregadas sob demanda; selecione “Personalizada…” para usar qualquer fonte instalada no seu sistema.",
      "interface": "Interface",
      "editor": "Editor",
      "terminal": "Terminal",
      "groupSans": "Sem serifa",
      "groupMono": "Monoespaçada",
      "custom": "Personalizada…",
      "customPlaceholder": "Nome da fonte, ex.: Fira Code",
      "fontSize": "Tamanho da fonte",
      "ligatures": "Ativar ligaduras",
      "ligaturesUnavailable": "Esta fonte não tem ligaduras",
      "terminalLigaturesHint": "As ligaduras do terminal aplicam-se apenas às fontes de programação incluídas.",
      "preview": "Pré-visualização"
    }
  },
  "SystemSettings": {
    "loading": "Carregando...",
    "sectionTitle": "Gerenciamento do sistema",
    "sectionDescription": "Gerencie proxy de rede, atualizações do app e preferências de idioma.",
    "proxyTitle": "Proxy de rede",
    "proxyDescription": "Quando ativado, as solicitações de rede seguintes priorizam este proxy (incluindo chat ACP, instalação de agentes e operações remotas do Git).",
    "loadFailed": "Falha ao carregar: {message}",
    "enableProxy": "Ativar proxy do sistema",
    "proxyAddress": "Endereço do proxy",
    "proxyHint": "Suporta http(s)/socks5, exemplo: {example}. Só funciona quando o proxy do sistema está ativado.",
    "save": "Salvar",
    "saving": "Salvando...",
    "proxyRequired": "A URL do proxy é obrigatória quando o proxy está ativado",
    "saveSuccess": "As configurações de proxy do sistema foram salvas",
    "saveFailed": "Falha ao salvar: {message}",
    "languageTitle": "Idioma",
    "languageDescription": "Defina o idioma do app. Ao seguir o idioma do sistema, idiomas não suportados voltam para inglês.",
    "appLanguage": "Idioma do app",
    "languageSaveSuccess": "As configurações de idioma foram salvas",
    "languageSaveFailed": "Falha ao salvar as configurações de idioma: {message}",
    "updateTitle": "Atualização do app",
    "versionTitle": "Atualização de software",
    "updateDescription": "Verifique versões mais novas na fonte de releases configurada e instale diretamente quando disponíveis.",
    "currentVersion": "Versão atual",
    "upgradableVersion": "Versão mais recente",
    "none": "Nenhuma",
    "lastChecked": "Última verificação: {time}",
    "updateError": "Erro de atualização: {message}",
    "checking": "Verificando...",
    "checkUpdate": "Verificar atualizações",
    "updating": "Instalando...",
    "downloading": "Baixando...",
    "upgradeTo": "Atualizar para v{version}",
    "viewRelease": "Ver lançamento v{version}",
    "foundUpdate": "Nova versão v{version} encontrada",
    "alreadyLatest": "Você já está na versão mais recente",
    "checkUpdateFailed": "Falha ao verificar atualizações: {message}",
    "installSuccess": "Atualização instalada. Reiniciando o app.",
    "installFailed": "Falha na atualização: {message}",
    "upgradeSuccess": "Atualização concluída. Recarregando...",
    "restartTimeout": "O servidor não voltou a tempo. Verifique os logs do contêiner ou do serviço.",
    "restartingIn": "Reiniciando em {seconds} s...",
    "waitingForServer": "Aguardando o servidor voltar...",
    "restartToUpdate": "Reiniciar para atualizar",
    "updateReadyHint": "Atualização baixada — reinicie para aplicar.",
    "restarting": "Reiniciando...",
    "dockerUpgradeHint": "Isto atualiza o contêiner em execução agora. Perde-se se o contêiner for recriado — para mantê-lo, baixe ou crie uma imagem na nova versão e recrie o contêiner.",
    "upgradeRolledBack": "Falha na atualização; o servidor reverteu para a versão anterior.",
    "serverUnreachable": "Não foi possível acessar o servidor para iniciar a atualização. Verifique se ele está em execução e tente novamente.",
    "rollbackButton": "Reverter",
    "rollingBack": "Revertendo...",
    "rollbackDescription": "Restaura a versão instalada antes da última atualização.",
    "rollbackConfirmTitle": "Reverter para a versão anterior?",
    "rollbackConfirmDescription": "O servidor será reiniciado na versão instalada antes da última atualização. Uma versão mais recente continua disponível para instalar novamente.",
    "rollbackConfirm": "Reverter",
    "rollbackCancel": "Cancelar",
    "rollbackSuccess": "Revertido para a versão anterior. Recarregando...",
    "rollbackFailed": "Falha ao reverter. Verifique os registros do servidor.",
    "updateErrors": {
      "sourceUnavailable": "Não foi possível acessar a fonte de atualização. Verifique sua rede ou proxy e tente novamente.",
      "network": "Falha na conexão de rede. Verifique sua rede ou proxy e tente novamente.",
      "downloadFailed": "Falha ao baixar o pacote de atualização. Tente novamente mais tarde.",
      "installFailed": "Falha ao instalar a atualização. Feche o app e tente novamente.",
      "unknown": "Falha na atualização. Tente novamente mais tarde."
    }
  },
  "VersionControlSettings": {
    "loading": "Carregando...",
    "sectionTitle": "Controle de versão",
    "sectionDescription": "Configure o executável Git e gerencie contas do GitHub.",
    "gitTitle": "Configuração do Git",
    "gitDescription": "Configure o executável Git usado pelo aplicativo.",
    "gitDetected": "Git detectado",
    "gitNotFound": "Git não encontrado no sistema",
    "gitVersion": "Versão",
    "gitPath": "Caminho",
    "customGitPath": "Caminho personalizado do Git",
    "customGitPathPlaceholder": "/usr/bin/git",
    "customGitPathHint": "Deixe vazio para usar o caminho detectado automaticamente.",
    "test": "Testar",
    "testing": "Testando...",
    "testSuccess": "Executável Git é válido.",
    "testFailed": "Teste do Git falhou: {message}",
    "save": "Salvar",
    "saving": "Salvando...",
    "saveSuccess": "Configurações do Git salvas.",
    "saveFailed": "Falha ao salvar: {message}",
    "githubTitle": "Contas do GitHub",
    "githubDescription": "Gerencie contas do GitHub para autenticação. Os tokens são armazenados localmente.",
    "noAccounts": "Nenhuma conta do GitHub configurada.",
    "addAccount": "Adicionar conta",
    "serverUrl": "URL do servidor",
    "serverUrlPlaceholder": "https://github.com",
    "token": "Token de acesso pessoal",
    "tokenPlaceholder": "ghp_xxxxxxxxxxxx",
    "generateToken": "Gerar token",
    "tokenHint": "Gere um token em GitHub → Settings → Developer settings → Personal access tokens.",
    "validateAndAdd": "Validar e adicionar",
    "validating": "Validando...",
    "addSuccess": "Conta {username} adicionada com sucesso.",
    "addFailed": "Falha ao adicionar conta: {message}",
    "testConnection": "Testar",
    "connectionSuccess": "Conexão bem-sucedida.",
    "connectionFailed": "Falha na conexão: {message}",
    "setDefault": "Definir como padrão",
    "defaultLabel": "Padrão",
    "defaultSet": "Conta padrão atualizada.",
    "removeAccount": "Remover",
    "removeConfirmTitle": "Remover conta",
    "removeConfirmMessage": "Tem certeza de que deseja remover a conta \"{username}\"?",
    "removeConfirm": "Remover",
    "removeCancel": "Cancelar",
    "removeSuccess": "Conta removida.",
    "scopes": "Escopos",
    "loadFailed": "Falha ao carregar configurações: {message}",
    "gitAccount": {
      "sectionTitle": "Contas de servidor Git",
      "sectionDescription": "Gerencie credenciais para servidores Git que não são GitHub (GitLab, Bitbucket, auto-hospedados, etc.).",
      "noAccounts": "Nenhuma conta de servidor Git configurada.",
      "addAccount": "Adicionar conta",
      "addTitle": "Adicionar conta Git",
      "addDescription": "Insira o endereço do servidor, nome de usuário e senha ou token de acesso.",
      "serverUrl": "URL do servidor",
      "serverUrlPlaceholder": "https://gitlab.example.com",
      "username": "Nome de usuário",
      "usernamePlaceholder": "Nome de usuário ou e-mail",
      "password": "Senha / Token",
      "passwordPlaceholder": "Senha ou token de acesso",
      "passwordHint": "Insira a senha ou o token de acesso do servidor.",
      "add": "Adicionar",
      "serverRequired": "A URL do servidor é obrigatória.",
      "usernameRequired": "O nome de usuário é obrigatório.",
      "passwordRequired": "A senha é obrigatória."
    }
  },
  "ShortcutSettings": {
    "sectionTitle": "Atalhos",
    "resetDefault": "Restaurar padrões",
    "recordInstruction": "Clique no botão à direita e pressione uma combinação de teclas. Use Ctrl/Cmd, Alt e Shift. Pressione Esc para cancelar a gravação.",
    "recording": "Pressione um atalho...",
    "toasts": {
      "conflict": "O atalho já está em uso por \"{title}\"",
      "updated": "Atalho atualizado",
      "invalid": "Atalho inválido, tente novamente",
      "reset": "Atalhos padrão restaurados"
    },
    "actions": {
      "toggle_search": {
        "title": "Abrir busca",
        "description": "Mostra ou oculta o painel de busca de conversas"
      },
      "toggle_sidebar": {
        "title": "Alternar barra lateral esquerda",
        "description": "Mostra ou oculta a barra lateral da lista de conversas"
      },
      "toggle_terminal": {
        "title": "Alternar terminal",
        "description": "Mostra ou oculta o painel de terminal inferior"
      },
      "new_terminal_tab": {
        "title": "Novo terminal",
        "description": "Cria uma nova aba de terminal quando o foco está no terminal"
      },
      "close_current_terminal_tab": {
        "title": "Fechar terminal atual",
        "description": "Fecha a aba de terminal atual quando o foco está no terminal"
      },
      "toggle_aux_panel": {
        "title": "Alternar painel direito",
        "description": "Mostra ou oculta o painel de informações auxiliares"
      },
      "new_conversation": {
        "title": "Nova conversa",
        "description": "Cria uma nova aba de conversa na pasta atual"
      },
      "open_folder": {
        "title": "Abrir pasta",
        "description": "Abre o seletor de pastas e abre em uma nova janela"
      },
      "open_settings": {
        "title": "Abrir configurações",
        "description": "Abre a janela de configurações"
      },
      "close_current_tab": {
        "title": "Fechar aba atual",
        "description": "Fecha a conversa atual ou aba de arquivo"
      },
      "close_all_file_tabs": {
        "title": "Fechar todas as abas de arquivo",
        "description": "Fecha todas as abas de arquivo abertas quando o painel de arquivos está ativo"
      },
      "next_tab": {
        "title": "Próxima aba",
        "description": "Mudar para a próxima aba de conversa ou arquivo"
      },
      "prev_tab": {
        "title": "Aba anterior",
        "description": "Mudar para a aba anterior de conversa ou arquivo"
      },
      "send_message": {
        "title": "Enviar mensagem",
        "description": "Enviar a mensagem atual na caixa de entrada"
      },
      "newline_in_message": {
        "title": "Nova linha na mensagem",
        "description": "Inserir uma nova linha na caixa de entrada"
      }
    }
  },
  "SkillsSettings": {
    "title": "Skills",
    "description": "Selecione uma Skill à esquerda. À direita, a prévia em Markdown é mostrada por padrão; mude para edição para modificar e salvar.",
    "loadingAgents": "Carregando agentes que suportam Skills...",
    "emptyNoManageableAgents": "Não há agentes disponíveis para gerenciamento de Skills.",
    "managedTarget": "Alvo gerenciado",
    "selectAgentPlaceholder": "Selecione um agente",
    "searchPlaceholder": "Pesquisar por nome / ID / caminho...",
    "skillsList": "Lista de Skills",
    "loadingSkills": "Carregando Skills...",
    "agentNotSupported": "O agente atual não suporta gerenciamento de Skills.",
    "emptySkills": "Ainda não há Skills. Clique em \"Nova Skill\" para criar uma.",
    "newSkillTitle": "Nova Skill",
    "skillInfo": "Informações da Skill",
    "skillIdPlaceholder": "skill-id (letras/números/-/_/.)",
    "skillsDirectoryWithPath": "Diretório de Skills: {path}",
    "skillsDirectoryNeedId": "Diretório de Skills: digite o ID da Skill para gerar o caminho completo",
    "markdownContent": "Conteúdo Markdown",
    "editingStatus": "Editando",
    "previewStatus": "Visualizando",
    "contentPlaceholder": "Digite o conteúdo Markdown da Skill...",
    "metadataTitle": "Metadados de Skills",
    "onlyYamlMetadata": "Esta Skill contém apenas metadados YAML.",
    "emptyContentHint": "Ainda não há conteúdo. Clique em \"Editar\" para começar.",
    "loadingSkill": "Carregando Skill...",
    "emptyNoAgents": "Nenhum agente disponível.",
    "noSelectionHint": "Selecione um Skill à esquerda ou clique em \"Novo Skill\" para criar um.",
    "systemBadge": "Sistema",
    "systemHint": "Skill integrado do CLI · somente leitura",
    "scope": {
      "global": "Global",
      "folder": "Pasta",
      "selectFolderPlaceholder": "Selecionar uma pasta",
      "noFolders": "Nenhuma pasta encontrada",
      "pickFolderHint": "Selecione uma pasta para ver suas Skills."
    },
    "actions": {
      "preview": "Prévia",
      "edit": "Editar",
      "openInWindow": "Abrir em nova janela",
      "delete": "Excluir",
      "deleting": "Excluindo...",
      "refresh": "Atualizar",
      "newSkill": "Nova Skill",
      "reset": "Redefinir",
      "save": "Salvar",
      "saving": "Salvando...",
      "cancel": "Cancelar"
    },
    "deleteDialog": {
      "title": "Excluir Skill",
      "confirm": "Excluir a Skill atual? Esta ação não pode ser desfeita.",
      "confirmWithNamePrefix": "Excluir Skill",
      "confirmWithNameSuffix": "? Esta ação não pode ser desfeita."
    },
    "toasts": {
      "loadFailed": "Falha ao carregar Skill",
      "openFolderFailed": "Falha ao abrir pasta",
      "noSkillDirectory": "Nenhum diretório de Skills disponível para o agente atual",
      "nameRequired": "O nome da Skill não pode estar vazio",
      "updated": "Skill atualizada",
      "created": "Skill criada",
      "saveFailed": "Falha ao salvar Skill",
      "deleted": "Skill excluída",
      "deleteFailed": "Falha ao excluir Skill"
    },
    "templates": {
      "gemini": "---\nname: example-skill\ndescription: Describe when this skill should be used.\n---\n\n# Skill Name\n\nInstructions for the agent when this skill is active.\n\n## Workflow\n\n1. Add actionable step one.\n2. Add actionable step two.\n",
      "openCode": "---\nname: example-skill\ndescription: Describe when this skill should be used.\n---\n\n# Purpose\n\nDescribe what this skill helps with.\n\n# Steps\n\n1. Add actionable step one.\n2. Add actionable step two.\n",
      "openClaw": "---\nname: example-skill\ndescription: Describe when this skill should be used.\nuser-invocable: true\ndisable-model-invocation: false\n---\n\n# Purpose\n\nDescribe what this skill helps with.\n\n# Instructions\n\n1. Add actionable instruction one.\n2. Add actionable instruction two.\n",
      "default": "---\nname: example-skill\ndescription: Describe when this skill should be used.\n---\n\n# Skill: example-skill\n\n## When to use\n\n- Describe trigger conditions.\n\n## Instructions\n\n1. Add actionable instruction one.\n2. Add actionable instruction two.\n"
    }
  },
  "McpSettings": {
    "loading": "Carregando...",
    "summary": {
      "missingCommand": "(comando ausente)",
      "missingUrl": "(URL ausente)"
    },
    "protocol": {
      "stdio": "Stdio"
    },
    "errors": {
      "selectInstallProtocol": "Selecione um protocolo de instalação",
      "fieldRequired": "{field} é obrigatório",
      "fieldNeedsBoolean": "{field} deve ser true ou false",
      "fieldNeedsNumber": "{field} deve ser um número",
      "fieldNeedsInteger": "{field} deve ser um inteiro",
      "fieldInvalidJson": "{field} tem JSON inválido: {message}",
      "fieldOutOfRange": "O valor de {field} está fora do intervalo permitido",
      "jsonEmpty": "{name} não pode estar vazio",
      "jsonInvalid": "{name} não é um JSON válido: {message}",
      "jsonMustBeObject": "{name} deve ser um objeto JSON",
      "specMustBeObject": "A configuração do MCP deve ser um objeto JSON.",
      "missingType": "Falta o campo type na configuração do MCP. Use stdio, http (aliases: streamable-http, streamableHttp) ou sse.",
      "unsupportedType": "Tipo de MCP não suportado {type}. Suportados: stdio, http (aliases: streamable-http, streamableHttp), sse.",
      "codexEntryUnsupportedType": "A entrada Codex MCP {id} tem tipo não suportado {type}. Suportados: stdio, http (aliases: streamable-http, streamableHttp), sse.",
      "unsupportedTransportType": "Tipo de transport não suportado {type}. Suportados: http (aliases: streamable-http, streamableHttp), sse.",
      "stdioCommandRequired": "Um MCP stdio exige um campo command não vazio.",
      "remoteUrlRequired": "Um MCP remoto exige um campo url não vazio.",
      "appsRequired": "Selecione ao menos um aplicativo alvo."
    },
    "jsonNames": {
      "localConfig": "Configuração MCP",
      "installConfig": "Configuração de instalação"
    },
    "toasts": {
      "uninstalled": "MCP desinstalado",
      "uninstallFailed": "Falha ao desinstalar: {message}",
      "selectAtLeastOneApp": "Selecione pelo menos um app de destino",
      "saveSuccess": "Salvo",
      "saveFailed": "Falha ao salvar: {message}",
      "installed": "{name} instalado",
      "installFailed": "Falha na instalação: {message}",
      "serverIdRequired": "O Server ID é obrigatório",
      "serverIdExists": "O Server ID \"{id}\" já existe. Edite a entrada existente ou escolha outro nome.",
      "created": "MCP criado"
    },
    "installDialog": {
      "title": "Confirmar instalação do MCP",
      "descriptionWithName": "Instalar {name} na configuração local.",
      "description": "Selecione os apps de destino para instalação.",
      "protocol": "Protocolo",
      "selectProtocol": "Selecionar protocolo",
      "parameters": "Parâmetros de configuração",
      "booleanPlaceholder": "Selecione true/false",
      "selectOneValue": "Selecione um valor",
      "targetApps": "Apps de destino"
    },
    "actions": {
      "cancel": "Cancelar",
      "confirmInstall": "Confirmar instalação",
      "installing": "Instalando",
      "uninstall": "Desinstalar",
      "uninstalling": "Desinstalando",
      "viewDetails": "Ver detalhes",
      "save": "Salvar",
      "saving": "Salvando",
      "install": "Instalar",
      "refresh": "Atualizar",
      "newMcp": "Novo MCP",
      "create": "Criar",
      "creating": "Criando..."
    },
    "tabs": {
      "local": "MCP local",
      "market": "Marketplace MCP"
    },
    "local": {
      "filterPlaceholder": "Filtrar MCP local...",
      "loadFailed": "Falha ao carregar: {message}",
      "empty": "Nenhum MCP local detectado.",
      "description": "A configuração local de MCP pode ser editada e salva diretamente.",
      "enabledApps": "Apps habilitados",
      "configJson": "Configuração MCP (JSON)",
      "draftTitle": "Novo MCP",
      "draftDescription": "Informe um Server ID e a configuração para criar um servidor MCP local.",
      "serverIdLabel": "Server ID",
      "serverIdPlaceholder": "Server ID (ex.: my-mcp)",
      "typeHint": "Tipos suportados: stdio, http (aliases: streamable-http, streamableHttp), sse. env só é usado por stdio; para MCPs remotos use headers para transportar tokens de autenticação.",
      "envOnRemoteWarning": "env detectado em um MCP remoto. Apenas stdio usa env; MCPs remotos transportam tokens de autenticação via headers, portanto env será ignorado ao salvar."
    },
    "market": {
      "selectMarketplace": "Selecionar marketplace",
      "searchPlaceholder": "Pesquisar MCP...",
      "searchFailed": "Falha na busca: {message}",
      "loadingList": "Carregando lista de MCP...",
      "empty": "Nenhum resultado de MCP.",
      "loadingDetail": "Carregando detalhes do marketplace...",
      "detailLoadFailed": "Falha ao carregar detalhes: {message}",
      "owner": "Proprietário: {owner}",
      "namespace": "Namespace: {namespace}",
      "defaultInstallProtocol": "Protocolo de instalação padrão",
      "currentOptionParameterCount": "Quantidade de parâmetros da opção atual: {count}",
      "installConfigDescription": "Configuração de instalação (JSON, editável antes de instalar; edições substituirão o formulário de protocolo/parâmetros)",
      "selectLeftToView": "Selecione um MCP do marketplace à esquerda para ver detalhes."
    },
    "badges": {
      "verified": "Verificado",
      "remote": "Remoto",
      "hasHomepage": "Tem homepage",
      "uses": "{count} usos",
      "deployed": "Implantado",
      "notDeployed": "Não implantado"
    },
    "selectLeftMcp": "Selecione um MCP à esquerda."
  },
  "AcpAgentSettings": {
    "title": "Gerenciamento do SDK de agentes",
    "description": "Gerencie em um só lugar a conexão do SDK de agentes, estado habilitado, variáveis de ambiente, gerenciamento de configuração e informações de preflight de versão.",
    "loadingAgents": "Carregando lista de agentes...",
    "agentList": "Lista de agentes",
    "emptyNoAgent": "Nenhum agente disponível.",
    "configManagement": "Gerenciamento de configuração",
    "envVars": "Variáveis de ambiente",
    "nativeJsonConfig": "Configuração JSON nativa",
    "modelHintDefault": "Deixe em branco para usar o modelo padrão do sistema.",
    "generalConfigDescriptionClaude": "Suporta configuração rápida de API URL, API Key e modelos Claude, e sincroniza com a configuração JSON nativa.",
    "generalConfigDescriptionDefault": "Suporta entrada de configuração importante (API URL, API Key, Model) e gerenciamento de configuração JSON nativa.",
    "multiAgent": {
      "title": "Colaboração multiagente",
      "description": "Permite que agentes ativos deleguem subtarefas a outros agentes.",
      "enable": "Ativar delegação",
      "enableHint": "Quando desativado, a ferramenta delegate_to_agent fica oculta no catálogo de ferramentas MCP do agente.",
      "depthLimit": "Profundidade máxima de delegação",
      "depthHint": "Intervalo permitido: {min}–{max}. Limita a profundidade de recursão de uma cadeia de delegação (raiz → filho → neto …).",
      "completedCacheLabel": "Cache de resultados concluídos (MB)",
      "completedCacheHint": "Cache em memória dos resultados concluídos de subagentes, mantido apenas enquanto a sessão de delegação está em execução e liberado automaticamente quando essa sessão termina. Acima deste limite, os resultados mais antigos são descartados da memória primeiro (ainda visíveis na sessão do próprio subagente); 0 = ilimitado (ainda assim liberado ao terminar a sessão).",
      "save": "Salvar",
      "saving": "Salvando…",
      "saved": "Configurações de delegação salvas",
      "saveFailed": "Falha ao salvar configurações de delegação",
      "loadFailed": "Falha ao carregar configurações de delegação: {detail}",
      "tabGeneral": "Geral",
      "tabAgentDefaults": "Padrões do subagente",
      "agentDefaultsDescription": "Substituições por agente aplicadas quando a Colaboração multiagente inicia um subagente para uma chamada de delegação. As opções mostradas vêm de uma sondagem ao vivo: o que você escolhe é exatamente o que o agente aceitará.",
      "probing": "Carregando opções disponíveis do agente…",
      "probeFailed": "Falha ao carregar opções: {detail}",
      "retry": "Tentar novamente",
      "noConfigAvailable": "Este agente não possui opções configuráveis.",
      "modeLabel": "Modo",
      "agentDefaultHint": "Padrão do agente: {value}",
      "defaultOptionLabel": "Padrão ({value})"
    },
    "actions": {
      "dragSort": "Arraste para reordenar",
      "dragSortAgent": "Arraste para reordenar {name}",
      "refreshCheck": "Atualizar verificação",
      "refreshCheckAgent": "Atualizar verificação de {name}",
      "clickEnable": "Clique para habilitar {name}",
      "clickDisable": "Clique para desabilitar {name}",
      "install": "Instalar",
      "upgrade": "Atualizar",
      "uninstall": "Desinstalar",
      "uninstalling": "Desinstalando...",
      "saveEnvVars": "Salvar variáveis de ambiente",
      "saving": "Salvando...",
      "saveCodexConfig": "Salvar configuração do Codex",
      "saveGeminiConfig": "Salvar configuração do Gemini",
      "saveOpenCodeConfig": "Salvar configuração do OpenCode",
      "saveOpenClawConfig": "Salvar configuração do OpenClaw",
      "saveConfigManagement": "Salvar gerenciamento de configuração",
      "saveCurrentProvider": "Salvar provedor atual",
      "showApiKey": "Mostrar API Key",
      "hideApiKey": "Ocultar API Key",
      "showKey": "Mostrar chave",
      "hideKey": "Ocultar chave",
      "showToken": "Mostrar token",
      "hideToken": "Ocultar token",
      "cancel": "Cancelar",
      "delete": "Excluir",
      "deleting": "Excluindo...",
      "confirmDelete": "Confirmar exclusão",
      "confirmUninstall": "Confirmar desinstalação",
      "saveClineConfig": "Salvar configuração do Cline",
      "saveHermesConfig": "Salvar configuração do Hermes",
      "customInstall": "Instalação personalizada"
    },
    "status": {
      "enabled": "Habilitado",
      "disabled": "Desabilitado",
      "unchecked": "Não verificado",
      "agentEnabledAria": "{name} habilitado",
      "agentEnabledSwitch": "Chave de habilitação de {name}"
    },
    "preflight": {
      "count": "Itens de preflight: {count}",
      "notRun": "As verificações ainda não foram executadas."
    },
    "codex": {
      "configDescription": "Suporta configuração rápida de URL da API, API Key, nome do modelo e reasoning effort, com sincronização para `auth.json` / `config.toml`.",
      "authMode": "Modo de Autenticação",
      "chatgptSubscription": "Assinatura oficial",
      "chatgptSubscriptionHint": "Faça login com assinatura oficial do ChatGPT, sem necessidade de API Key",
      "apiKeyHint": "Conecte-se usando API Key ao OpenAI ou serviços de API compatíveis",
      "selectProvider": "Selecionar provedor",
      "modelName": "Nome do modelo",
      "selectReasoningEffort": "Selecionar Reasoning Effort",
      "enableWebsocket": "Habilitar WebSocket",
      "enableWebsocketAria": "Habilitar WebSocket para Codex Provider",
      "enableSkills": "Habilitar Skills",
      "enableSkillsAria": "Habilitar Skills para Codex",
      "enableFast": "Habilitar Fast",
      "enableFastAria": "Habilitar nível de serviço Fast para Codex",
      "authJsonNative": "auth.json (nativo)",
      "configTomlNative": "config.toml (nativo)",
      "loginButton": "Entrar com ChatGPT",
      "loginRequesting": "Solicitando código de login...",
      "loginStep1": "Abra a seguinte URL no seu navegador:",
      "loginStep2": "Digite o código abaixo:",
      "loginPolling": "Aguardando autorização...",
      "loginCancel": "Cancelar",
      "loginSuccess": "Login realizado com sucesso, configuração salva!",
      "loginFailed": "Falha no login: {message}",
      "loginRetry": "Tentar novamente",
      "loginCodeCopied": "Código copiado",
      "loggedIn": "Conta conectada",
      "loginRelogin": "Reconectar / Trocar conta",
      "loginTimeout": "Login expirou, tente novamente",
      "loginSaveFailed": "Login realizado com sucesso, mas falha ao salvar configuração"
    },
    "gemini": {
      "authConfig": "Configuração de autenticação do Gemini",
      "authConfigDescription": "Alinhada à documentação de autenticação do Gemini CLI, com suporte a endpoint personalizado, login Google, Gemini API Key e Vertex AI (ADC / conta de serviço / API Key).",
      "authMode": "Modo de autenticação",
      "selectAuthMode": "Selecionar modo de autenticação",
      "viewAuthDoc": "Ver documentação de autenticação",
      "mode": {
        "custom": "Endpoint personalizado",
        "loginGoogle": "Login Google (OAuth)",
        "vertexServiceAccount": "Vertex AI (Conta de serviço)"
      },
      "hint": {
        "custom": "Preencha API URL, API Key e Modelo; mapeados para GOOGLE_GEMINI_BASE_URL / GEMINI_API_KEY / GEMINI_MODEL.",
        "loginGoogle": "Execute gemini no terminal e conclua o login Google primeiro; API key não é necessária.",
        "geminiApiKey": "Preencha GEMINI_API_KEY ao usar a API Gemini.",
        "vertexAdc": "Use gcloud ADC; GOOGLE_CLOUD_PROJECT e GOOGLE_CLOUD_LOCATION são recomendados.",
        "vertexServiceAccount": "Defina o caminho do JSON da conta de serviço em GOOGLE_APPLICATION_CREDENTIALS.",
        "vertexApiKey": "Preencha GOOGLE_API_KEY ao usar API key do Vertex AI."
      }
    },
    "openCode": {
      "configManagement": "Gerenciamento de configuração do OpenCode",
      "configDescription": "Alinhado ao esquema `provider` do OpenCode, com suporte a gerenciamento multi-provedor e sincronização bidirecional com arquivos JSON nativos.",
      "providerManagement": "Gerenciamento de provedores",
      "providerCount": "{count} provedores",
      "addProvider": "Adicionar provedor",
      "emptyProvider": "Ainda não há provedor. Informe um ID e clique em \"Adicionar provedor\".",
      "providerEnabledState": "Estado habilitado de {providerId}",
      "selectProviderNpm": "Selecionar provider.npm",
      "modelManagement": "Gerenciamento de modelos",
      "modelCount": "{count} modelos",
      "modelDescription": "Alinhado ao `provider.models` do OpenCode. O gerenciamento rápido atualmente suporta `name` / `id`; outros campos avançados são preservados e podem ser editados no JSON nativo abaixo.",
      "addModel": "Adicionar modelo",
      "emptyModel": "Ainda não há modelo. Informe model id e clique em \"Adicionar modelo\".",
      "modelId": "ID do modelo",
      "modelName": "Nome do modelo",
      "deleteModel": "Excluir modelo {modelId}",
      "nativeJsonConfig": "Configuração JSON nativa do OpenCode",
      "mainModel": "Modelo principal",
      "smallModel": "Modelo pequeno",
      "noMatchingModels": "Nenhum modelo correspondente"
    },
    "openClaw": {
      "gatewayConfig": "Configuração de Gateway",
      "gatewayDescription": "Configure a conexão do OpenClaw Gateway. Suporta gateway local ou remoto.",
      "gatewayUrlHint": "Deixe vazio para usar gateway.remote.url da configuração local do openclaw.",
      "gatewayTokenPlaceholder": "Token de autenticação do Gateway",
      "gatewayTokenHint": "Use token-file em vez de token em texto puro quando possível; configure via CLI do openclaw.",
      "sessionKeyHint": "Opcional. Especifique a session key do gateway; deixe vazio para atribuição automática de sessão isolada."
    },
    "hermes": {
      "configManagement": "Configuração do Hermes",
      "configDescription": "O Hermes gerencia suas próprias credenciais em ~/.hermes/.env e as configurações em ~/.hermes/config.yaml. Escolha um provedor e, em seguida, defina a chave de API e o modelo — o codeg grava os dois arquivos para você.",
      "providerLabel": "Provedor",
      "providerHint": "O provedor determina qual variável de chave de API e qual model.provider o Hermes usa. Provedores OAuth são configurados pela configuração de terminal abaixo.",
      "groupApiKey": "Provedores com chave de API",
      "groupOauth": "Provedores OAuth",
      "groupAws": "AWS",
      "apiKeyHint": "Salva em ~/.hermes/.env. Ela nunca é injetada no processo — o Hermes a lê da sua própria configuração.",
      "modelName": "Modelo",
      "oauthHint": "Este provedor usa OAuth. Execute a configuração abaixo para autenticar no seu terminal.",
      "awsHint": "O Bedrock usa suas credenciais da AWS (ambiente ou configuração compartilhada). Defina o ID do modelo acima e configure o acesso à AWS no seu ambiente.",
      "unsupportedProvider": "Este provedor não pode ser editado com campos estruturados. Use o editor de config.yaml abaixo ou a configuração pelo terminal.",
      "setupTitle": "Configuração autogerenciada",
      "setupHint": "A configuração interativa do Hermes precisa de um terminal. Inicie-a abaixo ou copie o comando para executá-lo você mesmo.",
      "runSetup": "Executar configuração do Hermes",
      "configureModel": "Configurar modelo",
      "openConfigFolder": "Abrir ~/.hermes",
      "copyCommand": "Copiar comando",
      "commandCopied": "Comando copiado para a área de transferência",
      "advancedTitle": "Avançado: editar config.yaml",
      "rawConfigHint": "Edite ~/.hermes/config.yaml diretamente. Salvar aqui sobrescreve o arquivo exatamente como está.",
      "saveRawConfig": "Salvar config.yaml"
    },
    "authModeOfficialSubscription": "Assinatura oficial",
    "authModeCustomEndpoint": "Endpoint personalizado",
    "authModeCustomEndpointHint": "Configurar manualmente a URL da API e a chave API para um endpoint personalizado.",
    "authModeModelProvider": "Provedor de modelo",
    "modelProvider": "Provedor de modelo",
    "modelProviderHint": "Usar URL da API, chave API e modelo de um provedor de modelo configurado.",
    "selectModelProvider": "Selecionar provedor de modelo",
    "noModelProviderAvailable": "Nenhum provedor de modelo configurado para este agente. Vá para as configurações de provedores de modelo para adicionar um.",
    "claude": {
      "authMode": "Modo de autenticação",
      "officialSubscription": "Assinatura oficial",
      "officialSubscriptionHint": "Usar assinatura oficial da Anthropic, sem necessidade de API Key.",
      "mainModel": "Modelo principal",
      "reasoningModel": "Modelo de raciocínio (thinking)",
      "haikuDefaultModel": "Modelo Haiku padrão",
      "sonnetDefaultModel": "Modelo Sonnet padrão",
      "opusDefaultModel": "Modelo Opus padrão",
      "effortLevel": "Nível de raciocínio",
      "effortLevelDefault": "Nível padrão",
      "effortLevel_low": "Baixo",
      "effortLevel_medium": "Médio",
      "effortLevel_high": "Alto",
      "effortLevel_xhigh": "Extra Alto"
    },
    "dialogs": {
      "confirmDeleteProvider": "Excluir o provedor {providerId}?",
      "confirmDeleteProviderDescription": "A configuração do OpenCode e o auth JSON serão atualizados juntos. Esta ação não pode ser desfeita.",
      "confirmUninstall": "Desinstalar {name}?",
      "confirmUninstallDescription": "Isso remove a versão instalada localmente. Você pode reinstalar depois.",
      "customInstallTitle": "Instalação personalizada de {name}",
      "customInstallDescription": "Digite a versão a instalar. Isso reinstala e substitui a versão instalada atualmente.",
      "customInstallVersionLabel": "Número da versão",
      "customInstallInvalid": "Digite um número de versão válido, ex.: 1.2.3.",
      "customInstallSubmit": "Instalar"
    },
    "errors": {
      "nativeJsonMustBeObject": "A configuração JSON nativa deve ser um objeto",
      "nativeJsonInvalid": "Erro de formato na configuração JSON nativa: {message}",
      "openCodeAuthMustBeObject": "OpenCode auth.json deve ser um objeto JSON",
      "openCodeAuthInvalid": "Erro de formato no OpenCode auth.json: {message}",
      "authMustBeObject": "auth.json deve ser um objeto JSON",
      "authInvalid": "Erro de formato no auth.json: {message}",
      "providerIdPattern": "O ID do provedor só aceita letras, números, sublinhado, ponto e hífen",
      "providerExists": "O provedor {providerId} já existe",
      "modelIdPattern": "O ID do modelo só aceita letras, números, sublinhado, ponto, dois-pontos e hífen",
      "modelExists": "O modelo {modelId} já existe"
    },
    "warnings": {
      "nativeJsonRecoveredStructured": "A configuração JSON nativa é inválida; redefinida para configuração estruturada",
      "nativeJsonRecoveredOpenCode": "A configuração JSON nativa é inválida; redefinida para configuração estruturada do OpenCode",
      "openCodeAuthRecovered": "OpenCode auth.json é inválido; redefinido para configuração padrão",
      "authRecoveredStructured": "auth.json é inválido; redefinido para configuração estruturada"
    },
    "toasts": {
      "agentActionCompleted": "{name} {action} concluído",
      "agentActionFailed": "{name} {action} falhou",
      "localVersion": "Versão local: {version}",
      "installCompletedVersionLater": "Instalação concluída, a versão será atualizada na próxima verificação",
      "uninstallCompleted": "Desinstalação de {name} concluída",
      "uninstallFailed": "Desinstalação de {name} falhou",
      "localVersionRemoved": "Versão local removida",
      "saveAgentOrderFailed": "Falha ao salvar a ordem dos Agents",
      "saveAgentSwitchFailed": "Falha ao salvar o switch dos Agents",
      "saveEnvFailed": "Falha ao salvar variáveis de ambiente",
      "codexSaved": "Configuração do Codex salva",
      "saveCodexNativeFailed": "Falha ao salvar configuração nativa do Codex",
      "geminiSaved": "Configuração do Gemini salva",
      "saveGeminiFailed": "Falha ao salvar configuração do Gemini",
      "providerDeleted": "Provedor {providerId} excluído",
      "providerDeleteFailed": "Falha ao excluir o provedor {providerId}",
      "providerSaved": "Provedor {providerId} salvo",
      "saveProviderFailed": "Falha ao salvar o provedor {providerId}",
      "openCodeConfigSynced": "A configuração do OpenCode e o auth JSON foram sincronizados.",
      "openCodeSaved": "Configuração do OpenCode salva",
      "saveOpenCodeFailed": "Falha ao salvar configuração do OpenCode",
      "openClawSaved": "Configuração do OpenClaw salva",
      "saveOpenClawFailed": "Falha ao salvar configuração do OpenClaw",
      "configSaved": "Configuração salva",
      "configSavedHint": "Sessões existentes precisam ser reabertas para que as alterações tenham efeito",
      "saveConfigManagementFailed": "Falha ao salvar o gerenciamento de configuração",
      "clineSaved": "Configuração do Cline salva",
      "saveClineFailed": "Falha ao salvar a configuração do Cline",
      "hermesSaved": "Configuração do Hermes salva",
      "saveHermesFailed": "Falha ao salvar a configuração do Hermes",
      "modelProviderRequired": "Selecione um provedor de modelo antes de salvar.",
      "affectedRunningSessions": "{count, plural, one {# sessão ativa precisa reconectar para aplicar a alteração} other {# sessões ativas precisam reconectar para aplicar a alteração}}"
    },
    "version": {
      "statusLabel": "Status da versão",
      "notInstalled": "Não instalado",
      "remoteLocal": "Remoto: {remoteVersion} · Local: {localVersion}",
      "platformUnsupported": "{versionText}. A plataforma atual não suporta este agente.",
      "uvxNotReady": "{versionText}. O runtime do uv não está instalado — instale-o na verificação do uv abaixo para usar este agente.",
      "clickInstall": "{versionText}. Clique em Instalar à direita.",
      "localUnrecognized": "{versionText}. A versão local não é comparável; tente atualizar para sobrescrever a instalação.",
      "upgradeAvailable": "{versionText}. Atualização disponível.",
      "remoteUnavailable": "{versionText}. A versão remota está indisponível no momento.",
      "latest": "{versionText}. Já está na versão mais recente."
    },
    "cline": {
      "configDescription": "Configure o provedor de API e as credenciais do Cline. As configurações são salvas em ~/.cline/data/."
    },
    "opencodePlugins": {
      "title": "Plugins do OpenCode",
      "declared": "Plugins declarados",
      "noPlugins": "Nenhum plugin declarado em opencode.json",
      "status": {
        "installed": "Instalado",
        "missing": "Não instalado"
      },
      "installAll": "Instalar todos os ausentes",
      "pinVersions": "Fixar versões @latest",
      "install": "Instalar",
      "uninstall": "Desinstalar",
      "refresh": "Atualizar",
      "success": "Todos os plugins foram instalados com sucesso",
      "failed": "Operação do plugin falhou"
    }
  },
  "SettingsPages": {
    "agentsLoading": "Carregando configurações de agentes..."
  },
  "GeneralSettings": {
    "loading": "Carregando...",
    "sectionTitle": "Geral",
    "sectionDescription": "Preferências centralizadas para o terminal padrão, aceleração de renderização e delegação multi-agente.",
    "terminalTitle": "Terminal padrão",
    "terminalDescription": "Escolha o shell usado ao abrir novas abas de terminal a partir da barra do terminal ou da árvore de arquivos.",
    "defaultTerminalShell": "Shell padrão",
    "terminalSystemDefault": "Padrão do sistema",
    "terminalPowerShell7": "PowerShell 7 (pwsh)",
    "terminalWindowsPowerShell": "Windows PowerShell",
    "terminalCmd": "Prompt de Comando (cmd)",
    "terminalSaveFailed": "Falha ao salvar as configurações do terminal: {message}",
    "terminalShellCustom": "Caminho personalizado",
    "terminalShellCustomPath": "Caminho do shell",
    "terminalShellCustomPlaceholder": "/usr/local/bin/fish",
    "terminalShellCustomSave": "Salvar",
    "terminalShellCustomHint": "Informe um caminho absoluto ou um nome resolvível pelo PATH.",
    "terminalShellNotInstalled": "não instalado",
    "terminalShellNotFoundWarning": "Este caminho não existe neste host.",
    "terminalCurrentShell": "Em uso: {path}",
    "renderingTitle": "Renderização",
    "renderingDescription": "Desative a aceleração de hardware se o aplicativo apresentar tela preta ou falhas de renderização (comum em certas GPUs AMD ou GPUs Intel integradas). Aplica-se apenas à versão desktop do Windows.",
    "disableHardwareAcceleration": "Desativar aceleração de hardware",
    "renderingSaveFailed": "Falha ao salvar as configurações de renderização: {message}",
    "restartRequired": "Salvo. Reinicie o aplicativo para aplicar a alteração.",
    "restartNow": "Reiniciar agora",
    "restartFailed": "Falha ao reiniciar: {message}",
    "loadFailed": "Falha ao carregar: {message}"
  },
  "LoginPage": {
    "documentTitle": "Entrar - codeg",
    "brand": "Codeg",
    "subtitle": "Digite seu token de acesso para conectar ao aplicativo de desktop",
    "tokenPlaceholder": "Token de acesso",
    "connect": "Conectar",
    "connecting": "Conectando...",
    "helpText": "Encontre seu token no app de desktop em Configurações → Serviço Web",
    "invalidToken": "Token inválido. Verifique e tente novamente.",
    "connectionFailed": "Falha na conexão (HTTP {status})",
    "networkError": "Não foi possível conectar ao servidor"
  },
  "CommitPage": {
    "title": "Confirmar",
    "invalidFolderId": "ID de pasta inválido",
    "loadingRepo": "Carregando repositório..."
  },
  "MergePage": {
    "title": "Resolver conflitos",
    "invalidFolderId": "ID de pasta inválido",
    "loadingRepo": "Carregando repositório...",
    "localVersion": "Local (Nosso)",
    "result": "Resultado",
    "remoteVersion": "Remoto (Deles)",
    "acceptLocal": "Aceitar local",
    "acceptRemote": "Aceitar remoto",
    "markResolved": "Marcar como resolvido",
    "abortMerge": "Abortar",
    "completeMerge": "Concluir merge",
    "unresolvedConflicts": "Ainda há marcadores de conflito não resolvidos neste arquivo",
    "fileResolved": "Arquivo resolvido com sucesso",
    "allResolved": "Todos os conflitos resolvidos",
    "conflictFiles": "Arquivos em conflito",
    "loadingFile": "Carregando arquivo...",
    "preparingMerge": "Preparando mesclagem...",
    "selectFile": "Selecione um arquivo para resolver",
    "noConflicts": "Nenhum arquivo em conflito",
    "skipFile": "Pular",
    "abortSuccess": "Operação abortada",
    "applyAllNonConflicting": "Aplicar todas as alterações sem conflito",
    "applyLeftNonConflicting": "Aplicar local",
    "applyRightNonConflicting": "Aplicar remoto"
  },
  "Folder": {
    "workspaceStatus": {
      "degradedTitle": "Atualizações em tempo real indisponíveis",
      "degradedHint": "O observador falhou ao iniciar (por exemplo, permissão negada). Atualize manualmente para ver as mudanças.",
      "retry": "Tentar novamente",
      "retrying": "Tentando novamente..."
    },
    "common": {
      "all": "Todos",
      "cancel": "Cancelar",
      "close": "Fechar",
      "closeOthers": "Fechar outros",
      "closeAll": "Fechar tudo",
      "confirm": "Confirmar",
      "save": "Salvar",
      "delete": "Excluir",
      "rename": "Renomear",
      "loading": "Carregando...",
      "refresh": "Atualizar",
      "refreshing": "Atualizando...",
      "create": "Criar",
      "createAndSwitch": "Criar e alternar",
      "openFile": "Abrir arquivo",
      "viewDiff": "Ver Diff",
      "push": "Enviar..."
    },
    "statusLabels": {
      "in_progress": "Em andamento",
      "pending_review": "Revisão",
      "completed": "Concluído",
      "cancelled": "Cancelado"
    },
    "sidebar": {
      "title": "Conversas",
      "locateActiveConversation": "Localizar conversa ativa",
      "expandAllGroups": "Expandir todos os grupos",
      "collapseAllGroups": "Recolher todos os grupos",
      "newConversation": "Nova conversa",
      "newConversationShort": "Nova",
      "newChat": "Nova conversa",
      "search": "Buscar",
      "noConversationsFound": "Nenhuma conversa encontrada.",
      "importLocalSessions": "Importar sessões locais",
      "importing": "Importando...",
      "error": "Erro: {message}",
      "completeAllSessions": "Concluir todas as sessões",
      "completeAllReviewTitle": "Concluir todas as sessões em revisão?",
      "completeAllReviewDescription": "Isso marcará como concluídas todas as {count, plural, one {# sessão} other {# sessões}} em Revisão.",
      "completing": "Concluindo...",
      "toasts": {
        "importedSessions": "Importadas {imported, plural, one {# sessão} other {# sessões}}, ignoradas {skipped}",
        "importedAndUpdated": "Importadas {imported, plural, one {# sessão} other {# sessões}}, atualizados {updated, plural, one {# título} other {# títulos}}, ignoradas {skipped}",
        "updatedTitles": "Atualizados {updated, plural, one {# título} other {# títulos}}, ignoradas {skipped}",
        "noNewSessionsFound": "Nenhuma nova sessão encontrada (ignoradas {skipped})",
        "importFailed": "Falha na importação: {message}",
        "reviewCompleted": "Marcadas {count, plural, one {# sessão em revisão} other {# sessões em revisão}} como concluídas",
        "completeReviewFailed": "Falha ao concluir sessões em revisão: {message}",
        "folderOpened": "Pasta {name} aberta",
        "folderRemoved": "Pasta {name} removida",
        "openFolderFailed": "Falha ao abrir pasta",
        "removeFolderFailed": "Falha ao remover pasta: {message}",
        "reorderFoldersFailed": "Falha ao reordenar pastas: {message}",
        "changeFolderColorFailed": "Falha ao alterar a cor: {message}",
        "changeFolderDefaultAgentFailed": "Falha ao definir agente padrão: {message}"
      },
      "statsLabel": "{folders} pastas · {convos} conversas",
      "reorderHandle": "Arraste para reordenar",
      "openFolder": "Abrir pasta",
      "searchPlaceholder": "Buscar conversas...",
      "showCompleted": "Mostrar conversas concluídas",
      "moreOptions": "Mais opções",
      "sortBy": "Ordenar por",
      "sortByCreatedAt": "Data de criação",
      "sortByUpdatedAt": "Data de atualização",
      "statusRunningBadge": "Executando",
      "statusCancelledBadge": "Cancelado",
      "conversationCountUnit": "{count, plural, one {# conversa} other {# conversas}}",
      "emptyFolderHint": "Sem conversas",
      "noMatchingConversations": "Nenhuma conversa correspondente",
      "noUnfinishedConversations": "Nenhuma conversa pendente. Ative \"Mostrar concluídas\" no menu superior direito.",
      "removeFolderConfirmTitle": "Remover pasta do espaço de trabalho?",
      "removeFolderConfirmDescription": "Remover \"{name}\" do espaço de trabalho? As abas e terminais relacionados serão fechados.",
      "folderHeaderMenu": {
        "manageConversations": "Gerenciar conversas…",
        "changeColor": "Alterar cor",
        "useThemeColor": "Usar tema do app",
        "setDefaultAgent": "Definir agente padrão",
        "defaultAgentNone": "Sem padrão (usar global)",
        "agentUnavailableSuffix": "(indisponível)",
        "loadingAgents": "Carregando agentes…",
        "removeFromWorkspace": "Remover do espaço de trabalho"
      },
      "manageConversations": {
        "title": "Gerenciar conversas — {name}",
        "searchPlaceholder": "Pesquisar por título…",
        "agentFilterAll": "Todos os agentes",
        "statusFilterAll": "Todos os status",
        "selectAllVisible": "Selecionar tudo",
        "deselectAll": "Desmarcar tudo",
        "selectedCount": "{count} selecionada(s)",
        "matchedCount": "{count} correspondência(s)",
        "messagesShort": "{count} msg",
        "untitledConversation": "Conversa sem título",
        "setStatus": "Definir status…",
        "deleteSelected": "Excluir",
        "noConversations": "Sem conversas nesta pasta.",
        "noMatchingConversations": "Nenhuma conversa corresponde aos filtros.",
        "confirmDeleteTitle": "Excluir {count} conversa(s)?",
        "confirmDeleteDescription": "Esta ação não pode ser desfeita.",
        "toastDeleted": "{count} conversa(s) excluída(s)",
        "toastStatusUpdated": "Status atualizado para {count} conversa(s)",
        "toastOpFailed": "Falha na operação: {message}"
      },
      "sectionPinned": "Fixadas",
      "sectionFolders": "Pastas",
      "sectionChats": "Chat",
      "noChats": "Sem chats",
      "newChatAction": "Novo chat"
    },
    "conversation": {
      "reloadFailed": "Falha ao recarregar conversa: {message}",
      "reloaded": "Conversa recarregada",
      "reload": "Recarregar",
      "activeConversationIndicator": "Conversa ativa",
      "newConversation": "Nova conversa",
      "closeConversation": "Fechar conversa",
      "copyText": "Copiar texto",
      "copyTextSuccess": "Copiado",
      "copyTextFailed": "Falha ao copiar",
      "forkSession": "Bifurcar sessão",
      "forkSessionSuccess": "Sessão bifurcada com sucesso",
      "forkSessionFailed": "Falha ao bifurcar a sessão: {error}",
      "exportConversation": "Exportar conversa",
      "exportImage": "Imagem",
      "exportMarkdown": "Markdown",
      "exportHtml": "HTML",
      "exportSuccess": "Conversa exportada",
      "exportFailed": "Falha ao exportar",
      "exportImageTooLong": "A conversa é muito longa para exportar como imagem",
      "exportLabels": {
        "untitledConversation": "Conversa sem título",
        "agent": "Agente",
        "model": "Modelo",
        "status": "Estado",
        "started": "Início",
        "updated": "Atualizado",
        "tokens": "Estatísticas de tokens",
        "duration": "Duração",
        "inputTokens": "Entrada",
        "outputTokens": "Saída",
        "cacheRead": "Cache lido",
        "cacheWrite": "Cache escrito",
        "user": "Utilizador",
        "assistant": "Assistente",
        "system": "Sistema",
        "toolResult": "Resultado",
        "toolError": "Erro"
      }
    },
    "conversationCard": {
      "untitledConversation": "Conversa sem título",
      "newConversation": "Nova conversa",
      "rename": "Renomear",
      "status": "Status",
      "delete": "Excluir",
      "importLocalSessions": "Importar sessões locais",
      "importing": "Importando...",
      "renameConversation": "Renomear conversa",
      "deleteConversationTitle": "Excluir conversa?",
      "deleteConversationDescription": "Isso excluirá \"{title}\". Esta ação não pode ser desfeita.",
      "cancel": "Cancelar",
      "save": "Salvar",
      "pin": "Fixar",
      "unpin": "Desafixar",
      "markCompleted": "Marcar como concluída",
      "reopen": "Reabrir"
    },
    "search": {
      "dialogTitle": "Buscar",
      "dialogTitleWithFolder": "Buscar — {name}",
      "tabConversations": "Conversas",
      "tabFiles": "Arquivos",
      "placeholder": "Buscar conversas...",
      "filePlaceholder": "Buscar arquivos ou diretórios...",
      "allAgents": "Todos",
      "searching": "Buscando...",
      "typeToSearch": "Digite para buscar conversas",
      "typeToSearchFiles": "Digite para buscar arquivos ou diretórios",
      "noResults": "Nenhum resultado encontrado.",
      "untitledConversation": "Conversa sem título"
    },
    "folderTitleBar": {
      "showSidebar": "Mostrar barra lateral",
      "hideSidebar": "Ocultar barra lateral",
      "toggleTerminal": "Alternar terminal",
      "toggleAuxPanel": "Alternar painel auxiliar",
      "search": "Buscar",
      "openSettings": "Abrir configurações",
      "withShortcut": "{label} (atalho: {shortcut})"
    },
    "statusBar": {
      "connection": {
        "connected": "Conectado",
        "connecting": "Conectando...",
        "prompting": "Respondendo...",
        "error": "Erro de conexão",
        "disconnected": "Desconectado",
        "tooltip": "{agent}: {status}",
        "tooltipError": "{agent}: {error}"
      },
      "tasks": {
        "title": "Tarefas"
      },
      "alerts": {
        "title": "Alertas",
        "empty": "Sem alertas"
      },
      "stats": {
        "conversations": "{count} conversas",
        "summary": "{conversations} conversas / {messages} mensagens"
      },
      "tokens": {
        "contextWindowUsageAria": "Uso da janela de contexto",
        "contextWindow": "Janela de contexto",
        "usedMax": "Usado / Máx",
        "tokenUsage": "Uso de tokens",
        "input": "Entrada",
        "output": "Saída",
        "cacheRead": "Leitura de cache",
        "cacheWrite": "Gravação de cache",
        "total": "Total de tokens"
      }
    },
    "auxPanel": {
      "tabs": {
        "files": "Arquivos",
        "changes": "Alterações",
        "commits": "Confirmações"
      },
      "noFolderTitle": "Nenhuma pasta aberta",
      "noFolderHint": "Abra uma pasta para ver seu conteúdo aqui"
    },
    "windowControls": {
      "minimizeWindow": "Minimizar janela",
      "minimize": "Minimizar",
      "maximizeWindow": "Maximizar janela",
      "maximize": "Maximizar",
      "restoreWindow": "Restaurar janela",
      "restore": "Restaurar",
      "closeWindow": "Fechar janela",
      "close": "Fechar"
    },
    "tabs": {
      "closeConversationTab": "Fechar aba de conversa",
      "close": "Fechar",
      "closeOthers": "Fechar outros",
      "closeAll": "Fechar tudo",
      "tileDisplay": "Exibição em mosaico",
      "untileDisplay": "Sair do mosaico"
    },
    "fileWorkspace": {
      "files": "Arquivos",
      "closeFileTab": "Fechar aba de arquivo",
      "close": "Fechar",
      "closeOthers": "Fechar outros",
      "closeAll": "Fechar tudo",
      "preview": "Visualizar",
      "editSource": "Editar fonte",
      "maximize": "Maximizar",
      "restore": "Restaurar"
    },
    "terminal": {
      "rename": "Renomear",
      "close": "Fechar",
      "closeOthers": "Fechar outros",
      "closeAll": "Fechar tudo",
      "hideTerminal": "Ocultar terminal ({shortcut})",
      "openFolderFirst": "Abra primeiro uma pasta"
    },
    "folderNameDropdown": {
      "fallbackFolderName": "Pasta",
      "openFolder": "Abrir pasta",
      "cloneRepository": "Clonar repositório",
      "projectBoot": "Inicializador de projeto",
      "opened": "Aberto",
      "recentOpen": "Abertos recentemente"
    },
    "fileWorkspacePanel": {
      "viewDiff": "Ver Diff",
      "openFile": "Abrir arquivo",
      "fileCount": "{count, plural, one {# arquivo} other {# arquivos}}",
      "openFileOrDiff": "Abra um arquivo ou diff pelo painel direito",
      "disk": "Disco",
      "head": "HEAD",
      "unsaved": "Não salvo",
      "workingTree": "Árvore de trabalho",
      "loading": "Carregando...",
      "compareWithBranch": "{path} · comparar com {branch}",
      "hunkCount": "{count, plural, one {# bloco} other {# blocos}}",
      "prev": "Anterior",
      "next": "Próximo",
      "jumpToLine": "Ir para a linha {line}",
      "noParsedDiffSections": "Sem seções de diff analisadas",
      "loadingEditor": "Carregando editor...",
      "imageZoomIn": "Ampliar",
      "imageZoomOut": "Reduzir",
      "imageZoomReset": "Redefinir zoom",
      "htmlPreviewTitle": "Visualização HTML",
      "htmlPreviewTrust": "Ativar scripts",
      "htmlPreviewTrustHint": "Executa os scripts deste arquivo e permite acesso à rede. Ative apenas para arquivos confiáveis."
    },
    "branchDropdown": {
      "toasts": {
        "commitCodeCompleted": "Commit de código concluído",
        "pushCodeCompleted": "Push de código concluído",
        "committedFiles": "{count, plural, one {# arquivo commitado} other {# arquivos commitados}}",
        "taskCompleted": "{label} concluído",
        "taskFailed": "{label} falhou",
        "mergeNoNewCommits": "{branchName} não tem novos commits",
        "mergedCommits": "{count, plural, one {# commit mesclado} other {# commits mesclados}}",
        "allFilesUpToDate": "Todos os arquivos estão atualizados",
        "updatedFiles": "{count, plural, one {# arquivo atualizado} other {# arquivos atualizados}}",
        "openCommitWindowFailed": "Falha ao abrir a janela de commit",
        "openPushWindowFailed": "Falha ao abrir janela de envio",
        "upstreamSet": "A branch upstream foi definida",
        "upstreamSetAndPushed": "Branch upstream definida e {count, plural, one {# commit} other {# commits}} enviado(s)",
        "noCommitsToPush": "Não há commits para enviar",
        "pushedCommits": "{count, plural, one {# commit enviado} other {# commits enviados}}",
        "switchedToFolder": "Alternado para {name}",
        "switchFailed": "Falha ao trocar de branch"
      },
      "tasks": {
        "newBranch": "Criar branch {name}",
        "newWorktree": "Criar worktree {name}",
        "checkoutTo": "Fazer checkout para {branchName}",
        "mergeBranch": "Mesclar {branchName}",
        "rebaseTo": "Rebase para {branchName}",
        "deleteRemoteBranch": "Excluir branch remoto {branchName}",
        "initGitRepo": "Inicializar repositório Git",
        "pullCode": "Fazer pull do código",
        "fetchInfo": "Buscar informações",
        "pushCode": "Enviar código",
        "stashChanges": "Fazer stash das alterações",
        "stashPop": "Aplicar stash",
        "deleteBranch": "Excluir branch {branchName}"
      },
      "confirm": {
        "mergeTitle": "Mesclar branch",
        "rebaseTitle": "Rebase da branch",
        "mergeDescription": "Mesclar {branchName} na branch atual {currentBranch}?",
        "rebaseDescription": "Fazer rebase da branch atual {currentBranch} sobre {branchName}?",
        "deleteRemoteTitle": "Excluir branch remoto",
        "deleteRemoteDescription": "Excluir o branch remoto {branchName}? Isso o removerá do repositório remoto e não poderá ser desfeito.",
        "deleteTitle": "Excluir branch",
        "deleteDescription": "Excluir a branch {branchName}? Esta ação não pode ser desfeita.",
        "forceDeleteTitle": "Forçar exclusão do branch",
        "forceDeleteDescription": "O branch {branchName} não está totalmente mesclado. Tem certeza de que deseja forçar a exclusão? Esta ação não pode ser desfeita."
      },
      "current": "Atual",
      "switchToBranch": "Mudar para esta branch",
      "mergeBranchIntoCurrent": "Mesclar {branchName} em {currentBranch}",
      "rebaseCurrentToBranch": "Rebase de {currentBranch} sobre {branchName}",
      "noBranch": "Sem ramo",
      "initGitRepo": "Inicializar repositório Git",
      "pullCode": "Fazer pull do código",
      "fetchRemoteBranches": "Buscar branches remotas",
      "openCommitWindow": "Commit de código...",
      "pushCode": "Enviar...",
      "newBranch": "Nova branch...",
      "newWorktree": "Novo worktree...",
      "stashChanges": "Guardar alterações...",
      "stashPop": "Aplicar stash...",
      "manageRemotes": "Gerenciar remotos...",
      "localBranches": "Branches locais ({count, plural, one {#} other {#}})",
      "noLocalBranches": "Sem branches locais",
      "remoteBranches": "Branches remotas ({count, plural, one {#} other {#}})",
      "noRemoteBranches": "Sem branches remotas",
      "dialogs": {
        "newBranchTitle": "Nova branch",
        "newBranchDescription": "Criar uma nova branch a partir da branch atual {branch}",
        "branchNamePlaceholder": "Nome da branch",
        "newWorktreeTitle": "Novo worktree",
        "newWorktreeDescription": "Criar um novo worktree a partir da branch atual {branch}",
        "branchNameLabel": "Nome da branch",
        "worktreePathLabel": "Caminho do worktree",
        "worktreePathPlaceholder": "Caminho do worktree",
        "manageRemotesTitle": "Gerenciar remotos",
        "manageRemotesEmpty": "Nenhum remoto configurado",
        "remoteNamePlaceholder": "Nome do remoto",
        "remoteUrlPlaceholder": "URL do remoto",
        "addRemote": "Adicionar",
        "savingRemotes": "Salvando..."
      },
      "conflict": {
        "title": "Conflitos de merge",
        "description": "Os seguintes arquivos têm conflitos que precisam ser resolvidos:",
        "abort": "Abortar merge",
        "openMergeTool": "Abrir ferramenta de merge",
        "completeMerge": "Concluir merge",
        "abortSuccess": "Merge abortado com sucesso",
        "completeSuccess": "Merge concluído com sucesso"
      },
      "stashDialog": {
        "title": "Guardar alterações no stash",
        "description": "Guardar as alterações atuais no stash",
        "messageLabel": "Mensagem",
        "messagePlaceholder": "Mensagem do stash (opcional)",
        "keepIndex": "Manter índice (alterações preparadas permanecem preparadas)",
        "cancel": "Cancelar",
        "stash": "Guardar",
        "success": "Alterações guardadas no stash",
        "error": "Erro ao guardar no stash"
      },
      "unstashDialog": {
        "title": "Aplicar stash",
        "noStashes": "Nenhum stash encontrado",
        "selectFile": "Selecione um ficheiro para ver diferenças",
        "viewDiff": "Ver diferenças",
        "original": "Original",
        "modified": "Modificado",
        "apply": "Aplicar",
        "drop": "Eliminar",
        "applySuccess": "Stash aplicado",
        "dropSuccess": "Stash eliminado",
        "confirmApply": "Aplicar stash {ref} ao diretório de trabalho?",
        "cancel": "Cancelar"
      },
      "deleteBranch": "Excluir branch"
    },
    "commitDialog": {
      "toasts": {
        "commitCompleted": "Commit de código concluído",
        "pushFailed": "Falha no envio",
        "committedFiles": "{count, plural, one {# arquivo commitado} other {# arquivos commitados}}",
        "addedToVcs": "Adicionado ao VCS",
        "addToVcsFailed": "Falha ao adicionar ao VCS",
        "fileDeleted": "Arquivo excluído",
        "deleteFailed": "Falha ao excluir",
        "fileRolledBack": "Arquivo revertido",
        "rollbackFailed": "Falha no rollback",
        "dirRolledBack": "Diretório revertido",
        "dirDeleted": "Diretório excluído"
      },
      "confirm": {
        "deleteTitle": "Confirmar exclusão",
        "deleteDescription": "Excluir o arquivo \"{file}\"? Esta ação não pode ser desfeita.",
        "rollbackTitle": "Confirmar rollback",
        "rollbackDescription": "Reverter o arquivo \"{file}\" para o HEAD? Alterações não salvas serão perdidas.",
        "rollbackDirDescription": "Reverter o diretório \"{dir}\" para HEAD? Alterações não salvas serão perdidas.",
        "deleteDirDescription": "Excluir o diretório \"{dir}\"? Esta ação não pode ser desfeita."
      },
      "actions": {
        "select": "Selecionar",
        "unselect": "Desmarcar",
        "rollback": "Reverter",
        "addToVcs": "Adicionar ao VCS"
      },
      "aria": {
        "selectFile": "{action}: {path}",
        "unselectAllFiles": "Desmarcar todos os arquivos",
        "selectAllFiles": "Selecionar todos os arquivos",
        "unselectTracked": "Desmarcar alterações rastreadas",
        "selectTracked": "Selecionar alterações rastreadas",
        "unselectUntracked": "Desmarcar arquivos não rastreados",
        "selectUntracked": "Selecionar arquivos não rastreados"
      },
      "loading": "Carregando...",
      "selectionCount": "{selected} / {total} arquivos",
      "emptyFiles": "Sem arquivos alterados",
      "trackedChanges": "Alterações rastreadas ({count})",
      "untrackedFiles": "Arquivos não rastreados ({count})",
      "commitMessage": "Mensagem de commit",
      "commitMessagePlaceholder": "Digite a mensagem de commit...",
      "commitButton": "Confirmar ({count})",
      "commitAndPushButton": "Confirmar e enviar ({count})",
      "head": "HEAD",
      "workingTree": "Árvore de trabalho",
      "clickFileToDiff": "Clique no nome do arquivo para ver o diff",
      "loadingDiff": "Carregando diff..."
    },
    "pushWindow": {
      "title": "Enviar código",
      "noUnpushedCommits": "Nenhum commit não enviado",
      "noRemoteConfigured": "Nenhum remoto Git configurado\nAdicione um em «Gerenciar remotos»",
      "newBranchNoPushedCommits": "Nova branch — enviar para criar branch de rastreamento remota",
      "unpushed": "Não enviado",
      "selectFileToViewDiff": "Selecione um arquivo para ver as diferenças",
      "before": "Antes",
      "after": "Depois",
      "push": "Enviar",
      "toasts": {
        "pushSuccess": "Envio bem-sucedido",
        "pushFailed": "Falha no envio",
        "upstreamSet": "Branch remoto foi configurado",
        "upstreamSetAndPushed": "Branch remoto configurado e {count} commits enviados",
        "noCommitsToPush": "Nenhum commit para enviar",
        "pushedCommits": "{count} commits enviados"
      }
    },
    "gitLogTab": {
      "filesTitle": "Arquivos",
      "expandAllFiles": "Expandir todos os arquivos",
      "collapseAllFiles": "Recolher todos os arquivos",
      "workspace": "espaço de trabalho",
      "retry": "Tentar novamente",
      "noCommitsFound": "Nenhum commit encontrado",
      "notAGitRepoTitle": "Não é um repositório Git",
      "notAGitRepoHint": "Inicialize o Git pelo menu de ramificações acima, ou abra um repositório existente.",
      "hash": "Hash do commit",
      "copyHash": "Copiar hash",
      "copyMessage": "Copiar mensagem",
      "author": "Autor",
      "noFileChangeDetails": "Sem detalhes de alteração de arquivos disponíveis.",
      "branchesTitle": "Branches Git",
      "loadingBranches": "Carregando branches...",
      "noContainingBranches": "Nenhuma branch contendo este commit foi encontrada.",
      "newBranch": "Nova branch...",
      "resetToHere": "Resetar para aqui",
      "resetDisabledReasonNotCurrentBranchView": "Disponível somente ao visualizar a branch atual",
      "viewCommitDiffAria": "Ver diff do commit {hash}",
      "copyFullCommitHashAria": "Copiar hash completo do commit {hash}",
      "pushStatus": {
        "pushed": "Enviado para o remoto",
        "notPushed": "Não enviado para o remoto",
        "unknown": "Status de push desconhecido (upstream não configurado)"
      },
      "time": {
        "monthsAgo": "{count, plural, one {há # mês} other {há # meses}}",
        "daysAgo": "{count, plural, one {há # dia} other {há # dias}}",
        "hoursAgo": "{count, plural, one {há # hora} other {há # horas}}",
        "minsAgo": "{count, plural, one {há # min} other {há # mins}}",
        "justNow": "agora mesmo"
      },
      "toasts": {
        "createdAndSwitchedNewBranch": "Nova branch criada e selecionada",
        "newBranchFromCommit": "{name} (de {shortHash})",
        "createBranchFailed": "Falha ao criar branch",
        "openPushWindowFailed": "Falha ao abrir a janela de push",
        "resetSuccess": "Reset concluído",
        "resetSuccessDescription": "{branch} foi resetada para {shortHash} com {mode}",
        "resetFailed": "Falha no reset"
      },
      "branchSelector": {
        "selectBranchPlaceholder": "Selecionar branch...",
        "localBranches": "Branches locais",
        "current": "Atual",
        "remoteBranches": "Branches remotas",
        "refreshCommitHistory": "Atualizar histórico de commits"
      },
      "dialogs": {
        "newBranchTitle": "Nova branch",
        "newBranchDescription": "Criar uma nova branch com o commit {shortHash} como commit mais recente.",
        "branchNamePlaceholder": "Nome da branch",
        "reset": {
          "title": "Resetar a branch atual para este commit",
          "branchLabel": "Branch",
          "targetLabel": "Commit alvo",
          "messageLabel": "Mensagem",
          "modeLabel": "Modo de reset",
          "confirmButton": "Resetar",
          "modes": {
            "soft": {
              "label": "--soft",
              "description": "Move o HEAD e o ponteiro da branch atual para o commit alvo.\nMantém Index e Working Tree sem alterações.\nAs mudanças dos commits removidos permanecem staged."
            },
            "mixed": {
              "label": "--mixed (padrão)",
              "description": "Move o HEAD para o commit alvo.\nReseta o Index para o commit alvo e mantém as mudanças no Working Tree.\nAs mudanças passam de staged para unstaged."
            },
            "hard": {
              "label": "--hard",
              "description": "Move o HEAD e reseta tanto Index quanto Working Tree para o commit alvo.\nAs mudanças locais rastreadas após o commit alvo são descartadas.\nEsta é uma operação destrutiva."
            },
            "keep": {
              "label": "--keep",
              "description": "Move o HEAD para o commit alvo e tenta preservar alterações locais.\nSomente alterações sem conflito são mantidas.\nSe houver conflito, o reset é abortado para proteger seu trabalho."
            }
          }
        }
      }
    },
    "gitChangesTab": {
      "workspace": "espaço de trabalho",
      "noChanges": "Sem alterações locais",
      "notAGitRepoTitle": "Não é um repositório Git",
      "notAGitRepoHint": "Inicialize o Git pelo menu de ramificações acima, ou abra um repositório existente.",
      "trackedChanges": "Alterações rastreadas ({count})",
      "untrackedFiles": "Arquivos não rastreados ({count})",
      "expandTracked": "Expandir alterações rastreadas",
      "collapseTracked": "Recolher alterações rastreadas",
      "expandUntracked": "Expandir arquivos não rastreados",
      "collapseUntracked": "Recolher arquivos não rastreados",
      "actions": {
        "commitCode": "Commit do código",
        "rollback": "Reverter",
        "addToVcs": "Adicionar ao VCS",
        "delete": "Excluir"
      },
      "toasts": {
        "noAddableFilesInDir": "Nenhum arquivo alterado neste diretório pode ser adicionado ao VCS",
        "noRollbackFilesInDir": "Nenhum arquivo alterado neste diretório pode ser revertido",
        "addedToVcs": "{name} adicionado ao VCS",
        "addToVcsFailed": "Falha ao adicionar ao VCS",
        "openCommitWindowFailed": "Falha ao abrir a janela de commit",
        "rolledBack": "{name} revertido",
        "rollbackFailed": "Falha no rollback",
        "addedFilesToVcs": "{count, plural, one {# arquivo} other {# arquivos}} adicionados ao VCS",
        "rolledBackFiles": "{count, plural, one {# arquivo revertido} other {# arquivos revertidos}}",
        "deleted": "{name} excluído",
        "deleteFailed": "Falha ao excluir",
        "deletedFiles": "{count} arquivos excluídos",
        "noDeletableFilesInDir": "Nenhum arquivo alterado neste diretório pode ser excluído"
      },
      "directoryDialog": {
        "descriptionAdd": "Selecione arquivos sob o diretório {path} para adicionar ao VCS.",
        "descriptionRollback": "Selecione arquivos sob o diretório {path} para reverter.",
        "descriptionDelete": "Selecione arquivos no diretório {path} para excluir. Esta ação não pode ser desfeita.",
        "descriptionFallback": "Selecione arquivos para prosseguir.",
        "selectionCount": "Selecionados {selected} / {total} arquivos",
        "selectAll": "Selecionar todos",
        "unselectAll": "Desmarcar todos",
        "loadingCandidates": "Carregando alterações do diretório...",
        "noOperableFiles": "Nenhum arquivo operável"
      },
      "rollbackConfirm": {
        "title": "Confirmar rollback",
        "descriptionWithTarget": "Reverter alterações locais de {kind} \"{name}\"?",
        "descriptionFallback": "Reverter alterações locais?",
        "kindDirectory": "diretório",
        "kindFile": "arquivo"
      },
      "deleteConfirm": {
        "title": "Confirmar exclusão",
        "descriptionWithTarget": "Excluir {kind} \"{name}\"? Esta ação não pode ser desfeita.",
        "descriptionFallback": "Esta ação não pode ser desfeita.",
        "kindDirectory": "diretório",
        "kindFile": "arquivo"
      }
    },
    "tabContext": {
      "loadingConversation": "Carregando...",
      "untitledConversation": "Conversa sem título",
      "newConversation": "Nova conversa"
    },
    "fileTreeTab": {
      "workspace": "Espaço de trabalho",
      "retry": "Tentar novamente",
      "git": "Git",
      "openInFileManager": "Abrir no gerenciador de arquivos",
      "openInFinder": "Abrir no Finder",
      "openInExplorer": "Abrir no Explorer",
      "attachToCurrentSession": "Adicionar à sessão",
      "compareWithBranch": "Comparar com branch...",
      "reloadFromDisk": "Recarregar do disco",
      "new": "Novo",
      "newFile": "Arquivo",
      "newDirectory": "Diretório",
      "openIn": "Abrir em",
      "openInTerminal": "Abrir no terminal",
      "copyPath": "Copiar caminho",
      "upload": "Enviar arquivos/pasta",
      "download": "Baixar arquivo",
      "downloadAsZip": "Baixar como ZIP",
      "actions": {
        "select": "Selecionar",
        "unselect": "Desmarcar",
        "commitCode": "Fazer commit do código",
        "rollback": "Reverter",
        "addToVcs": "Adicionar ao VCS"
      },
      "aria": {
        "selectPath": "{action}: {path}"
      },
      "toasts": {
        "openDirectoryFailed": "Falha ao abrir diretório",
        "openBuiltinTerminalFailed": "Não foi possível abrir o terminal embutido",
        "openCommitWindowFailed": "Falha ao abrir janela de commit",
        "noAddableFilesInDir": "Nenhum arquivo alterado neste diretório pode ser adicionado ao VCS",
        "noRollbackFilesInDir": "Nenhum arquivo alterado neste diretório pode ser revertido",
        "addedToVcs": "{name} adicionado ao VCS",
        "addToVcsFailed": "Falha ao adicionar ao VCS",
        "loadBranchesFailed": "Falha ao carregar branches",
        "renameFailed": "Falha ao renomear",
        "deleteFailed": "Falha ao excluir",
        "rolledBack": "{name} revertido",
        "rollbackFailed": "Falha ao reverter",
        "addedFilesToVcs": "{count, plural, one {# arquivo adicionado ao VCS} other {# arquivos adicionados ao VCS}}",
        "rolledBackFiles": "{count, plural, one {# arquivo revertido} other {# arquivos revertidos}}",
        "savedAsCopy": "Salvo como cópia",
        "saveCopyFailed": "Falha ao salvar como cópia",
        "watchStartFailed": "Falha ao iniciar monitoramento de arquivos",
        "createFailed": "Falha ao criar",
        "downloadFailed": "Falha ao baixar {name}",
        "downloadSaved": "{name} baixado",
        "pathCopied": "Caminho copiado",
        "copyPathFailed": "Falha ao copiar o caminho"
      },
      "createDialog": {
        "newFile": "Novo arquivo",
        "newDirectory": "Novo diretório",
        "description": "Digite um nome para o novo {kind}.",
        "placeholderFile": "file-name.ext",
        "placeholderDirectory": "folder-name"
      },
      "renameDialog": {
        "renameDirectory": "Renomear diretório",
        "renameFile": "Renomear arquivo",
        "description": "Digite um novo nome (apenas nome, sem caminho).",
        "placeholderDirectory": "novo-nome-da-pasta",
        "placeholderFile": "novo-nome-do-arquivo.ext"
      },
      "uploadDialog": {
        "title": "Enviar para o workspace",
        "description": "Ajuste o destino se necessário e adicione arquivos ou pastas.",
        "workspaceRoot": "raiz do workspace",
        "targetPathLabel": "Enviar para",
        "targetPathHint": "Caminho resolvido: {path}",
        "dropHint": "Arraste arquivos ou pastas aqui, ou use os botões abaixo",
        "dropHintActive": "Solte para adicionar à fila",
        "selectFiles": "Selecionar arquivos",
        "selectFolder": "Selecionar pasta",
        "startUpload": "Iniciar upload",
        "clearQueue": "Limpar finalizados",
        "removeItem": "Remover da fila",
        "retry": "Tentar novamente",
        "dropZoneAria": "Solte arquivos aqui ou ative para procurar",
        "folderEmpty": "Nenhum arquivo encontrado na pasta solta",
        "summary": "Total: {total} · Sucesso: {succeeded} · Falhas: {failed}",
        "status": {
          "pending": "Aguardando",
          "uploading": "Enviando",
          "success": "Concluído",
          "error": "Falhou",
          "cancelled": "Cancelado"
        }
      },
      "directoryDialog": {
        "descriptionAdd": "Selecione arquivos no diretório {path} para adicionar ao VCS.",
        "descriptionRollback": "Selecione arquivos no diretório {path} para reverter.",
        "descriptionFallback": "Selecione arquivos para continuar.",
        "selectionCount": "{selected} / {total} arquivos selecionados",
        "selectAll": "Selecionar tudo",
        "unselectAll": "Desmarcar tudo",
        "loadingCandidates": "Carregando alterações do diretório...",
        "noOperableFiles": "Nenhum arquivo operável"
      },
      "compareDialog": {
        "title": "Comparar com branch",
        "descriptionWithTarget": "Selecione uma branch e compare com {kind} {path}",
        "descriptionFallback": "Selecione uma branch para comparar.",
        "kindDirectory": "diretório",
        "kindFile": "arquivo",
        "filterPlaceholder": "Filtre branches, ex.: main / origin/main",
        "singleClickHint": "Clique em uma branch para comparar diretamente",
        "loadingBranches": "Carregando branches...",
        "recentBranches": "Branches recentes ({count})",
        "noCurrentBranch": "Sem branch atual",
        "localBranches": "Branches locais ({count})",
        "remoteBranches": "Branches remotas ({count})",
        "noMatchingBranches": "Nenhuma branch correspondente"
      },
      "externalConflictDialog": {
        "title": "Alterações externas de arquivo detectadas",
        "descriptionWithPath": "O arquivo {path} foi alterado no disco e as edições atuais não foram salvas.",
        "descriptionFallback": "O arquivo atual foi alterado no disco e as edições atuais não foram salvas.",
        "compare": "Comparar",
        "savingCopy": "Salvando cópia...",
        "saveAsCopy": "Salvar como cópia",
        "reload": "Recarregar"
      },
      "deleteConfirm": {
        "title": "Confirmar exclusão",
        "descriptionWithTarget": "Excluir {kind} \"{name}\"? Esta ação não pode ser desfeita.",
        "descriptionFallback": "Esta ação não pode ser desfeita.",
        "kindDirectory": "diretório",
        "kindFile": "arquivo"
      },
      "rollbackConfirm": {
        "title": "Confirmar reversão",
        "descriptionWithTarget": "Reverter alterações locais do arquivo \"{name}\"?",
        "descriptionFallback": "Reverter alterações locais deste arquivo?"
      },
      "terminalTitle": "Console · {name}"
    },
    "commandDropdown": {
      "loading": "Carregando...",
      "addCommand": "Adicionar comando",
      "manageCommands": "Gerenciar comandos...",
      "runCommandTitle": "Executar: {command}",
      "stopCommandTitle": "Parar: {command}",
      "manageDialog": {
        "title": "Gerenciar comandos",
        "empty": "Ainda não há comandos",
        "namePlaceholder": "Nome",
        "commandPlaceholder": "Comando",
        "add": "Adicionar",
        "saving": "Salvando..."
      }
    },
    "workspaceContext": {
      "confirmCloseDirtyTab": "Fechar \"{title}\" sem salvar?",
      "confirmCloseOtherDirtyTabs": "Fechar outras abas com alterações não salvas?",
      "confirmCloseAllDirtyTabs": "Fechar todas as abas com alterações não salvas?",
      "unableLoadContent": "Não foi possível carregar o conteúdo.\n\n{message}",
      "previewRequestTimedOut": "A solicitação de preview expirou",
      "diffRequestTimedOut": "A solicitação de Diff expirou",
      "branchCompareRequestTimedOut": "A solicitação de comparação de branch expirou",
      "commitDiffRequestTimedOut": "A solicitação de Diff de commit expirou",
      "saveRequestTimedOut": "A solicitação de salvamento expirou",
      "reloadRequestTimedOut": "A solicitação de recarga expirou",
      "noChanges": "Sem alterações.",
      "noDiffOutput": "Sem saída de diff.",
      "diffTitleWorkspace": "Diff · Espaço de trabalho",
      "diffDescriptionWorkingTree": "Árvore de trabalho (HEAD)",
      "diffTitleFile": "Diferença · {name}",
      "compareTitleFile": "Comparar · {name}",
      "compareTitleBranch": "Comparar · {branch}",
      "compareDescriptionPath": "{path} · comparar com {branch}",
      "compareDescriptionBranch": "comparar com {branch}",
      "diffTitleCommitFile": "Diferença · {name} @ {hash}",
      "diffTitleCommit": "Diferença · {hash}",
      "diffDescriptionCommitPath": "{path} · confirmação {commit}",
      "diffDescriptionCommit": "confirmação {commit}",
      "diffTitleConflictFile": "Conflito · {name}",
      "diffDescriptionConflict": "{path} · disco vs não salvo"
    },
    "chat": {
      "acpConnections": {
        "actions": {
          "openAgentsSettings": "Abrir configurações de agentes",
          "retry": "Tentar novamente"
        },
        "agentsSetupHint": "Abra Configurações > Agentes para gerenciar a instalação.",
        "withSetupHint": "{message}\n{hint}",
        "blocked": {
          "missingConfig": "Não foi possível ler a configuração atual do agente.",
          "disabled": "{agent} está desativado nas configurações de agentes. Ative-o antes de conectar.",
          "unavailable": "{agent} está indisponível na plataforma atual.",
          "sdkMissing": "O SDK de {agent} não está instalado"
        },
        "backendErrors": {
          "initializeTimeout": "O handshake de conexão de {agent} expirou (sem resposta após 60 segundos). Abra Configurações para verificar a configuração do agente e da rede.",
          "processExited": "O processo de {agent} encerrou inesperadamente.",
          "spawnFailed": "Falha ao iniciar {agent}: {message}",
          "downloadFailed": "Falha no download de {agent}: {message}",
          "sessionLoadResourceNotFound": "Falha ao carregar a sessão de {agent}. Recarregue para tentar novamente ou inicie uma nova conversa.",
          "turnFailedRefusal": "{agent} recusou continuar este turno. Costuma indicar um erro de backend ou gateway. Confira os logs do agente.",
          "turnFailedMaxTokens": "{agent} atingiu o limite máximo de tokens para este turno.",
          "turnFailedMaxTurnRequests": "{agent} atingiu o número máximo de solicitações permitidas para este turno.",
          "turnFailedUnknown": "{agent} encerrou o turno com um motivo de parada desconhecido.",
          "turnFailedEmpty": "{agent} encerrou o turno sem produzir nenhuma resposta. Confira a configuração do agente."
        },
        "unableReadAgentConfig": "Não foi possível ler a configuração do agente: {message}",
        "connectFailedTitle": "Falha na conexão de {agent}",
        "toolFallbackTitle": "Ferramenta",
        "eventErrorTitle": "Erro do agente",
        "notificationTurnComplete": "{agent} terminou de responder",
        "notificationError": "{agent} erro: {message}",
        "claudeApiRetry": {
          "fallbackError": "authentication_failed",
          "retryingWithMax": "tentando novamente {attempt}/{max}",
          "retryingAttempt": "tentando novamente tentativa {attempt}",
          "retrying": "tentando novamente",
          "nextRetryIn": "próxima em {seconds}s",
          "line": "{error}{status} · {retry}",
          "lineWithDelay": "{error}{status} · {retry}, {delay}",
          "httpStatus": " (HTTP {status})"
        }
      },
      "connectionLifecycle": {
        "tasks": {
          "connectingTitle": "Conectando a {agent}",
          "connectingDescription": "Estabelecendo conexão",
          "loadingSelectorsTitle": "Carregando seletores de {agent}",
          "loadingSelectorsDescription": "Buscando opções de modo e configuração de sessão",
          "initSessionTitle": "Initializing {agent} session",
          "initSessionDescription": "Creating session and loading configuration"
        },
        "errors": {
          "connectionFailed": "Falha na conexão"
        }
      },
      "shared": {
        "attachedResources": "Recursos anexados",
        "toolCallFailed": "Falha na chamada da ferramenta"
      },
      "messageThread": {
        "emptyTitle": "Ainda não há mensagens",
        "emptyDescription": "Inicie uma conversa para ver mensagens aqui"
      },
      "chatInput": {
        "connecting": "Conectando...",
        "agentResponding": "{agent} está respondendo...",
        "sendMessage": "Envie uma mensagem..."
      },
      "messageInput": {
        "askAnything": "Pergunte qualquer coisa...",
        "removeAttachmentAria": "Remover {name}",
        "attachFiles": "Anexar arquivos",
        "addActions": "Adicionar",
        "quickMessages": "Mensagens rápidas",
        "quickMessagesEmpty": "Ainda não há mensagens rápidas",
        "quickMessagesLoading": "Carregando...",
        "quickMessageUntitled": "Sem título",
        "liveFeedback": "Feedback ao vivo",
        "liveFeedbackDisabledHint": "Disponível enquanto o agente trabalha",
        "dropFilesToAttach": "Solte arquivos para anexar",
        "loadingSettings": "Carregando configurações...",
        "loadingMode": "Carregando modo...",
        "modeLabel": "Modo",
        "agentSettings": "Configurações do agente",
        "cancel": "Cancelar",
        "send": "Enviar",
        "forkAndSend": "Fork & Enviar",
        "slashCommands": "Comandos de barra",
        "expertSkills": "Habilidades de especialistas",
        "expertsEmptyForAgent": "Este agente não tem especialistas ativados. Ative-os em Configurações > Especialistas.",
        "slashSearchPlaceholder": "Buscar comandos...",
        "slashSearchEmpty": "Nenhum comando correspondente",
        "attachLocalUpload": "Carregar arquivo local",
        "attachServerFile": "Selecionar arquivo do servidor",
        "attachUploadTooLarge": "{names} excede o limite de upload de {limit}MB e foi ignorado.",
        "attachUploadFailed": "Falha ao enviar {names}.",
        "attachUploadNotAFile": "{names} não é um arquivo regular (diretório ou arquivo especial) e foi ignorado.",
        "attachUploadQuotaExceeded": "O servidor ficou sem espaço para uploads; {names} não pôde ser enviado."
      },
      "messageQueue": {
        "addToQueue": "Adicionar à fila",
        "saveEdit": "Salvar",
        "cancelEdit": "Cancelar edição",
        "editItem": "Editar",
        "deleteItem": "Remover"
      },
      "welcomeInputPanel": {
        "agentsSettingsPath": "Configurações > Agentes",
        "autoConnectFallback": "Clique para abrir {path} e gerenciar a instalação.",
        "autoConnectAppend": "{message}. Clique para abrir {path} e gerenciar a instalação.",
        "enableAgentFirstPlaceholder": "Ative pelo menos um agente antes de iniciar uma sessão...",
        "prepareSessionFailed": "Não foi possível preparar a sessão de chat. Tente novamente.",
        "createConversationFailed": "Não foi possível criar a conversa. Tente novamente.",
        "askAnythingPlaceholder": "Pergunte qualquer coisa..."
      },
      "welcomePanel": {
        "greeting": "O que você gostaria de <highlight>fazer hoje</highlight>?",
        "tips": {
          "tileTabs": "Clique com o botão direito em uma aba de conversa e escolha Exibir em mosaico para ver várias sessões lado a lado.",
          "pinTab": "Clique duas vezes em uma aba de conversa para fixá-la, evitando que uma nova sessão a substitua automaticamente.",
          "shortcutsNewSearch": "<shortcut>{newConversation}</shortcut> abre uma nova conversa, <shortcut>{searchConversations}</shortcut> pesquisa no histórico.",
          "slashAtMention": "Digite / na entrada para acionar comandos slash, ou @ para referenciar um arquivo do projeto.",
          "pasteDropFiles": "Cole uma captura de tela ou arraste um arquivo direto para a entrada para anexá-lo.",
          "queueMessage": "Enquanto o agente responde, continue digitando — sua próxima mensagem entra na fila e é enviada automaticamente ao terminar.",
          "draftAutoSave": "Rascunhos não enviados são salvos automaticamente por conversa e restaurados quando você volta.",
          "forkSend": "O menu suspenso do botão de enviar tem Bifurcar e enviar — ramifique do ponto atual para uma nova aba.",
          "exportConversation": "Clique com o botão direito dentro da conversa para exportá-la como Markdown, HTML ou imagem.",
          "chatChannels": "Conecte Telegram / Lark / WeChat em Configurações → Canais de chat para continuar pelo celular.",
          "shortcutsAuxPanel": "<shortcut>{toggleAuxPanel}</shortcut> alterna o painel direito para ver os arquivos tocados e as mudanças do Git desta sessão.",
          "shortcutsTerminalSidebar": "<shortcut>{toggleTerminal}</shortcut> abre o terminal integrado, <shortcut>{toggleSidebar}</shortcut> alterna a barra lateral.",
          "customShortcuts": "Todos os atalhos podem ser reatribuídos em Configurações → Atalhos.",
          "webService": "Ative Configurações → Serviço web para que sua equipe acesse o mesmo codeg pelo navegador.",
          "fusionMode": "Abra um arquivo ou diff para exibi-lo automaticamente ao lado da conversa.",
          "quickMessages": "Abra o botão + ao lado da entrada e escolha Mensagens rápidas para inserir um trecho salvo (gerencie-os em Configurações → Mensagens rápidas).",
          "experts": "O botão + tem um menu Habilidades de especialista — carregue papéis como Depuração ou Planejamento com um clique."
        }
      },
      "agentSelector": {
        "noEnabledAgents": "Nenhum agente habilitado",
        "openAgentsSettings": "Abrir configurações de agentes"
      },
      "subAgentOverlay": {
        "title": "Subagentes",
        "collapsedSummary": "Subagentes {count}",
        "collapseAria": "Recolher subagentes"
      },
      "agentPlanOverlay": {
        "title": "Plano do agente",
        "collapsePlanAria": "Recolher plano",
        "collapsedSummary": "Plano {completed}/{total}",
        "status": {
          "completed": "Concluído",
          "inProgress": "Em andamento",
          "pending": "Pendente",
          "unknown": "Desconhecido"
        },
        "priority": {
          "high": "Alta",
          "medium": "Média",
          "low": "Baixa",
          "unknown": "Desconhecida"
        }
      },
      "permissionDialog": {
        "subtitle": "O agente solicita permissão para continuar este turno.",
        "kindFallbackTool": "ferramenta",
        "command": "Comando",
        "cwd": "Diretório de trabalho: {cwd}",
        "filesSummary": "Arquivos: {count}",
        "moreFiles": "+{count} arquivos a mais",
        "plan": "Plano",
        "allowedActions": "Ações permitidas",
        "targetMode": "Modo de destino: {mode}"
      },
      "questionDialog": {
        "title": "O agente está fazendo uma pergunta",
        "placeholder": "Digite sua resposta...",
        "send": "Enviar"
      },
      "messageBranch": {
        "previousBranchAria": "Branch anterior",
        "nextBranchAria": "Próxima branch",
        "pageOf": "{current} de {total}"
      },
      "terminal": {
        "title": "Console",
        "running": "Em execução"
      },
      "reasoning": {
        "thinking": "Pensando…",
        "thoughtForFewSeconds": "Pensamento",
        "thoughtForSeconds": "Pensamento"
      },
      "linkSafety": {
        "errorCannotOpen": "Não é possível abrir o arquivo local",
        "errorNoWorkspace": "Nenhuma pasta de espaço de trabalho está ativa no momento.",
        "errorOutsideWorkspace": "O arquivo está fora da pasta do espaço de trabalho atual.",
        "errorFailedOpen": "Falha ao abrir o arquivo local",
        "errorFailedLink": "Falha ao abrir o link",
        "errorUnsupportedLinkProtocol": "Este protocolo de link não é compatível."
      },
      "messageList": {
        "attachedResources": "Recursos anexados",
        "loading": "Carregando...",
        "error": "Erro: {message}",
        "errorTitle": "Falha ao carregar a sessão",
        "errorActionReload": "Recarregar",
        "errorActionNewSession": "Nova conversa",
        "emptyConversation": "Nenhuma mensagem nesta conversa.",
        "systemMessage": "Mensagem do sistema",
        "copyMessage": "Copiar",
        "copied": "Copiado",
        "downloadImage": "Baixar imagem",
        "downloadFailed": "Falha no download: {message}",
        "imageGeneration": "Geração de imagem",
        "imageGenerationPending": "Gerando imagem…",
        "imageGenerationFailed": "Falha na geração da imagem",
        "model": "Modelo",
        "tokenStats": "Uso de tokens",
        "tokenInput": "Entrada",
        "tokenOutput": "Saída",
        "tokenCacheRead": "Leitura de cache",
        "tokenCacheWrite": "Escrita de cache",
        "duration": "Duração",
        "completedAt": "Concluído às",
        "jumpToPreviousUserMessage": "Ir para a mensagem do usuário"
      },
      "liveTurnStats": {
        "thinking": "Pensando...",
        "streaming": "Transmitindo",
        "elapsedHours": "{value} h",
        "elapsedMinutes": "{value} min",
        "elapsedSeconds": "{value} s",
        "toolUseCount": "{count} ferramenta {count, plural, one {use} other {uses}}"
      },
      "tool": {
        "parameters": "Parâmetros",
        "error": "Erro",
        "result": "Resultado",
        "status": {
          "approvalRequested": "Aguardando aprovação",
          "approvalResponded": "Respondido",
          "inputAvailable": "Em execução",
          "inputStreaming": "Pendente",
          "outputAvailable": "Concluído",
          "outputDenied": "Negado",
          "outputError": "Erro"
        }
      },
      "toolCallBlock": {
        "tool": "Ferramenta",
        "error": "Erro",
        "result": "Resultado"
      },
      "delegation": {
        "subAgentRunning": "Subagente em execução…",
        "noDetail": "No detail available yet.",
        "unknownAgent": "Subagente",
        "openDetail": "Ver conversa",
        "detailTitle": "Conversa do subagente",
        "detailDescription": "Visualização somente leitura da conversa do subagente delegado.",
        "waitForResult": "Aguardando o resultado da tarefa {task}",
        "waitForResultNoTask": "Aguardando o resultado da tarefa",
        "cancelTask": "Cancelando a tarefa {task}",
        "cancelTaskNoTask": "Cancelando a tarefa",
        "resultPageOf": "{current} / {total}",
        "prevResult": "Resultado anterior",
        "nextResult": "Próximo resultado",
        "noResultText": "Sem resultado nesta verificação.",
        "status": {
          "starting": "iniciando",
          "running": "em execução",
          "checked": "verificado",
          "waiting": "aguardando aprovação",
          "ok": "concluído",
          "err": {
            "default": "falhou",
            "delegation_disabled": "desativado",
            "depth_limit": "limite de profundidade",
            "invalid_agent_type": "agente inválido",
            "spawn_failed": "falha ao iniciar",
            "send_failed": "falha ao enviar",
            "timeout": "tempo esgotado",
            "canceled": "cancelado",
            "child_refusal": "subagente recusou",
            "child_max_tokens": "subagente: limite de tokens",
            "child_max_turn_requests": "subagente: limite de solicitações",
            "child_empty": "subagente sem saída",
            "child_unknown": "subagente: erro",
            "unknown": "tarefa desconhecida"
          }
        }
      },
      "contentParts": {
        "showingTailOutput": "Mostrando a saída final durante o streaming para melhor desempenho.",
        "result": "Resultado",
        "unknown": "desconhecido",
        "inputTruncated": "A entrada foi truncada — o diff pode estar incompleto.",
        "replaceAll": "SUBSTITUIR TUDO",
        "filesCount": "Arquivos: {count}",
        "update": "atualizar",
        "moreFiles": "+{count} arquivos a mais",
        "timeoutMs": "Tempo limite: {timeout}ms",
        "backgroundTrue": "Segundo plano: true",
        "offset": "Deslocamento: {offset}",
        "limit": "Limite: {limit}",
        "pages": "Páginas: {pages}",
        "mode": "Modo: {mode}",
        "cell": "Célula: {cell}",
        "pathLabel": "Caminho:",
        "globLabel": "Padrão glob:",
        "typeLabel": "Tipo:",
        "outputLabel": "Saída:",
        "caseInsensitive": "Sem diferenciar maiúsculas/minúsculas",
        "multiline": "Multilinha",
        "promptLabel": "Instrução",
        "subjectLabel": "Assunto",
        "taskLabel": "Tarefa",
        "nameLabel": "Nome:",
        "agentPromptLabel": "Instrução",
        "agentModelLabel": "Modelo",
        "agentRunning": "Em execução...",
        "agentFallbackTitle": "Iniciando subagente…",
        "agentStatsBash": "Comandos",
        "agentStatsRead": "Arquivos lidos",
        "agentStatsSearch": "Pesquisas",
        "agentStatsEdit": "Edições",
        "agentStatsOther": "Outros",
        "goal": {
          "title": "Objetivo:",
          "titleWithStatus": "Objetivo {status}",
          "objective": "Objetivo",
          "statusLabel": "Status",
          "tokensUsed": "Tokens usados",
          "budget": "Orçamento",
          "remaining": "Restante",
          "elapsed": "Decorrido",
          "tokens": "tokens",
          "status": {
            "active": "ativo",
            "paused": "pausado",
            "blocked": "bloqueado",
            "usageLimited": "uso limitado",
            "budgetLimited": "orçamento limitado",
            "complete": "concluído"
          }
        },
        "field": {
          "file": "Arquivo",
          "notebook": "Caderno",
          "command": "Comando",
          "old": "Antigo",
          "new": "Novo",
          "pattern": "Padrão",
          "path": "Caminho",
          "query": "Consulta",
          "url": "URL:",
          "description": "Descrição",
          "content": "Conteúdo",
          "source": "Fonte",
          "prompt": "Instrução",
          "subject": "Assunto",
          "taskId": "ID da tarefa",
          "status": "Situação",
          "skill": "Skill",
          "args": "Argumentos",
          "offset": "Deslocamento",
          "limit": "Limite",
          "glob": "Padrão glob",
          "type": "Tipo",
          "output": "Saída",
          "replaceAll": "Substituir tudo",
          "language": "Idioma",
          "timeout": "Tempo limite",
          "background": "Segundo plano",
          "agentType": "Tipo de agente",
          "library": "Biblioteca",
          "libraryId": "ID da biblioteca"
        },
        "title": {
          "edit": "Editar",
          "command": "Comando",
          "todoWrite": "TodoWrite (atualização de tarefas)",
          "read": "Ler",
          "write": "Escrever",
          "notebookEdit": "NotebookEdit (edição de caderno)",
          "editFiles": "Editar ({count} arquivos)",
          "editWithTarget": "Editar {target}",
          "readWithTarget": "Ler {target}",
          "writeWithTarget": "Escrever {target}",
          "notebookEditWithTarget": "NotebookEdit ({target})",
          "globWithPattern": "Padrão glob {pattern}",
          "grepWithPattern": "Padrão grep {pattern}",
          "taskCreateWithSubject": "Criar tarefa: {subject}",
          "taskUpdateWithStatus": "Atualizar tarefa #{id} -> {status}",
          "taskUpdate": "Atualizar tarefa #{id}",
          "webFetchWithUrl": "WebFetch ({url})",
          "webSearchWithQuery": "Pesquisa web: {query}",
          "todosProgress": "Tarefas ({done}/{total})",
          "skillWithName": "Skill: {name}",
          "genericWithContext": "{tool} ({context})"
        },
        "toolGroup": {
          "search": "{count, plural, one {Explorou # busca} other {Explorou # buscas}}",
          "command": "{count, plural, one {Executou # comando} other {Executou # comandos}}",
          "read": "{count, plural, one {Leu arquivos # vez} other {Leu arquivos # vezes}}",
          "memory": "{count, plural, one {Recordou # memória} other {Recordou # memórias}}",
          "edit": "{count, plural, one {Editou arquivos # vez} other {Editou arquivos # vezes}}",
          "fetch": "{count, plural, one {Buscou # recurso} other {Buscou # recursos}}",
          "think": "{count, plural, one {Pensou # vez} other {Pensou # vezes}}",
          "todo": "{count, plural, one {Atualizou # tarefa} other {Atualizou # tarefas}}",
          "task": "{count, plural, one {Executou # tarefa} other {Executou # tarefas}}",
          "other": "{count, plural, one {Usou # ferramenta} other {Usou # ferramentas}}",
          "errorSuffix": "{count, plural, one {# falhou} other {# falharam}}",
          "joiner": " · "
        }
      },
      "messageNav": {
        "title": "Navegação de mensagens",
        "collapse": "Recolher navegação de mensagens",
        "collapsedSummary": "Mensagens {count}",
        "fileCount": "{count, plural, one {# arquivo} other {# arquivos}}",
        "remove": "Remover",
        "noDiffDataAvailable": "Nenhum dado de diff disponível para {filePath}"
      },
      "askQuestion": {
        "title": "O agente precisa da sua escolha",
        "subtitle": "Responda e envie. Você pode pular a qualquer momento.",
        "recommended": "Recomendado",
        "other": "Outro",
        "otherPlaceholder": "Digite sua resposta…",
        "singleSelect": "Única",
        "multiSelect": "Múltipla",
        "skip": "Pular",
        "next": "Próxima",
        "submit": "Enviar",
        "submitError": "Falha ao enviar. Tente novamente."
      },
      "feedbackCheckResult": {
        "count": "{count, plural, =1 {1 comentário} other {# comentários}}",
        "expand": "Mostrar todos os comentários",
        "collapse": "Recolher",
        "errorTitle": "Falha ao verificar comentários"
      },
      "askQuestionResult": {
        "title": "Pergunta",
        "answeredLabel": "Pergunta e resposta:",
        "awaiting": "Aguardando sua resposta…",
        "declined": "Você ignorou isto — o agente usou o próprio julgamento.",
        "noSelection": "Sem seleção"
      },
      "configStale": {
        "agentConfigTitle": "Configurações do agente atualizadas",
        "modelProviderTitle": "Provedor de modelo atualizado",
        "description": "Esta sessão ainda está usando a configuração anterior. Reconecte para aplicar (o histórico da conversa é mantido).",
        "reconnect": "Reconectar para aplicar",
        "reconnecting": "Reconectando…",
        "reconnectDisabledDuringTurn": "Disponível quando o turno atual terminar",
        "dismiss": "Dispensar",
        "reconnectFailed": "Falha ao reconectar a sessão",
        "applied": "Nova configuração aplicada"
      }
    },
    "diffPreview": {
      "mode": {
        "added": "Adicionado",
        "deleted": "Excluído",
        "renamed": "Renomeado",
        "modified": "Modificado"
      },
      "hunkLabel": "Bloco {index}",
      "loadingHunk": "Carregando hunk...",
      "noDiffData": "Sem dados de diff"
    },
    "conversationContextBar": {
      "folderTitle": "Pasta de trabalho",
      "branchTitle": "Branch de trabalho",
      "searchFolder": "Search folder...",
      "searchBranch": "Search branch...",
      "noFolders": "No folders",
      "noBranches": "No branches",
      "noBranch": "(no branch)",
      "chatModeLabel": "Modo sem pasta",
      "commit": "Commit",
      "push": "Push",
      "merge": "Merge",
      "toasts": {
        "folderChanged": "Switched to {name}",
        "openFolderFailed": "Failed to open folder",
        "switchedToChatMode": "Alternado para o modo de chat",
        "openStashFailed": "Failed to open stash window",
        "openMergeFailed": "Failed to open merge window"
      }
    },
    "cloneDialog": {
      "title": "Clonar repositório",
      "repositoryUrl": "URL do repositório",
      "repositoryUrlPlaceholder": "https://github.com/user/repo.git",
      "directory": "Diretório",
      "directoryPlaceholder": "Selecione o diretório de destino...",
      "browseDirectory": "Procurar diretório",
      "cancel": "Cancelar",
      "clone": "Clonar",
      "clonePath": "Caminho de clonagem: {path}"
    },
    "toasts": {
      "cloneFailed": "Falha ao clonar o repositório"
    }
  },
  "ProjectBoot": {
    "title": "Inicializador de Projeto",
    "tabs": {
      "shadcn": "shadcn",
      "hyperframes": "HyperFrames"
    },
    "hyperframes": {
      "title": "Projeto de vídeo HyperFrames",
      "subtitle": "Crie um projeto de HTML para vídeo. O agente do espaço de trabalho pode então escrevê-lo e renderizá-lo.",
      "resolution": "Resolução",
      "skillsTitle": "Skills dos agentes",
      "skillsDesc": "Instala globalmente as skills do HyperFrames (link simbólico) para os agentes selecionados, para que possam criar e renderizar vídeo.",
      "recheck": "Verificar novamente",
      "installedBadge": "Instalado",
      "skillsInstall": "Instalar / atualizar skills",
      "skillsInstalling": "Instalando skills…",
      "skillsInstalled": "Skills do HyperFrames instaladas",
      "skillsInstallFailed": "Não foi possível instalar as skills do HyperFrames"
    },
    "config": {
      "base": "Base",
      "style": "Estilo",
      "baseColor": "Cor base",
      "theme": "Tema",
      "chartColor": "Cor do gráfico",
      "iconLibrary": "Biblioteca de ícones",
      "font": "Fonte",
      "fontHeading": "Fonte do título",
      "menuAccent": "Destaque do menu",
      "menuColor": "Cor do menu",
      "radius": "Raio",
      "template": "Modelo",
      "createProject": "Criar projeto",
      "sectionStyle": "Estilo",
      "sectionColors": "Cores",
      "sectionTypography": "Tipografia",
      "sectionInterface": "Interface"
    },
    "preview": {
      "loading": "Carregando visualização..."
    },
    "createDialog": {
      "title": "Criar projeto",
      "projectName": "Nome do projeto",
      "projectNamePlaceholder": "my-app",
      "frameworkTemplate": "Modelo de framework",
      "packageManager": "Gerenciador de pacotes",
      "saveDirectory": "Diretório de salvamento",
      "saveDirectoryPlaceholder": "Selecionar diretório...",
      "browseDirectory": "Procurar",
      "projectPath": "O projeto será criado em: {path}",
      "advancedOptions": "Opções Avançadas",
      "base": "Biblioteca Base",
      "enableRtl": "Ativar Suporte RTL",
      "enableRtlDescription": "Ativar suporte de layout para idiomas da direita para a esquerda (ex.: árabe, hebraico)",
      "pmChecking": "Verificando...",
      "pmNotInstalled": "Não instalado",
      "cancel": "Cancelar",
      "create": "Criar",
      "creating": "Criando projeto..."
    },
    "toasts": {
      "createFailed": "Falha ao criar o projeto",
      "createSuccess": "Projeto criado com sucesso",
      "openWorkspaceFailed": "Projeto criado, mas não foi possível abri-lo no espaço de trabalho"
    },
    "errors": {
      "directoryExists": "O diretório de destino já existe",
      "commandFailed": "O comando de criação do projeto falhou."
    }
  },
  "WebServiceSettings": {
    "addressSwitchHint": "Alternar muda apenas o endereço mostrado e aberto aqui; o serviço escuta em todas as interfaces e continua acessível em cada endereço.",
    "sectionTitle": "Serviço Web",
    "sectionDescription": "Ativar para acessar o Codeg remotamente pelo navegador",
    "port": "Porta",
    "status": "Status",
    "autoStart": "Início automático",
    "autoStartHint": "Iniciar o serviço Web ao abrir o Codeg",
    "running": "Em execução",
    "stopped": "Parado",
    "processing": "Processando...",
    "start": "Iniciar",
    "stop": "Parar",
    "startFailed": "Falha ao iniciar",
    "stopFailed": "Falha ao parar",
    "saveConfigFailed": "Falha ao salvar as configurações do serviço Web",
    "open": "Abrir",
    "hide": "Ocultar",
    "show": "Mostrar",
    "copy": "Copiar",
    "qrcode": "Código QR",
    "qrcodeTitle": "Escanear para abrir",
    "qrcodeHint": "Escaneie com seu telefone para abrir o Codeg no navegador",
    "addressLabel": "Endereço de acesso",
    "tokenLabel": "Token de acesso",
    "tokenHint": "Insira este token ao acessar o cliente Web pela primeira vez",
    "tokenPlaceholder": "Deixe em branco para gerar automaticamente",
    "regenerate": "Regenerar",
    "stalePortOccupiedTitle": "A porta {port} está em uso por outro processo",
    "stalePortUnknownTitle": "Estado da porta {port} é incerto",
    "stalePortHint": "O Codeg não consegue vincular até a porta ser liberada. Altere a porta acima ou feche o processo que a retém.",
    "errors": {
      "alreadyRunning": "O serviço Web já está em execução",
      "invalidAddress": "Formato de host ou porta inválido",
      "portInUse": "A porta {port} já está em uso. Feche o processo que a utiliza ou escolha outra porta.",
      "permissionDenied": "Permissão negada. Use uma porta acima de 1024 ou execute com privilégios mais altos.",
      "addressUnavailable": "O endereço não está disponível nesta máquina",
      "bindFailed": "Falha ao vincular o endereço"
    }
  },
  "DirectoryBrowser": {
    "title": "Explorar diretório",
    "pathPlaceholder": "Digite o caminho do diretório...",
    "goHome": "Ir para o diretório inicial",
    "navigateUp": "Ir para o diretório superior",
    "select": "Selecionar",
    "cancel": "Cancelar",
    "loading": "Carregando...",
    "emptyDirectory": "Este diretório está vazio",
    "errorLoadingDir": "Falha ao carregar o diretório",
    "permissionDenied": "Permissão negada"
  },
  "ChatChannelSettings": {
    "loading": "Carregando...",
    "sectionTitle": "Canais de chat",
    "sectionDescription": "Configure bots de IM para receber notificações de eventos e consultar atividade de codificação.",
    "addChannel": "Adicionar canal",
    "noChannels": "Nenhum canal de chat configurado ainda.",
    "channelName": "Nome",
    "channelNamePlaceholder": "Meu bot do Telegram",
    "channelType": "Tipo de canal",
    "lark": "Lark (Feishu)",
    "weixin": "WeChat",
    "dailyReport": "Relatório diário",
    "dailyReportTime": "Horário do relatório",
    "nameRequired": "O nome do canal é obrigatório.",
    "tokenRequired": "O token é obrigatório.",
    "chatIdRequired": "O Chat ID é obrigatório.",
    "loadFailed": "Falha ao carregar os canais.",
    "saveFailed": "Falha ao salvar as alterações.",
    "connectSuccess": "Canal conectado.",
    "connectFailed": "Falha na conexão",
    "disconnectSuccess": "Canal desconectado.",
    "disconnectFailed": "Falha ao desconectar.",
    "testSuccess": "Teste de conexão aprovado.",
    "testFailed": "Teste de conexão falhou",
    "deleteSuccess": "Canal excluído.",
    "deleteFailed": "Falha ao excluir o canal.",
    "deleteConfirmTitle": "Excluir canal",
    "deleteConfirmMessage": "O canal e seus registros de mensagens serão excluídos permanentemente. Tem certeza?",
    "cancel": "Cancelar",
    "delete": "Excluir",
    "create": "Criar",
    "save": "Salvar",
    "channelListTitle": "Canais configurados",
    "channelListDescription": "Os canais habilitados serão conectados automaticamente ao iniciar o serviço.",
    "editChannel": "Editar canal",
    "editSuccess": "Canal atualizado.",
    "tokenPlaceholderKeep": "Deixar em branco para manter atual",
    "weixinScanTitle": "Escanear código QR",
    "weixinScanDescription": "Abra o WeChat e escaneie o código QR para conectar.",
    "weixinQrcodeExpired": "Código QR expirado.",
    "weixinRefreshQrcode": "Atualizar",
    "weixinWaitingScan": "Aguardando escaneamento...",
    "weixinPollError": "Conexão instável, tentando novamente...",
    "weixinReconnectNotice": "Devido a limitações do protocolo iLink, após cada reconexão você precisa enviar uma mensagem ao bot para que os disparadores de eventos tenham efeito.",
    "connect": "Conectar",
    "disconnect": "Desconectar",
    "test": "Testar conexão",
    "tabs": {
      "channels": "Canais",
      "commands": "Comandos",
      "events": "Eventos",
      "other": "Outros"
    },
    "commands": {
      "title": "Comandos integrados",
      "description": "Comandos de bot disponíveis nos canais de chat. Em chats em grupo, @Bot é necessário para processar mensagens.",
      "prefixLabel": "Prefixo de comando",
      "prefixDescription": "1-3 caracteres não alfanuméricos para acionar comandos do bot (padrão /).",
      "prefixSaved": "Prefixo de comando salvo.",
      "prefixSaveFailed": "Falha ao salvar o prefixo.",
      "prefixInvalid": "O prefixo deve ser de 1-3 caracteres não alfanuméricos.",
      "save": "Salvar",
      "folderDesc": "Selecionar pasta de trabalho",
      "agentDesc": "Selecionar agente de IA",
      "taskDesc": "Criar sessão e executar tarefa",
      "sessionsDesc": "Listar sessões ativas na pasta",
      "resumeDesc": "Conversas recentes / retomar uma sessão",
      "cancelDesc": "Cancelar tarefa atual",
      "approveDesc": "Aprovar solicitação de permissão do agente",
      "denyDesc": "Negar solicitação de permissão do agente",
      "searchDesc": "Pesquisar conversas por palavra-chave",
      "todayDesc": "Resumo da atividade de hoje",
      "statusDesc": "Status da conexão do canal",
      "helpDesc": "Mostrar ajuda"
    },
    "events": {
      "title": "Notificações de eventos",
      "description": "Ao habilitar eventos, eles serão enviados ao canal quando acionados.",
      "turnComplete": "Turno concluído",
      "turnCompleteDesc": "Quando um turno do agente termina",
      "error": "Erro do agente",
      "errorDesc": "Quando um agente encontra um erro",
      "permissionRequest": "Solicitação de permissão",
      "permissionRequestDesc": "Quando um agente solicita permissão para agir",
      "questionRequest": "Pergunta do agente",
      "questionRequestDesc": "Quando um agente faz uma pergunta",
      "userPromptSent": "Mensagem do usuário",
      "userPromptSentDesc": "Quando você envia uma mensagem (o texto da mensagem é incluído na notificação)",
      "saved": "Filtro de eventos atualizado.",
      "saveFailed": "Falha ao salvar o filtro de eventos.",
      "loadFailed": "Falha ao carregar as configurações.",
      "retry": "Tentar novamente",
      "webhooksTitle": "Webhooks",
      "webhooksDescription": "Envia uma carga JSON via POST para uma ou mais URLs quando um evento ativado ocorre. O filtro de eventos acima também se aplica aos webhooks.",
      "webhookUrlPlaceholder": "https://example.com/webhook",
      "addWebhook": "Adicionar webhook",
      "removeWebhook": "Remover webhook",
      "webhookSave": "Salvar",
      "webhooksSaved": "Webhooks salvos.",
      "webhooksSaveFailed": "Falha ao salvar os webhooks.",
      "webhookInvalidUrl": "Insira URLs http(s) válidas.",
      "docsTitle": "Formato da requisição",
      "docsMethod": "Método",
      "docsContentType": "Content-Type",
      "docsNote": "Cada evento ativado é entregue a todas as URLs. Os webhooks não têm debounce; o filtro de eventos acima continua valendo.",
      "editWebhook": "Editar webhook",
      "enableWebhook": "Ativar webhook",
      "webhookDuplicate": "Esta URL já está configurada.",
      "cancel": "Cancelar",
      "webhooksEmpty": "Nenhum webhook configurado ainda.",
      "deleteWebhookTitle": "Excluir webhook",
      "deleteWebhookMessage": "Remover este webhook? Os eventos não serão mais entregues a esta URL.",
      "delete": "Excluir"
    },
    "language": {
      "title": "Idioma das mensagens",
      "description": "Idioma utilizado para notificações de eventos, respostas de comandos e relatórios diários enviados aos canais de chat.",
      "saved": "Idioma das mensagens salvo.",
      "saveFailed": "Falha ao salvar o idioma das mensagens.",
      "en": "Inglês",
      "zh-cn": "Chinês simplificado",
      "zh-tw": "Chinês tradicional",
      "ja": "Japonês",
      "ko": "Coreano",
      "es": "Espanhol",
      "de": "Alemão",
      "fr": "Francês",
      "pt": "Português",
      "ar": "Árabe"
    }
  },
  "ModelProviderSettings": {
    "sectionTitle": "Provedores de Modelos",
    "sectionDescription": "Gerenciar credenciais de provedores de API para agentes.",
    "filterAll": "Todos",
    "providerListTitle": "Provedores Configurados",
    "addProvider": "Adicionar Provedor",
    "editProvider": "Editar Provedor",
    "noProviders": "Nenhum provedor de modelo configurado.",
    "providerName": "Nome",
    "providerNamePlaceholder": "Ex. OpenAI, Anthropic",
    "apiUrl": "URL da API",
    "apiUrlPlaceholder": "https://api.openai.com/v1",
    "apiKey": "Chave da API",
    "apiKeyPlaceholder": "sk-...",
    "apiKeyKeepCurrent": "Deixe em branco para manter atual",
    "agentTypes": "Tipos de Agente",
    "agentTypesRequired": "Pelo menos um tipo de agente é necessário.",
    "agentType": "Tipo de Agente",
    "agentTypeRequired": "O tipo de agente é obrigatório.",
    "agentTypeImmutableHint": "O tipo de agente não pode ser alterado após a criação.",
    "model": "Modelo",
    "modelPlaceholderCodex": "gpt-5 / gpt-5-mini",
    "modelPlaceholderGemini": "gemini-3-pro-preview",
    "claudeMainModel": "Modelo Principal",
    "claudeReasoningModel": "Modelo de Raciocínio (pensamento)",
    "claudeHaikuDefaultModel": "Modelo Haiku Padrão",
    "claudeSonnetDefaultModel": "Modelo Sonnet Padrão",
    "claudeOpusDefaultModel": "Modelo Opus Padrão",
    "nameRequired": "O nome do provedor é obrigatório.",
    "apiUrlRequired": "A URL da API é obrigatória.",
    "apiKeyRequired": "A chave da API é obrigatória.",
    "loadFailed": "Falha ao carregar provedores.",
    "saveFailed": "Falha ao salvar alterações.",
    "createSuccess": "Provedor criado.",
    "editSuccess": "Provedor atualizado.",
    "deleteSuccess": "Provedor excluído.",
    "deleteConfirmTitle": "Excluir Provedor",
    "deleteConfirmMessage": "O provedor \"{name}\" será excluído permanentemente. Tem certeza?",
    "deleteBlockedByAgent": "{agents} está usando este provedor. Desvincule-o antes de excluir.",
    "cancel": "Cancelar",
    "delete": "Excluir",
    "create": "Criar",
    "save": "Salvar",
    "affectedRunningSessions": "{count, plural, one {# sessão ativa precisa reconectar para aplicar a alteração} other {# sessões ativas precisam reconectar para aplicar a alteração}}"
  },
  "ExpertsSettings": {
    "title": "Habilidades de Especialista",
    "description": "Ative fluxos de trabalho de habilidades selecionados e comprovados em campo para seus agentes de codificação de IA. Cada especialista é uma habilidade independente do projeto superpowers — o codeg gerencia a cópia central e a vincula aos agentes escolhidos.",
    "loading": "Carregando especialistas…",
    "loadingContent": "Carregando conteúdo…",
    "emptyExperts": "Nenhum especialista disponível. Verifique os logs da aplicação.",
    "emptySelection": "Selecione um especialista para ver seu conteúdo e gerenciar a ativação.",
    "emptySearch": "Nenhum especialista corresponde à pesquisa atual.",
    "searchPlaceholder": "Pesquisar especialistas por nome, ID ou descrição",
    "enableForAgents": "Ativar para agentes",
    "noAgents": "Nenhum agente ACP detectado.",
    "copyModeWarning": "Copiado (não vinculado). Reative após as atualizações do codeg para obter a versão mais recente.",
    "previewTitle": "Prévia do SKILL.md",
    "categories": {
      "discovery": "Descoberta e Design",
      "planning": "Planejamento",
      "execution": "Execução",
      "quality": "Qualidade e Testes",
      "debugging": "Depuração",
      "review": "Revisão e Integração",
      "meta": "Meta"
    },
    "states": {
      "not_linked": "Não ativado",
      "linked_to_codeg": "Ativado",
      "linked_elsewhere": "Bloqueado — outro vínculo existe",
      "blocked_by_real_directory": "Bloqueado — uma habilidade personalizada ocupa este nome",
      "broken": "Vínculo quebrado"
    },
    "badges": {
      "userModified": "Modificado pelo usuário"
    },
    "actions": {
      "openCentralDir": "Abrir pasta central",
      "refresh": "Atualizar"
    },
    "toasts": {
      "loadFailed": "Falha ao carregar detalhes do especialista",
      "enabled": "Especialista ativado para este agente",
      "disabled": "Especialista desativado para este agente",
      "enableFailed": "Falha ao ativar o especialista",
      "disableFailed": "Falha ao desativar o especialista",
      "openFolderFailed": "Falha ao abrir a pasta"
    }
  },
  "QuickMessagesSettings": {
    "title": "Mensagens rápidas",
    "description": "Gerencie trechos de mensagens reutilizáveis. Arraste para reordenar.",
    "loading": "Carregando mensagens rápidas…",
    "emptyList": "Ainda não há mensagens rápidas. Clique em \"Nova\" para criar uma.",
    "emptySelection": "Selecione uma mensagem rápida para editar.",
    "searchPlaceholder": "Pesquisar por título ou conteúdo",
    "untitled": "Sem título",
    "actions": {
      "new": "Nova",
      "save": "Salvar",
      "delete": "Excluir",
      "dragSort": "Arraste para reordenar",
      "dragSortMessage": "Arrastar para reordenar mensagem rápida: {name}"
    },
    "fields": {
      "title": "Título",
      "titlePlaceholder": "Dê um título curto a esta mensagem",
      "content": "Conteúdo",
      "contentPlaceholder": "Digite aqui o conteúdo da mensagem"
    },
    "confirmDelete": {
      "title": "Excluir mensagem rápida?",
      "message": "Isso excluirá permanentemente \"{name}\". Tem certeza?",
      "cancel": "Cancelar",
      "confirm": "Excluir"
    },
    "toasts": {
      "loadFailed": "Falha ao carregar mensagens rápidas",
      "createFailed": "Falha ao criar mensagem rápida",
      "saveFailed": "Falha ao salvar mensagem rápida",
      "deleteFailed": "Falha ao excluir mensagem rápida",
      "saveOrderFailed": "Falha ao salvar a ordem",
      "created": "Mensagem rápida criada",
      "saved": "Mensagem rápida salva",
      "deleted": "Mensagem rápida excluída"
    }
  },
  "Pet": {
    "badge": {
      "running": "{count} em execução",
      "waiting": "{count} aguardando aprovação",
      "error": "{count} com erro"
    },
    "panel": {
      "title": "Sessões ativas",
      "empty": "Nenhuma sessão ativa",
      "emptyHint": "Agentes em execução e os que precisam de você aparecem aqui.",
      "statusRunning": "Em execução",
      "statusWaiting": "Aguardando",
      "statusError": "Erro"
    },
    "menu": {
      "scale": "Escala",
      "openManager": "Gerenciar pets",
      "close": "Fechar"
    },
    "loadError": "Falha ao carregar pet",
    "missingPetIdParam": "Nenhum pet selecionado",
    "summonButton": "Pet",
    "manager": {
      "title": "Pets",
      "description": "Companheiros flutuantes de desktop com sprites compatíveis com o Codex.",
      "addPet": "Adicionar pet",
      "importFromCodex": "Importar do Codex",
      "noPets": "Sem pets. Adicione um ou importe do Codex.",
      "setActive": "Ativar",
      "active": "Ativo",
      "edit": "Editar",
      "delete": "Excluir",
      "deleteConfirm": "Excluir o pet \"{name}\"? Será removido do disco.",
      "summon": "Invocar janela do pet",
      "openCodexHelp": "Pets do Codex precisam estar em ~/.codex/pets/. Nenhum encontrado.",
      "specRequirement": "O sprite precisa ser PNG ou WebP 1536x1872 com transparência.",
      "form": {
        "id": "ID do pet",
        "idHelp": "Minúsculas, dígitos, '-' e '_'. Máx 64 caracteres.",
        "displayName": "Nome",
        "description": "Descrição (opcional)",
        "spritesheet": "Sprite",
        "chooseFile": "Escolher arquivo",
        "replaceFile": "Substituir sprite",
        "saveCreate": "Adicionar pet",
        "saveUpdate": "Salvar alterações",
        "cancel": "Cancelar"
      },
      "errors": {
        "missingId": "ID obrigatório",
        "missingName": "Nome obrigatório",
        "missingSpritesheet": "Sprite obrigatório",
        "addFailed": "Falha ao adicionar",
        "updateFailed": "Falha ao atualizar",
        "deleteFailed": "Falha ao excluir",
        "loadFailed": "Falha ao carregar pets",
        "setActiveFailed": "Falha ao ativar pet",
        "summonFailed": "Falha ao abrir a janela do pet"
      }
    },
    "import": {
      "title": "Importar do Codex",
      "subtitle": "Pets disponíveis em ~/.codex/pets/.",
      "selectAll": "Selecionar todos",
      "alreadyImported": "Já importado",
      "renameOnConflict": "Renomear conflitos com sufixo -imported",
      "import": "Importar selecionados",
      "noneFound": "Nenhum pet do Codex disponível.",
      "imported": "Importação concluída",
      "failed": "Falha no import",
      "close": "Fechar"
    },
    "marketplace": {
      "openMarketplace": "Mercado de pets",
      "title": "Mercado de pets",
      "search": "Buscar pets",
      "kindFilter": {
        "all": "Todos",
        "object": "Objeto",
        "animal": "Animal",
        "person": "Pessoa",
        "creature": "Criatura"
      },
      "sortFilter": {
        "latest": "Recentes",
        "popular": "Populares",
        "views": "Mais vistos"
      },
      "refresh": "Atualizar",
      "install": "Instalar",
      "installing": "Instalando",
      "reinstall": "Reinstalar",
      "reinstallConfirm": "Sobrescrever o pet local \"{name}\"? Os dados existentes serão substituídos.",
      "cancel": "Cancelar",
      "stats": {
        "views": "Visualizações",
        "downloads": "Downloads",
        "likes": "Curtidas"
      },
      "actions": {
        "idle": "Parado",
        "running_right": "Corre dir.",
        "running_left": "Corre esq.",
        "waving": "Acena",
        "jumping": "Pula",
        "failed": "Falha",
        "waiting": "Espera",
        "running": "Corre",
        "review": "Revisão"
      },
      "page": "Página {page} de {total}",
      "prev": "Anterior",
      "next": "Próxima",
      "empty": "Nenhum pet corresponde.",
      "successInstalled": "\"{name}\" instalado",
      "errors": {
        "loadFailed": "Falha ao carregar o mercado",
        "installFailed": "Falha ao instalar o pet",
        "alreadyInstalled": "O pet já existe localmente"
      }
    }
  },
  "RemoteWorkspace": {
    "openRemoteWorkspace": "Open remote workspace",
    "manage": "Manage remote workspace",
    "manageTitle": "Remote Workspace connections",
    "empty": "No remote connections",
    "searchPlaceholder": "Search remote workspaces",
    "orderFailed": "Failed to save remote workspace order",
    "dragSort": "Drag to sort",
    "dragSortConnection": "Drag to sort {name}",
    "newConnection": "New connection",
    "loading": "Loading",
    "loadingConnection": "Loading remote connection",
    "name": "Name",
    "baseUrl": "Service URL",
    "token": "Access token",
    "save": "Save",
    "delete": "Delete",
    "confirmDelete": {
      "title": "Delete remote connection?",
      "message": "This will remove \"{name}\" from this device. This action cannot be undone.",
      "cancel": "Cancel",
      "confirm": "Delete"
    },
    "saved": "Remote connection saved.",
    "deleted": "Remote connection deleted.",
    "loadFailed": "Failed to load remote connections",
    "saveFailed": "Failed to save remote connection",
    "deleteFailed": "Failed to delete remote connection",
    "openFailed": "Failed to open remote workspace",
    "connectionLoadFailed": "Failed to load remote connection: {message}",
    "connectionExpired": "Remote connection \"{name}\" is expired. Update its token and reload this window."
  },
  "ServerFileBrowser": {
    "title": "Selecionar arquivo do servidor",
    "pathPlaceholder": "Inserir caminho do diretório...",
    "goHome": "Ir para o diretório inicial",
    "navigateUp": "Ir para o diretório acima",
    "select": "Selecionar",
    "cancel": "Cancelar",
    "loading": "Carregando...",
    "emptyDirectory": "Este diretório está vazio",
    "errorLoadingDir": "Falha ao carregar o diretório",
    "selectedCount": "{count} selecionado(s)"
  },
  "BackupSettings": {
    "title": "Backup e restauração",
    "description": "Exporte um backup portátil dos seus dados do codeg ou restaure a partir de um.",
    "tabs": {
      "backup": "Backup",
      "restore": "Restauração"
    },
    "export": {
      "includeExternal": "Incluir o conteúdo das conversas",
      "includeExternalHint": "Também arquiva as transcrições das CLIs (Claude, Codex, Gemini, …). Aumenta o tamanho.",
      "passphrase": "Senha (opcional)",
      "passphrasePlaceholder": "Deixe em branco para um arquivo sem criptografia",
      "passphraseConfirm": "Confirmar a senha",
      "passphraseMismatch": "As senhas não coincidem.",
      "noPassphraseWarning": "Este backup conterá segredos (chaves de API, tokens) em texto puro. Guarde-o em local seguro.",
      "passphraseLossWarning": "Criptografado com esta senha. Se você perdê-la, o backup não poderá ser recuperado.",
      "button": "Exportar backup",
      "inProgress": "Criando backup…",
      "success": "Backup criado.",
      "started": "Download do backup iniciado."
    },
    "restore": {
      "selectFile": "Selecionar arquivo de backup",
      "passphrasePrompt": "Este backup está criptografado. Digite a senha dele.",
      "unlock": "Desbloquear",
      "preview": {
        "title": "Detalhes do backup",
        "encrypted": "Criptografado",
        "compatible": "Compatível",
        "incompatible": "Incompatível",
        "createdAt": "Criado: {value}",
        "appVersion": "Versão do app: {value}",
        "incompatibleHint": "Este backup foi criado por uma versão mais recente do codeg e não pode ser restaurado."
      },
      "replaceWarning": "Restaurar substitui todos os dados atuais do codeg (banco de dados e uploads). Seus dados atuais são salvos em um snapshot primeiro, para que possam ser recuperados.",
      "keyringNote": "Os tokens de GitHub/chat do desktop ficam no chaveiro do sistema e não são incluídos; insira-os novamente após restaurar.",
      "button": "Restaurar",
      "staging": "Preparando a restauração…",
      "staged": "Restauração preparada. Reiniciando…",
      "restarting": "Restauração preparada. Reiniciando o servidor…",
      "restartTimeout": "O servidor não voltou a tempo. Recarregue a página quando ele estiver ativo.",
      "externalSideLocation": "As transcrições de conversas foram restauradas em {path}",
      "confirmTitle": "Substituir todos os dados?",
      "confirmBody": "Isto substituirá seu banco de dados e uploads atuais do codeg pelo backup e, em seguida, reiniciará. Seus dados atuais são salvos em um snapshot primeiro.",
      "cancel": "Cancelar",
      "confirmAction": "Substituir e reiniciar",
      "external": {
        "title": "Conteúdo das conversas",
        "hint": "Este backup inclui transcrições das CLIs. Escolha para onde restaurá-las.",
        "modeSkip": "Não restaurar",
        "modeSide": "Restaurar em uma pasta separada segura",
        "modeOriginal": "Restaurar nos locais originais das CLIs",
        "forceOverwrite": "Sobrescrever arquivos existentes",
        "forceOverwriteHint": "Substitui os arquivos que já existem nas pastas das CLIs.",
        "scanning": "Verificando conflitos…",
        "noConflicts": "Nenhum arquivo existente será sobrescrito.",
        "conflictCount": "{count} arquivo(s) existente(s) seriam afetados.",
        "conflictSkipNote": "Os arquivos existentes são mantidos (ignorados) a menos que você ative a sobrescrita."
      },
      "restartFailed": "Restauração preparada, mas o servidor não conseguiu reiniciar. Reinicie-o manualmente para aplicá-la."
    },
    "remoteUnsupported": "O backup e a restauração atuam sobre os dados da máquina que executa o codeg. Você está conectado a um espaço de trabalho remoto — gerencie os backups dele diretamente nesse servidor."
  },
  "backup": {
    "restore": {
      "error": {
        "badPassphrase": "Senha incorreta ou backup corrompido.",
        "corrupted": "O arquivo de backup está corrompido.",
        "unknownFormat": "Este arquivo não é um backup do codeg reconhecido.",
        "newerVersion": "Este backup foi criado pelo codeg {backupVersion}, mais recente que esta versão ({appVersion}).",
        "alreadyPending": "Já existe uma restauração preparada. Reinicie para aplicá-la antes de preparar outra."
      }
    },
    "error": {
      "diskSpace": "Espaço em disco insuficiente para concluir a operação.",
      "cancelled": "A operação foi cancelada."
    }
  },
  "WebConnection": {
    "disconnectedTitle": "Conexão perdida",
    "reconnectingDescription": "Tentando reconectar ao servidor. Normalmente isso se resolve sozinho em alguns segundos.",
    "reconnectNow": "Reconectar agora",
    "sessionExpiredTitle": "Sessão expirada",
    "sessionExpiredDescription": "Sua sessão não é mais válida. Faça login novamente para continuar.",
    "goToLogin": "Ir para o login"
  },
  "SessionFeedbackSettings": {
    "title": "Feedback ao vivo",
    "description": "Envie notas e correções a um agente enquanto ele trabalha. Quando ativado, o agente ganha uma ferramenta para verificar feedback ao vivo e as conversas mostram uma entrada de notas. Dica: o agente normalmente só verifica o feedback quando você menciona isso na mensagem — por exemplo, adicione \"verifique meu feedback ao vivo regularmente enquanto trabalha\".",
    "enable": "Ativar feedback ao vivo",
    "enableHint": "Injeta uma ferramenta de verificação de feedback nos agentes iniciados após a ativação.",
    "save": "Salvar",
    "saving": "Salvando…",
    "saved": "Configurações de feedback salvas",
    "saveFailed": "Falha ao salvar as configurações de feedback",
    "loadFailed": "Falha ao carregar: {detail}"
  },
  "LiveFeedback": {
    "placeholder": "Envie uma nota para {agent} enquanto ele trabalha…",
    "agentFallback": "o agente",
    "ariaLabel": "Nota de feedback ao vivo",
    "dialogTitle": "Feedback ao vivo",
    "dialogDescription": "Envie uma nota ao agente enquanto ele trabalha. Ele a lerá na próxima verificação, sem interromper a etapa atual.",
    "send": "Enviar",
    "cancel": "Cancelar",
    "pending": "aguardando",
    "delivered": "recebida",
    "turnEndedUnread": "O agente terminou antes de ler o seu feedback.",
    "sendAsMessage": "Enviar como mensagem",
    "dismiss": "Dispensar",
    "turnEndedResent": "O turno terminou — enviado como nova mensagem.",
    "turnEnded": "O turno já terminou.",
    "submitFailed": "Não foi possível enviar a sua nota"
  },
  "AskQuestionSettings": {
    "title": "Perguntar ao usuário",
    "description": "Permite que os agentes pausem e façam uma pergunta de múltipla escolha que aparece acima da caixa de entrada da conversa. O agente aguarda até você responder (ou pular).",
    "enable": "Ativar perguntas ao usuário",
    "enableHint": "Adiciona a ferramenta ask_user_question aos agentes iniciados após a ativação.",
    "save": "Salvar",
    "saving": "Salvando…",
    "saved": "Configurações de pergunta salvas",
    "saveFailed": "Falha ao salvar as configurações de pergunta",
    "loadFailed": "Falha ao carregar: {detail}"
  }
}
