"transcriptionProviderStatus":"Status do provedor",
"transcriptionModel":"Modelo",
"transcriptionLanguage":"Idioma",
"voiceLimits":"Limites"
},
"help":{
"theme":"Alterna entre aparência clara e escura.",
"language":"Escolha o idioma usado pela WebUI.",
"provider":"Selecione o provedor que atenderá as novas requisições de modelo.",
"model":"Defina o nome do modelo padrão usado pelo nanobot.",
"configPath":"O arquivo de configuração do gateway em uso.",
"currentModel":"Usado para novas respostas.",
"selectedModelProvider":"Definido pelo modelo selecionado.",
"selectedModelValue":"Definido pelo modelo selecionado.",
"selectedPreset":"As predefinições nomeadas são somente leitura aqui; edite-as em config.json.",
"presetModel":"Mude para Default para editar modelo e provedor pela WebUI.",
"density":"Armazenado apenas neste navegador.",
"activityMode":"Escolha quanto detalhe de atividade do agente é exibido por padrão.",
"fileEditDisplay":"Escolha se a atividade de edição de arquivo é exibida como contagem de linhas ou como diff.",
"codeWrap":"Mantém linhas longas de código legíveis em telas menores.",
"brandLogos":"Mostra logotipos de provedores terceiros e de CLIs em Configurações.",
"maxResults":"Resultados retornados por cada chamada de web_search.",
"timeout":"Segundos antes de uma requisição de busca expirar.",
"jinaReader":"Usa o Jina Reader para web_fetch quando disponível.",
"imageGeneration":"Expõe generate_image nas conversas quando há um provedor de imagem configurado.",
"imageProvider":"Escolha o provedor do registro usado por generate_image.",
"imageProviderStatus":"A geração de imagens reaproveita as credenciais de Provedores.",
"imageModel":"Nome do modelo enviado ao provedor de imagem selecionado.",
"defaultAspectRatio":"Usado quando o prompt não escolhe uma proporção.",
"defaultImageSize":"Dica de tamanho enviada a provedores compatíveis.",
"maxImagesPerTurn":"Limite superior para uma requisição de generate_image.",
"botName":"Exibido sempre que o nanobot usa um nome visível.",
"botIcon":"Emoji ou texto curto exibido junto ao nome do bot.",
"timezone":"Usado para agendamentos e respostas sensíveis ao horário.",
"cliAppsCatalog":"Instale apenas os adaptadores CLI de apps que o nanobot pode executar localmente; apps nativos permanecem intactos.",
"cliAppsFilter":"Busque por app, categoria ou capacidade.",
"localServiceAccess":"Permite que comandos shell com Acesso Total alcancem serviços localhost.",
"webuiDefaultAccess":"Usado por chats web sem permissão específica de projeto.",
"securityManagedControls":"As buscas na web sempre protegem serviços locais, privados e de metadados. A segurança essencial dos canais fica em config.json.",
"logs":"Abre a pasta de logs do motor nativo.",
"diagnostics":"Exporta um pequeno relatório de runtime para o suporte.",
"localServiceAccessNative":"Permite que comandos shell com Acesso Total alcancem serviços neste Mac.",
"webuiDefaultAccessNative":"Usado por chats nativos sem permissão específica de projeto.",
"contextWindow":"Escolha o orçamento de contexto padrão para esta configuração de modelo.",
"transcription":"Transcreve a entrada do microfone antes de enviá-la. Mensagens de voz dos canais de chat usam as mesmas configurações.",
"transcriptionProvider":"Usa as credenciais do provedor correspondente em Provedores.",
"transcriptionProviderStatus":"As chaves de API ficam em provedores, não nas configurações de transcrição.",
"transcriptionModel":"Deixe como o padrão resolvido, a menos que seu provedor precise de um id de modelo personalizado.",
"transcriptionLanguage":"Dica ISO-639 opcional, como en, zh, ja ou ko."
},
"timezone":{
"select":"Selecionar fuso horário",
"search":"Buscar fuso horário",
"empty":"Nenhum fuso horário correspondente."
},
"cliApps":{
"allCategories":"Todas as categorias",
"availableCount":"{{count}} apps",
"installedCount":"{{count}} CLIs instaladas",
"summary":"{{installed}} de {{total}} CLIs instaladas",
"filterAll":"Todos",
"filterInstalled":"CLIs instaladas",
"filterNotInstalled":"Não instaladas",
"searchPlaceholder":"Buscar CLIs",
"loading":"Carregando Apps CLI...",
"empty":"Nenhum App CLI corresponde a este filtro.",
"statusInstalled":"App pronto",
"statusMissing":"Faltando",
"statusAvailable":"Disponível",
"statusUnsupported":"Não compatível",
"statusNotInstalled":"App não instalado",
"requires":"Requer",
"test":"Testar app",
"update":"Atualizar app",
"uninstall":"Desinstalar app",
"install":"Instalar app",
"readyTitle":"@{{name}} está pronto",
"readyStatus":"Pronto",
"readyTry":"Experimentar @{{name}}",
"readyCopied":"Copiado",
"readyPrompt":"Peça ao nanobot para usar @{{name}} nesta tarefa.",
"summary":"{{installed}} de {{total}} predefinições habilitadas",
"filterAll":"Todas",
"filterInstalled":"Habilitadas",
"filterNotInstalled":"Não habilitadas",
"searchPlaceholder":"Buscar predefinições MCP",
"moreOptions":"Adicionar integração",
"moreOptionsSubtitle":"Conecte um servidor de ferramentas personalizado ou importe uma configuração existente.",
"customTitle":"MCP personalizado",
"customSubtitle":"Adicione qualquer servidor MCP stdio, HTTP ou SSE.",
"customAction":"Personalizado",
"importAction":"Importar",
"serverName":"Nome do servidor",
"serverUrl":"URL",
"transport":"Transporte",
"command":"Comando",
"args":"Args JSON",
"headers":"Headers JSON",
"env":"Env JSON",
"timeout":"Tempo limite da ferramenta",
"advancedOptions":"Opções avançadas",
"hideAdvanced":"Ocultar avançado",
"saveCustom":"Salvar MCP",
"configImport":"Importar mcp.json",
"importConfig":"Importar",
"restartRequired":"Reinicie o nanobot para conectar as ferramentas MCP atualizadas.",
"toolsFound":"{{count}} ferramentas",
"loading":"Carregando predefinições MCP...",
"empty":"Nenhuma predefinição MCP corresponde a este filtro.",
"openDocs":"Abrir documentação",
"test":"Testar",
"remove":"Remover",
"enable":"Habilitar",
"enabled":"Habilitado",
"setup":"Conectar",
"configure":"Conectar",
"connectTitle":"Conectar {{name}}",
"connectHint":"Adicione a chave a partir das configurações da sua conta.",
"saveAndEnable":"Salvar e habilitar",
"updateSetup":"Atualizar configuração",
"configured":"configurado",
"keepExisting":"Deixe em branco para manter o valor atual",
"statusConfigured":"Configurado",
"statusMissingCredentials":"Precisa de chave",
"statusMissingDependency":"Precisa de dependência",
"statusComingSoon":"Em breve",
"statusNotInstalled":"Não habilitado",
"toolScope":"Ferramentas",
"allTools":"Todas",
"noTools":"Nenhuma",
"testForTools":"Execute Testar para inspecionar e escolher ferramentas individuais."
},
"values":{
"light":"Claro",
"dark":"Escuro",
"notAvailable":"Indisponível",
"enabled":"Habilitado",
"disabled":"Desabilitado",
"restartPending":"Reinício pendente",
"ready":"Pronto",
"privateEngine":"Motor privado",
"unixSocket":"Socket Unix",
"defaultWorkspace":"Workspace padrão",
"comfortable":"Confortável",
"compact":"Compacto",
"auto":"Automático",
"expanded":"Expandido",
"summary":"Resumo",
"diff":"Diff",
"collapsedDiff":"Diff recolhido",
"on":"Ligado",
"off":"Desligado",
"defaultPermission":"Permissão padrão",
"fullAccess":"Acesso total",
"configured":"Configurado",
"notConfigured":"Não configurado",
"pending":"Pendente",
"restartingEngine":"Reiniciando"
},
"status":{
"loading":"Carregando configurações...",
"loadError":"Não foi possível carregar as configurações",
"unsaved":"Alterações não salvas.",
"upToDate":"Atualizado.",
"savedRestart":"Salvo. Reinicie o nanobot para aplicar.",
"restartAfterSaving":"Salve as alterações e reinicie quando estiver pronto.",
"savedRestartApply":"Salvo. Reinicie quando estiver pronto.",
"imageProviderRestart":"Alterações do provedor de imagem salvas. Reinicie quando estiver pronto.",
"hostRestartAfterSaving":"Ao salvar, o nanobot reiniciará o motor.",
"hostRestartPending":"Salvo. O motor será reiniciado quando estiver pronto.",
"hostApiUnavailable":"As ações do host só estão disponíveis dentro do app nativo.",
"logsOpened":"Pasta de logs aberta.",
"logsOpenFailed":"Não foi possível abrir a pasta de logs.",
"diagnosticsExported":"Diagnóstico exportado para {{path}}.",
"diagnosticsExportFailed":"Não foi possível exportar o diagnóstico."
},
"actions":{
"save":"Salvar",
"saving":"Salvando",
"edit":"Editar",
"cancel":"Cancelar",
"open":"Abrir",
"export":"Exportar",
"opening":"Abrindo...",
"exporting":"Exportando..."
},
"byok":{
"description":"Traga suas próprias chaves de provedor. O nanobot lê esses valores da configuração atual e apenas provedores configurados podem ser selecionados em Geral.",
"configured":"Configurado",
"notConfigured":"Não configurado",
"configuredSection":"Configurados",
"notConfiguredSection":"Não configurados",
"showMore":"Mostrar mais {{count}}",
"showLess":"Mostrar menos",
"apiKey":"Chave de API",
"apiBase":"Base da API",
"apiKeyPlaceholder":"Informe a chave de API",
"apiKeyConfiguredPlaceholder":"Deixe em branco para manter a chave atual",
"configuredKeyHint":"Chave configurada",
"apiBasePlaceholder":"Usar padrão do provedor",
"apiKeyRequired":"É necessária uma chave de API para configurar este provedor.",
"noMatches":"Nenhum provedor corresponde a esta busca.",
"saveProvider":"Salvar provedor"
},
"legal":{
"thirdPartyBrands":"Nomes de produtos, logotipos e marcas são propriedades de seus respectivos donos. O uso é apenas para identificação e não implica endosso."
},
"image":{
"selectProvider":"Selecionar provedor",
"selectAspect":"Selecionar proporção",
"selectSize":"Selecionar tamanho",
"configureProvider":"Configurar provedor",
"missingCredential":"Configure o provedor antes de habilitar a geração de imagens."
},
"api":{
"title":"Servidor de API",
"openaiCompatible":"API compatível com OpenAI",
"description":"Conecte SDKs e agentes por meio de um endpoint /v1 local.",
"start":"Iniciar servidor de API",
"starting":"Iniciando...",
"stop":"Parar",
"stopping":"Parando...",
"access":"Acesso",
"thisDevice":"Este dispositivo",
"localNetwork":"Rede local",
"localHelp":"Apenas este dispositivo pode se conectar.",
"networkHelp":"Outros dispositivos podem se conectar; é necessária uma chave de API.",
"port":"Porta",
"portHelp":"A API usa esta porta local.",
"apiKey":"Chave de API",
"apiKeyHelp":"Os clientes enviam isto como um token Bearer.",
"apiKeyRequired":"Obrigatória antes de expor a API na rede.",
"apiKeyPlaceholder":"Informe uma chave de API",
"autoInstall":"O suporte à API será instalado automaticamente quando você iniciá-lo."
},
"observability":{
"title":"Observabilidade",
"configured":"Credenciais de tracing estão disponíveis para o nanobot.",
"environment":"Defina LANGFUSE_SECRET_KEY e LANGFUSE_PUBLIC_KEY e reinicie o nanobot.",
"enable":"Habilitar suporte a tracing"
},
"apps":{
"description":"Adicione ferramentas ao nanobot e mencione-as com @ na conversa.",
"cliLabel":"App",
"mcpLabel":"Integração",
"channelLabel":"Canal",
"featureLabel":"Recurso",
"filterAll":"Prontos",
"filterPlugins":"Complementos",
"filterCli":"Apps",
"filterMcp":"Integrações",
"enabledSummary":"{{count}} prontos",
"caption":"{{cli}} apps · {{mcp}} integrações",
"searchPlaceholder":"Buscar ferramentas",
"featured":"Ferramentas",
"loading":"Carregando Apps...",
"empty":"Nenhuma ferramenta corresponde a esta visualização.",
"restartRequired":"Reinicie o nanobot para aplicar os apps e integrações atualizados."
},
"channels":{
"description":"Conecte apps de chat, e-mail e WebUI ao nanobot.",
"hourlyWindow":"A cada hora {{start}}-{{end}} em :{{minute}}",
"local":"Gatilho local",
"custom":"Agendamento personalizado"
},
"next":{
"paused":"Pausada",
"pending":"Executando agora",
"local":"Aguardando gatilho",
"none":"Sem próxima execução"
},
"message":{
"showMore":"Mostrar mensagem completa",
"showLess":"Mostrar menos"
},
"fields":{
"name":"Nome",
"message":"Mensagem",
"scheduleType":"Tipo de agendamento",
"every":"A cada",
"unit":"Unidade",
"cronExpression":"Expressão cron",
"timezone":"Fuso horário",
"runAt":"Executar em"
},
"scheduleTypes":{
"every":"Intervalo",
"cron":"Cron",
"at":"Uma vez"
},
"everyUnits":{
"second":"Segundos",
"minute":"Minutos",
"hour":"Horas",
"day":"Dias"
},
"validation":{
"nameRequired":"O nome é obrigatório.",
"messageRequired":"A mensagem é obrigatória.",
"intervalRequired":"O intervalo deve ser um número positivo.",
"cronRequired":"A expressão cron é obrigatória.",
"timeRequired":"O horário de execução é obrigatório.",
"futureRequired":"O horário de execução deve estar no futuro."
}
},
"oauth":{
"authentication":"Autenticação OAuth",
"signIn":"Entrar",
"signingIn":"Entrando...",
"signInAgain":"Entrar novamente",
"signOut":"Sair",
"signedInAs":"Conectado como {{account}}",
"signInHelp":"Entre por este dispositivo; nenhuma chave de API é armazenada em config.",
"signInRequired":"Login necessário",
"signInBeforeSaving":"Entre antes de salvar este provedor OAuth como provedor de modelo ativo.",
"signedIn":"Conectado",
"notSignedIn":"Desconectado"
},
"skills":{
"description":"Revise as skills de instrução que este agente pode carregar durante uma conversa.",
"caption":"{{available}} disponíveis · {{total}} no total",
"featured":"Skills do agente",
"empty":"Nenhuma skill disponível.",
"sourceWorkspace":"Personalizada",
"sourceBuiltin":"Embutida",
"statusAvailable":"Disponível",
"statusUnavailable":"Indisponível",
"unavailableReason":"Faltando: {{reason}}",
"openDetails":"Abrir detalhes de {{name}}",
"loadingDetail":"Carregando detalhes da skill...",
"loadFailed":"Não foi possível carregar os detalhes da skill.",
"descriptionTitle":"Descrição",
"source":"Origem",
"status":"Status",
"requirements":"Requisitos",
"noRequirements":"Sem requisitos explícitos.",
"commands":"Comandos",
"environment":"Variáveis de ambiente",
"missingCommands":"CLI ausente",
"missingEnvironment":"ENV ausente",
"unavailableReasonLabel":"Motivo da indisponibilidade",
"rawInstructions":"SKILL.md bruto",
"rawInstructionsEmpty":"Sem instruções brutas.",
"detailDescription":"Detalhes de {{name}}."
},
"voice":{
"selectProvider":"Selecionar provedor",
"configureProvider":"Configurar provedor",
"languageAuto":"Auto"
}
},
"chat":{
"fallbackTitle":"Conversa {{id}}",
"forkTitle":"Fork: {{title}}",
"loading":"Carregando…",
"noSessions":"Nenhuma sessão ainda.",
"showMore":"Mostrar mais {{count}}",
"collapsed":"{{count}} conversas ocultas",
"showLess":"Mostrar menos",
"actions":"Ações da conversa {{title}}",
"newInProject":"Iniciar uma nova conversa em {{project}}",
"activity":{
"running":"Agente em execução",
"complete":"Agente finalizado",
"updated":"Nova atividade"
},
"pin":"Fixar",
"unpin":"Desafixar",
"rename":"Renomear",
"renameTitle":"Renomear conversa",
"renameDescription":"Escolha um nome local da barra lateral para esta conversa.",
"renamePlaceholder":"Nome da conversa",
"renameProjectTitle":"Renomear projeto",
"renameProjectDescription":"Escolha um nome local da barra lateral para este projeto.",
"renameProjectPlaceholder":"Nome do projeto",
"renameSave":"Salvar",
"archive":"Arquivar",
"unarchive":"Desarquivar",
"showArchived":"Mostrar arquivadas",
"hideArchived":"Ocultar arquivadas",
"delete":"Excluir",
"newChat":"Nova conversa",
"groups":{
"pinned":"Fixadas",
"all":"Conversas",
"projects":"Projetos",
"today":"Hoje",
"yesterday":"Ontem",
"earlier":"Anteriores",
"archived":"Arquivadas"
}
},
"deleteConfirm":{
"title":"Excluir esta conversa?",
"description":"Esta ação não pode ser desfeita.",
"cancel":"Cancelar",
"confirm":"Excluir",
"automationsDescription":"Esta conversa possui automações agendadas. Excluí-la também excluirá essas automações.",
"moreAutomations":"+ {{count}} a mais",
"confirmWithAutomations":"Excluir",
"schedule":{
"at":"{{time}}",
"every":"A cada {{duration}}",
"cron":"Cron {{expr}}",
"cronWithTz":"Cron {{expr}} · {{tz}}",
"local":"Gatilho local",
"unknown":"Agendamento personalizado"
},
"next":{
"label":"Próxima: {{time}}",
"disabled":"Pausada",
"local":"Aguardando gatilho",
"none":"Sem próxima execução"
}
},
"connection":{
"idle":"Ocioso",
"connecting":"Conectando…",
"open":"Conectado",
"reconnecting":"Reconectando…",
"closed":"Desconectado",
"error":"Erro de conexão"
},
"thread":{
"loadingConversation":"Carregando conversa…",
"empty":{
"greetings":{
"workOn":"Em que vamos trabalhar?",
"start":"Por onde começamos?",
"build":"O que vamos construir hoje?",
"tackle":"O que vamos resolver juntos?"
},
"quickActions":{
"plan":{
"title":"Criar um plano de projeto",
"prompt":"Crie um plano de projeto conciso para o que eu deveria construir em seguida."
},
"analyze":{
"title":"Analisar estes dados",
"prompt":"Ajude-me a analisar estes dados e destaque os padrões mais importantes."
},
"brainstorm":{
"title":"Fazer um brainstorming",
"prompt":"Sugira algumas ideias práticas e tradeoffs para este problema."
},
"code":{
"title":"Escrever código",
"prompt":"Ajude-me a escrever o código desta tarefa, começando pela menor alteração útil."
},
"summarize":{
"title":"Resumir este documento",
"prompt":"Resuma este documento e liste os principais destaques."
},
"more":{
"title":"Mais",
"prompt":"Mostre-me algumas formas úteis com as quais você pode ajudar neste workspace."
}
},
"imageQuickActions":{
"icon":{
"title":"Desenhar um ícone de app",
"prompt":"Gere um ícone de app 1:1 limpo para o nanobot: robô amigável, estilo vetorial simples, paleta suave em azul e branco, sem texto."
},
"sticker":{
"title":"Criar um sticker",
"prompt":"Gere uma imagem estilo sticker de um pequeno assistente robô, com fundo de aparência transparente, expressivo e divertido."
},
"poster":{
"title":"Criar um pôster",
"prompt":"Gere um conceito de pôster polido para um assistente pessoal de IA, composição moderna, hierarquia visual forte, adequado para uma landing page."
},
"product":{
"title":"Mockup de produto",
"prompt":"Gere uma imagem limpa de mockup de produto para um app web de IA conversacional, interface mínima, iluminação premium, moldura de dispositivo realista."
},
"portrait":{
"title":"Retrato estilizado",
"prompt":"Gere um retrato estilizado de um companheiro de IA amigável, luz suave, detalhado mas acessível, estilo de ilustração moderna."
},
"edit":{
"title":"Editar uma imagem",
"prompt":"Ajude-me a editar uma imagem. Peça-me para enviar ou referenciar a imagem primeiro e, em seguida, gere o resultado editado."
}
}
},
"header":{
"toggleSidebar":"Alternar barra lateral",
"newChat":"Iniciar uma nova conversa",
"toggleTheme":"Alternar tema pelo cabeçalho",
"settings":"Abrir configurações",
"sessionInfo":"Detalhes da sessão"
},
"sessionInfo":{
"title":"Sessão",
"untitled":"Conversa sem título",
"automations":"Automações",
"count":"{{count}}",
"loading":"Carregando automações...",
"loadFailed":"Não foi possível carregar as automações.",
"empty":"Ainda não há automações nesta sessão.",
"disabled":"Desligado",
"schedule":{
"at":"{{time}}",
"every":"A cada {{duration}}",
"cron":"Cron {{expr}}",
"cronWithTz":"Cron {{expr}} · {{tz}}",
"local":"Gatilho local",
"unknown":"Agendamento personalizado"
},
"next":{
"label":"{{time}}",
"pending":"Executará em breve",
"disabled":"Pausada",
"local":"Aguardando gatilho",
"none":"Sem próxima execução"
}
},
"composer":{
"placeholderThread":"Digite sua mensagem…",
"placeholderHero":"Pergunte qualquer coisa...",
"placeholderOpening":"Abrindo uma nova conversa…",
"placeholderStreaming":"O modelo está respondendo…",
"inputAria":"Campo de mensagem",
"sendHint":"Enter para enviar · Shift+Enter para nova linha",
"fileEditShowMoreLines":"Mostrar mais {{count}} linhas",
"fileEditShowFewerLines":"Mostrar menos linhas",
"fileEditOpenFile":"Abrir arquivo",
"fileEditDiffTruncated":"Diff truncado. Abra o arquivo para ver a alteração completa."
},
"lightbox":{
"title":"Pré-visualização de imagem",
"open":"Ver imagem",
"prev":"Imagem anterior",
"next":"Próxima imagem",
"close":"Fechar pré-visualização"
},
"filePreview":{
"aria":"Pré-visualização de arquivo",
"close":"Fechar pré-visualização de arquivo",
"loading":"Carregando pré-visualização...",
"failed":"Não foi possível pré-visualizar este arquivo.",
"routeMissing":"A pré-visualização de arquivo precisa do gateway mais recente. Reinicie o nanobot gateway e tente novamente.",
"resize":"Redimensionar pré-visualização de arquivo",
"truncated":"A pré-visualização foi truncada porque este arquivo é grande."
},
"code":{
"fallbackLanguage":"código",
"copyAria":"Copiar código",
"copy":"Copiar",
"copied":"Copiado"
},
"common":{
"dismiss":"Descartar"
},
"errors":{
"messageTooBig":{
"title":"Mensagem grande demais",
"body":"O servidor rejeitou sua última mensagem porque ela excedeu o limite de tamanho. Remova algumas imagens ou tente arquivos menores e envie novamente."
},
"workspaceScopeRejected":{
"title":"O workspace não foi alterado",
"body":"O nanobot manteve o workspace anterior porque o projeto ou modo de acesso solicitado foi rejeitado pelo gateway."
}
},
"workspace":{
"dialog":{
"defaultProject":"Workspace padrão",
"manual":"Colar caminho",
"manualPlaceholder":"/Users/nome/projeto",
"usePath":"Usar caminho",
"absolutePathRequired":"Informe um caminho absoluto de pasta nesta máquina."