--- template: overrides/main.html title: Como Adicionar uma Tradução --- # Como Adicionar uma Tradução Guia para criar ou melhorar traduções da documentação em **qualquer** idioma. Usamos MkDocs + Material + `mkdocs-static-i18n`. Inglês é o fallback. Qualquer idioma novo replica a estrutura de pastas. Se faltar uma página traduzida, aparece a versão inglesa. --- ## 1. Visão geral Três cenários comuns: 1. Melhorar uma página já traduzida. 2. Traduzir uma página que só existe em inglês. 3. Adicionar um idioma totalmente novo. Tudo abaixo cobre esses casos. --- ## 2. Estrutura de pastas ``` /docs en/ developer-guide/ getting-started/ user-guide/ / (mesmos caminhos relativos) ``` `` exemplos: `pt`, `es`, `fr`, `de`, `it`, `ja`, `zh`, `ru`. Use códigos curtos (BCP‑47). Evite variantes regionais salvo necessidade (`pt-BR`, `pt-PT`). Os caminhos relativos devem ser idênticos: ``` Inglês: docs/en/developer-guide/how-to-add-a-translation.md Espanhol: docs/es/developer-guide/how-to-add-a-translation.md Francês: docs/fr/developer-guide/how-to-add-a-translation.md ``` --- ## 3. Início rápido (traduzir ou melhorar) 1. Fork e clone. 2. Crie / ative ambiente virtual. 3. Instale extras de docs: ```console pip install -e ".[docs]" ``` 4. Servidor local: ```console mkdocs serve ``` 5. Abra a URL e use o seletor de idioma. Reinicie se arquivos novos não aparecerem. --- ## 4. Adicionando um novo idioma (setup inicial) Se a pasta já existe (ex: `pt/`), pule. 1. Escolha código (ex: `es`). 2. Crie `docs/es/`. 3. Copie `docs/en/index.md` para `docs/es/index.md` e traduza. 4. (Opcional) Comece só com index + páginas principais para PR menor. 5. Edite `mkdocs.yml` em `i18n.languages`: ```yaml - locale: es name: Español build: true site_description: theme: docs_dir: docs/es/ custom_dir: docs/es/ site_dir: site/es/ logo: overrides/assets/img/logotype-sysidentpy.svg ``` 6. Não duplique a navegação; o plugin mapeia automaticamente. 7. Rode `mkdocs serve` e confirme o idioma no seletor. Para variantes regionais (ex: `pt-BR`) mantenha consistência no nome da pasta e no `locale`. --- ## 5. Nova página em inglês (fonte) 1. Crie em `docs/en/...`. 2. Front matter: ```md --- template: overrides/main.html title: Título --- ``` 3. Adicione no `nav` do `mkdocs.yml` (apenas uma vez). 4. Verifique build. 5. (Opcional) Comentário para tradutores: ```md ``` --- ## 6. Criando o arquivo traduzido 1. Caminho espelhado: `docs//.md`. 2. Copie o original. 3. Traduza só texto natural. Preserve: - Blocos de código (comentários apenas se ajudar) - Identificadores (funções, classes, imports) - Caminhos, chaves de config, URLs - Alvos de links relativos 4. Mantenha hierarquia de títulos. 5. Preserve tipos de admonitions (`!!! note`, etc.). Título interno pode ser traduzido. 6. Parte pendente? Use: ```md !!! note "Tradução pendente" Este parágrafo ainda será traduzido. ``` 7. Remova notas pendentes antes de finalizar (se concluir). --- ## 7. Links internos Use links relativos: ```md Veja o [guia de contribuição](contribute.md). ``` O plugin resolve por idioma. Evite hardcode `/en/` ou outro prefixo. Âncoras: se traduzir título, o slug muda; ajuste referências `(#ancora)`. --- ## 8. Imagens e mídia Se a imagem contém texto: - **Opção A**: localizar imagem dentro de `docs//assets/` com mesmo nome. - **Opção B**: reutilizar imagem inglesa se o texto não atrapalha. SVG: manter símbolos ou termos técnicos; traduzir rótulos descritivos. --- ## 9. Formatação & estilo | Aspecto | Regra | |---------|-------| | Números | Mantenha precisão; separador decimal local é opcional. | | Unidades | Não traduzir (ms, Hz, etc.). | | APIs | Nunca traduzir identificadores. | | Aspas | Use padrão local sem quebrar Markdown. | | Capitalização | Igual só para nomes próprios / APIs. | | Tom | Neutro, direto. | Evite blocos não revisados de tradução automática. Prefira frases curtas. --- ## 10. Glossário de tradução Mantenha estes termos consistentes. Adicione equivalentes para outros idiomas conforme necessário: | Termo em Inglês | Português (pt) | |------------------|----------------| | **Conceitos centrais** | | model structure | estrutura do modelo | | parameter estimation | estimação de parâmetros | | residual analysis | análise dos resíduos | | time series | série temporal | | identification | identificação | | **Termos técnicos** | | basis function | função de base | | regression | regressão | | algorithm | algoritmo | | validation | validação | | simulation | simulação | | **Termos de desenvolvimento** | | feature | funcionalidade | | pull request (PR) | pull request (PR) | | branch | branch | | commit | commit | | documentation | documentação | Para outros idiomas, siga padrões similares. Prefira clareza à tradução literal. --- ## 11. Checklist de revisão (arquivo traduzido) - [ ] Build local OK. - [ ] Caminho espelhado correto. - [ ] Links relativos sem `/en/` fixo. - [ ] Blocos de código intactos (comentários revisados). - [ ] Terminologia consistente. - [ ] Sem notas pendentes (ou marcadas claramente se parcial). - [ ] Front matter com `title:` traduzido. --- ## 12. Commit & PR Inclua arquivo inglês + traduzido se a página é nova; caso contrário só o traduzido. Exemplo: ```console git add docs/en/developer-guide/new-topic.md docs/es/developer-guide/new-topic.md git commit -m "docs: adicionar tradução em espanhol de new-topic" ``` Template de descrição de PR: - **Idioma**: `` - **Páginas**: lista - **Trechos ainda em inglês**: (se houver) - **Termos novos de glossário**: (se houver) - **Notas para revisão**: contexto, termos difíceis Traduções parciais são aceitáveis — marque claramente. --- ## 13. Atualizando traduções Quando o inglês mudar: 1. Veja o diff. 2. Aplique mudanças equivalentes. 3. Sem tempo para traduzir? Deixe em inglês + nota temporária. 4. Remova a nota ao finalizar. Prefira PRs menores. --- ## 14. Problemas comuns | Sintoma | Causa | Correção | |---------|-------|----------| | Página só em inglês | Falta arquivo no locale | Criar arquivo espelhado | | Erro de build | Entrada `i18n` incorreta | Corrigir `locale` / indentação | | Link 404 | Caminho diferente do inglês | Sincronizar caminho | | Âncora quebrada | Título mudou | Ajustar slug / título | | Idioma não aparece | Faltou adicionar em `mkdocs.yml` | Adicionar e reiniciar | --- ## 15. Automação (opcional) Scripts podem copiar estrutura base, mas revise manualmente termos técnicos. Não sobrescreva traduções existentes. --- ## 16. Dúvidas Abra Issue ou Discussion para confirmar termos antes de traduzir grandes trechos. Feedback cedo evita retrabalho. Obrigado por tornar a documentação acessível a mais pessoas.