Guia de Tradução - SICP.js
Estrutura e Interpretação de Programas de Computador - Adaptação em JavaScript
Este documento fornece diretrizes e boas práticas para contribuir com a tradução do livro SICP (Structure and Interpretation of Computer Programs) - JavaScript Adaptation para o português brasileiro.
Índice
- Visão Geral
- Como Contribuir
- Processo de Tradução
- Glossário de Termos Técnicos
- Convenções de Estilo
- Ferramentas e Qualidade
- Estrutura do Projeto
- Dicas e Melhores Práticas
Visão Geral
Este é um projeto colaborativo de tradução do livro SICP.js para português brasileiro (pt-BR). O livro original em inglês está disponível em: https://sourceacademy.org/sicpjs/index
Objetivos
- Traduzir todo o conteúdo do SICP.js para português brasileiro
- Manter a qualidade e precisão técnica do conteúdo original
- Tornar o conhecimento acessível para a comunidade de língua portuguesa
- Preservar exemplos de código e formatação adequada
Como Contribuir
1. Configuração Inicial
# Clone o repositório
git clone https://github.com/ibrahimcesar/estrutura-e-interpretacao-de-programas-de-computador-javascript.git
cd estrutura-e-interpretacao-de-programas-de-computador-javascript
# Instale as dependências (requer Node.js e Python)
make install
2. Escolha uma Seção para Traduzir
- Verifique as issues abertas para ver quais seções ainda precisam ser traduzidas
- Deixe um comentário informando que você começará a tradução
- Ou abra uma nova issue para reivindicar uma seção específica
3. Crie uma Branch
# Crie uma branch com nome descritivo
git checkout -b traducao-secao-X.Y.Z
4. Traduza o Conteúdo
- Traduza o arquivo Markdown correspondente
- Mantenha a formatação original (cabeçalhos, listas, código, etc.)
- Não traduza código JavaScript ou nomes de funções/variáveis
- Adicione novos termos técnicos ao dicionário
.github/wordlist.txtse necessário
5. Verifique a Qualidade
# Execute os testes de qualidade
make check
# Ou execute cada verificação individualmente:
make lint # Verifica formatação Markdown
make spell-check # Verifica ortografia em português
make link-check # Verifica links quebrados (se disponível)
6. Envie sua Contribuição
# Adicione e commit suas mudanças
git add .
git commit -m "Traduz seção X.Y.Z - [nome da seção]"
# Envie para o GitHub
git push origin traducao-secao-X.Y.Z
# Abra um Pull Request no GitHub
Processo de Tradução
Estrutura de Capítulos
O projeto está organizado por capítulos e seções:
00/ # Prefácios e introdução
├── foreword84.md # Prefácio de 1984
├── prefaces03.md # Prefácio de 2003
└── prefaces96.md # Prefácio de 1996
01/ # Capítulo 1: Construindo Abstrações com Funções
├── 1.0.md # Introdução do capítulo
├── 1.1.md # Seção 1.1
├── 1.1.1.md # Subseção 1.1.1
└── ...
O Que Traduzir
✅ Traduza:
- Todo o texto explicativo
- Comentários em código
- Legendas e descrições
- Títulos e cabeçalhos
- Notas de rodapé
❌ NÃO traduza:
- Código JavaScript (nomes de funções, variáveis, etc.)
- Palavras-chave da linguagem (
function,const,let,return, etc.) - URLs e links
- Nomes próprios (pessoas, instituições)
- Termos técnicos consolidados (veja o glossário)
Exemplo de Tradução
Original (inglês):
## 1.1 The Elements of Programming
Every powerful language has three mechanisms for combining simple ideas
to form more complex ideas:
- **primitive expressions**, which represent the simplest entities the
language is concerned with,
Traduzido (português):
## 1.1 Os Elementos da Programação
Toda linguagem poderosa possui três mecanismos para combinar ideias simples
e formar ideias mais complexas:
- **expressões primitivas**, que representam as entidades mais simples com
as quais a linguagem se preocupa,
Glossário de Termos Técnicos
Mantenha consistência na tradução de termos técnicos. Aqui estão alguns termos comuns:
| Inglês | Português | Observação |
|---|---|---|
| function | função | Sempre traduzir |
| procedure | procedimento | Sempre traduzir |
| expression | expressão | Sempre traduzir |
| statement | declaração / instrução | Depende do contexto |
| variable | variável | Sempre traduzir |
| constant | constante | Sempre traduzir |
| parameter | parâmetro | Sempre traduzir |
| argument | argumento | Sempre traduzir |
| scope | escopo | Sempre traduzir |
| closure | closure | Não traduzir (termo técnico consolidado) |
| callback | callback | Não traduzir (termo técnico consolidado) |
| debugging | depuração | Sempre traduzir |
| bug | bug | Pode manter em inglês |
| framework | framework | Não traduzir |
| recursion | recursão | Sempre traduzir |
| iteration | iteração | Sempre traduzir |
| array | array | Não traduzir (termo técnico consolidado) |
| object | objeto | Sempre traduzir |
| primitive | primitivo/primitiva | Sempre traduzir |
| abstraction | abstração | Sempre traduzir |
| environment | ambiente | Sempre traduzir |
| interpreter | interpretador | Sempre traduzir |
| evaluation | avaliação | Sempre traduzir |
Nota: Quando em dúvida, verifique como outros tradutores de documentação técnica em português lidam com o termo.