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
+2 -2
View File
@@ -88,12 +88,12 @@ void ChatModel::send(const QString &text)
// "non fare nulla" senza che si capisse il perché.
if (m_sessionId.isEmpty()) {
qDebug() << "[chat] send rifiutato: nessuna sessione aperta";
emit notice(QStringLiteral("No session open"));
emit notice(tr("No session open"));
return;
}
if (m_busy) {
qDebug() << "[chat] send rifiutato: un turno e' gia' in corso";
emit notice(QStringLiteral("Wait for the current reply"));
emit notice(tr("Wait for the current reply"));
return;
}
qDebug() << "[chat] invio:" << trimmed.size() << "caratteri";