Catalogo .qm nel data dir dell'app (/usr/share/harbour-calibreweb/translations) e caricamento esplicito in main.cpp con risoluzione lingua system via QLocale — il validatore RPM rifiuta /usr/share/translations
This commit is contained in:
+13
-5
@@ -1,5 +1,6 @@
|
||||
#include <QDebug>
|
||||
#include <QGuiApplication>
|
||||
#include <QLocale>
|
||||
#include <QQuickView>
|
||||
#include <QQmlContext>
|
||||
#include <QTranslator>
|
||||
@@ -16,10 +17,17 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
|
||||
|
||||
Settings settings;
|
||||
|
||||
// User-chosen language (Settings -> Language). "system" = Sailfish UI
|
||||
// language (libsailfishapp already installed its translator). "en" =
|
||||
// force English (remove all translators). "it" = force Italian.
|
||||
const QString lang = settings.language();
|
||||
// User-chosen language (Settings -> Language). "system" = follow the
|
||||
// Sailfish UI language. "en" = force English. "it" = force Italian.
|
||||
// The .qm lives in the app data dir (the RPM validator rejects
|
||||
// /usr/share/translations), so libsailfishapp's auto-load cannot be
|
||||
// used: resolve the language here and install our own translator.
|
||||
QString lang = settings.language();
|
||||
if (lang == "system") {
|
||||
const QString sys = QLocale::system().name();
|
||||
lang = sys.startsWith(QLatin1String("it")) ? QStringLiteral("it")
|
||||
: QStringLiteral("en");
|
||||
}
|
||||
if (lang == "en" || lang == "it") {
|
||||
const QList<QTranslator *> trs = app->findChildren<QTranslator *>();
|
||||
foreach (QTranslator *t, trs) {
|
||||
@@ -29,7 +37,7 @@ Q_DECL_EXPORT int main(int argc, char *argv[])
|
||||
if (lang == "it") {
|
||||
QTranslator *translator = new QTranslator(app);
|
||||
if (translator->load(QStringLiteral("harbour-calibreweb_it"),
|
||||
QStringLiteral("/usr/share/translations"))) {
|
||||
QStringLiteral("/usr/share/harbour-calibreweb/translations"))) {
|
||||
app->installTranslator(translator);
|
||||
} else {
|
||||
qWarning() << "harbour-calibreweb: cannot load harbour-calibreweb_it.qm";
|
||||
|
||||
Reference in New Issue
Block a user