0.4.0: interfaccia in italiano e inglese, scelta nelle impostazioni
L'inglese è la lingua sorgente delle stringhe; l'italiano sta nel catalogo translations/harbour-aira-it.ts (99 stringhe), che lupdate aggiorna e lrelease compila in build. Di serie la lingua del sistema, con ripiego sull'inglese. - nuova classe Translator: risolve la lingua prima di createView e allinea QLocale::setDefault, così anche i numeri seguono la lingua (23,0 °C in italiano, 23.0 °C in inglese) — le temperature passano da formatValue, non più dal toFixed() di JavaScript che metteva sempre il punto - Qt 5.6 non ha QQmlEngine::retranslate(): al cambio di lingua la radice QML viene ricaricata (setSource ricrea il componente anche a url invariata) - le etichette di stato in airajson.cpp usano QCoreApplication::translate per esteso: lupdate non riconosce una funzione wrapper e le avrebbe perse - selettore della lingua in Impostazioni (Sistema / English / Italiano) - test: 41/41, carica il .qm vero come fa main.cpp e verifica entrambe le lingue, il ripiego e i formati numerici - anteprime bilingui (docs/anteprima/ inglese, it/ italiano), README e PIANO aggiornati, spec RPM con i cataloghi in %files
This commit is contained in:
+24
-1
@@ -8,7 +8,7 @@ Piano scritto il 9 ottobre 2026, prima di scrivere la UI (convenzione di lavoro)
|
||||
|---|---|
|
||||
| Accesso cloud Aira | **funziona** — `pyairahome` 2.3.0, pool Cognito `eu-north-1_cnqyjWtbz` (indice 0), token salvati in `~/.hermes/profiles/carlo/aira_tokens.json` (600) |
|
||||
| Lettura impianto | **funziona** — esterna, interna, ACS attuale/obiettivo, modalità, curve zone, firmware, errori |
|
||||
| Bridge HTTP sul server | **scritto e provato** — `~/workspace/Carlo/Aira/aira_bridge.py`, v0.1.0 |
|
||||
| Bridge HTTP sul server | **scritto e provato** — `~/workspace/Carlo/Aira/aira_bridge.py`, v**0.3.0** (servizio systemd utente attivo) |
|
||||
| Bluetooth sul server | **assente** — nessun adattatore HCI (esclude la via locale BLE su questa macchina) |
|
||||
| SDK Sailfish (`sfdk`) | **assente qui** — build e deploy li fa Carlo dal suo PC |
|
||||
| Jolla Phone 2026 | non raggiungibile dalla rete del server: deploy solo dal PC |
|
||||
@@ -119,6 +119,29 @@ Non verificabile qui (serve il suo PC + il telefono): build RPM, istallazione, U
|
||||
solo per LAN e VPN. *Lezione*: un test da `127.0.0.1` non attraversa quelle regole e non
|
||||
rivela il problema — va provato dalla LAN.
|
||||
|
||||
- **App 0.4.0 — localizzazione ita/eng** (richiesta dell'utente): l'interfaccia si
|
||||
può mettere in italiano o inglese **dalle impostazioni**; di serie segue la lingua
|
||||
del sistema, con **ripiego sull'inglese**. L'inglese è la lingua sorgente delle
|
||||
stringhe (restano nel codice), l'italiano sta in `translations/harbour-aira-it.ts`
|
||||
(**99 stringhe**, aggiornate con `lupdate` e compilate da `lrelease` in build).
|
||||
Nuova classe `Translator` (`src/translator.{h,cpp}`): risolve la lingua **prima**
|
||||
di `createView`, così le `qsTr()` del QML nascono già tradotte, e allinea
|
||||
`QLocale::setDefault` alla lingua scelta — così i numeri seguono la lingua
|
||||
(`23,0 °C` in italiano, `23.0 °C` in inglese): le temperature si formattano in
|
||||
`ApiClient::formatValue`, non più con il `toFixed()` di JavaScript, che avrebbe
|
||||
sempre messo il punto. *Vincolo di piattaforma*: **Qt 5.6 non ha
|
||||
`QQmlEngine::retranslate()`** (arriva con Qt 5.10), quindi installare il
|
||||
traduttore non ritraduce ciò che è già a schermo: al cambio lingua l'app
|
||||
**ricarica la radice QML**. *Trappola di `lupdate`*: riconosce solo le funzioni di
|
||||
traduzione note (`tr()`, `QCoreApplication::translate()`), **non una funzione
|
||||
wrapper scritta da noi** — le etichette di `airajson.cpp` sono quindi chiamate
|
||||
`QCoreApplication::translate("AiraJson", …)` per esteso, altrimenti sparirebbero
|
||||
dal catalogo. Nucleo app: **39/39** (le attese sono cambiate in inglese e il test
|
||||
carica il `.qm` vero come fa `main.cpp`, verificando entrambe le lingue, il
|
||||
ripiego e i formati numerici). Anteprime rigenerate in **due lingue**
|
||||
(`docs/anteprima/` inglese, `docs/anteprima/it/` italiano), impostazioni comprese
|
||||
la nuova riga della lingua.
|
||||
|
||||
## 6. Rischi noti
|
||||
|
||||
- **Dipendenza dal server**: se il bridge è spento, l'app non vede nulla. Mitigazione: unità
|
||||
|
||||
Reference in New Issue
Block a user