224 lines
5.8 KiB
Markdown
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+
|