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:
+22
-17
@@ -1,8 +1,10 @@
|
||||
#include "airajson.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
#include <QJsonValue>
|
||||
#include <QLocale>
|
||||
#include <QUrl>
|
||||
|
||||
namespace AiraJson {
|
||||
@@ -49,35 +51,35 @@ QString modeLabel(const QString &operatingStatus)
|
||||
{
|
||||
const QString s = operatingStatus;
|
||||
if (s == QLatin1String("OPERATING_STATUS_AUTO"))
|
||||
return QStringLiteral("Automatico");
|
||||
return QCoreApplication::translate("AiraJson", "Automatic");
|
||||
if (s == QLatin1String("OPERATING_STATUS_HEATING"))
|
||||
return QStringLiteral("Riscaldamento");
|
||||
return QCoreApplication::translate("AiraJson", "Heating");
|
||||
if (s == QLatin1String("OPERATING_STATUS_COOLING"))
|
||||
return QStringLiteral("Raffrescamento");
|
||||
return QCoreApplication::translate("AiraJson", "Cooling");
|
||||
if (s == QLatin1String("OPERATING_STATUS_HOT_WATER"))
|
||||
return QStringLiteral("Acqua calda");
|
||||
return QCoreApplication::translate("AiraJson", "Hot water");
|
||||
if (s == QLatin1String("OPERATING_STATUS_STANDBY"))
|
||||
return QStringLiteral("Stand-by");
|
||||
return QCoreApplication::translate("AiraJson", "Standby");
|
||||
if (s == QLatin1String("OPERATING_STATUS_OFF"))
|
||||
return QStringLiteral("Spento");
|
||||
return QCoreApplication::translate("AiraJson", "Off");
|
||||
// Stato della pompa per zona (state.zoneN_mode).
|
||||
if (s == QLatin1String("PUMP_MODE_STATE_HEATING"))
|
||||
return QStringLiteral("Riscaldamento");
|
||||
return QCoreApplication::translate("AiraJson", "Heating");
|
||||
if (s == QLatin1String("PUMP_MODE_STATE_COOLING"))
|
||||
return QStringLiteral("Raffrescamento");
|
||||
return QCoreApplication::translate("AiraJson", "Cooling");
|
||||
if (s == QLatin1String("PUMP_MODE_STATE_HOT_WATER"))
|
||||
return QStringLiteral("Acqua calda");
|
||||
return QCoreApplication::translate("AiraJson", "Hot water");
|
||||
if (s == QLatin1String("PUMP_MODE_STATE_IDLE"))
|
||||
return QStringLiteral("In attesa");
|
||||
return QCoreApplication::translate("AiraJson", "Idle");
|
||||
if (s == QLatin1String("PUMP_MODE_STATE_STANDBY"))
|
||||
return QStringLiteral("Stand-by");
|
||||
return QCoreApplication::translate("AiraJson", "Standby");
|
||||
if (s == QLatin1String("PUMP_MODE_STATE_OFF"))
|
||||
return QStringLiteral("Spento");
|
||||
return QCoreApplication::translate("AiraJson", "Off");
|
||||
// Stato operativo della pompa (state.pump_active_state).
|
||||
if (s == QLatin1String("PUMP_ACTIVE_STATE_IDLE"))
|
||||
return QStringLiteral("Ferma");
|
||||
return QCoreApplication::translate("AiraJson", "Stopped");
|
||||
if (s == QLatin1String("PUMP_ACTIVE_STATE_RUNNING"))
|
||||
return QStringLiteral("In funzione");
|
||||
return QCoreApplication::translate("AiraJson", "Running");
|
||||
if (s.isEmpty())
|
||||
return QStringLiteral("—");
|
||||
// Sconosciuto: togliamo il prefisso e mostriamo il resto, minuscolo.
|
||||
@@ -97,7 +99,10 @@ QString formatValue(const QVariant &value)
|
||||
bool isNumber = false;
|
||||
const double d = value.toDouble(&isNumber);
|
||||
if (isNumber)
|
||||
return QString::number(d, 'f', 1);
|
||||
// QLocale() = locale predefinito, che translator.cpp allinea alla lingua
|
||||
// dell'app: separatore decimale col punto in inglese, con la virgola in
|
||||
// italiano (QString::number darebbe sempre il punto).
|
||||
return QLocale().toString(d, 'f', 1);
|
||||
|
||||
const QString s = value.toString();
|
||||
return s.isEmpty() ? QStringLiteral("—") : s;
|
||||
@@ -122,8 +127,8 @@ QString errorMessage(const QByteArray &body, int httpStatus)
|
||||
return msg;
|
||||
}
|
||||
if (httpStatus == 0)
|
||||
return QStringLiteral("server non raggiungibile");
|
||||
return QStringLiteral("errore HTTP %1").arg(httpStatus);
|
||||
return QCoreApplication::translate("AiraJson", "server unreachable");
|
||||
return QCoreApplication::translate("AiraJson", "HTTP error %1").arg(httpStatus);
|
||||
}
|
||||
|
||||
} // namespace AiraJson
|
||||
|
||||
Reference in New Issue
Block a user