traduzioni 4 lingue e catalogo razze portati dai sorgenti Flutter; asset foto, icone dall'artwork originale, test node

This commit is contained in:
Carlo Baratto
2026-10-09 09:02:41 +02:00
parent 0ef017cbab
commit b1ee0c78b5
21 changed files with 982 additions and 41 deletions
+26 -8
View File
@@ -20,6 +20,8 @@ Android (AdMob/File picker/Share). Nessun account, nessun cloud, come l'original
| Packaging (spec RPM, desktop SailJail, icone, i18n) | pronto |
| Guscio app (finestra, cover, Settings con lingua) | pronto |
| Motore di calcolo (`qml/js/henflow.js`) | portato e verificato con node |
| Traduzioni 4 lingue (`qml/js/i18n.js`, 126 chiavi) | portate e verificate con node |
| Catalogo razze con foto (`qml/js/catalog.js`) | portato e verificato con node |
| Schermate QML | da implementare |
## Struttura
@@ -33,9 +35,13 @@ src/settings.h/.cpp # QSettings su path esplicito AppConfigLocation + s
qml/harbour-henflow.qml # ApplicationWindow: initialPage + cover
qml/pages/MainPage.qml # indice dei moduli (segnaposto)
qml/js/henflow.js # motore di calcolo (ES5, testabile con node)
tests/engine.test.js # 30 controlli: node tests/engine.test.js
icons/make_icons.py # icone 86/108/128/172 (PIL)
translations/*.ts # stringhe sorgente INGLESI + catalogo italiano
qml/js/i18n.js # 126 chiavi x 4 lingue + t(chiave, arg, lingua)
qml/js/catalog.js # 7 razze: nome/descrizione/colore uova/foto
assets/breeds/*.jpg # foto delle razze (installate nel datadir)
tools/gen_from_flutter.py # rigenera i18n.js e catalog.js dai sorgenti Flutter
tests/run.sh # tests/engine.test.js + tests/i18n.test.js
icons/make_icons.py # icone 86/108/128/172 dall'artwork originale
translations/*.ts # stringhe statiche delle pagine QML (EN + IT)
```
## Motore di calcolo (portato fedelmente da `lib/main.dart`)
@@ -100,8 +106,20 @@ git archive --format=tar.gz --prefix=harbour-henflow-0.1.0/ -o harbour-henflow-0
## Aperti
1. **Asset**: nel materiale di Nextcloud mancano `assets/breeds/*.jpg` (7 foto)
e `pubspec.yaml`.
2. **Repo Gitea `HenFlow`**: cancellata (era un upload parziale); per ricrearla
serve un permesso che il token attuale non ha (`write:user`).
3. **Ambito**: modalita' cliente e 4 lingue (EN/IT/FR/DE) da confermare.
1. **Repo Gitea `HenFlow`**: cancellata (era un upload parziale); da ricreare
dalla UI, poi `workspace/henflow-flutter` va pushata li'.
2. **Schermate QML**: da implementare (solo modalita' allevatore, 4 lingue).
## Correzioni rispetto all'originale (bug trovati nei sorgenti Flutter)
- `app_language.dart` e' una copia **vecchia** della tabella traduzioni (111 chiavi
contro 126), usata solo da `lib/dialogs/confirm_dialogs.dart`, e ha gli a capo
scritti `\\n`: quei dialoghi mostrano un backslash visibile. Il porting estrae
dalla tabella viva in `main.dart`.
- Il francese ha 2 chiavi in meno (`name_generic`, `desc_generic`) e `t()` non ha
fallback: in francese la razza "generic" usciva come testo `name_generic`.
Nel porting i buchi sono colmati dall'inglese e un test lo verifica.
- `assets/breeds/olive.jpg` era un **WEBP** con estensione .jpg: Qt 5.6 su Sailfish
non ha il plugin webp. Riconvertito in JPEG.
- Niente annunci (AdMob non esiste su Sailfish) e niente `share_plus`/`file_picker`:
export/import JSON in Download.