- Verificação de integridade ao conectar (PRAGMA integrity_check) - Validação de esquema completo (4 tabelas, todas as colunas) - Migração automática de colunas em falta - Tabela translation_backups para guardar originais antes de traduzir - CLI --verify-db e --restore-backup - WAL mode para melhor concorrência Tarefa #419, Discussão #33, Projecto #65
91 lines
3.6 KiB
Markdown
91 lines
3.6 KiB
Markdown
# Changelog — wp-translate-ptpt.py
|
|
|
|
## [1.1.0] - 2026-03-12
|
|
|
|
### Added
|
|
- Validação de base de dados: verificação de integridade SQLite (PRAGMA integrity_check) ao conectar
|
|
- Validação de esquema: verifica que todas as tabelas e colunas esperadas existem
|
|
- Migração automática: adiciona colunas em falta sem perder dados existentes
|
|
- Tabela `translation_backups`: guarda string original antes de cada tradução/correcção
|
|
- Método `verify_health()`: diagnóstico completo da BD (integridade, tabelas, contagens)
|
|
- CLI `--verify-db`: verifica saúde da BD e reporta estado de cada tabela
|
|
- CLI `--restore-backup HASH`: consulta backups de traduções por hash msgid
|
|
- Método `backup_translation()`: regista original antes de sobrescrever
|
|
- WAL mode activado para melhor concorrência em SQLite
|
|
- Tratamento de erros de BD no arranque do TranslationProcessor com mensagem de sugestão
|
|
|
|
### Changed
|
|
- CacheManager agora valida esquema completo após _init_db (4 tabelas, todas as colunas)
|
|
- TranslationProcessor verifica saúde da BD antes de iniciar processamento
|
|
- _process_entry guarda backup da string original antes de aplicar correcções de marcas e PT-BR
|
|
- Criação do processor envolvida em try/except com mensagem orientativa
|
|
|
|
### Fixed
|
|
- BDs existentes de v1.0.0 são migradas automaticamente (nova tabela translation_backups adicionada)
|
|
|
|
## [1.0.0] - 2026-02-23
|
|
|
|
### Added
|
|
- Script unificado de ~950 linhas combinando funcionalidades de v1.0, v2.0 e v3.0
|
|
- 6 classes core: BrandProtector, TranslationEngine, PoFileHandler, CacheManager, QualityValidator, TranslationProcessor
|
|
- Base de dados SQLite com 3 tabelas (brands, translations, corrections)
|
|
- 98 marcas seed (Fluent Forms, Rank Math, Elementor, WooCommerce, etc.)
|
|
- 15+ mapeamentos literal→correcto para traduções de marcas
|
|
- ~50 regras PT-BR → PT-PT
|
|
- Pipeline de 9 etapas: parse → protect → translate → restore → fix → validate → save → compile
|
|
- CLI completo com 6 modos: single, batch, brands-only, dry-run, init-db, export/import
|
|
- Backup/rollback automático em caso de erro
|
|
- Validação de placeholders (%s, %d, %1$s) e HTML tags
|
|
- Rate limiting LibreTranslate: 0.3s entre chamadas
|
|
- Retry logic: 3 tentativas com exponential backoff
|
|
- Compilação .mo automática (best-effort, não bloqueante)
|
|
- Suporte formas plurais (`msgstr[0]`, `msgstr[1]`)
|
|
- Log completo de correcções em SQLite
|
|
|
|
### Fixed
|
|
- Bug regex sem verificação None (linha 582): `.group(1)` chamado em `None`
|
|
- Bug compilação msgfmt bloqueante: ficheiros com avisos eram revertidos incorrectamente
|
|
- Processamento de linhas `msgstr[N]` com `[` mas sem formato plural válido
|
|
|
|
### Changed
|
|
- Compilação .mo agora é tolerante a erros: avisa mas não falha o processamento
|
|
- Parser .po mais robusto: detecta e corrige linhas malformadas
|
|
|
|
### Tested
|
|
- Teste individual FluentForm: 53 marcas corrigidas em 1.2s
|
|
- Batch 241 ficheiros: 15 marcas corrigidas em 42.8s
|
|
- 0 falhas críticas, 100% ficheiros processados com sucesso
|
|
|
|
### Documentation
|
|
- REPORT-FINAL-wp-translate-ptpt.md: Report completo com arquitectura, estatísticas e exemplos
|
|
- Comentários inline no código (~10% linhas são comentários)
|
|
- Docstrings em todas as classes e métodos principais
|
|
|
|
---
|
|
|
|
## [v2.0] - 2026-02 (anterior)
|
|
|
|
### Added
|
|
- LibreTranslate API integration
|
|
- SQLite cache básico
|
|
- Batch processing
|
|
|
|
### Issues
|
|
- Protecção de marcas parcial
|
|
- Sem correcção de traduções literais
|
|
- Compilação msgfmt falhava em ficheiros com avisos
|
|
|
|
---
|
|
|
|
## [v1.0] - 2025 (anterior)
|
|
|
|
### Added
|
|
- Processamento básico .po
|
|
- Conversões PT-BR → PT-PT básicas
|
|
|
|
### Issues
|
|
- Sem tradução automática
|
|
- Sem cache
|
|
- Sem protecção de marcas
|
|
- Sem batch processing
|