diff options
| author | Michele Calgaro <michele.calgaro@yahoo.it> | 2025-12-29 18:39:37 +0900 |
|---|---|---|
| committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2025-12-31 17:50:51 +0900 |
| commit | caab44d2c486b491b7be3be795bb711ebc46625f (patch) | |
| tree | 4d4f706875ba7e07c4034c5b8f412da6cecbe90f /src/modules/options/optw_textencoding.cpp | |
| parent | bc34bb6c3424a2d57dbaafc22a883e8bc48471f7 (diff) | |
| download | kvirc-caab44d2c486b491b7be3be795bb711ebc46625f.tar.gz kvirc-caab44d2c486b491b7be3be795bb711ebc46625f.zip | |
Look for translation .mo files in the new location
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'src/modules/options/optw_textencoding.cpp')
| -rw-r--r-- | src/modules/options/optw_textencoding.cpp | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/src/modules/options/optw_textencoding.cpp b/src/modules/options/optw_textencoding.cpp index fc915ed..b44a498 100644 --- a/src/modules/options/optw_textencoding.cpp +++ b/src/modules/options/optw_textencoding.cpp @@ -30,6 +30,10 @@ #include <tqdir.h> #include <tqmessagebox.h> +#include <algorithm> +#include <filesystem> +#include <vector> + TQString g_szPrevSettedLocale; KviTextEncodingOptionsWidget::KviTextEncodingOptionsWidget(TQWidget * parent) @@ -82,15 +86,29 @@ KviTextEncodingOptionsWidget::KviTextEncodingOptionsWidget(TQWidget * parent) TQString szLocaleDir; g_pApp->getGlobalKvircDirectory(szLocaleDir,KviApp::Locale); - TQStringList list=TQDir(szLocaleDir).entryList("kvirc_*.mo",TQDir::Files); - + // Find available translations by checking for existance of kvirc.mo files + namespace fs = std::filesystem; + std::vector<fs::path> translationPaths; + const fs::path localeDir { szLocaleDir.local8Bit().data() }; + for (const auto &dir : fs::directory_iterator(localeDir)) + { + if (!dir.is_directory()) + { + continue; + } + + if (fs::exists(dir.path()/"LC_MESSAGES/kvirc.mo")) + { + translationPaths.push_back(dir.path().filename()); + } + } + std::sort(translationPaths.begin(), translationPaths.end()); + i = 0; iMatch = 0; - - for ( TQStringList::Iterator it = list.begin(); it != list.end(); ++it ) { - TQString szTmp=*it; - szTmp.replace("kvirc_",""); - szTmp.replace(".mo",""); + for (const auto &filename : translationPaths) + { + TQString szTmp { filename.c_str() }; m_pForcedLocaleCombo->insertItem(szTmp); if(KviTQString::equalCI(szTmp,m_szLanguage)) iMatch = i + 2; |
