Add language setting

This commit is contained in:
2025-10-20 21:29:59 +02:00
parent 56bba27ae3
commit b16ae3a9ee
4 changed files with 45 additions and 4 deletions
+1 -1
Submodule libXISF updated: 556bb22d26...2e74d94641
+14 -2
View File
@@ -3,6 +3,7 @@
#include <QSurfaceFormat> #include <QSurfaceFormat>
#include <QTranslator> #include <QTranslator>
#include <QCommandLineParser> #include <QCommandLineParser>
#include <QSettings>
#include <stdlib.h> #include <stdlib.h>
#include "../thumbnailer/genthumbnail.h" #include "../thumbnailer/genthumbnail.h"
@@ -76,8 +77,19 @@ int main(int argc, char *argv[])
QTranslator translator; QTranslator translator;
QTranslator translator2; QTranslator translator2;
if(translator.load(QLocale(), "tenmon", "_", ":/translations")) QSettings settings;
a.installTranslator(&translator); QString lang = settings.value("settings/lang").toString();
if(lang.isEmpty())
{
if(translator.load(QLocale(), "tenmon", "_", ":/translations"))
a.installTranslator(&translator);
}
else
{
if(translator.load("tenmon_" + lang, ":/translations"))
a.installTranslator(&translator);
}
if(translator2.load(QLocale(), "tenmon", "_", a.applicationDirPath())) if(translator2.load(QLocale(), "tenmon", "_", a.applicationDirPath()))
a.installTranslator(&translator2); a.installTranslator(&translator2);
+29 -1
View File
@@ -129,11 +129,30 @@ SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent)
delete item; delete item;
}); });
m_lang = new QComboBox(this);
m_lang->addItems({"English", "Français", "Slovenčina", "Português"});
QString lang;
switch(QLocale().language())
{
default:
case QLocale::English: lang = "en"; break;
case QLocale::French: lang = "fr"; break;
case QLocale::Slovak: lang = "sk"; break;
case QLocale::Portuguese: lang = "pt_BR"; break;
}
lang = settings.value("settings/lang", lang).toString();
if(lang == "en")m_lang->setCurrentIndex(0);
else if(lang == "fr")m_lang->setCurrentIndex(1);
else if(lang == "sk")m_lang->setCurrentIndex(2);
else if(lang == "pt_BR")m_lang->setCurrentIndex(3);
layout->addRow(tr("Image preload count"), m_preloadImages); layout->addRow(tr("Image preload count"), m_preloadImages);
layout->addRow(tr("Thumbnails size"), m_thumSize); layout->addRow(tr("Thumbnails size"), m_thumSize);
layout->addRow(tr("Saturation"), m_saturation); layout->addRow(tr("Saturation"), m_saturation);
layout->addRow(tr("Slideshow interval"), m_slideShowTime); layout->addRow(tr("Slideshow interval"), m_slideShowTime);
layout->addRow(tr("Image interpolation"), m_filtering); layout->addRow(tr("Image interpolation"), m_filtering);
layout->addRow(tr("Language"), m_lang);
layout->addRow(m_qualityThumbnail); layout->addRow(m_qualityThumbnail);
layout->addRow(m_useNativeDialog); layout->addRow(m_useNativeDialog);
layout->addRow(m_bestFit); layout->addRow(m_bestFit);
@@ -150,7 +169,6 @@ SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent)
#endif #endif
//layout->addRow(new QLabel(tr("Changes in settings will take effect after program restart."))); //layout->addRow(new QLabel(tr("Changes in settings will take effect after program restart.")));
QDialogButtonBox *buttonBox = new QDialogButtonBox(this); QDialogButtonBox *buttonBox = new QDialogButtonBox(this);
buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
@@ -237,4 +255,14 @@ void SettingsDialog::saveSettings()
} }
settings.setValue("settings/headerhighlightkeywords", headerHighlight.keys()); settings.setValue("settings/headerhighlightkeywords", headerHighlight.keys());
settings.setValue("settings/headerhighlightcolors", colors); settings.setValue("settings/headerhighlightcolors", colors);
QString lang;
int langIdx = m_lang->currentIndex();
switch(langIdx)
{
case 0: lang = "en"; break;
case 1: lang = "fr"; break;
case 2: lang = "sk"; break;
case 3: lang = "pt_BR"; break;
}
settings.setValue("settings/lang", lang);
} }
+1
View File
@@ -32,6 +32,7 @@ private:
QListWidget *m_headerHighlight; QListWidget *m_headerHighlight;
QColor m_color = Qt::yellow; QColor m_color = Qt::yellow;
QLineEdit *m_keyword; QLineEdit *m_keyword;
QComboBox *m_lang;
}; };
#endif // SETTINGSDIALOG_H #endif // SETTINGSDIALOG_H