diff --git a/translations/pt-BR/translation.json b/translations/pt-BR/translation.json new file mode 100644 index 0000000..335fd45 --- /dev/null +++ b/translations/pt-BR/translation.json @@ -0,0 +1,344 @@ +{ + "main": { + "checkForUpdates": "Verificar Atualizações…", + "restartToUpdate": "Reiniciar para Atualizar", + "documentation": "Documentação", + "reportIssue": "Reportar Problema", + "copyDebugLog": "Copiar Log de Depuração para Área de Transferência", + "file": "Arquivo", + "edit": "Editar", + "undo": "Desfazer", + "redo": "Refazer", + "cut": "Recortar", + "copy": "Copiar", + "paste": "Colar", + "delete": "Excluir", + "selectAll": "Selecionar Tudo", + "inspect": "Inspecionar", + "find": "Localizar", + "replace": "Substituir", + "toggleLineComment": "Alternar Comentário de Linha", + "toggleBlockComment": "Alternar Comentário de Bloco", + "toggleMagicComment": "Alternar Comentário Mágico", + "action": "Ação", + "setWorkingDirectory": "Definir Diretório de Trabalho…", + "formatCode": "Formatar Código", + "tools": "Ferramentas", + "manageNpmPackages": "Pacotes NPM…", + "manageEnvironmentVariables": "Variáveis de Ambiente…", + "manageSnippets": "Snippets…", + "insertSnippet": "Inserir Snippet", + "insertSnippetNewTab": "Inserir Snippet em Nova Aba", + "importSnippets": "Importar Snippets…", + "exportSnippets": "Exportar Snippets…", + "confirm": "Confirmar", + "confirmDeleteSnippet": "Tem certeza de que deseja excluir este snippet?", + "errorExporting": "Falha ao exportar snippets.", + "errorImporting": "Falha ao importar snippets.", + "errorImportingFormat": "Formato de snippet inválido.", + "view": "Exibir", + "actualSize": "Tamanho Real", + "increaseFontSize": "Aumentar Tamanho da Fonte", + "decreaseFontSize": "Diminuir Tamanho da Fonte", + "toggleFullScreen": "Tela Cheia", + "toggleOutput": "Saída (Output)", + "toggleSideBar": "Barra Lateral", + "toggleActivityBar": "Barra de Atividades", + "layout": "Layout", + "horizontal": "Horizontal", + "vertical": "Vertical", + "themes": "Temas", + "window": "Janela", + "editTabTitle": "Editar Título da Aba…", + "tabTitle": "Título da Aba", + "minimize": "Minimizar", + "bringAllToFront": "Trazer Tudo para Frente", + "aboutRunJs": "Sobre o RunJS", + "preferences": "Configurações…", + "services": "Serviços", + "hideRunJs": "Ocultar RunJS", + "hideOthers": "Ocultar Outros", + "showAll": "Mostrar Tudo", + "activate": "Ativar…", + "manageLicense": "Gerenciar Licença…", + "quitRunJs": "Encerrar RunJS", + "help": "Ajuda", + "exit": "Sair", + "clear": "Limpar", + "open": "Abrir…", + "save": "Salvar", + "saveAs": "Salvar Como…", + "loadError": "Erro de Carregamento", + "errorLoadingFile": "Ocorreu um erro ao carregar o arquivo.", + "errorFileTooLarge": "Este arquivo é grande demais para ser aberto com o RunJS.", + "saveErrorTitle": "Erro ao Salvar", + "saveErrorContent": "Ocorreu um erro ao salvar o arquivo", + "pasteErrorTitle": "Erro ao Colar", + "pasteErrorContent": "Os dados são grandes demais para o RunJS processar.", + "closeTab": "Fechar Aba", + "closeOtherTabs": "Fechar Outras Abas", + "closeTabsRight": "Fechar Abas à Direita", + "errorInvalidLicense": "Erro: Falha na ativação devido a uma chave de licença inválida.", + "errorLicenseNotFound": "Erro: Falha ao encontrar informações da licença. Por favor, tente novamente mais tarde.", + "errorTwoMachinesActive": "Erro: O limite de ativação foi atingido. Você pode desativar dispositivos online em runjs.app/license-manager", + "errorDeactivationFailed": "Erro: Falha na desativação. Por favor, entre em contato com mail@runjs.app para assistência.", + "errorConnectionProblem": "Erro: Ocorreu um problema ao conectar ao servidor.", + "errorFirewall": "Erro: A requisição foi bloqueada. Por favor, adicione license.haaslabs.app à lista de permissões.", + "errorOccured": "Ocorreu um erro: {{message}}", + "noUpdates": "Sem Atualizações", + "currentUpToDate": "A versão atual está atualizada.", + "foundUpdates": "Atualizações Encontradas", + "updateNow": "Atualizações encontradas, deseja atualizar agora?", + "newVersionAvailable": "Uma nova versão do RunJS está disponível.", + "downloadFrom": "O RunJS pode ser baixado do site oficial ou você pode usar seu gerenciador de pacotes preferido.", + "download": "Download", + "yes": "Sim", + "no": "Não", + "installUpdates": "Instalar Atualizações", + "updatesDownloaded": "Atualizações baixadas, o aplicativo será encerrado para a atualização...", + "error": "Erro", + "version": "Versão {{number}}", + "copyright": "Criado por Luke Haas\nCopyright © 2025 Haas Labs Ltd", + "kill": "Encerrar Processo", + "confirmCloseTab": "Tem certeza de que deseja fechar esta aba?", + "createSnippet": "Criar Snippet…", + "publishGist": "Publicar no Gist…", + "saveChanges": "Deseja salvar suas alterações?", + "lostChanges": "Suas alterações serão perdidas se você não as salvar.", + "noSave": "Não Salvar", + "downgrade": "Versão Anterior", + "downloadVersion": "Baixar Versão {{name}}", + "afterUpdatePeriod": "Esta versão do RunJS foi lançada após o término do seu período de atualização.", + "renewOrDowngrade": "Por favor, renove sua licença ou retorne para a versão {{name}}.", + "updateReady": "Uma nova atualização está pronta para instalar", + "updateReadyDetail": "A versão {version} do RunJS foi baixada e está pronta para ser instalada", + "thankForUsing": "Obrigado por usar o RunJS", + "considerPurchasing": "Se você acha o RunJS útil, considere apoiar seu desenvolvimento contínuo adquirindo uma licença.", + "maybeLater": "Talvez Mais Tarde", + "export": "Exportar", + "exportMenuItem": "Exportar…", + "killTab": "Encerrar aba", + "wait": "Aguardar", + "tabUnresponsive": "Aba não está respondendo", + "curentTabUnresponsive": "A aba atual parou de responder.", + "welcome": "/*👋 Bem-vindo ao RunJS 🚀\n*\n* Para começar, tente escrever algum código\n*\n* Para cada expressão que você escrever, verá o resultado à direita 👉\n*/\n'Olá, Mundo! 🌎';\n\nMath.pow(5, 5);\n\nawait Promise.resolve('Await de nível superior 🤩');\n\n[1, 2, 3, 4].map(num => num * 2);\n\n// Expressões são registradas sem precisar de console.log() 🤯\n\n/*\n* Ative o RunJS para remover limites e acessar mais recursos, incluindo:\n* - instalação de pacotes NPM\n* - abertura de múltiplas abas\n* - criação de snippets\n* - uso de Comentários Mágicos // ?\n* - e apoio ao desenvolvimento contínuo do RunJS\n*\n* Boa codificação! 🎉\n*/" + }, + "common": { + "run": "Executar", + "stop": "Parar", + "whatsNew": "O que há de novo", + "newTab": "Nova Aba", + "reopenTab": "Reabrir Aba Fechada", + "close": "Fechar", + "ok": "OK", + "cancel": "Cancelar", + "buyLicense": "Comprar Licença", + "activate": "Ativar", + "premiumFeatureList": "Lista de Recursos Premium", + "preferences": "Configurações", + "webView": "Visualização Web", + "editors": "Editores", + "editorBar": "Barra do Editor", + "renew": "Renovar Licença", + "remindMe": "Lembrar-me Mais Tarde", + "aiChat": "Chat de IA", + "explainOutput": "Explicar Saída", + "explainThis": "Explicar Isto", + "snippets": "Snippets", + "npmPackages": "Pacotes NPM", + "newChat": "Novo Chat", + "aiGreeting": "

Olá, como posso ajudar você?

", + "openAiNoApiKey": "

Para usar este recurso, insira sua chave de API da OpenAI nas configurações.

Para saber como obter uma chave de API da OpenAI, consulte a documentação da OpenAI: https://platform.openai.com/docs/quickstart

", + "geminiNoApiKey": "

Para usar este recurso, insira sua chave de API do Gemini nas configurações.

Para saber como obter uma chave de API do Gemini, consulte a documentação do Gemini: https://ai.google.dev/gemini-api/docs/api-key

", + "mistralNoApiKey": "

Para usar este recurso, insira sua chave de API da Mistral AI nas configurações.

Para saber como obter uma chave de API da Mistral AI, consulte a documentação da Mistral AI: https://docs.mistral.ai/getting-started/quickstart/

", + "anthropicNoApiKey": "

Para usar este recurso, insira sua chave de API da Anthropic nas configurações.

Para saber como obter uma chave de API da Anthropic, consulte a documentação da Anthropic: https://docs.claude.com/en/api/overview

", + "send": "Enviar (Enter)", + "enterPrompt": "Digite um comando aqui" + }, + "editor": { + "toggleAudio": "Alternar áudio", + "updateAvailable": "Atualização disponível", + "doMore": "Faça mais com o RunJS", + "unlimitedRuns": "Execuções Ilimitadas", + "runWithoutLimits": "Execute seu código sem limites", + "activatePremiumFeatures": "Ative o RunJS e obtenha acesso total a todos os recursos", + "multipleTabs": "Múltiplas Abas", + "magicComments": "Comentários Mágicos", + "npmPackages": "Pacotes NPM", + "autocomplete": "Autocompletar", + "typeChecking": "Checagem de Tipos", + "extraThemes": "Temas Extras", + "intlDateTime": "{{val, datetime}}", + "removeLimits": "Ative o RunJS para remover limites", + "snippets": "Snippets", + "timeToRenew": "Hora de Renovar", + "pleaseRenew": "É hora de renovar - Por favor, renove sua licença para continuar recebendo atualizações.", + "npmPackagesDetail": "Experimente novas bibliotecas e frameworks", + "multipleTabsDetail": "Essencial para multitarefa", + "autocompleteDetail": "Veja sugestões de código enquanto digita", + "snippetsDetail": "Crie sua própria coleção de snippets", + "typeCheckingDetail": "Veja erros e avisos relacionados a tipos", + "extraThemesDetail": "Ayu, One Dark, Shades of Purple, SynthWave '84", + "magicCommentsDetail": "Veja o valor de qualquer expressão em qualquer lugar do seu código", + "doNotRemind": "Não me lembre novamente", + "hoverInfo": "Informações ao Passar o Mouse", + "hoverInfoDetail": "Veja informações, incluindo documentação, ao passar o mouse sobre o código", + "activateForMagicComments": "Ative o RunJS para habilitar Comentários Mágicos" + }, + "preferences": { + "ai": "IA", + "preferences": "Configurações", + "general": "Geral", + "transpilation": "Transpilação", + "build": "Build", + "formatting": "Formatação", + "appearance": "Aparência", + "advanced": "Avançado", + "presets": "Predefinições", + "plugins": "Plugins", + "enableTranspilation": "Habilitar transpilação com Babel", + "autoFormat": "Formatação Automática", + "autoFormatDescription": "Formatar código automaticamente ao executar", + "formattingRules": "Regras de formatação", + "autoRun": "Execução Automática", + "autoRunDescription": "Executar código automaticamente ao alterar", + "lineNumbers": "Números de Linha", + "lineNumbersDescription": "Mostrar números de linha", + "lineWrap": "Quebra de Linha", + "lineWrapDescription": "Quebrar linhas longas", + "vimKeys": "Teclas Vim", + "vimKeysDescription": "Usar atalhos de teclado do Vim", + "closeBrackets": "Fechar Colchetes", + "closeBracketsDescription": "Fechar colchetes automaticamente", + "matchLines": "Alinhar Linhas", + "matchLinesDescription": "Alinhar resultados da saída com a origem", + "matchLinesHint": "Os resultados da saída serão colocados na mesma linha que sua origem. Desative isso para mostrar os resultados na ordem natural de execução.", + "autocomplete": "Autocompletar", + "autocompleteDescription": "Mostrar sugestões ao digitar", + "typeChecking": "Linting", + "typeCheckingDescription": "Mostrar erros e avisos na linha", + "signatures": "Assinaturas", + "signaturesDescription": "Mostrar assinaturas de função ao digitar", + "hoverInfo": "Info ao Passar o Mouse", + "hoverInfoDescription": "Mostrar informações ao passar o mouse", + "theme": "Tema", + "font": "Fonte", + "fontSize": "Tamanho da Fonte", + "invisibles": "Invisíveis", + "invisiblesDescription": "Mostrar caracteres invisíveis", + "activeLine": "Linha Ativa", + "activeLinesDescription": "Destacar linha ativa", + "tabBar": "Barra de Abas", + "tabBarDescription": "Mostrar barra de abas para aba única", + "runtimeValues": "Resultados de Expressão", + "runtimeValuesDescription": "Mostrar o resultado de cada expressão de nível superior", + "outputHighlighting": "Destaque de Saída", + "outputHighlightingDescription": "Mostrar destaque de sintaxe na saída", + "showUndefined": "Mostrar Undefined", + "showUndefinedDescription": "Mostrar valores indefinidos", + "loopProtection": "Proteção de Loop", + "loopProtectionDescription": "Proteger contra loops de longa execução", + "premium": "Premium", + "scrolling": "Rolagem", + "standard": "Padrão", + "synchronous": "Síncrono", + "automatic": "Automático", + "confirmClose": "Confirmar Fechamento", + "confirmCloseDescription": "Perguntar antes de fechar a aba", + "printWidth": "Largura da Impressão", + "tabWidth": "Largura do Tab", + "useTabs": "Usar Tabs", + "useTabsDescription": "Indentar linhas com tabs em vez de espaços", + "semicolons": "Ponto e Vírgula", + "semicolonsDescription": "Imprimir ponto e vírgula ao final das instruções", + "singleQuotes": "Aspas Simples", + "singleQuotesDescription": "Usar aspas simples em vez de aspas duplas", + "quoteProps": "Aspas em Propriedades", + "jsxQuotes": "Aspas em JSX", + "jsxQuotesDescription": "Usar aspas simples em vez de duplas no JSX", + "trailingCommas": "Vírgulas Finais", + "bracketSpacing": "Espaçamento de Colchetes", + "bracketSpacingDescription": "Imprimir espaços entre colchetes em objetos literais", + "arrowFunctionParens": "Parênteses em Arrow Functions", + "sideBar": "Barra Lateral", + "sideBarDescription": "Mostrar barra lateral", + "activityBar": "Barra de Atividades", + "activityBarDescription": "Mostrar barra de atividades", + "language": "Idioma", + "english": "Inglês", + "spanish": "Espanhol", + "japanese": "Japonês", + "chinese": "Chinês", + "changeAfterRestart": "As alterações serão aplicadas após reiniciar o aplicativo.", + "transform": "Transformar", + "proposals": "Propostas TC39", + "topLevelAwait": "Await de nível superior", + "topLevelAwaitDescription": "Habilitar await de nível superior", + "topLevelAwaitHint": "O await de nível superior não é compatível com resultados de expressão.", + "aiModel": "Modelo", + "aiApiKey": "Chave de API", + "aiProvider": "Provedor", + "aiBaseUrl": "URL Base", + "refreshModels": "Atualizar modelos", + "selectModel": "Selecionar modelo…", + "npmrcHint": "O .npmrc armazena configurações que controlam como o NPM opera ao gerenciar pacotes e dependências.", + "npmrcFailedToRead": "Falha ao ler o arquivo .npmrc. Verifique as permissões.", + "npmrcTooLarge": "O arquivo .npmrc é grande demais. Reduza seu tamanho.", + "npmrcFailedToSave": "Falha ao salvar o arquivo .npmrc. Verifique as permissões.", + "ligatures": "Ligaduras de Fonte", + "ligaturesDescription": "Habilitar ligaduras para fontes compatíveis", + "save": "Salvar", + "reset": "Redefinir" + }, + "license": { + "deactivateLicense": "Desativar Licença", + "activation": "Ativação do RunJS", + "yourLicense": "Sua Licença do RunJS", + "deactivateYourLicense": "Aqui você pode desativar sua licença do RunJS se quiser usá-la em um computador diferente.", + "activateYourLicense": "Sua cópia do RunJS ainda não está ativada. Por favor, insira sua chave de licença abaixo.", + "licenseKey": "Chave de Licença", + "licenseHint": "Você deve encontrar sua chave de licença no e-mail de confirmação que recebeu após comprar o RunJS.", + "thanksForSupport": "Obrigado por apoiar o RunJS.", + "activationComplete": "Ativação Concluída" + }, + "vars": { + "manageEnvironmentVariables": "Variáveis de Ambiente", + "key": "CHAVE", + "value": "VALOR", + "add": "Adicionar", + "save": "Salvar", + "remove": "Remover", + "noVars": "Nenhuma variável de ambiente ainda.\nUse o formulário acima para adicionar variáveis de ambiente.", + "hint": "As variáveis de ambiente são carregadas em process.env e acessadas sufixando a chave da variável de ambiente." + }, + "installer": { + "managePackages": "Pacotes NPM", + "initError": "Ocorreu um erro que impediu a inicialização do NPM.", + "name": "Nome", + "version": "Versão", + "add": "Adicionar", + "remove": "Remover", + "search": "Pesquisar", + "searchError": "Ocorreu um erro ao pesquisar por {{name}}", + "installError": "Ocorreu um erro ao instalar {{name}}", + "removeError": "Ocorreu um erro ao remover o pacote", + "latest": "Mais recente", + "installed": "Instalado" + }, + "snippets": { + "manageSnippets": "Snippets", + "name": "Nome", + "description": "Descrição", + "search": "Pesquisar", + "notFound": "Nenhum snippet correspondente encontrado.", + "nameHint": "Define a palavra de ativação para o autocompletar.", + "noSnippets": "Nenhum snippet ainda.\nComece criando um novo snippet ou importando uma biblioteca de snippets existente.", + "insertSnippet": "Inserir Snippet", + "insertSnippetNewTab": "Inserir Snippet em Nova Aba", + "copySnippet": "Copiar Snippet", + "copied": "Copiado!", + "inserted": "Inserido!", + "insertedNewTab": "Inserido em Nova Aba!", + "newSnippet": "Novo Snippet" + } +}