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:
+3
-3
@@ -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());
|
||||
|
||||
+2
-2
@@ -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";
|
||||
|
||||
+12
-2
@@ -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);
|
||||
|
||||
+1
-1
@@ -69,7 +69,7 @@ bool Recorder::start()
|
||||
const QString container = chooseContainer(m_rec->supportedContainers());
|
||||
const QString codec = chooseCodec(m_rec->supportedAudioCodecs());
|
||||
if (container.isEmpty() || codec.isEmpty()) {
|
||||
emit failed(QStringLiteral("No audio format available"));
|
||||
emit failed(tr("No audio format available"));
|
||||
return false;
|
||||
}
|
||||
m_fallbackTried = false;
|
||||
|
||||
Reference in New Issue
Block a user