Files
scripts/translate-wp-plugin/README.md

224 lines
5.8 KiB
Markdown

# WordPress PT-PT Translation System v1.0.0
Sistema eficiente de traduções WordPress para Português Europeu com correcção automática de marcas, conversão PT-BR→PT-PT e validação de qualidade.
## Quick Start
```bash
# 1. Inicializar base de dados (primeira vez)
python3 wp-translate-ptpt.py --init-db
# 2. Processar ficheiro individual
python3 wp-translate-ptpt.py /path/to/plugin-pt_PT.po
# 3. Processar biblioteca inteira (só marcas)
python3 wp-translate-ptpt.py --brands-only --batch /biblioteca/
# 4. Tradução completa de novo plugin
python3 wp-translate-ptpt.py /novo-plugin-pt_PT.po
```
## Features
**Correcção automática de marcas** — Detecta "Formulários Fluentes" → "Fluent Forms"
**98 marcas seed** — Fluent Forms, Rank Math, Elementor, WooCommerce, etc.
**50+ regras PT-BR→PT-PT** — gerenciar→gerir, deletar→eliminar, senha→palavra-passe
**Cache SQLite** — Traduções reutilizadas, processamento rápido
**Validação qualidade** — Preserva placeholders (%s, %d) e HTML tags
**Batch processing** — Centenas de ficheiros em segundos
**Backup/rollback** — Reversão automática em caso de erro
**Compilação .mo** — Automática e tolerante a erros
## Arquitectura
### 6 Classes Core
```
BrandProtector → Detecta e corrige marcas traduzidas literalmente
TranslationEngine → LibreTranslate API wrapper com retry
PoFileHandler → Parser/writer ficheiros .po
CacheManager → SQLite cache + auditoria
QualityValidator → Validação placeholders/HTML/PT-BR
TranslationProcessor → Orquestrador pipeline 9 etapas
```
### Pipeline de 9 Etapas
```
1. Parse .po → PoEntry objects
2. Brand protection (pre-translation)
3. Filter (cache check)
4. Translate (LibreTranslate)
5. Restore brands
6. PT-BR fixes
7. Brand correction (post-translation)
8. Quality validation
9. Save + compile .mo
```
## Modos de Uso
### Single File
```bash
python3 wp-translate-ptpt.py /path/to/plugin-pt_PT.po
```
### Batch Processing
```bash
python3 wp-translate-ptpt.py --batch /biblioteca/
```
### Brands Only (sem traduzir, só corrigir marcas)
```bash
python3 wp-translate-ptpt.py --brands-only ficheiro.po
python3 wp-translate-ptpt.py --brands-only --batch /biblioteca/
```
### Dry Run (simular sem alterar)
```bash
python3 wp-translate-ptpt.py --dry-run ficheiro.po
```
### Database Management
```bash
# Inicializar
python3 wp-translate-ptpt.py --init-db
# Exportar marcas
python3 wp-translate-ptpt.py --export-brands brands.json
# Importar marcas
python3 wp-translate-ptpt.py --import-brands brands.json
```
## Base de Dados SQLite
**Localização:** `wp-translations.db`
### 3 Tabelas
```sql
brands 98 marcas seed + auto-detectadas
translations Cache traduções (MD5 hash lookup)
corrections Log auditoria de todas as correcções
```
## Marcas Seed (98 total)
```
Fluent Forms, FluentCRM, Fluent SMTP, Rank Math, Elementor,
Elementor Pro, WooCommerce, WPForms, Wordfence, UpdraftPlus,
WP Rocket, Loco Translate, Bit Integrations, Element Pack,
ElementsKit, Happy Addons, Real Cookie Banner, Google,
Facebook, Instagram, PayPal, Stripe, WordPress, ...
```
## Conversões PT-BR → PT-PT (50+ regras)
```python
salvar guardar
deletar eliminar
gerenciar gerir
senha palavra-passe
arquivo ficheiro
atualiz* actualiz*
voce o utilizador
habilitar activar
desabilitar desactivar
cadastro registo
```
## Traduções Literais Detectadas (15+)
```python
"Fluent Forms" ["Formulários Fluentes", "Formas Fluentes"]
"Rank Math" ["Matemática de Classificação"]
"Happy Addons" ["Complementos Felizes"]
"Wordfence" ["Cerca de Palavras"]
"Element Pack" ["Pacote de Elementos"]
```
## Performance
**Teste individual (FluentForm):**
- 53 marcas corrigidas
- Tempo: 1.2s
**Batch (241 ficheiros):**
- 15 marcas corrigidas
- Tempo: 42.8s
- Velocidade: ~5.6 ficheiros/segundo
## Dependências
```bash
pip install requests # LibreTranslate API
# gettext tools (msgfmt) - já incluído na maioria das distros Linux
```
## Configuração LibreTranslate
**API URL (default):** `https://translate.descomplicar.pt/translate`
**Auth:** Whitelist IP (sem API key)
**Rate limit:** 0.3s entre chamadas
## Troubleshooting
### Erros msgfmt
Alguns ficheiros têm erros msgfmt pré-existentes (placeholders perdidos, headers inválidos). O script continua processamento e avisa, mas não falha.
### Ficheiros duplicados
A biblioteca pode ter duplicados em diferentes localizações. O script processa todos.
### Cache
Para limpar cache: `rm wp-translations.db` e executar `--init-db` novamente.
## Ficheiros
```
wp-translate-ptpt.py → Script principal (~950 linhas)
wp-translations.db → Base de dados SQLite
CHANGELOG.md → Histórico de versões
REPORT-FINAL-*.md → Reports de execução
README.md → Esta documentação
```
## Scripts Anteriores
Este script substitui:
- `translate-wordpress-plugin.py` (v1.0)
- `translate_missing.py` (v2.0 LibreTranslate)
- `fix_ptbr.py` (conversões PT-BR)
- `fix_malformed.py` (correcções sintaxe)
## Próximos Passos
1. **Manutenção mensal:**
```bash
python3 wp-translate-ptpt.py --brands-only --batch /biblioteca/
```
2. **Novos plugins:**
```bash
python3 wp-translate-ptpt.py /novo-plugin-pt_PT.po
```
3. **Auditoria PT-BR:**
```bash
grep -r "gerenciar\|deletar\|voce" *.po
```
## Contribuir
1. Adicionar novas marcas: editar `SEED_BRANDS` (linha ~800)
2. Adicionar regras PT-BR: editar `PTBR_TO_PTPT` (linha ~400)
3. Adicionar mapeamentos literais: editar `LITERAL_TRANSLATIONS` (linha ~200)
## Versão
**v1.0.0** — 2026-02-23
**Autor:** Descomplicar® Crescimento Digital
**Licença:** Proprietário
**Python:** 3.8+