Files
open-design/apps/web/src/i18n/locales/pt-BR.ts
Zakaria a46764fb1b
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
first-commit
2026-05-04 14:58:14 -04:00

830 lines
41 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.',
};