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()
|
QvTranslator::QvTranslator()
|
||||||
{
|
{
|
||||||
GetAvailableLanguages();
|
refreshTranslations();
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList QvTranslator::GetAvailableLanguages()
|
void QvTranslator::refreshTranslations()
|
||||||
{
|
{
|
||||||
|
searchPaths = getLanguageSearchPaths();
|
||||||
languages.clear();
|
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", ""); });
|
std::transform(languages.begin(), languages.end(), languages.begin(), [](QString &fileName) { return fileName.replace(".qm", ""); });
|
||||||
languages.removeDuplicates();
|
languages.removeDuplicates();
|
||||||
DEBUG(MODULE_UI, "Found translations: " + languages.join(" "))
|
DEBUG(MODULE_UI, "Found translations: " + languages.join(" "))
|
||||||
return languages;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QvTranslator::InstallTranslation(const QString &code)
|
bool QvTranslator::InstallTranslation(const QString &code)
|
||||||
{
|
{
|
||||||
for (const auto &path : getLanguageSearchPaths())
|
for (const auto &path : searchPaths)
|
||||||
{
|
{
|
||||||
if (FileExistsIn(QDir(path), code + ".qm"))
|
if (FileExistsIn(QDir(path), code + ".qm"))
|
||||||
{
|
{
|
||||||
|
@ -16,7 +16,10 @@ namespace Qv2ray::common
|
|||||||
* @brief get the available languages.
|
* @brief get the available languages.
|
||||||
* @return (if available) languages (zh_CN, en_US, ...)
|
* @return (if available) languages (zh_CN, en_US, ...)
|
||||||
*/
|
*/
|
||||||
QStringList GetAvailableLanguages();
|
const inline QStringList GetAvailableLanguages() const
|
||||||
|
{
|
||||||
|
return languages;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @brief reload the translation from file
|
* @brief reload the translation from file
|
||||||
* @param code eg: en_US, zh_CN, ...
|
* @param code eg: en_US, zh_CN, ...
|
||||||
@ -24,7 +27,9 @@ namespace Qv2ray::common
|
|||||||
bool InstallTranslation(const QString &);
|
bool InstallTranslation(const QString &);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void refreshTranslations();
|
||||||
QStringList languages;
|
QStringList languages;
|
||||||
|
QStringList searchPaths;
|
||||||
std::unique_ptr<QTranslator> pTranslator;
|
std::unique_ptr<QTranslator> pTranslator;
|
||||||
};
|
};
|
||||||
inline std::unique_ptr<common::QvTranslator> Qv2rayTranslator;
|
inline std::unique_ptr<common::QvTranslator> Qv2rayTranslator;
|
||||||
|
Loading…
Reference in New Issue
Block a user