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:
Carlo
2026-10-10 08:19:20 +02:00
parent e0dcf1f830
commit fddd21e16a
29 changed files with 1230 additions and 190 deletions
+14 -3
View File
@@ -12,11 +12,13 @@ QT += network
SOURCES += \
src/main.cpp \
src/settings.cpp \
src/translator.cpp \
src/apiclient.cpp \
src/airajson.cpp
HEADERS += \
src/settings.h \
src/translator.h \
src/apiclient.h \
src/airajson.h
@@ -31,9 +33,18 @@ OTHER_FILES += \
DISTFILES += $$OTHER_FILES
# Niente catalogo di traduzione in 0.1.0: le stringhe sorgente sono in italiano
# (app personale). Se un giorno serve lo store Harbour si aggiungono i .ts e la
# compilazione con lrelease dentro lo spec, come negli altri progetti.
# Traduzioni: l'inglese e' la lingua sorgente (nessun .qm: Qt lascia le stringhe
# originali quando per il locale non c'e' catalogo = ripiego automatico), mentre
# l'italiano sta in translations/harbour-aira-it.ts.
# Con sailfishapp_i18n qmake compila i .ts in .qm e li installa in
# /usr/share/<TARGET>/translations, che e' dove li cerca src/translator.cpp.
# NIENTE .qm committati: si rigenerano in build.
CONFIG += sailfishapp_i18n
TRANSLATIONS += \
translations/harbour-aira-it.ts
OTHER_FILES += translations/*.ts
# Icone: struttura standard hicolor, path assoluti (gli install manuali con
# path relativi falliscono quando il tar sorgente e' incompleto).