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
+12 -2
View File
@@ -1,7 +1,9 @@
#include <QGuiApplication>
#include <QLocale>
#include <QQmlContext>
#include <QQuickView>
#include <QDebug>
#include <QTranslator>
#include <sailfishapp.h>
#include "apiclient.h"
@@ -19,9 +21,17 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
// AppConfigLocation = ~/.config/harbour/hermes (zona persistente della sandbox).
app->setOrganizationName(QStringLiteral("harbour"));
app->setApplicationName(QStringLiteral("hermes"));
app->setApplicationVersion(QStringLiteral("0.3.2"));
app->setApplicationVersion(QStringLiteral("0.4.0"));
qDebug() << "harbour-hermes v0.3.2 build" << __DATE__ << __TIME__;
qDebug() << "harbour-hermes v0.4.0 build" << __DATE__ << __TIME__;
// Traduzioni: it/fr/de da /usr/share/harbour-hermes/translations, in base
// alla lingua di sistema (l'inglese e' la lingua sorgente: nessun .qm).
QTranslator translator;
if (translator.load(QLocale(), QStringLiteral("harbour-hermes"),
QStringLiteral("-"),
QStringLiteral("/usr/share/harbour-hermes/translations")))
app->installTranslator(&translator);
Settings settings;
ApiClient api(&settings);