mirror of
https://github.com/Qv2ray/Qv2ray.git
synced 2025-05-20 02:40:20 +08:00
update: refactored QvTranslator helper
This commit is contained in:
parent
3a513385b8
commit
bafa151cb0
@ -1 +1 @@
|
||||
5920
|
||||
5921
|
||||
|
@ -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"))
|
||||
{
|
||||
|
@ -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<QTranslator> pTranslator;
|
||||
};
|
||||
inline std::unique_ptr<common::QvTranslator> Qv2rayTranslator;
|
||||
|
Loading…
Reference in New Issue
Block a user