diff --git a/makespec/BUILDVERSION b/makespec/BUILDVERSION index b5c939ef..b8f4ae2c 100644 --- a/makespec/BUILDVERSION +++ b/makespec/BUILDVERSION @@ -1 +1 @@ -5920 +5921 diff --git a/src/components/translations/QvTranslator.cpp b/src/components/translations/QvTranslator.cpp index 6209b385..9fd05ec4 100644 --- a/src/components/translations/QvTranslator.cpp +++ b/src/components/translations/QvTranslator.cpp @@ -25,25 +25,25 @@ namespace Qv2ray::common { QvTranslator::QvTranslator() { - GetAvailableLanguages(); + refreshTranslations(); } - QStringList QvTranslator::GetAvailableLanguages() + void QvTranslator::refreshTranslations() { + searchPaths = getLanguageSearchPaths(); languages.clear(); - for (const auto &path : getLanguageSearchPaths()) + for (const auto &path : searchPaths) { - languages << QDir(path).entryList(QStringList{ "*.qm" }, QDir::Hidden | QDir::Files); + languages << QDir(path).entryList({ "*.qm" }, QDir::Hidden | QDir::Files); } std::transform(languages.begin(), languages.end(), languages.begin(), [](QString &fileName) { return fileName.replace(".qm", ""); }); languages.removeDuplicates(); DEBUG(MODULE_UI, "Found translations: " + languages.join(" ")) - return languages; } bool QvTranslator::InstallTranslation(const QString &code) { - for (const auto &path : getLanguageSearchPaths()) + for (const auto &path : searchPaths) { if (FileExistsIn(QDir(path), code + ".qm")) { diff --git a/src/components/translations/QvTranslator.hpp b/src/components/translations/QvTranslator.hpp index c18c7bfa..47dd00cb 100644 --- a/src/components/translations/QvTranslator.hpp +++ b/src/components/translations/QvTranslator.hpp @@ -16,7 +16,10 @@ namespace Qv2ray::common * @brief get the available languages. * @return (if available) languages (zh_CN, en_US, ...) */ - QStringList GetAvailableLanguages(); + const inline QStringList GetAvailableLanguages() const + { + return languages; + } /** * @brief reload the translation from file * @param code eg: en_US, zh_CN, ... @@ -24,7 +27,9 @@ namespace Qv2ray::common bool InstallTranslation(const QString &); private: + void refreshTranslations(); QStringList languages; + QStringList searchPaths; std::unique_ptr pTranslator; }; inline std::unique_ptr Qv2rayTranslator;