velxio/frontend/src/i18n/locales/pt-br/common2.json

468 lines
21 KiB
JSON

{
"editor": {
"toolbar": {
"languageMode": "Modo de linguagem",
"compile": {
"addBoard": "Adicionar uma placa para compilar",
"loading": "Carregando…",
"loadMicropython": "Carregar MicroPython",
"compile": "Compilar (Ctrl+B)"
},
"run": {
"addBoard": "Adicionar uma placa para executar",
"runMicropython": "Executar MicroPython",
"run": "Executar (compila automaticamente se necessário)"
},
"stop": "Parar",
"reset": "Resetar",
"compileAll": "Compilar todas as placas",
"runAll": "Executar todas as placas",
"libraries": {
"title": "Pesquisar e instalar bibliotecas Arduino",
"label": "Bibliotecas"
},
"import": "Importar projeto (.vlx Velxio ou .zip Wokwi)",
"export": "Exportar o projeto atual como um arquivo .zip",
"uploadFirmware": "Carregar firmware (.hex, .bin, .elf, .ihex) para bypassar compilação",
"toggleConsole": "Alternar Console de Saída",
"libHint": {
"message": "Faltando biblioteca? Instale-a pelo",
"cta": "Gerenciador de Bibliotecas",
"dismiss": "Dispensar"
},
"exportBom": "Exportar Lista de Materiais (CSV — Pro)",
"exportScreenshot": "Exportar esquemático como imagem (PNG — Pro)",
"importLabel": "Importar projeto",
"exportLabel": "Exportar projeto (.zip)",
"exportBomLabel": "Lista de materiais (CSV)",
"exportScreenshotLabel": "Imagem do esquema (PNG)",
"shareLabel": "Compartilhar / Incorporar",
"githubSyncLabel": "Sincronizar com o GitHub",
"uploadFirmwareLabel": "Enviar firmware",
"recordLabel": "Gravar simulação"
},
"fileExplorer": {
"workspace": "WORKSPACE",
"newWorkspace": "Novo workspace (limpa placas, componentes, fios e arquivos)",
"confirmNew": {
"title": "Iniciar um novo workspace?",
"message": "Isso limpa todas as placas, componentes, fios e arquivos. Não pode ser desfeito.",
"confirm": "Começar novo",
"cancel": "Cancelar"
},
"confirmLoad": {
"title": "Carregar projeto?",
"message": "Carregar este projeto {{type}}? Seu workspace atual será substituído. Não pode ser desfeito.",
"confirm": "Carregar"
},
"saveProject": "Salvar projeto (Ctrl+S)",
"clickToEdit": "clique para editar",
"collapse": "Recolher",
"expand": "Expandir",
"newFileInBoard": "Novo arquivo nesta placa",
"unsavedChanges": "Alterações não salvas",
"unsavedSuffix": "não salvo",
"emptyState": "Adicione uma placa à tela para começar a editar código.",
"confirmDelete": "Excluir este arquivo?",
"status": {
"running": "Executando",
"compiled": "Compilado",
"idle": "Ocioso"
},
"contextMenu": {
"rename": "Renomear",
"delete": "Excluir"
}
},
"fileTabs": {
"unsavedChanges": "Alterações não salvas",
"close": "Fechar",
"confirmClose": "Fechar arquivo com alterações não salvas?",
"closeAnyway": "Fechar mesmo assim",
"cancel": "Cancelar"
},
"loginPrompt": {
"title": "Faça login para salvar seu projeto",
"body": "Crie uma conta gratuita para salvar e compartilhar seus projetos.",
"createAccount": "Criar conta",
"cancel": "Cancelar"
},
"saveProject": {
"titleSave": "Salvar projeto",
"titleUpdate": "Atualizar projeto",
"nameLabel": "Nome do projeto *",
"namePlaceholder": "Meu projeto incrível",
"descriptionLabel": "Descrição",
"descriptionPlaceholder": "Opcional",
"save": "Salvar",
"update": "Atualizar",
"saving": "Salvando…",
"cancel": "Cancelar",
"visibility": {
"public": "Público",
"publicHint": "Qualquer pessoa com o link pode ver",
"private": "Privado",
"privateHint": "Só você pode ver isso"
},
"errors": {
"nameRequired": "Nome do projeto é obrigatório.",
"unreachable": "Servidor inacessível. Verifique sua conexão e tente novamente.",
"notAuth": "Não autenticado. Faça login e tente novamente.",
"failedStatus": "Falha ao salvar ({{status}})."
}
},
"share": {
"title": "Compartilhar projeto",
"public": "Público",
"private": "Privado",
"publicHint": "Qualquer pessoa com o link pode ver este projeto",
"privateHint": "Só você pode ver este projeto",
"makePrivate": "Tornar privado",
"makePublic": "Tornar público",
"copy": "Copiar",
"privateWarning": "Este projeto é privado. Outros verão um erro 403 ao abrir este link.",
"close": "Fechar"
},
"canvas": {
"status": {
"running": "Executando",
"stopped": "Parado"
},
"activeBoard": "Placa ativa",
"noBoard": "Nenhuma placa",
"noBoardHint": "Nenhuma placa na tela — adicione uma com o botão Adicionar para compilar e executar código",
"undo": {
"label": "Desfazer",
"title": "Desfazer: {{description}} (Ctrl+Z)",
"empty": "Nada para desfazer"
},
"redo": {
"label": "Refazer",
"title": "Refazer: {{description}} (Ctrl+Y)",
"empty": "Nada para refazer"
},
"toggleSerialMonitor": "Alternar Monitor Serial",
"serial": "Serial",
"toggleScope": "Alternar Osciloscópio / Analisador Lógico",
"scope": "Escopo",
"zoomIn": "Aumentar zoom",
"zoomOut": "Diminuir zoom",
"resetView": "Redefinir visualização (clique para redefinir)",
"componentCount_one": "{{count}} componente",
"componentCount_other": "{{count}} componentes",
"addComponentTitle": "Adicionar Componente",
"add": "Adicionar",
"dismiss": "Dispensar",
"removeBoard": "Remover placa",
"wireCount_one": "{{count}} fio",
"wireCount_other": "{{count}} fios",
"removeConfirm": {
"boardFallback": "Placa",
"title": "Remover {{label}}?",
"body": "Isso removerá a placa do workspace. Esta ação não pode ser desfeita.",
"bodyWithWires_one": "Isso removerá a placa do workspace e {{count}} fio conectado. Esta ação não pode ser desfeita.",
"bodyWithWires_other": "Isso removerá a placa do workspace e {{count}} fios conectados. Esta ação não pode ser desfeita.",
"cancel": "Cancelar",
"remove": "Remover"
}
},
"componentPicker": {
"title": "Adicionar Componente",
"close": "Fechar",
"searchPlaceholder": "Pesquisar componentes...",
"clearSearch": "Limpar pesquisa",
"allComponents": "Todos os Componentes",
"boards": "Placas",
"loading": "Carregando componentes...",
"noResults": "Nenhum componente encontrado",
"clearFilters": "Limpar filtros"
},
"libraryManager": {
"title": "GERENCIADOR DE BIBLIOTECAS",
"searchTab": "Pesquisar",
"installedTab": "Instaladas",
"filterPlaceholder": "Filtrar sua pesquisa...",
"searchingFor": "Pesquisando \"{{query}}\"…",
"loadingLibraries": "Carregando bibliotecas…",
"noResults": "Nenhuma biblioteca disponível",
"noResultsFor": "Nenhuma biblioteca encontrada para \"{{query}}\"",
"byAuthor": "por {{author}}",
"install": "INSTALAR",
"installing": "Instalando...",
"uninstall": "DESINSTALAR",
"uninstalling": "Desinstalando...",
"loadingInstalled": "Carregando bibliotecas instaladas...",
"noneInstalled": "Nenhuma biblioteca instalada ainda.",
"useSearchTab": "Use a aba Pesquisar para instalar bibliotecas."
},
"installLibs": {
"title": "BIBLIOTECAS NECESSÁRIAS",
"installingProgress": "Instalando {{done}} de {{total}}…",
"allDone": "Todas as bibliotecas instaladas com sucesso",
"required_one": "Este projeto requer {{count}} biblioteca. Instale-a para compilar corretamente.",
"required_other": "Este projeto requer {{count}} bibliotecas. Instale-as para compilar corretamente.",
"wokwiHosted": "Biblioteca hospedada pelo Wokwi",
"pending": "pendente",
"installing": "instalando…",
"installed": "instalada",
"errorStatus": "erro",
"close": "Fechar",
"skip": "Pular",
"installAll": "Instalar Todas ({{count}})",
"installingShort": "Instalando…"
},
"shell": {
"code": "Código",
"both": "Ambos",
"circuit": "Circuito",
"showExplorer": "Mostrar explorador de arquivos",
"hideExplorer": "Ocultar explorador de arquivos",
"viewMode": "Modo de visualização",
"dragResize": "Arraste para redimensionar"
},
"oscilloscope": {
"title": "Osciloscópio",
"addChannelTitle": "Adicionar um canal de pino",
"addChannel": "Adicionar Canal",
"timeDiv": "Tempo/div:",
"pauseTitle": "Pausar captura",
"resumeTitle": "Retomar captura",
"pause": "Pausar",
"run": "Executar",
"clearTitle": "Limpar todas as amostras capturadas",
"clear": "Limpar",
"noChannels": "Nenhum canal adicionado.",
"noChannelsHint": "Clique em \"+ Adicionar Canal\" para monitorar um pino.",
"removeChannel": "Remover {{label}}"
},
"componentProps": {
"close": "Fechar",
"tapToConnect": "Toque em um pino para conectar:",
"tapToWire": "Toque em um pino para conectar fio:",
"pinRoles": "Funções do Pino:",
"arduinoPin": "Pino Arduino:",
"confirmDelete": "Excluir {{name}}?",
"confirmDeleteTitle": "Confirmar exclusão",
"deleteTitle": "Excluir componente",
"rotate90": "Girar 90°",
"rotate": "Girar",
"delete": "Excluir",
"cancel": "Cancelar",
"keyboardKey": "Tecla do teclado",
"assignKey": "Atribuir tecla",
"pressAKey": "Pressione uma tecla…",
"clearKey": "Remover tecla",
"keyInUse": "Também atribuída a outro botão — os dois serão pressionados juntos."
},
"selectionBar": {
"label": "Ações de seleção",
"rotate90": "Girar 90°",
"rotate": "Girar",
"delete": "Excluir",
"deselect": "Desselecionar",
"changeColor": "Alterar cor",
"deleteKind": {
"wire": "Excluir fio",
"component": "Excluir componente",
"board": "Excluir placa"
}
},
"console": {
"title": "Saída",
"errorCount_one": "{{count}} erro",
"errorCount_other": "{{count}} erros",
"warningCount_one": "{{count}} aviso",
"warningCount_other": "{{count}} avisos",
"filterAll": "Todos",
"filterErrors": "Erros",
"filterWarnings": "Avisos",
"auto": "Auto",
"clear": "Limpar saída",
"close": "Fechar",
"empty": "Nenhuma saída de compilação ainda. Clique em Compilar para começar."
},
"boardPicker": {
"title": "Adicionar Placa"
},
"pinPicker": {
"close": "Fechar",
"filterPins": "Filtrar pinos…",
"noMatch": "Nenhum pino corresponde.",
"rotate": "Girar",
"delete": "Excluir"
},
"boardOptions": {
"confirmOverwrite": {
"title": "Substituir arquivo?",
"message": "Já existe um arquivo chamado \"{{name}}\". Substituir?",
"confirm": "Substituir",
"cancel": "Ignorar"
}
},
"pi": {
"connected": "Conectado",
"starting": "Iniciando…",
"bootingTitle": "Iniciando {{board}}…",
"bootingNote": "Iniciando o Linux — pode levar até um minuto na primeira vez.",
"offline": "Offline",
"powerOnTitle": "Ligar o Raspberry Pi",
"startPi": "Iniciar Pi",
"connectTitle": "Conectar terminal ao Pi",
"connect": "Conectar",
"disconnectTitle": "Desconectar terminal",
"disconnect": "Desconectar",
"terminal": "Terminal",
"close": "Fechar",
"offlineTitle": "{{board}} está desligado",
"offlineSubtitle": "Inicie o Pi para abrir um terminal e interagir com o sistema Linux.",
"offlineNote1": "Nota: O explorador de arquivos mostra uma área de preparação.",
"offlineNote2": "\"Enviar para o Pi\" transfere esses arquivos para o sistema em execução e inicia o Pi automaticamente se necessário.",
"loadingTerminal": "Carregando terminal…",
"confirmDelete": {
"title": "Excluir",
"message": "Excluir \"{{name}}\"?",
"confirm": "Excluir",
"cancel": "Cancelar"
},
"selectFile": "Selecione um arquivo no explorador para editá-lo."
},
"sensorPanel": {
"close": "Fechar"
},
"customChip": {
"title": "Chip Personalizado — {{chipName}}",
"tabExamples": "Exemplos",
"tabEditor": "Editor",
"attributes": "Atributos",
"compiling": "Compilando…",
"compile": "Compilar",
"compiledOk": "✓ Compilado — {{kb}} KB",
"compileFailed": "Falha na compilação",
"cancel": "Cancelar",
"savePlace": "Salvar & Posicionar",
"compileFirst": "Compile primeiro"
},
"serial": {
"title": "Monitor Serial",
"addBoard": "Adicione uma placa para iniciar o monitor serial.",
"autoscroll": "Rolagem automática",
"clearTitle": "Limpar saída para esta placa",
"clear": "Limpar",
"send": "Enviar",
"iotGatewayTitle": "Clique para abrir via IoT Gateway",
"openIotGateway": "Abrir IoT Gateway",
"waitingData": "Aguardando dados seriais...",
"startSim": "Inicie a simulação para ver a saída serial.",
"placeholderText": "Digite a mensagem para enviar...",
"placeholderPython": "Digite expressão Python... (Ctrl+C para interromper)",
"lineEnd": {
"none": "Sem final de linha",
"nl": "Nova linha",
"cr": "Retorno de carro",
"both": "Ambos NL e CR"
}
},
"menu": {
"file": "Arquivo",
"edit": "Editar",
"view": "Exibir",
"language": "Idioma",
"help": "Ajuda",
"newProject": "Novo espaço de trabalho",
"newFile": "Novo arquivo",
"open": "Abrir projeto…",
"save": "Salvar projeto",
"undo": "Desfazer",
"redo": "Refazer",
"centerView": "Centralizar visão do canvas",
"toggleExplorer": "Explorador de arquivos",
"toggleConsole": "Console de saída",
"toggleScope": "Osciloscópio / Analisador lógico",
"home": "Página inicial do Velxio",
"about": "Sobre o Velxio",
"discord": "Comunidade no Discord",
"github": "Repositório no GitHub",
"compile": "Compilar",
"run": "Executar",
"hideExplorer": "Ocultar explorador de arquivos",
"showExplorer": "Mostrar explorador de arquivos"
}
},
"about": {
"hero": {
"title": "Sobre o Velxio",
"subtitle": "Um emulador de sistemas embarcados gratuito e de código aberto — construído por um único desenvolvedor apaixonado por hardware e código aberto."
},
"story": {
"heading": "A História",
"p1": "O Velxio começou como uma exploração pessoal de como os emuladores de microcontroladores funcionam internamente — instruções de CPU, gerenciamento de memória, temporização de periféricos e arquitetura de baixo nível. O que começou como um projeto de aprendizado durante as férias rapidamente se tornou algo maior.",
"p2": "A ideia era simples: <strong>e se qualquer pessoa pudesse simular placas Arduino, ESP32 e Raspberry Pi diretamente no navegador, sem comprar hardware, sem instalar toolchains, sem contas na nuvem?</strong>",
"p3": "O Velxio v1 foi lançado no Product Hunt e Hacker News, suportando Arduino Uno e Raspberry Pi Pico. O feedback da comunidade maker e embarcada foi incrível — e impulsionou o projeto para frente.",
"p4": "<strong>Velxio 2.0</strong> trouxe emulação ESP32 via QEMU (usando o fork lcgamboa), um Raspberry Pi 3 rodando Linux real, suporte a MicroPython no Pico/ESP32, chips WASM personalizados e uma tela redesenhada com co-simulação de múltiplas placas.",
"p5": "O lançamento v2 chegou à <strong>primeira página do Hacker News por mais de 20 horas</strong>, alcançando quase 600 estrelas no GitHub e milhares de visitantes em menos de 24 horas. Agora está sendo usado por estudantes, professores e makers ao redor do mundo."
},
"howItWorks": {
"heading": "Como Funciona",
"avrRp2040Body": "Emulação precisa de ciclo roda inteiramente no seu navegador usando avr8js e rp2040js. Nenhum backend necessário para simulação.",
"esp32Body": "Xtensa ESP32 e ESP32-S3 rodam no backend QEMU (fork lcgamboa) com imagens flash reais, GPIO, ADC e temporizadores.",
"riscvBody": "ESP32-C3 (DevKit, XIAO, SuperMini) e CH32V003 são emulados através do fork lcgamboa do QEMU com libqemu-riscv32, o mesmo padrão de backend do Xtensa ESP32.",
"raspiBody": "ARM Cortex-A53 Linux completo via QEMU raspi3b — inicializa o Raspberry Pi OS real e roda Python com RPi.GPIO."
},
"openSource": {
"heading": "Filosofia de Código Aberto",
"lead": "O Velxio é <strong>100% código aberto</strong> sob a licença AGPLv3. Sem dependência de nuvem, sem contas de estudante, sem dados saindo da sua rede. Universidades e bootcamps podem implantá-lo em seus próprios servidores com um único comando Docker e dar a cada estudante acesso a um ambiente completo de desenvolvimento embarcado — de graça.",
"creditsIntro": "O projeto se baseia em trabalhos incríveis de código aberto da comunidade:",
"credits": {
"avr8js": "Emulação de CPU AVR8 por Wokwi",
"rp2040js": "Emulação RP2040 por Wokwi",
"wokwiElements": "Mais de 48 componentes eletrônicos visuais por Wokwi",
"qemuLcgamboa": "Emulação QEMU para ESP32 e Raspberry Pi",
"arduinoCli": "Toolchain de compilação Arduino"
},
"inspiredBy": "O Velxio foi inspirado pelo <a>Wokwi</a>, que é uma ferramenta fantástica. O objetivo do Velxio é seguir um caminho diferente: totalmente código aberto, auto-hospedável e suportando múltiplas placas heterogêneas no mesmo circuito."
},
"creator": {
"heading": "O Criador",
"role": "Arquiteto de Aplicações @ IBM · Montevidéu, Uruguai",
"bio1": "Arquiteto de Aplicações com mais de 10 anos de experiência liderando o desenvolvimento de ecossistemas empresariais de grande escala. Especialista em IA Generativa (LLMs, RAG, LangChain), arquiteturas Cloud-Native (OpenShift, Kubernetes) e especialista certificado em Odoo ERP. Atualmente na IBM trabalhando em aplicações empresariais para o Banco de Seguros do Estado (BSE) do Uruguai.",
"bio2": "Estudou Engenharia da Computação na Universidad de Oriente em Cuba (2012-2017), depois mudou-se para o Uruguai onde construiu uma carreira em cargos na Quanam (implementações Odoo para instituições governamentais) e IBM (arquitetura empresarial para BPS e BSE).",
"bio3": "Entusiasta de programação e robótica. Criador de outros projetos de código aberto, incluindo um <a>jogo de corrida 3D rodando em um ESP32</a> (viral no Reddit com mais de 40K visualizações) e um clone do iPod Classic para Raspberry Pi.",
"techStack": "Stack Tecnológico"
},
"releases": {
"heading": "Lançamentos recentes",
"latest": "Mais recente",
"v3Tagline": "CPUs retrô, sistemas multi-placa, precisão total de circuito",
"v3Blurb": "CPUs retrô programáveis Z80/8080/4004 com ROM personalizada, emulação de MicroSD e ePaper, interconexão verdadeira multi-placa UART/I2C/SPI, ESP32-CAM, desfazer/refazer completo, migração completa do ngspice WASM, bundle 88% menor e mais de 100 novos exemplos.",
"v25Tagline": "Arduino encontra SPICE no seu navegador",
"v25Blurb": "Simulação de circuitos analógicos em tempo real via ngspice-WASM, conectada a Arduino, ESP32 e Raspberry Pi Pico. Mais de 100 componentes precisos em SPICE, amperímetros e voltímetros ao vivo, 40 novos exemplos analógicos/híbridos — co-simulados com seu firmware.",
"v2Tagline": "Tela multi-placa, ESP32, Raspberry Pi 3",
"v2Blurb": "Emulação completa ESP32 via QEMU com WiFi/BLE, Raspberry Pi 3B Linux, suporte a MicroPython no Pico/ESP32, chips WASM personalizados e uma tela redesenhada com co-simulação multi-placa.",
"readNotes": "Leia as notas de lançamento →"
},
"quote": {
"p1": "\"Estudei Ciência da Computação em Cuba de 2012 a 2017, e quando me mudei para o Uruguai, a pergunta mais comum era: <em>'Como você se formou engenheiro sem internet, sem computador, sem YouTube?'</em>",
"p2": "Eu só tinha 4 palavras para a resposta: <strong>Perseverança! Perseverança! Perseverança! Perseverança!</strong>",
"p3": "Não há motivação melhor do que não ter um plano B.\""
},
"community": {
"heading": "Comunidade e Imprensa",
"stats": {
"githubStars": "Estrelas no GitHub",
"countries": "Países",
"supportedBoards": "Placas Suportadas",
"cpuArchitectures": "Arquiteturas de CPU"
},
"featuredOn": "Destaque em:",
"press": {
"hackerNews": "Hacker News (Primeira Página)"
}
},
"cta": {
"title": "Pronto para experimentar o Velxio?",
"subtitle": "Sem necessidade de cadastro. Roda 100% no seu navegador. Gratuito e de código aberto.",
"openEditor": "Abrir Editor"
}
}
}