feat(i18n): localizzazione interfaccia — italiano, francese, tedesco (v0.4.0)

- translations/: harbour-hermes-it/fr/de.ts (78 stringhe ciascuna, 100%
  tradotte) + caricamento in main.cpp in base alla lingua di sistema
- .pro: CONFIG += sailfishapp_i18n + TRANSLATIONS (pattern ufficiale
  Sailfish: .qm generati in build e installati in
  /usr/share/harbour-hermes/translations)
- stringhe visibili del core in tr(): ApiClient, ChatModel, Recorder
  (VoiceRecorder era gia' ok); plurali dei messaggi corretti
  (1 message / %1 messages) in SessionsPage e CoverPage
- spec: BuildRequires qt5-qttools-linguist + %files translations
- README/BUILD: sezione Localization + workflow lupdate/lrelease

Verificato: lupdate 78/78 per it/fr/de, lrelease OK, e test runtime di
caricamento .qm (tutte le traduzioni risolte nei contesti corretti).
This commit is contained in:
2026-09-12 22:37:32 +02:00
parent 48467b372d
commit 22ccb49424
13 changed files with 1357 additions and 17 deletions
+3 -3
View File
@@ -65,9 +65,9 @@ QString ApiClient::errorFromReply(QNetworkReply *reply, const QByteArray &body)
}
const int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
if (status == 401)
return QStringLiteral("Authentication required");
return tr("Authentication required");
if (status > 0)
return QStringLiteral("HTTP %1").arg(status);
return tr("HTTP %1").arg(status);
return reply->errorString();
}
@@ -152,7 +152,7 @@ void ApiClient::checkAuth()
void ApiClient::login(const QString &password)
{
if (m_settings->baseUrl().isEmpty()) {
setLastError(QStringLiteral("Server address not configured"));
setLastError(tr("Server address not configured"));
return;
}
setLastError(QString());