first-commit
ci / Validate workspace (push) Has been cancelled
landing-page-ci / Validate landing page (push) Has been cancelled
landing-page-deploy / Deploy landing page (push) Has been cancelled
github-metrics / Generate repository metrics SVG (push) Has been cancelled
refresh-contributors-wall / Refresh contributors wall cache bust (push) Waiting to run

This commit is contained in:
Zakaria
2026-05-04 14:58:14 -04:00
commit a46764fb1b
1210 changed files with 233231 additions and 0 deletions
+829
View File
@@ -0,0 +1,829 @@
import type { Dict } from '../types';
export const ptBR: Dict = {
'common.cancel': 'Cancelar',
'common.save': 'Salvar',
'common.close': 'Fechar',
'common.delete': 'Excluir',
'common.rename': 'Renomear',
'common.preview': 'Prévia',
'common.share': 'Compartilhar',
'common.search': 'Buscar',
'common.searchEllipsis': 'Buscar…',
'common.loading': 'Carregando…',
'common.all': 'Todos',
'common.none': 'Nenhum',
'common.default': 'Padrão',
'common.installed': 'instalado',
'common.notInstalled': 'não instalado',
'common.active': 'ativo',
'common.offline': 'offline',
'common.selected': 'selecionado',
'common.create': 'Criar',
'common.openPreview': 'Abrir prévia',
'common.exitFullscreen': 'Sair da tela cheia',
'common.fullscreen': 'Tela cheia',
'common.openInNewTab': 'Abrir em nova aba',
'common.exportPdf': 'Exportar como PDF',
'common.exportZip': 'Baixar como .zip',
'common.exportHtml': 'Exportar como HTML independente',
'common.justNow': 'agora mesmo',
'common.minutesAgo': 'há {n} min',
'common.hoursAgo': 'há {n} h',
'common.daysAgo': 'há {n} d',
'common.now': 'agora',
'common.minutesShort': '{n} min',
'common.hoursShort': '{n} h',
'common.daysShort': '{n} d',
'common.untitled': 'Sem título',
'app.brand': 'Open Design',
'app.brandPill': 'Prévia de pesquisa',
'app.brandSubtitle': 'por Nexu Labs',
'app.welcomeLoading': 'Carregando área de trabalho…',
'settings.welcomeKicker': 'Bem-vindo',
'settings.welcomeTitle': 'Configure o Open Design',
'settings.welcomeSubtitle':
'Escolha como você quer executar as gerações. Você pode mudar isso a qualquer momento no botão Configurações da barra superior.',
'settings.kicker': 'Configurações',
'settings.title': 'Execução e modelo',
'settings.subtitle': 'Escolha entre CLI local e BYOK. Sua chave de API fica armazenada apenas neste navegador.',
'settings.modeAria': 'Modo de execução',
'settings.protocolAria': 'Protocolo de API',
'settings.modeDaemon': 'CLI local',
'settings.modeDaemonHelp': 'Execute por uma CLI de agente de código na sua máquina',
'settings.modeDaemonOffline': 'Daemon não está em execução',
'settings.modeDaemonOfflineMeta': 'daemon offline',
'settings.modeDaemonInstalledMeta': '{count} instalados',
'settings.modeApi': 'Provedor de API',
'settings.modeApiMeta': 'BYOK',
'settings.codeAgent': 'Agente de código',
'settings.codeAgentHint':
'Detectado ao escanear seu PATH. Escolha a CLI por onde as gerações devem passar.',
'settings.rescan': '↻ Reescanear',
'settings.rescanTitle': 'Reescanear PATH',
'settings.rescanRunning': 'Escaneando...',
'settings.rescanSuccess': 'Escaneamento concluido. {count} disponiveis.',
'settings.rescanFailed': 'Falha ao escanear. Verifique o daemon e tente novamente.',
'settings.noAgentsDetected':
'Nenhum agente detectado ainda. Instale Claude Code, Codex, Devin for Terminal, Gemini CLI, OpenCode, Cursor Agent, Qwen ou GitHub Copilot CLI e clique em Reescanear.',
'settings.apiSection': 'API da Anthropic',
'settings.quickFillProvider': 'Preencher provedor',
'settings.customProvider': 'Provedor personalizado',
'settings.apiKey': 'Chave de API',
'settings.showKey': 'Mostrar chave',
'settings.hideKey': 'Ocultar chave',
'settings.show': 'Mostrar',
'settings.hide': 'Ocultar',
'settings.model': 'Modelo',
'settings.suggestedModelsHint':
'Estes são modelos sugeridos para este protocolo. Seu provedor pode oferecer suporte a modelos diferentes.',
'settings.baseUrl': 'URL base',
'settings.baseUrlInvalid': 'Informe uma URL pública http:// ou https:// válida. Localhost é permitido; IPs de rede privada são bloqueados.',
'settings.azureDeploymentModel': 'Nome do deployment',
'settings.azureDeploymentModelHint':
'No Azure OpenAI, este campo e usado como nome do deployment em /openai/deployments/<model>. Informe o nome do deployment criado no Azure.',
'settings.apiVersion': 'Versão da API',
'settings.maxTokens': 'Tokens máx. (opcional)',
'settings.maxTokensHint':
'Limite para o comprimento da resposta. Cada modelo tem um valor padrão ajustado (visível no placeholder); deixe em branco para usá-lo ou insira um número para substituí-lo.',
'settings.apiHint': 'As chamadas passam pelo proxy do daemon local até a Base URL definida. A chave fica armazenada apenas neste navegador e é enviada com as requisições ao provedor.',
'settings.skipForNow': 'Pular por enquanto',
'settings.getStarted': 'Começar',
'settings.envConfigure': 'Configurar modo de execução',
'settings.localCli': 'CLI local',
'settings.anthropicApi': 'API da Anthropic',
'settings.noAgentSelected': 'nenhum agente selecionado',
'settings.language': 'Idioma',
'settings.languageHint': 'Altere o idioma da interface. Salvo neste navegador.',
'settings.appearance': 'Aparência',
'settings.appearanceHint': 'Escolha claro, escuro ou seguir as configurações do sistema.',
'settings.themeSystem': 'Sistema',
'settings.themeLight': 'Claro',
'settings.themeDark': 'Escuro',
'settings.modelPicker': 'Modelo',
'settings.reasoningPicker': 'Esforço de raciocínio',
'settings.modelPickerHint':
'Buscado na CLI quando ela expõe um comando `models`. "Padrão" deixa a escolha para a configuração da própria CLI; "Personalizado…" permite digitar qualquer id de modelo aceito pela CLI.',
'settings.modelCustom': 'Personalizado (digite abaixo)…',
'settings.modelCustomLabel': 'Id do modelo personalizado',
'settings.modelCustomPlaceholder': 'ex.: anthropic/claude-sonnet-4-6',
'settings.mediaProviders': 'Provedores de mídia',
'settings.mediaProvidersHint': 'Chaves de API para geração de imagem, vídeo e áudio. Salvas localmente e sincronizadas com o daemon local.',
'settings.mediaProviderApiKey': 'API key',
'settings.mediaProviderBaseUrl': 'Base URL',
'settings.mediaProviderConfigured': 'Configurado',
'settings.mediaProviderUnset': 'Não configurado',
'settings.mediaProviderClear': 'Limpar',
'settings.mediaProviderPlaceholder': 'Cole a API key',
'settings.mediaProviderBaseUrlPlaceholder': 'Sobrescrever Base URL padrão',
'settings.about': 'Sobre',
'settings.aboutHint': 'Versão e detalhes de execução',
'settings.appVersion': 'Versão',
'settings.appChannel': 'Canal',
'settings.appRuntime': 'Runtime',
'settings.appPlatform': 'Plataforma',
'settings.appArchitecture': 'Arquitetura',
'settings.runtimePackaged': 'App empacotado',
'settings.runtimeDevelopment': 'Desenvolvimento',
'settings.versionUnavailable': 'Os detalhes de versão ficam indisponíveis enquanto o daemon está offline.',
'entry.tabDesigns': 'Designs',
'entry.tabExamples': 'Exemplos',
'entry.tabDesignSystems': 'Sistemas de design',
'entry.openSettingsTitle': 'Configurações',
'entry.openSettingsAria': 'Abrir configurações',
'entry.resizeAria': 'Redimensionar barra lateral',
'entry.loadingWorkspace': 'Carregando área de trabalho…',
'entry.tabImageTemplates': 'Modelos de imagem',
'entry.tabVideoTemplates': 'Modelos de vídeo',
'promptTemplates.searchPlaceholder': 'Buscar templates…',
'promptTemplates.countLabel': '{n} resultados',
'promptTemplates.emptyImage': 'Nenhum template de prompt de imagem instalado.',
'promptTemplates.emptyVideo': 'Nenhum template de prompt de vídeo instalado.',
'promptTemplates.emptyNoMatch': 'Nenhum template corresponde à busca.',
'promptTemplates.attributionFooter': 'Adaptado de bibliotecas públicas de prompts. Cada card aponta para o autor original.',
'promptTemplates.openPreviewTitle': 'Abrir prompt e prévia',
'promptTemplates.sourcePrefix': 'Fonte:',
'promptTemplates.fetchError': 'Não foi possível carregar o corpo deste template.',
'promptTemplates.promptLabel': 'Corpo do prompt',
'promptTemplates.copyPrompt': 'Copiar prompt',
'promptTemplates.copyDone': 'Copiado!',
'promptTemplates.modelHint': 'Modelo sugerido: {model}',
'promptTemplates.openSource': 'Ver original',
'promptTemplates.openFullscreen': 'Abrir prévia em tela cheia',
'promptTemplates.closeFullscreen': 'Fechar prévia em tela cheia',
'promptTemplates.retry': 'Tentar novamente',
'newproj.tabPrototype': 'Protótipo',
'newproj.tabDeck': 'Apresentação',
'newproj.tabTemplate': 'A partir de template',
'newproj.tabOther': 'Outro',
'newproj.titlePrototype': 'Novo protótipo',
'newproj.titleDeck': 'Nova apresentação',
'newproj.titleTemplate': 'Começar de um template',
'newproj.titleImage': 'Nova imagem',
'newproj.titleVideo': 'Novo vídeo',
'newproj.titleAudio': 'Novo áudio',
'newproj.titleOther': 'Novo projeto',
'newproj.namePlaceholder': 'Nome do projeto',
'newproj.fidelityLabel': 'Fidelidade',
'newproj.fidelityWireframe': 'Wireframe',
'newproj.fidelityHigh': 'Alta fidelidade',
'newproj.toggleSpeakerNotes': 'Usar notas do apresentador',
'newproj.toggleSpeakerNotesHint': 'Menos texto nos slides — deixe os pontos de fala nas notas.',
'newproj.toggleAnimations': 'Incluir animações',
'newproj.toggleAnimationsHint':
'Adicionar movimento (entrada, hover, transições) sobre o template.',
'newproj.templateLabel': 'Template',
'newproj.noTemplatesTitle': 'Ainda não há templates',
'newproj.noTemplatesBody':
'Abra qualquer projeto e use o menu Compartilhar no visualizador de arquivos para convertê-lo em template. Os templates aparecem aqui.',
'newproj.savedTemplate': 'Template salvo',
'newproj.fileSingular': 'arquivo',
'newproj.filePlural': 'arquivos',
'newproj.create': 'Criar',
'newproj.createFromTemplate': 'Criar a partir do template',
'newproj.createDisabledTitle':
'Salve primeiro um projeto como template (menu Compartilhar dentro de qualquer projeto).',
'newproj.importClaudeZip': 'Importar ZIP do Claude Design',
'newproj.importClaudeZipTitle': 'Importar uma exportação .zip do Claude Design',
'newproj.importingClaudeZip': 'Importando…',
'newproj.privacyFooter': 'Por padrão, só você pode ver seu projeto.',
'newproj.designSystem': 'Sistema de design',
'newproj.dsNoneFreeform': 'Nenhum — livre',
'newproj.dsNoneSubtitleEmpty': 'Sem tokens de sistema, escolha sua própria paleta',
'newproj.dsNoneSubtitleSelected': 'Pular tokens de sistema. O agente escolhe a própria paleta.',
'newproj.dsCategoryFallback': 'Sistema de design',
'newproj.dsSearch': 'Buscar sistemas de design…',
'newproj.dsModeAria': 'Modo de seleção',
'newproj.dsModeSingle': 'Único',
'newproj.dsModeMulti': 'Múltiplo',
'newproj.dsNoneTitle': 'Nenhum — livre',
'newproj.dsNoneSub': 'Pular tokens de sistema. O agente escolhe a própria paleta.',
'newproj.dsEmpty': 'Nenhum sistema de design corresponde a “{query}”.',
'newproj.dsFootSingular': 'é apenas inspiração.',
'newproj.dsFootPlural': 'são apenas inspiração.',
'newproj.dsFootClear': 'Limpar',
'newproj.dsBadgeDefault': 'PADRÃO',
'newproj.dsPrimaryFallback': 'Principal',
'newproj.surfaceImage': 'Imagem',
'newproj.surfaceVideo': 'Vídeo',
'newproj.surfaceAudio': 'Áudio',
'newproj.modelLabel': 'Modelo',
'newproj.aspectLabel': 'Proporção',
'newproj.imageStyleLabel': 'Notas de estilo',
'newproj.imageStylePlaceholder': 'Foto editorial, luz suave, paleta contida',
'newproj.videoLengthLabel': 'Duração',
'newproj.videoLengthSeconds': '{n}s',
'newproj.audioKindLabel': 'Tipo de áudio',
'newproj.audioKindMusic': 'Música',
'newproj.audioKindSpeech': 'Voz / TTS',
'newproj.audioKindSfx': 'Efeito sonoro',
'newproj.audioDurationLabel': 'Duração',
'newproj.audioDurationSeconds': '{n}s',
'newproj.voiceLabel': 'Voz',
'newproj.voicePlaceholder': 'Voice id do provedor, opcional',
'newproj.promptTemplateLabel': 'Modelo de referência',
'newproj.promptTemplateNoneTitle': 'Nenhum — escreva o seu',
'newproj.promptTemplateNoneSub': 'Pule a galeria e descreva o próprio briefing',
'newproj.promptTemplateRefSub': 'Modelo de referência',
'newproj.promptTemplateSearch': 'Buscar modelos…',
'newproj.promptTemplateEmpty': 'Nenhum modelo instalado para este formato ainda.',
'newproj.promptTemplateBodyLabel': 'Prompt (você pode ajustar)',
'newproj.promptTemplateOptimizeHint':
'Edite o que quiser — suas alterações entram no briefing do agente.',
'newproj.promptTemplateBodyEmpty':
'Corpo vazio — o agente não receberá nenhuma referência de modelo.',
'designs.subRecent': 'Recentes',
'designs.subYours': 'Seus designs',
'designs.filterAria': 'Filtrar projetos',
'designs.searchPlaceholder': 'Buscar…',
'designs.emptyNoProjects': 'Ainda não há projetos. Crie um à esquerda.',
'designs.emptyNoMatch': 'Nenhum projeto corresponde à sua busca.',
'designs.deleteTitle': 'Excluir projeto',
'designs.deleteConfirm': 'Excluir "{name}"?',
'designs.cardFreeform': 'livre',
'designs.status.notStarted': 'Não iniciado',
'designs.status.queued': 'Na fila',
'designs.status.running': 'Em execução',
'designs.status.awaitingInput': 'Aguardando resposta',
'designs.status.succeeded': 'Concluído',
'designs.status.failed': 'Falhou',
'designs.status.canceled': 'Cancelado',
'designs.viewToggleAria': 'Modo de visualização',
'designs.viewGrid': 'Visualização em grade',
'designs.viewKanban': 'Visualização em quadro',
'designs.kanbanEmptyColumn': 'Sem designs',
'designs.deleteAria': 'Excluir projeto {name}',
'examples.typeLabel': 'Tipo',
'examples.surfaceLabel': 'Superfície',
'examples.surfaceWeb': 'Web',
'examples.surfaceImage': 'Imagem',
'examples.surfaceVideo': 'Vídeo',
'examples.surfaceAudio': 'Áudio',
'examples.scenarioLabel': 'Cenário',
'examples.modeAll': 'Todos',
'examples.modePrototypeDesktop': 'Protótipos · Desktop',
'examples.modePrototypeMobile': 'Protótipos · Mobile',
'examples.modeDeck': 'Slides',
'examples.modeDocument': 'Docs e templates',
'examples.scenarioGeneral': 'Geral',
'examples.scenarioEngineering': 'Engenharia',
'examples.scenarioProduct': 'Produto',
'examples.scenarioDesign': 'Design',
'examples.scenarioMarketing': 'Marketing',
'examples.scenarioSales': 'Vendas',
'examples.scenarioFinance': 'Finanças',
'examples.scenarioHr': 'RH',
'examples.scenarioOperations': 'Operações',
'examples.scenarioSupport': 'Suporte',
'examples.scenarioLegal': 'Jurídico',
'examples.scenarioEducation': 'Educação',
'examples.scenarioPersonal': 'Pessoal',
'examples.emptyNoSkills': 'Nenhuma skill disponível. O daemon está em execução?',
'examples.searchPlaceholder': 'Buscar exemplos…',
'examples.searchAria': 'Buscar exemplos por nome',
'examples.emptyNoMatch': 'Nenhum exemplo corresponde a esses filtros.',
'examples.openPreview': '⤢ Abrir prévia',
'examples.loadingPreview': 'Carregando prévia…',
'examples.hoverPreview': 'Passe o cursor para ver a prévia',
'examples.usePrompt': 'Usar este prompt',
'examples.previewModalTitle': 'Abrir prévia completa (modal)',
'examples.shareTitle': 'Compartilhar este exemplo',
'examples.shareLoadFirst': 'Passe o cursor para carregar a prévia primeiro',
'examples.shareMenu': 'Compartilhar ▾',
'examples.exportPdfAllSlides': 'Exportar como PDF (todos os slides)',
'examples.exportPptxLocked': 'Exportar como PPTX… (abra o template primeiro)',
'examples.tagSlideDeck': 'Apresentação',
'examples.tagTemplate': 'Template',
'examples.tagDesignSystem': 'Sistema de design',
'examples.tagMobilePrototype': 'Protótipo mobile',
'examples.tagDesktopPrototype': 'Protótipo desktop',
'examples.tagImage': 'Imagem',
'examples.tagVideo': 'Vídeo',
'examples.tagAudio': 'Áudio',
'examples.previewLabel': 'Prévia',
'ds.surfaceLabel': 'Superfície',
'ds.surfaceWeb': 'Web',
'ds.surfaceImage': 'Imagem',
'ds.surfaceVideo': 'Vídeo',
'ds.surfaceAudio': 'Áudio',
'ds.searchPlaceholder': 'Buscar sistemas de design…',
'ds.emptyNoMatch': 'Nenhum sistema de design corresponde à sua busca.',
'ds.badgeDefault': 'PADRÃO',
'ds.preview': 'Prévia',
'ds.previewTitle': 'Prévia do sistema de design',
'ds.categoryAll': 'Todos',
'ds.categoryUncategorized': 'Sem categoria',
'ds.showcase': 'Vitrine',
'ds.tokens': 'Tokens',
'ds.specToggle': 'DESIGN.md',
'ds.specLoading': 'Carregando DESIGN.md…',
'avatar.title': 'Conta e configurações',
'avatar.localCli': 'CLI local',
'avatar.anthropicApi': 'API da Anthropic',
'avatar.useLocal': 'Usar CLI local',
'avatar.useApi': 'Usar API · BYOK',
'avatar.codeAgent': 'Agente de código',
'avatar.rescan': 'Reescanear PATH',
'avatar.settings': 'Configurações',
'avatar.backToProjects': 'Voltar aos projetos',
'avatar.metaActive': 'ativo',
'avatar.metaOffline': 'offline',
'avatar.metaSelected': 'selecionado',
'avatar.noAgentSelected': 'nenhum agente selecionado',
'avatar.modelSection': 'Modelo',
'avatar.modelLabel': 'Modelo',
'avatar.reasoningLabel': 'Raciocínio',
'avatar.customSuffix': '(personalizado)',
'project.backToProjects': 'Voltar aos projetos',
'project.metaFreeform': 'livre',
'chat.tabChat': 'Chat',
'chat.tabComments': 'Comentários',
'chat.commentsSoon': 'Comentários — em breve',
'chat.comments.attached': 'Attached to chat',
'chat.comments.emptyAttached': 'No comments attached.',
'chat.comments.saved': 'Saved comments',
'chat.comments.emptySaved': 'No saved comments.',
'chat.comments.add': 'Add',
'chat.comments.addAll': 'Add all',
'chat.comments.remove': 'Remove',
'chat.comments.placeholder': 'Comment on this element…',
'chat.comments.addSend': 'Add & send',
'chat.comments.updateSend': 'Update & send',
'chat.comments.removeAttachment': 'Remove comment attachment',
'chat.comments.removeAttachmentAria': 'Remove comment attachment for {name}',
'chat.conversationsTitle': 'Conversas',
'chat.conversationsAria': 'Histórico de conversas',
'chat.newConversation': 'Nova conversa',
'chat.newConversationsTitle': 'Nova conversa',
'chat.conversationsHeading': 'Conversas',
'chat.new': 'Nova',
'chat.emptyConversations': 'Ainda não há conversas.',
'chat.deleteConversation': 'Excluir conversa',
'chat.deleteConversationConfirm':
'Excluir "{title}"? Isso remove as mensagens.',
'chat.untitledConversation': 'Conversa sem título',
'chat.startTitle': 'Comece uma conversa',
'chat.startHint':
'Arraste ou cole imagens como referência visual, ou digite @ para anexar um arquivo deste projeto. Ou experimente um destes começos:',
'chat.fillInputTitle': 'Clique para preencher o campo',
'chat.jumpToLatest': 'Ir para a mais recente',
'chat.scrollToLatest': 'Rolar para a mais recente',
'chat.you': 'Você',
'chat.openFile': 'Abrir {name}',
'chat.composerPlaceholder':
'Descreva o design que você quer — cole ou arraste imagens, ou use @ para referenciar um arquivo…',
'chat.composerHint':
'⌘/Ctrl + Enter para enviar · cole imagens · @ para referenciar arquivos',
'chat.cliSettingsTitle': 'Configurações de CLI e modelo',
'chat.cliSettingsAria': 'Abrir configurações de CLI e modelo',
'chat.attachTitle': 'Anexar arquivos (ou colar / arrastar)',
'chat.attachAria': 'Anexar arquivos',
'chat.importTitle': 'Importar fontes (em breve)',
'chat.importLabel': 'Importar',
'chat.importComingSoon': 'Em breve',
'chat.importSoon': 'Em breve',
'chat.importFig': 'Enviar arquivo .fig',
'chat.importGitHub': 'Conectar GitHub',
'chat.importWeb': 'Capturar elemento web',
'chat.importFolder': 'Vincular pasta de código',
'chat.importSkills': 'Skills e sistemas de design',
'chat.importProject': 'Referenciar outro projeto',
'chat.send': 'Enviar',
'chat.stop': 'Parar',
'chat.removeAria': 'Remover {name}',
'chat.example1Title': 'Pitch deck editorial',
'chat.example1Tag': 'Revista',
'chat.example1Prompt':
'Uma apresentação editorial de 10 slides para um estúdio de design levantando uma rodada seed — layout em grid suíço, títulos serifados enormes com capitulares marcantes, números de seção em monoespaçada, bastante espaço negativo e slides com fotos em tela cheia intercalados com slides densos de texto. Capa, visão, mercado, produto, tração, equipe, pedido, contato.',
'chat.example2Title': 'Dashboard de analytics SaaS',
'chat.example2Tag': 'Dados',
'chat.example2Prompt':
'Um dashboard denso de analytics para um SaaS de ferramentas de desenvolvedor — faixa de KPIs com variações semanais, dois gráficos de linha empilhados (MRR e workspaces ativos), um mapa-múndi de calor de uso, uma grade de retenção por coorte, ranking de principais clientes e feed de eventos em tempo real. Tema escuro, números tabulares monoespaçados, acentos em sparklines.',
'chat.example3Title': 'Relatório anual long-scroll',
'chat.example3Tag': 'Editorial',
'chat.example3Prompt':
'Um relatório anual interativo para uma ONG climática — layout editorial long-scroll misturando grandes blocos de citações, visualizações de dados (barras empilhadas, contadores animados, mapa coroplético de locais de projetos), quebras com fotografia, mural de doadores e chamada final para ação. Corpo com serif moderna, rótulos de gráficos sem serifa, paleta terrosa de papel.',
'preview.shareMenu': 'Compartilhar ▾',
'preview.openInNewTab': 'Abrir em nova aba',
'preview.exit': '⤓ Sair',
'preview.fullscreen': '⤢ Tela cheia',
'preview.closeTitle': 'Fechar (Esc)',
'preview.loading': 'Carregando {label}…',
'preview.showSidebar': 'Mostrar {label}',
'preview.hideSidebar': 'Ocultar {label}',
'misc.savedTemplate': 'Template salvo',
'misc.primary': 'Principal',
'misc.designSystem': 'Sistema de design',
'workspace.designFiles': 'Arquivos de design',
'workspace.closeTab': 'Fechar aba',
'workspace.deleteFileConfirm': 'Excluir "{name}" da pasta do projeto?',
'workspace.openFromDesignFiles': 'Abra um arquivo em',
'workspace.designFilesLink': 'Arquivos de design',
'workspace.loadingSketch': 'Carregando esboço…',
'designFiles.title': 'Arquivos de design',
'designFiles.upload': 'Enviar arquivos',
'designFiles.pasteText': 'Colar como arquivo de texto',
'designFiles.newSketch': 'Novo esboço',
'designFiles.empty':
'Nada aqui ainda. Arraste arquivos abaixo, crie um esboço ou cole texto.',
'designFiles.refresh': 'Atualizar',
'designFiles.delete': 'Excluir',
'designFiles.searchPlaceholder': 'Buscar arquivos…',
'designFiles.up': 'Subir',
'designFiles.back': 'Voltar',
'designFiles.crumbs': 'projeto',
'designFiles.rowMenu': 'Menu da linha',
'designFiles.openInTab': 'Abrir em aba',
'designFiles.download': 'Baixar',
'designFiles.downloadSelected': 'Download {n} as ZIP',
'designFiles.clearSelection': 'Clear',
'designFiles.selectAll': 'Select all',
'designFiles.dropTitle': '⤓ Solte arquivos aqui',
'designFiles.dropDesc':
'Imagens, docs, referências ou pastas — o agente usará tudo como contexto.',
'designFiles.upload.title': 'Enviar arquivos',
'designFiles.paste.title': 'Colar texto como arquivo',
'designFiles.upload.label': 'Enviar',
'designFiles.paste.label': 'Colar',
'designFiles.previewOpen': 'Abrir',
'designFiles.previewClose': 'Fechar prévia',
'designFiles.modified': 'Modificado {time} · {size}',
'designFiles.weeksAgo': 'há {n} sem',
'designFiles.sectionPages': 'Páginas',
'designFiles.sectionScripts': 'Scripts',
'designFiles.sectionImages': 'Imagens',
'designFiles.sectionSketches': 'Esboços',
'designFiles.sectionOther': 'Outros',
'designFiles.showMore': 'Mostrar +{n} mais',
'designFiles.kindHtml': 'Página HTML',
'designFiles.kindImage': 'Imagem',
'designFiles.kindSketch': 'Esboço',
'designFiles.kindText': 'Texto',
'designFiles.kindCode': 'Script',
'designFiles.kindPdf': 'PDF',
'designFiles.kindDocument': 'Documento',
'designFiles.kindPresentation': 'Apresentação',
'designFiles.kindSpreadsheet': 'Planilha',
'designFiles.kindBinary': 'Binário',
'pasteDialog.title': 'Colar texto',
'pasteDialog.hint': 'Salvo na pasta do projeto. Escolha qualquer nome.',
'pasteDialog.fileNameLabel': 'Nome do arquivo',
'pasteDialog.namePlaceholder': 'notas.txt',
'pasteDialog.contentLabel': 'Conteúdo',
'pasteDialog.contentPlaceholder': 'Cole qualquer coisa…',
'pasteDialog.save': 'Salvar',
'pasteDialog.cancel': 'Cancelar',
'sketch.save': 'Salvar esboço',
'sketch.cancel': 'Cancelar',
'sketch.saving': 'Salvando…',
'sketch.tooltipDirty': 'Alterações não salvas',
'sketch.tooltipClean': 'Salvo',
'fileViewer.empty': 'Selecione um arquivo para visualizar.',
'fileViewer.loading': 'Carregando…',
'fileViewer.exportPptx': 'Exportar como PPTX',
'fileViewer.openInNewTab': 'Abrir em nova aba',
'fileViewer.copyPath': 'Copiar caminho',
'fileViewer.copied': 'Copiado!',
'fileViewer.share': 'Compartilhar',
'fileViewer.binaryMeta': 'Binário · {size}',
'fileViewer.binaryNote':
'Arquivo binário ({size} bytes). Baixe ou abra do disco para inspecionar.',
'fileViewer.pdfMeta': 'PDF · {size}',
'fileViewer.documentMeta': 'Documento',
'fileViewer.presentationMeta': 'Apresentação',
'fileViewer.spreadsheetMeta': 'Planilha',
'fileViewer.previewUnavailable': 'Prévia indisponível. Baixe ou abra o arquivo para inspecionar.',
'fileViewer.download': 'Baixar',
'fileViewer.open': 'Abrir',
'fileViewer.imageMeta': 'Imagem · {size}',
'fileViewer.reactMeta': 'Componente React · {size}',
'fileViewer.sketchMeta': 'Esboço · {size}',
'fileViewer.markdownStreamingMeta': 'Prévia em streaming…',
'fileViewer.markdownErrorMeta': 'A prévia pode estar incompleta (erro de geração).',
'fileViewer.markdownStreamingStatus': 'Streaming… mostrando markdown parcial.',
'fileViewer.markdownErrorStatus': 'Erro de geração. Mostrando o último conteúdo disponível.',
'fileViewer.videoMeta': 'Vídeo · {size}',
'fileViewer.audioMeta': 'Áudio · {size}',
'fileViewer.reload': 'Recarregar',
'fileViewer.reloadDisk': 'Recarregar do disco',
'fileViewer.copy': 'Copiar',
'fileViewer.copyTitle': 'Copiar conteúdo do arquivo',
'fileViewer.saveDisabled': 'Salvar (visualizador somente leitura)',
'fileViewer.save': 'Salvar',
'fileViewer.preview': 'Prévia',
'fileViewer.source': 'Código-fonte',
'fileViewer.tweaks': 'Ajustes',
'fileViewer.comment': 'Comentar',
'fileViewer.edit': 'Editar',
'fileViewer.draw': 'Desenhar',
'fileViewer.zoomOut': 'Diminuir zoom',
'fileViewer.zoomIn': 'Aumentar zoom',
'fileViewer.resetZoom': 'Redefinir zoom',
'fileViewer.reloadAria': 'Recarregar',
'fileViewer.previousSlide': 'Slide anterior',
'fileViewer.nextSlide': 'Próximo slide',
'fileViewer.slideNavAria': 'Navegação de slides',
'fileViewer.present': 'Apresentar',
'fileViewer.presentInTab': 'Nesta aba',
'fileViewer.presentFullscreen': 'Tela cheia',
'fileViewer.presentNewTab': 'Nova aba',
'fileViewer.exitPresentation': 'Sair da apresentação',
'fileViewer.shareLabel': 'Compartilhar',
'fileViewer.exportPdf': 'Exportar como PDF',
'fileViewer.exportPdfAllSlides': 'Exportar como PDF (todos os slides)',
'fileViewer.exportPptxBusy': 'Aguarde o turno atual terminar.',
'fileViewer.exportPptxHint':
'Envie uma solicitação ao agente para converter este design em PPTX.',
'fileViewer.exportPptxNa': 'Exportação PPTX não está disponível aqui.',
'fileViewer.exportZip': 'Baixar como .zip',
'fileViewer.exportHtml': 'Exportar como HTML independente',
'fileViewer.exportMd': 'Exportar como Markdown',
'fileViewer.exportJsx': 'Exportar como JSX',
'fileViewer.exportReactHtml': 'Exportar prévia como HTML',
'fileViewer.saveAsTemplate': 'Salvar como template…',
'fileViewer.savingTemplate': 'Salvando template…',
'fileViewer.savedTemplate': 'Salvo como "{name}"',
'fileViewer.savedTemplateFail': 'Não foi possível salvar o template — tente novamente.',
'fileViewer.templateNamePrompt': 'Nome do template',
'fileViewer.templateNameDefault': 'Template sem título',
'fileViewer.templateDescPrompt':
'Descrição curta (opcional — o que torna este template útil?)',
'fileViewer.deployToVercel': 'Deploy to Vercel',
'fileViewer.redeployToVercel': 'Redeploy',
'fileViewer.deployingToVercel': 'Deploying to Vercel…',
'fileViewer.preparingPublicLink': 'Preparing public link…',
'fileViewer.copyDeployLink': 'Copy link',
'fileViewer.deployModalTitle': 'Deploy to Vercel',
'fileViewer.deployModalSubtitle':
'Deploy this HTML artifact as a Vercel Preview using your own account.',
'fileViewer.vercelToken': 'Vercel token',
'fileViewer.vercelTokenGetLink': 'Get Vercel token',
'fileViewer.vercelTokenPlaceholder': 'Paste your Vercel token',
'fileViewer.vercelTokenReuseHint':
'Saved token will be used. Enter a new token to replace it.',
'fileViewer.vercelTokenRequired': 'Enter and save a Vercel token first.',
'fileViewer.vercelTeamId': 'Team ID',
'fileViewer.vercelTeamSlug': 'Team slug',
'fileViewer.optional': 'Optional',
'fileViewer.vercelPreviewOnly': 'Deploys are Preview-only for now.',
'fileViewer.savingConfig': 'Saving…',
'fileViewer.deployConfigSaveFailed': 'Could not save Vercel settings.',
'fileViewer.deployFailed': 'Deploy failed. Check Vercel settings and try again.',
'fileViewer.deployResultLabel': 'Deployed URL',
'fileViewer.deployLinkPreparingLabel': 'Public link pending',
'fileViewer.deployLinkDelayed':
'Your site is deployed. Vercel is still preparing the public link.',
'fileViewer.deployLinkProtectedLabel': 'Vercel protection enabled',
'fileViewer.deployLinkProtected':
'Your site deployed, but Vercel is requiring authentication for this preview link. Disable Deployment Protection or use a custom domain.',
'fileViewer.retryLink': 'Retry now',
'questionForm.submit': 'Enviar',
'questionForm.skip': 'Pular',
'questionForm.locked': 'Respondido',
'conv.switch': 'Trocar conversa',
'conv.label': 'Conversa',
'conv.heading': 'Conversas',
'conv.new': '+ Nova',
'conv.empty': 'Ainda não há conversas.',
'conv.untitled': 'Conversa sem título',
'conv.renameTooltip': 'Clique duas vezes para renomear',
'conv.delete': 'Excluir conversa',
'conv.deleteConfirm': 'Excluir "{title}"? Isso remove as mensagens.',
'agentPicker.label': 'Agente',
'agentPicker.modeChoose': 'Escolha o modo de execução',
'agentPicker.localCli': 'CLI local',
'agentPicker.daemonOff': 'daemon desligado',
'agentPicker.byok': 'API · BYOK',
'agentPicker.selectAgent': 'Selecione uma CLI de agente de código detectada',
'agentPicker.noAgents': 'nenhum agente no PATH',
'agentPicker.notInstalled': 'não instalado',
'agentPicker.rescan': 'Reescanear agentes no PATH local',
'tool.openInTab': 'Abrir {name} em uma aba',
'tool.open': 'abrir',
'tool.todos': 'Tarefas',
'tool.write': 'Escrever',
'tool.edit': 'Editar',
'tool.read': 'Ler',
'tool.bash': 'Bash',
'tool.glob': 'Glob',
'tool.grep': 'Grep',
'tool.fetch': 'Buscar',
'tool.search': 'Pesquisar',
'tool.lines': '{n} linhas',
'tool.changeSingular': 'alteração',
'tool.changePlural': 'alterações',
'tool.in': 'em {path}',
'tool.hide': 'ocultar',
'tool.output': 'saída',
'tool.running': 'executando…',
'tool.error': 'erro',
'tool.done': 'concluído',
'assistant.role': 'Assistente',
'assistant.workingLabel': 'Trabalhando',
'assistant.doneLabel': 'Concluído',
'assistant.unfinishedLabel': 'Interrompido com trabalho pendente',
'assistant.unfinishedSummary': '{n} tarefa(s) restante(s)',
'assistant.unfinishedMore': '+{n} mais',
'assistant.continueRemaining': 'Continuar tarefas restantes',
'assistant.outTokens': '{n} saída',
'assistant.producedFiles': 'Arquivos deste turno',
'assistant.openFile': 'Abrir',
'assistant.downloadFile': 'Baixar',
'assistant.thinking': 'Pensando',
'assistant.systemReminder': 'Lembrete do sistema',
'assistant.waitingFirstOutput': 'Aguardando primeira saída',
'assistant.statusBootingAgent': 'Iniciando agente',
'assistant.statusStarting': 'Iniciando',
'assistant.statusRequesting': 'Enviando solicitação',
'assistant.statusThinking': 'Pensando',
'assistant.statusStreaming': 'Transmitindo',
'assistant.slowHint':
'Está demorando mais que o normal. O formulário geralmente aparece em 510 s — você pode Parar e reformular.',
'assistant.verbEditing': 'Editando',
'assistant.verbWriting': 'Escrevendo',
'assistant.verbReading': 'Lendo',
'assistant.verbSearching': 'Pesquisando',
'assistant.verbRunning': 'Executando',
'assistant.verbTodos': 'Tarefas',
'assistant.verbFetching': 'Buscando',
'assistant.verbCalling': 'Chamando',
'qf.answered': 'respondido',
'qf.choose': 'Escolha…',
'qf.required': 'obrigatório',
'qf.lockedSubmitted':
'Respostas enviadas — o agente usará isso pelo resto da sessão.',
'qf.lockedPrev': 'Este formulário é de um turno anterior.',
'qf.hint':
'Escolha o que se encaixa. Pule campos opcionais se não se importar — o agente usará padrões sensatos.',
'qf.submitDefault': 'Enviar respostas',
'qf.submitDisabledTitle': 'Preencha os campos obrigatórios primeiro',
'qf.submitTitle': 'Enviar respostas',
'qf.cardSelected': 'selecionado',
'qf.cardRefs': 'Refs:',
'qf.cardSampleText': 'A rápida raposa marrom · 0123',
'sketch.toolSelect': 'Selecionar (sem ação)',
'sketch.toolPen': 'Caneta',
'sketch.toolText': 'Texto',
'sketch.toolRect': 'Retângulo',
'sketch.toolArrow': 'Seta',
'sketch.toolEraser': 'Borracha',
'sketch.color': 'Cor',
'sketch.strokeSize': 'Espessura do traço',
'sketch.undo': 'Desfazer',
'sketch.clear': 'Limpar',
'sketch.close': 'Fechar',
'sketch.textPrompt': 'Texto:',
'pet.title': 'Bichinhos',
'pet.tabBuiltIn': 'Inclusos',
'pet.tabBuiltInHint': 'Companheiros incluídos no Open Design — escolha um e adote.',
'pet.builtInEmpty': 'Os pets integrados não estão disponíveis agora. Atualize a aba Comunidade quando o daemon voltar.',
'pet.tabCustom': 'Personalizado',
'pet.tabCustomHint': 'Defina nome, glifo, cor ou envie um sprite.',
'pet.tabCommunity': 'Comunidade',
'pet.tabCommunityHint': 'Bichinhos chocados pelo Codex — adote ou gere um novo com IA.',
'pet.tabsAria': 'Fonte do bichinho',
'pet.subtitle': 'Adote um companheirinho que flutua sobre o seu workspace.',
'pet.navTitle': 'Bichinhos',
'pet.navHint': 'Adote ou personalize',
'pet.adopt': 'Adotar',
'pet.adoptedBadge': 'Adotado',
'pet.adoptCallout': 'Adote um bichinho',
'pet.changePet': 'Trocar bichinho',
'pet.wake': 'Acordar',
'pet.tuck': 'Esconder',
'pet.wakeTitle': 'Acordar o bichinho — mostrar o overlay.',
'pet.tuckTitle': 'Esconder o bichinho — ocultar o overlay.',
'pet.settingsTitle': 'Abrir configurações do bichinho',
'pet.useCustom': 'Usar meu bichinho',
'pet.customTitle': 'Crie o seu',
'pet.customHint': 'Escolha nome, símbolo e cor de destaque — o overlay atualiza ao vivo.',
'pet.customGreetingPlaceholder': 'Diga oi pelo seu bichinho…',
'pet.fieldName': 'Nome',
'pet.fieldGlyph': 'Símbolo',
'pet.fieldGlyphHint': 'Um único emoji funciona melhor (por ex. 🐝, 🦄, 🐢).',
'pet.fieldGreeting': 'Saudação',
'pet.fieldAccent': 'Cor de destaque',
'pet.fieldAccentCustom': 'Cor personalizada',
'pet.overlayAria': 'Companheiro',
'pet.spriteAria': '{name} — arraste para mover, clique para conversar',
'pet.spriteTitle': 'Olá de {name}! Clique para conversar.',
'pet.railAria': 'Seletor de bichinho',
'pet.railTitle': 'Bichinhos',
'pet.railHint': 'Escolha um companheiro para flutuar pelo seu workspace.',
'pet.railExpand': 'Mostrar seletor',
'pet.railCollapse': 'Recolher seletor',
'pet.railHide': 'Esconder seletor de pets',
'pet.railShow': 'Mostrar seletor de pets',
'pet.railCustomFlavor': 'O seu — nome, símbolo e cor.',
'pet.railCustomize': 'Personalizar…',
'pet.composerTitle': 'Bichinhos — acordar, esconder ou escolher',
'pet.composerMenuTitle': 'Bichinhos',
'pet.composerMenuHint': 'dica: digite /pet para alternar',
'pet.composerOpenSettings': 'Personalizar nas configurações',
'pet.welcomeTeaserTitle': 'Adote um bichinho',
'pet.welcomeTeaserBody': 'Um companheirinho que flutua pelo workspace.',
'pet.welcomeTeaserCta': 'Escolher',
'pet.imageUpload': 'Enviar sprite',
'pet.imageReplace': 'Substituir sprite',
'pet.imageRemove': 'Usar emoji',
'pet.imageHintIdle': 'PNG, JPG, WebP, GIF ou SVG. Spritesheet? Envie uma faixa horizontal e ajuste o número de frames.',
'pet.imageHintActive': 'Mostrando seu sprite. Defina frames > 1 para animar um spritesheet horizontal.',
'pet.fieldFrames': 'Frames',
'pet.fieldFramesHint': '1 = estático. > 1 = spritesheet horizontal.',
'pet.fieldFps': 'Velocidade (fps)',
'pet.fieldFpsHint': 'Velocidade da animação dos frames.',
'pet.atlasImport': 'Importar sprite do Codex',
'pet.atlasImportTitle': 'Importe um atlas hatch-pet 8x9 / 192x208 (PNG ou WebP).',
'pet.atlasPickerTitle': 'Escolha uma linha de animação',
'pet.atlasPickerHint': 'Os pets do Codex trazem 9 linhas de animação. Por padrão mantemos o atlas inteiro para que o pet troque de linha ao passar o mouse, conforme a direção do arrasto e após longa ociosidade. Você também pode fixar uma única linha.',
'pet.atlasCancel': 'Descartar atlas',
'pet.atlasAdopt': 'Fixar nesta linha',
'pet.atlasAdoptFull': 'Usar atlas inteiro (animado)',
'pet.atlasAdoptFullTitle': 'Mantém todas as linhas para o pet reagir a hover, direção do arrasto e ociosidade longa.',
'pet.atlasAdoptRowTitle': 'Corta apenas a linha destacada em uma tira de loop único.',
'pet.atlasActiveHint': 'Atlas animado ativo — o pet escolhe a linha com base na sua interação (hover, arrasto, ociosidade).',
'pet.atlasRow.idle': 'Parado',
'pet.atlasRow.running-right': 'Corre à direita',
'pet.atlasRow.running-left': 'Corre à esquerda',
'pet.atlasRow.waving': 'Acenando',
'pet.atlasRow.jumping': 'Pulando',
'pet.atlasRow.failed': 'Falhou',
'pet.atlasRow.waiting': 'Esperando',
'pet.atlasRow.running': 'Correndo',
'pet.atlasRow.review': 'Revisão',
'pet.hatchTitle': 'Choque um novo pet com IA',
'pet.hatchHint': 'Use a skill hatch-pet incluída no chat para gerar um spritesheet estilo Codex e depois importe-o aqui.',
'pet.hatchConcept': 'Conceito do pet (opcional)',
'pet.hatchConceptPlaceholder': 'ex.: um shiba pixel art com um suéter aconchegante',
'pet.hatchCopy': 'Copiar prompt',
'pet.hatchCopied': 'Copiado!',
'pet.hatchFoot': 'Quando a skill salvar seu pet, volte aqui e clique em "Importar sprite do Codex".',
'pet.slashPopoverAria': 'Comandos slash',
'pet.slashPopoverTitle': 'Comandos',
'pet.slashPopoverHint': '↑↓ navegar · enter escolher · esc fechar',
'pet.slashPet': 'Alternar, adotar ou abrir as configurações do pet.',
'pet.slashPetWake': 'Acordar o pet flutuante.',
'pet.slashPetTuck': 'Guardar o pet por agora.',
'pet.slashHatch': 'Gere um pet Codex com a skill hatch-pet.',
'pet.slashHatchArg': '<conceito>',
'pet.codexTitle': 'Recém-chocados',
'pet.codexSubtitle': 'Pets empacotados pela skill hatch-pet aparecem aqui para adoção em um clique.',
'pet.codexSubtitleWithDir': 'Verificando {dir} em busca de pacotes do hatch-pet.',
'pet.codexEmpty': 'Ainda sem pets chocados. Digite /hatch no chat para gerar um.',
'pet.codexLoading': 'Procurando pets chocados…',
'pet.codexRefresh': 'Atualizar',
'pet.codexAdopt': 'Adotar',
'pet.codexAdopting': 'Adotando…',
'pet.communitySync': 'Baixar pets da comunidade',
'pet.communitySyncing': 'Baixando…',
'pet.communitySyncTitle': 'Sincronizar os pets mais recentes do Codex Pet Share + j20 Hatchery em ~/.codex/pets/.',
'pet.communitySyncDone': '{wrote} pets novos sincronizados ({total} no total).',
'pet.communitySyncFailed': 'Falha na sincronização: {error}',
'pet.codexBundled': 'Incluído',
'pet.codexBundledTitle': 'Já vem com o Open Design — sem download.',
'settings.notifications': 'Notificações',
'settings.notificationsHint': 'Som e notificação na conclusão da tarefa',
'settings.notifyCompletionSound': 'Som de conclusão',
'settings.notifyCompletionSoundHint': 'Toca ao terminar uma rodada. Desativado por padrão.',
'settings.notifySuccessSound': 'Som de sucesso',
'settings.notifyFailureSound': 'Som de falha',
'settings.notifyDesktop': 'Notificação na área de trabalho',
'settings.notifyDesktopHint': 'Enviada quando a janela não está em foco.',
'settings.notifyDesktopBlocked': 'Bloqueadas pelo navegador. Habilite nas configurações do site.',
'settings.notifyDesktopUnsupported': 'Notificações na área de trabalho indisponíveis neste ambiente.',
'settings.notifyTest': 'Enviar teste',
'settings.notifyTestSent': 'Notificação de teste enviada. Se nenhum banner aparecer, verifique as notificações do navegador e do sistema.',
'settings.notifyTestFailed': 'Falha ao chamar a notificação. Verifique as notificações do navegador e do sistema.',
'settings.notifySoundDing': 'Tilim',
'settings.notifySoundChime': 'Carrilhão',
'settings.notifySoundTwoToneUp': 'Dois tons crescente',
'settings.notifySoundPluck': 'Dedilhado',
'settings.notifySoundBuzz': 'Zumbido',
'settings.notifySoundTwoToneDown': 'Dois tons descendente',
'settings.notifySoundThud': 'Baque',
'notify.successTitle': 'Tarefa concluída',
'notify.failureTitle': 'Tarefa falhou',
'notify.successBody': 'Uma rodada foi concluída.',
'notify.failureBody': 'A tarefa terminou com erro.',
};