Compare commits

..

12 Commits

Author SHA1 Message Date
pokamest 0f00dc4e7c Revert "Update amneziavpn_ru.ts" 2024-02-05 10:48:31 +00:00
pokamest 0f04cf6eae Merge pull request #559 from amnezia-vpn/KsZnak-translation-ru-ex
Update amneziavpn_ru.ts
2024-02-05 02:34:54 -08:00
KsZnak dc76ad820f Update amneziavpn_ru.ts 2024-02-05 01:39:39 +02:00
agalehaga fd98ef1250 Reboot server button (#553)
* add button Reboot Server
2024-02-04 16:52:03 +00:00
pokamest cdf46c968a Merge pull request #480 from amnezia-vpn/feature/error-code-output
added error code output
2024-02-01 05:05:36 -08:00
pokamest 72b20ef563 Version bump - 4.3.0.0 2024-01-31 20:37:10 +00:00
pokamest 30a0ac0def Merge pull request #527 from amnezia-vpn/feature/api-awg
added support for awg configs for api
2024-01-31 12:04:54 -08:00
vladimir.kuznetsov 4723019624 Merge branch 'dev' of github.com:amnezia-vpn/amnezia-client into HEAD 2024-01-31 12:42:19 +07:00
vladimir.kuznetsov 1be9078b6c added break after each line in errorstrings 2024-01-31 12:42:05 +07:00
vladimir.kuznetsov e7040f7cc8 specified error codes 2024-01-29 21:33:35 +07:00
vladimir.kuznetsov 3240aa3cb3 Merge branch 'dev' of github.com:amnezia-vpn/amnezia-client into HEAD 2024-01-28 21:24:23 +07:00
vladimir.kuznetsov 11641c5e22 added error code output 2023-12-24 21:11:47 +07:00
14 changed files with 597 additions and 379 deletions
+2 -2
View File
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.25.0 FATAL_ERROR)
set(PROJECT AmneziaVPN)
project(${PROJECT} VERSION 4.2.1.1
project(${PROJECT} VERSION 4.3.0.0
DESCRIPTION "AmneziaVPN"
HOMEPAGE_URL "https://amnezia.org/"
)
@@ -11,7 +11,7 @@ string(TIMESTAMP CURRENT_DATE "%Y-%m-%d")
set(RELEASE_DATE "${CURRENT_DATE}")
set(APP_MAJOR_VERSION ${CMAKE_PROJECT_VERSION_MAJOR}.${CMAKE_PROJECT_VERSION_MINOR}.${CMAKE_PROJECT_VERSION_PATCH})
set(APP_ANDROID_VERSION_CODE 43)
set(APP_ANDROID_VERSION_CODE 44)
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
set(MZ_PLATFORM_NAME "linux")
@@ -225,6 +225,24 @@ ErrorCode ServerController::uploadFileToHost(const ServerCredentials &credential
return ErrorCode::NoError;
}
ErrorCode ServerController::rebootServer(const ServerCredentials &credentials)
{
QString script = QString("sudo reboot");
QString stdOut;
auto cbReadStdOut = [&](const QString &data, libssh::Client &) {
stdOut += data;
return ErrorCode::NoError;
};
auto cbReadStdErr = [&](const QString &data, libssh::Client &) {
stdOut += data + "\n";
return ErrorCode::NoError;
};
return runScript(credentials, script, cbReadStdOut, cbReadStdErr);
}
ErrorCode ServerController::removeAllContainers(const ServerCredentials &credentials)
{
return runScript(credentials, amnezia::scriptData(SharedScriptType::remove_all_containers));
@@ -22,6 +22,7 @@ public:
typedef QList<QPair<QString, QString>> Vars;
ErrorCode rebootServer(const ServerCredentials &credentials);
ErrorCode removeAllContainers(const ServerCredentials &credentials);
ErrorCode removeContainer(const ServerCredentials &credentials, DockerContainer container);
ErrorCode setupContainer(const ServerCredentials &credentials, DockerContainer container, QJsonObject &config,
+74 -59
View File
@@ -4,77 +4,92 @@
#include <QMetaEnum>
#include <QObject>
namespace amnezia {
constexpr const qint16 qrMagicCode = 1984;
struct ServerCredentials
namespace amnezia
{
QString hostName;
QString userName;
QString secretData;
int port = 22;
bool isValid() const { return !hostName.isEmpty() && !userName.isEmpty() && !secretData.isEmpty() && port > 0; }
};
constexpr const qint16 qrMagicCode = 1984;
enum ErrorCode
{
// General error codes
NoError = 0,
UnknownError,
InternalError,
NotImplementedError,
struct ServerCredentials
{
QString hostName;
QString userName;
QString secretData;
int port = 22;
// Server errors
ServerCheckFailed,
ServerPortAlreadyAllocatedError,
ServerContainerMissingError,
ServerDockerFailedError,
ServerCancelInstallation,
ServerUserNotInSudo,
ServerPacketManagerError,
bool isValid() const
{
return !hostName.isEmpty() && !userName.isEmpty() && !secretData.isEmpty() && port > 0;
}
};
// Ssh connection errors
SshRequestDeniedError, SshInterruptedError, SshInternalError,
SshPrivateKeyError, SshPrivateKeyFormatError, SshTimeoutError,
enum ErrorCode {
// General error codes
NoError = 0,
UnknownError = 100,
InternalError = 101,
NotImplementedError = 102,
// Ssh sftp errors
SshSftpEofError, SshSftpNoSuchFileError, SshSftpPermissionDeniedError,
SshSftpFailureError, SshSftpBadMessageError, SshSftpNoConnectionError,
SshSftpConnectionLostError, SshSftpOpUnsupportedError, SshSftpInvalidHandleError,
SshSftpNoSuchPathError, SshSftpFileAlreadyExistsError, SshSftpWriteProtectError,
SshSftpNoMediaError,
// Server errors
ServerCheckFailed = 200,
ServerPortAlreadyAllocatedError = 201,
ServerContainerMissingError = 202,
ServerDockerFailedError = 203,
ServerCancelInstallation = 204,
ServerUserNotInSudo = 205,
ServerPacketManagerError = 206,
// Local errors
OpenVpnConfigMissing,
OpenVpnManagementServerError,
ConfigMissing,
// Ssh connection errors
SshRequestDeniedError = 300,
SshInterruptedError = 301,
SshInternalError = 302,
SshPrivateKeyError = 303,
SshPrivateKeyFormatError = 304,
SshTimeoutError = 305,
// Distro errors
OpenVpnExecutableMissing,
ShadowSocksExecutableMissing,
CloakExecutableMissing,
AmneziaServiceConnectionFailed,
ExecutableMissing,
// Ssh sftp errors
SshSftpEofError = 400,
SshSftpNoSuchFileError = 401,
SshSftpPermissionDeniedError = 402,
SshSftpFailureError = 403,
SshSftpBadMessageError = 404,
SshSftpNoConnectionError = 405,
SshSftpConnectionLostError = 406,
SshSftpOpUnsupportedError = 407,
SshSftpInvalidHandleError = 408,
SshSftpNoSuchPathError = 409,
SshSftpFileAlreadyExistsError = 410,
SshSftpWriteProtectError = 411,
SshSftpNoMediaError = 412,
// VPN errors
OpenVpnAdaptersInUseError,
OpenVpnUnknownError,
OpenVpnTapAdapterError,
AddressPoolError,
// Local errors
OpenVpnConfigMissing = 500,
OpenVpnManagementServerError = 501,
ConfigMissing = 502,
// 3rd party utils errors
OpenSslFailed,
ShadowSocksExecutableCrashed,
CloakExecutableCrashed,
// Distro errors
OpenVpnExecutableMissing = 600,
ShadowSocksExecutableMissing = 601,
CloakExecutableMissing = 602,
AmneziaServiceConnectionFailed = 603,
ExecutableMissing = 604,
// import and install errors
ImportInvalidConfigError,
// VPN errors
OpenVpnAdaptersInUseError = 700,
OpenVpnUnknownError = 701,
OpenVpnTapAdapterError = 702,
AddressPoolError = 703,
// Android errors
AndroidError
};
// 3rd party utils errors
OpenSslFailed = 800,
ShadowSocksExecutableCrashed = 801,
CloakExecutableCrashed = 802,
// import and install errors
ImportInvalidConfigError = 900,
// Android errors
AndroidError = 1000
};
} // namespace amnezia
+46 -42
View File
@@ -2,70 +2,74 @@
using namespace amnezia;
QString errorString(ErrorCode code){
QString errorString(ErrorCode code) {
QString errorMessage;
switch (code) {
// General error codes
case(NoError): return QObject::tr("No error");
case(UnknownError): return QObject::tr("Unknown Error");
case(NotImplementedError): return QObject::tr("Function not implemented");
case(NoError): errorMessage = QObject::tr("No error"); break;
case(UnknownError): errorMessage = QObject::tr("Unknown Error"); break;
case(NotImplementedError): errorMessage = QObject::tr("Function not implemented"); break;
// Server errors
case(ServerCheckFailed): return QObject::tr("Server check failed");
case(ServerPortAlreadyAllocatedError): return QObject::tr("Server port already used. Check for another software");
case(ServerContainerMissingError): return QObject::tr("Server error: Docker container missing");
case(ServerDockerFailedError): return QObject::tr("Server error: Docker failed");
case(ServerCancelInstallation): return QObject::tr("Installation canceled by user");
case(ServerUserNotInSudo): return QObject::tr("The user does not have permission to use sudo");
case(ServerCheckFailed): errorMessage = QObject::tr("Server check failed"); break;
case(ServerPortAlreadyAllocatedError): errorMessage = QObject::tr("Server port already used. Check for another software"); break;
case(ServerContainerMissingError): errorMessage = QObject::tr("Server error: Docker container missing"); break;
case(ServerDockerFailedError): errorMessage = QObject::tr("Server error: Docker failed"); break;
case(ServerCancelInstallation): errorMessage = QObject::tr("Installation canceled by user"); break;
case(ServerUserNotInSudo): errorMessage = QObject::tr("The user does not have permission to use sudo"); break;
// Libssh errors
case(SshRequestDeniedError): return QObject::tr("Ssh request was denied");
case(SshInterruptedError): return QObject::tr("Ssh request was interrupted");
case(SshInternalError): return QObject::tr("Ssh internal error");
case(SshPrivateKeyError): return QObject::tr("Invalid private key or invalid passphrase entered");
case(SshPrivateKeyFormatError): return QObject::tr("The selected private key format is not supported, use openssh ED25519 key types or PEM key types");
case(SshTimeoutError): return QObject::tr("Timeout connecting to server");
case(SshRequestDeniedError): errorMessage = QObject::tr("Ssh request was denied"); break;
case(SshInterruptedError): errorMessage = QObject::tr("Ssh request was interrupted"); break;
case(SshInternalError): errorMessage = QObject::tr("Ssh internal error"); break;
case(SshPrivateKeyError): errorMessage = QObject::tr("Invalid private key or invalid passphrase entered"); break;
case(SshPrivateKeyFormatError): errorMessage = QObject::tr("The selected private key format is not supported, use openssh ED25519 key types or PEM key types"); break;
case(SshTimeoutError): errorMessage = QObject::tr("Timeout connecting to server"); break;
// Libssh sftp errors
case(SshSftpEofError): return QObject::tr("Sftp error: End-of-file encountered");
case(SshSftpNoSuchFileError): return QObject::tr("Sftp error: File does not exist");
case(SshSftpPermissionDeniedError): return QObject::tr("Sftp error: Permission denied");
case(SshSftpFailureError): return QObject::tr("Sftp error: Generic failure");
case(SshSftpBadMessageError): return QObject::tr("Sftp error: Garbage received from server");
case(SshSftpNoConnectionError): return QObject::tr("Sftp error: No connection has been set up");
case(SshSftpConnectionLostError): return QObject::tr("Sftp error: There was a connection, but we lost it");
case(SshSftpOpUnsupportedError): return QObject::tr("Sftp error: Operation not supported by libssh yet");
case(SshSftpInvalidHandleError): return QObject::tr("Sftp error: Invalid file handle");
case(SshSftpNoSuchPathError): return QObject::tr("Sftp error: No such file or directory path exists");
case(SshSftpFileAlreadyExistsError): return QObject::tr("Sftp error: An attempt to create an already existing file or directory has been made");
case(SshSftpWriteProtectError): return QObject::tr("Sftp error: Write-protected filesystem");
case(SshSftpNoMediaError): return QObject::tr("Sftp error: No media was in remote drive");
case(SshSftpEofError): errorMessage = QObject::tr("Sftp error: End-of-file encountered"); break;
case(SshSftpNoSuchFileError): errorMessage = QObject::tr("Sftp error: File does not exist"); break;
case(SshSftpPermissionDeniedError): errorMessage = QObject::tr("Sftp error: Permission denied"); break;
case(SshSftpFailureError): errorMessage = QObject::tr("Sftp error: Generic failure"); break;
case(SshSftpBadMessageError): errorMessage = QObject::tr("Sftp error: Garbage received from server"); break;
case(SshSftpNoConnectionError): errorMessage = QObject::tr("Sftp error: No connection has been set up"); break;
case(SshSftpConnectionLostError): errorMessage = QObject::tr("Sftp error: There was a connection, but we lost it"); break;
case(SshSftpOpUnsupportedError): errorMessage = QObject::tr("Sftp error: Operation not supported by libssh yet"); break;
case(SshSftpInvalidHandleError): errorMessage = QObject::tr("Sftp error: Invalid file handle"); break;
case(SshSftpNoSuchPathError): errorMessage = QObject::tr("Sftp error: No such file or directory path exists"); break;
case(SshSftpFileAlreadyExistsError): errorMessage = QObject::tr("Sftp error: An attempt to create an already existing file or directory has been made"); break;
case(SshSftpWriteProtectError): errorMessage = QObject::tr("Sftp error: Write-protected filesystem"); break;
case(SshSftpNoMediaError): errorMessage = QObject::tr("Sftp error: No media was in remote drive"); break;
// Local errors
case (OpenVpnConfigMissing): return QObject::tr("OpenVPN config missing");
case (OpenVpnManagementServerError): return QObject::tr("OpenVPN management server error");
case (OpenVpnConfigMissing): errorMessage = QObject::tr("OpenVPN config missing"); break;
case (OpenVpnManagementServerError): errorMessage = QObject::tr("OpenVPN management server error"); break;
// Distro errors
case (OpenVpnExecutableMissing): return QObject::tr("OpenVPN executable missing");
case (ShadowSocksExecutableMissing): return QObject::tr("ShadowSocks (ss-local) executable missing");
case (CloakExecutableMissing): return QObject::tr("Cloak (ck-client) executable missing");
case (AmneziaServiceConnectionFailed): return QObject::tr("Amnezia helper service error");
case (OpenSslFailed): return QObject::tr("OpenSSL failed");
case (OpenVpnExecutableMissing): errorMessage = QObject::tr("OpenVPN executable missing"); break;
case (ShadowSocksExecutableMissing): errorMessage = QObject::tr("ShadowSocks (ss-local) executable missing"); break;
case (CloakExecutableMissing): errorMessage = QObject::tr("Cloak (ck-client) executable missing"); break;
case (AmneziaServiceConnectionFailed): errorMessage = QObject::tr("Amnezia helper service error"); break;
case (OpenSslFailed): errorMessage = QObject::tr("OpenSSL failed"); break;
// VPN errors
case (OpenVpnAdaptersInUseError): return QObject::tr("Can't connect: another VPN connection is active");
case (OpenVpnTapAdapterError): return QObject::tr("Can't setup OpenVPN TAP network adapter");
case (AddressPoolError): return QObject::tr("VPN pool error: no available addresses");
case (OpenVpnAdaptersInUseError): errorMessage = QObject::tr("Can't connect: another VPN connection is active"); break;
case (OpenVpnTapAdapterError): errorMessage = QObject::tr("Can't setup OpenVPN TAP network adapter"); break;
case (AddressPoolError): errorMessage = QObject::tr("VPN pool error: no available addresses"); break;
case (ImportInvalidConfigError): return QObject::tr("The config does not contain any containers and credentials for connecting to the server");
case (ImportInvalidConfigError): errorMessage = QObject::tr("The config does not contain any containers and credentials for connecting to the server"); break;
// Android errors
case (AndroidError): return QObject::tr("VPN connection error");
case (AndroidError): errorMessage = QObject::tr("VPN connection error"); break;
case(InternalError):
default:
return QObject::tr("Internal error");
errorMessage = QObject::tr("Internal error"); break;
}
return QObject::tr("ErrorCode: %1. ").arg(code) + errorMessage;
}
QDebug operator<<(QDebug debug, const ErrorCode &e)
+2
View File
@@ -33,6 +33,7 @@ QString amnezia::scriptName(SharedScriptType type)
case SharedScriptType::check_connection: return QLatin1String("check_connection.sh");
case SharedScriptType::check_server_is_busy: return QLatin1String("check_server_is_busy.sh");
case SharedScriptType::check_user_in_sudo: return QLatin1String("check_user_in_sudo.sh");
default: return QString();
}
}
@@ -46,6 +47,7 @@ QString amnezia::scriptName(ProtocolScriptType type)
case ProtocolScriptType::openvpn_template: return QLatin1String("template.ovpn");
case ProtocolScriptType::wireguard_template: return QLatin1String("template.conf");
case ProtocolScriptType::awg_template: return QLatin1String("template.conf");
default: return QString();
}
}
+131 -91
View File
@@ -133,12 +133,12 @@
<context>
<name>HomeContainersListView</name>
<message>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="58"/>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="76"/>
<source>Unable change protocol while there is an active connection</source>
<translation>امکان تغییر پروتکل در هنگام متصل بودن وجود ندارد</translation>
</message>
<message>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="68"/>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="85"/>
<source>The selected protocol is not supported on the current platform</source>
<translation>پروتکل انتخاب شده بر روی این پلتفرم پشتیبانی نمیشود</translation>
</message>
@@ -150,7 +150,7 @@
<context>
<name>ImportController</name>
<message>
<location filename="../ui/controllers/importController.cpp" line="411"/>
<location filename="../ui/controllers/importController.cpp" line="416"/>
<source>Scanned %1 of %2.</source>
<translation>ارزیابی %1 از %2.</translation>
</message>
@@ -190,26 +190,31 @@ Already installed containers were found on the server. All installed containers
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="305"/>
<source>Server &apos;%1&apos; was rebooted</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="314"/>
<source>Server &apos;%1&apos; was removed</source>
<translation>سرور %1 حذف شد</translation>
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="315"/>
<location filename="../ui/controllers/installController.cpp" line="324"/>
<source>All containers from server &apos;%1&apos; have been removed</source>
<translation>تمام کانتینترها از سرور %1 حذف شدند</translation>
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="332"/>
<location filename="../ui/controllers/installController.cpp" line="341"/>
<source>%1 has been removed from the server &apos;%2&apos;</source>
<translation>%1 از سرور %2 حذف شد</translation>
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="478"/>
<location filename="../ui/controllers/installController.cpp" line="487"/>
<source>Please login as the user</source>
<translation>لطفا به عنوان کاربر وارد شوید</translation>
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="506"/>
<location filename="../ui/controllers/installController.cpp" line="515"/>
<source>Server added successfully</source>
<translation>سرور با موفقیت اضافه شد</translation>
</message>
@@ -277,17 +282,17 @@ Already installed containers were found on the server. All installed containers
<context>
<name>PageHome</name>
<message>
<location filename="../ui/qml/Pages2/PageHome.qml" line="317"/>
<location filename="../ui/qml/Pages2/PageHome.qml" line="318"/>
<source>VPN protocol</source>
<translation>پروتکل ویپیان</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageHome.qml" line="361"/>
<location filename="../ui/qml/Pages2/PageHome.qml" line="362"/>
<source>Servers</source>
<translation>سرورها</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageHome.qml" line="453"/>
<location filename="../ui/qml/Pages2/PageHome.qml" line="454"/>
<source>Unable change server while there is an active connection</source>
<translation>امکان تغییر سرور در هنگام متصل بودن وجود ندارد</translation>
</message>
@@ -1220,57 +1225,62 @@ Already installed containers were found on the server. All installed containers
<context>
<name>PageSettingsDns</name>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="45"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="35"/>
<source>Default server does not support custom dns</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="53"/>
<source>DNS servers</source>
<translation>سرورهای DNS</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="50"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="58"/>
<source>If AmneziaDNS is not used or installed</source>
<translation>اگر AmneziaDNS نصب نباشد یا استفاده نشود</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="57"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="65"/>
<source>Primary DNS</source>
<translation>DNS اصلی</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="69"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="77"/>
<source>Secondary DNS</source>
<translation>DNS ثانویه</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="87"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="95"/>
<source>Restore default</source>
<translation>بازگشت به پیشفرض</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="90"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="98"/>
<source>Restore default DNS settings?</source>
<translation>بازگشت به تنظیمات پیشفرض DNS؟</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="91"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="99"/>
<source>Continue</source>
<translation>ادامه</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="92"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="100"/>
<source>Cancel</source>
<translation>کنسل</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="100"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="108"/>
<source>Settings have been reset</source>
<translation>تنظیمات ریست شد</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="112"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="120"/>
<source>Save</source>
<translation>ذخیره</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="121"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="129"/>
<source>Settings saved</source>
<translation>ذخیره تنظیمات</translation>
</message>
@@ -1288,52 +1298,52 @@ Already installed containers were found on the server. All installed containers
<translation>ذخیره گزارشات</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="86"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="87"/>
<source>Open folder with logs</source>
<translation>باز کردن پوشه گزارشات</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="108"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="109"/>
<source>Save</source>
<translation>ذخیره</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="109"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="110"/>
<source>Logs files (*.log)</source>
<translation>Logs files (*.log)</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="118"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="119"/>
<source>Logs file saved</source>
<translation>فایل گزارشات ذخیره شد</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="127"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="128"/>
<source>Save logs to file</source>
<translation>ذخیره گزارشات در فایل</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="145"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="146"/>
<source>Clear logs?</source>
<translation>پاک کردن گزارشات؟</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="146"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="147"/>
<source>Continue</source>
<translation>ادامه</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="147"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="148"/>
<source>Cancel</source>
<translation>کنسل</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="154"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="155"/>
<source>Logs have been cleaned up</source>
<translation>گزارشات پاک شدند</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="167"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="168"/>
<source>Clear logs</source>
<translation>پاک کردن گزارشات</translation>
</message>
@@ -1346,17 +1356,17 @@ Already installed containers were found on the server. All installed containers
<translation>تمام کانتینرهای نصب شده به نرمافزار اضافه شدند</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="87"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="91"/>
<source>Clear Amnezia cache</source>
<translation>پاک کردن حافظه داخلی Amnezia</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="88"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="92"/>
<source>May be needed when changing other settings</source>
<translation>وقتی تنظیمات دیگر را تغییر دهید ممکن است نیاز باشد</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="91"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="95"/>
<source>Clear cached profiles?</source>
<translation>پاک کردن پروفایل ذخیره شده؟</translation>
</message>
@@ -1371,56 +1381,81 @@ Already installed containers were found on the server. All installed containers
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="93"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="140"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="171"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="97"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="145"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="177"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="208"/>
<source>Continue</source>
<translation>ادامه</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="94"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="141"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="172"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="98"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="146"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="178"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="209"/>
<source>Cancel</source>
<translation>کنسل</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="117"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="121"/>
<source>Check the server for previously installed Amnezia services</source>
<translation>چک کردن سرویسهای نصب شده Amnezia بر روی سرور</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="118"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="122"/>
<source>Add them to the application if they were not displayed</source>
<translation>اضافه کردن آنها به نرمافزار اگر نمایش داده نشدهاند</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="134"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="139"/>
<source>Reboot server</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="143"/>
<source>Do you want to reboot the server?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="144"/>
<source>??????????????????????????????</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="175"/>
<source>Do you want to remove the server?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="206"/>
<source>Do you want to clear server from Amnezia software?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="171"/>
<source>Remove server from application</source>
<translation>حذف کردن سرور از نرمافزار</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="138"/>
<source>Remove server?</source>
<translation>حذف سرور؟</translation>
<translation type="vanished">حذف سرور؟</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="139"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="176"/>
<source>All installed AmneziaVPN services will still remain on the server.</source>
<translation>تمام سرویسهای نصبشده Amnezia همچنان بر روی سرور باقی خواهند ماند.</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="165"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="202"/>
<source>Clear server from Amnezia software</source>
<translation>پاک کردن سرور از نرمافزار Amnezia</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="169"/>
<source>Clear server from Amnezia software?</source>
<translation>سرور از نرمافزار Amnezia پاک شود؟</translation>
<translation type="vanished">سرور از نرمافزار Amnezia پاک شود؟</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="170"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="207"/>
<source>All containers will be deleted on the server. This means that configuration files, keys and certificates will be deleted.</source>
<translation>تمام کانتینرها از سرور پاک شوند، به این معنی که تمام فایلهای پیکربندی، کلیدها و مجوزها حذف خواهند شد.</translation>
</message>
@@ -1501,90 +1536,95 @@ Already installed containers were found on the server. All installed containers
<context>
<name>PageSettingsSplitTunneling</name>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="53"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="29"/>
<source>Default server does not support split tunneling function</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="59"/>
<source>Addresses from the list should be accessed via VPN</source>
<translation>دسترسی به آدرسهای لیست از طریق ویپیان</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="58"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="64"/>
<source>Addresses from the list should not be accessed via VPN</source>
<translation>دسترسی به آدرسهای لیست بدون ویپیان</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="90"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="96"/>
<source>Split tunneling</source>
<translation>جداسازی ترافیک</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="121"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="127"/>
<source>Mode</source>
<translation>حالت</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="199"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="205"/>
<source>Remove </source>
<translation>حذف </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="200"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="206"/>
<source>Continue</source>
<translation>ادامه</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="201"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="207"/>
<source>Cancel</source>
<translation>کنسل</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="248"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="254"/>
<source>Site or IP</source>
<translation>سایت یا آیپی</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="292"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="298"/>
<source>Import/Export Sites</source>
<translation>بارگذاری / خروجیگرفتن از سایتها</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="298"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="304"/>
<source>Import</source>
<translation>بارگذاری</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="310"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="316"/>
<source>Save site list</source>
<translation>ذخیره لیست سایتها</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="317"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="323"/>
<source>Save sites</source>
<translation>ذخیره سایتها</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="318"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="385"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="400"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="324"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="391"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="406"/>
<source>Sites files (*.json)</source>
<translation>Sites files (*.json)</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="375"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="381"/>
<source>Import a list of sites</source>
<translation>بارگذاری لیست سایتها</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="381"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="387"/>
<source>Replace site list</source>
<translation>جایگزین کردن لیست سایت</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="384"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="399"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="390"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="405"/>
<source>Open sites file</source>
<translation>باز کردن فایل سایتها</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="396"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="402"/>
<source>Add imported sites to existing ones</source>
<translation>اضافه کردن سایتهای بارگذاری شده به سایتهای موجود</translation>
</message>
@@ -1711,22 +1751,22 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<translation>سطح کنترل اینترنت در منطقه شما چگونه است؟</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="137"/>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="139"/>
<source>Set up a VPN yourself</source>
<translation>یک ویپیان برای خودتان بسازید</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="138"/>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="140"/>
<source>I want to choose a VPN protocol</source>
<translation>میخواهم پروتکل ویپیان را انتخاب کنم</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="157"/>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="159"/>
<source>Continue</source>
<translation>ادامه</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="197"/>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="199"/>
<source>Set up later</source>
<translation>بعدا تنظیم شود</translation>
</message>
@@ -1734,7 +1774,7 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<context>
<name>PageSetupWizardInstalling</name>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="60"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="61"/>
<source>The server has already been added to the application</source>
<translation>سرور در حال حاضر به نرمافزار اضافه شده است</translation>
</message>
@@ -1747,33 +1787,33 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<translation type="vanished">занят установкой других протоколов или сервисов. Установка Amnesia </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="66"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="67"/>
<source>Amnezia has detected that your server is currently </source>
<translation>برنامه Amnezia تشخیص داده است که سرور در حال حاضر </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="67"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="68"/>
<source>busy installing other software. Amnezia installation </source>
<translation>مشغول نصب نرمافزار دیگری است. نصب Amnezia </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="68"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="69"/>
<source>will pause until the server finishes installing other software</source>
<translation>متوقف شده تا زمانی که سرور نصب نرمافزار دیگر را تمام کند</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="126"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="127"/>
<source>Installing</source>
<translation>در حال نصب</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="165"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="166"/>
<source>Cancel installation</source>
<translation>لغو عملیات نصب</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="21"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="72"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="73"/>
<source>Usually it takes no more than 5 minutes</source>
<translation>معمولا بیش از 5 دقیقه طول نمیکشد</translation>
</message>
@@ -1896,27 +1936,27 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<context>
<name>PageSetupWizardViewConfig</name>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="63"/>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="64"/>
<source>New connection</source>
<translation>ارتباط جدید</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="90"/>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="91"/>
<source>Do not use connection code from public sources. It could be created to intercept your data.</source>
<translation>از کد اتصالی که در منابع عمومی هست استفاده نکنید. ممکن است برای شنود اطلاعات شما ایجاد شده باشد.</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="105"/>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="106"/>
<source>Collapse content</source>
<translation>جمع کردن محتوا</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="105"/>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="106"/>
<source>Show content</source>
<translation>نمایش محتوا</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="148"/>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="149"/>
<source>Connect</source>
<translation>اتصال</translation>
</message>
@@ -2958,22 +2998,22 @@ This means that AmneziaWG keeps the fast performance of the original while addin
<context>
<name>SettingsController</name>
<message>
<location filename="../ui/controllers/settingsController.cpp" line="26"/>
<location filename="../ui/controllers/settingsController.cpp" line="27"/>
<source>Software version</source>
<translation>نسخه نرمافزار</translation>
</message>
<message>
<location filename="../ui/controllers/settingsController.cpp" line="139"/>
<location filename="../ui/controllers/settingsController.cpp" line="148"/>
<source>All settings have been reset to default values</source>
<translation>تمام تنظیمات به مقادیر پیش فرض ریست شد</translation>
</message>
<message>
<location filename="../ui/controllers/settingsController.cpp" line="145"/>
<location filename="../ui/controllers/settingsController.cpp" line="154"/>
<source>Cached profiles cleared</source>
<translation>پروفایل ذخیره شده پاک شد</translation>
</message>
<message>
<location filename="../ui/controllers/settingsController.cpp" line="123"/>
<location filename="../ui/controllers/settingsController.cpp" line="132"/>
<source>Backup file is corrupted</source>
<translation>فایل بکآپ خراب شده است</translation>
</message>
@@ -3105,7 +3145,7 @@ This means that AmneziaWG keeps the fast performance of the original while addin
<context>
<name>VpnConnection</name>
<message>
<location filename="../vpnconnection.cpp" line="432"/>
<location filename="../vpnconnection.cpp" line="438"/>
<source>Mbps</source>
<translation>Mbps</translation>
</message>
+131 -91
View File
@@ -132,12 +132,12 @@
<context>
<name>HomeContainersListView</name>
<message>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="58"/>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="76"/>
<source>Unable change protocol while there is an active connection</source>
<translation>Невозможно изменить протокол при активном соединении</translation>
</message>
<message>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="68"/>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="85"/>
<source>The selected protocol is not supported on the current platform</source>
<translation>Выбранный протокол не поддерживается на данном устройстве</translation>
</message>
@@ -149,7 +149,7 @@
<context>
<name>ImportController</name>
<message>
<location filename="../ui/controllers/importController.cpp" line="411"/>
<location filename="../ui/controllers/importController.cpp" line="416"/>
<source>Scanned %1 of %2.</source>
<translation>Отсканировано %1 из%2.</translation>
</message>
@@ -188,26 +188,31 @@ Already installed containers were found on the server. All installed containers
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="305"/>
<source>Server &apos;%1&apos; was rebooted</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="314"/>
<source>Server &apos;%1&apos; was removed</source>
<translation>Сервер &apos;%1&apos; был удален</translation>
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="315"/>
<location filename="../ui/controllers/installController.cpp" line="324"/>
<source>All containers from server &apos;%1&apos; have been removed</source>
<translation>Все протоколы и сервисы были удалены с сервера &apos;%1&apos;</translation>
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="332"/>
<location filename="../ui/controllers/installController.cpp" line="341"/>
<source>%1 has been removed from the server &apos;%2&apos;</source>
<translation>%1 был удален с сервера &apos;%2&apos;</translation>
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="478"/>
<location filename="../ui/controllers/installController.cpp" line="487"/>
<source>Please login as the user</source>
<translation>Пожалуйста, войдите в систему от имени пользователя</translation>
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="506"/>
<location filename="../ui/controllers/installController.cpp" line="515"/>
<source>Server added successfully</source>
<translation>Сервер успешно добавлен</translation>
</message>
@@ -275,17 +280,17 @@ Already installed containers were found on the server. All installed containers
<context>
<name>PageHome</name>
<message>
<location filename="../ui/qml/Pages2/PageHome.qml" line="317"/>
<location filename="../ui/qml/Pages2/PageHome.qml" line="318"/>
<source>VPN protocol</source>
<translation>VPN протокол</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageHome.qml" line="361"/>
<location filename="../ui/qml/Pages2/PageHome.qml" line="362"/>
<source>Servers</source>
<translation>Серверы</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageHome.qml" line="453"/>
<location filename="../ui/qml/Pages2/PageHome.qml" line="454"/>
<source>Unable change server while there is an active connection</source>
<translation>Невозможно изменить сервер при активном соединении</translation>
</message>
@@ -1218,57 +1223,62 @@ Already installed containers were found on the server. All installed containers
<context>
<name>PageSettingsDns</name>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="45"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="35"/>
<source>Default server does not support custom dns</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="53"/>
<source>DNS servers</source>
<translation>DNS сервер</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="50"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="58"/>
<source>If AmneziaDNS is not used or installed</source>
<translation>Эти адреса будут использоваться, если не включен или не установлен AmneziaDNS</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="57"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="65"/>
<source>Primary DNS</source>
<translation>Первичный DNS</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="69"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="77"/>
<source>Secondary DNS</source>
<translation>Вторичный DNS</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="87"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="95"/>
<source>Restore default</source>
<translation>Восстановить по умолчанию</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="90"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="98"/>
<source>Restore default DNS settings?</source>
<translation>Восстановить настройки DNS по умолчанию?</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="91"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="99"/>
<source>Continue</source>
<translation>Продолжить</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="92"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="100"/>
<source>Cancel</source>
<translation>Отменить</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="100"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="108"/>
<source>Settings have been reset</source>
<translation>Настройки сброшены</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="112"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="120"/>
<source>Save</source>
<translation>Сохранить</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="121"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="129"/>
<source>Settings saved</source>
<translation>Сохранить настройки</translation>
</message>
@@ -1286,52 +1296,52 @@ Already installed containers were found on the server. All installed containers
<translation>Сохранять логи</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="86"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="87"/>
<source>Open folder with logs</source>
<translation>Открыть папку с логами</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="108"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="109"/>
<source>Save</source>
<translation>Сохранить</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="109"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="110"/>
<source>Logs files (*.log)</source>
<translation>Logs files (*.log)</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="118"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="119"/>
<source>Logs file saved</source>
<translation>Файл с логами сохранен</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="127"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="128"/>
<source>Save logs to file</source>
<translation>Сохранить логи в файл</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="145"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="146"/>
<source>Clear logs?</source>
<translation>Очистить логи?</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="146"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="147"/>
<source>Continue</source>
<translation>Продолжить</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="147"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="148"/>
<source>Cancel</source>
<translation>Отменить</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="154"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="155"/>
<source>Logs have been cleaned up</source>
<translation>Логи удалены</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="167"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="168"/>
<source>Clear logs</source>
<translation>Удалить логи</translation>
</message>
@@ -1344,17 +1354,17 @@ Already installed containers were found on the server. All installed containers
<translation>Все установленные протоколы и сервисы были добавлены в приложение</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="87"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="91"/>
<source>Clear Amnezia cache</source>
<translation>Очистить кэш Amnezia</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="88"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="92"/>
<source>May be needed when changing other settings</source>
<translation>Может понадобиться при изменении других настроек</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="91"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="95"/>
<source>Clear cached profiles?</source>
<translation>Удалить кэш Amnezia?</translation>
</message>
@@ -1369,56 +1379,81 @@ Already installed containers were found on the server. All installed containers
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="93"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="140"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="171"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="97"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="145"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="177"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="208"/>
<source>Continue</source>
<translation>Продолжить</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="94"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="141"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="172"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="98"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="146"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="178"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="209"/>
<source>Cancel</source>
<translation>Отменить</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="117"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="121"/>
<source>Check the server for previously installed Amnezia services</source>
<translation>Проверить сервер на наличие ранее установленных сервисов Amnezia</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="118"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="122"/>
<source>Add them to the application if they were not displayed</source>
<translation>Добавить их в приложение, если они не были отображены</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="134"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="139"/>
<source>Reboot server</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="143"/>
<source>Do you want to reboot the server?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="144"/>
<source>??????????????????????????????</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="175"/>
<source>Do you want to remove the server?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="206"/>
<source>Do you want to clear server from Amnezia software?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="171"/>
<source>Remove server from application</source>
<translation>Удалить сервер из приложения</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="138"/>
<source>Remove server?</source>
<translation>Удалить сервер?</translation>
<translation type="vanished">Удалить сервер?</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="139"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="176"/>
<source>All installed AmneziaVPN services will still remain on the server.</source>
<translation>Все установленные сервисы и протоколы Amnezia всё ещё останутся на сервере.</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="165"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="202"/>
<source>Clear server from Amnezia software</source>
<translation>Очистить сервер от протоколов и сервисов Amnezia</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="169"/>
<source>Clear server from Amnezia software?</source>
<translation>Удалить все сервисы и протоколы Amnezia с сервера?</translation>
<translation type="vanished">Удалить все сервисы и протоколы Amnezia с сервера?</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="170"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="207"/>
<source>All containers will be deleted on the server. This means that configuration files, keys and certificates will be deleted.</source>
<translation>На сервере будут удалены все данные, связанные с Amnezia: протоколы, сервисы, конфигурационные файлы, ключи и сертификаты.</translation>
</message>
@@ -1499,90 +1534,95 @@ Already installed containers were found on the server. All installed containers
<context>
<name>PageSettingsSplitTunneling</name>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="53"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="29"/>
<source>Default server does not support split tunneling function</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="59"/>
<source>Addresses from the list should be accessed via VPN</source>
<translation>Только адреса из списка должны открываться через VPN</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="58"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="64"/>
<source>Addresses from the list should not be accessed via VPN</source>
<translation>Адреса из списка не должны открываться через VPN</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="90"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="96"/>
<source>Split tunneling</source>
<translation>Раздельное VPN-туннелирование</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="121"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="127"/>
<source>Mode</source>
<translation>Режим</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="199"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="205"/>
<source>Remove </source>
<translation>Удалить </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="200"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="206"/>
<source>Continue</source>
<translation>Продолжить</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="201"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="207"/>
<source>Cancel</source>
<translation>Отменить</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="248"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="254"/>
<source>Site or IP</source>
<translation>Сайт или IP</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="292"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="298"/>
<source>Import/Export Sites</source>
<translation>Импорт/экспорт Сайтов</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="298"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="304"/>
<source>Import</source>
<translation>Импорт</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="310"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="316"/>
<source>Save site list</source>
<translation>Сохранить список сайтов</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="317"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="323"/>
<source>Save sites</source>
<translation>Сохранить</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="318"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="385"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="400"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="324"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="391"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="406"/>
<source>Sites files (*.json)</source>
<translation>Sites files (*.json)</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="375"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="381"/>
<source>Import a list of sites</source>
<translation>Импортировать список с сайтами</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="381"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="387"/>
<source>Replace site list</source>
<translation>Заменить список сайтов</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="384"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="399"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="390"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="405"/>
<source>Open sites file</source>
<translation>Открыть список с сайтами</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="396"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="402"/>
<source>Add imported sites to existing ones</source>
<translation>Добавить импортированные сайты к существующим</translation>
</message>
@@ -1709,22 +1749,22 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<translation>Какой уровень контроля интернета в вашем регионе?</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="137"/>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="139"/>
<source>Set up a VPN yourself</source>
<translation>Настроить VPN самостоятельно</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="138"/>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="140"/>
<source>I want to choose a VPN protocol</source>
<translation>Выбрать VPN-протокол</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="157"/>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="159"/>
<source>Continue</source>
<translation>Продолжить</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="197"/>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="199"/>
<source>Set up later</source>
<translation>Настроить позднее</translation>
</message>
@@ -1732,7 +1772,7 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<context>
<name>PageSetupWizardInstalling</name>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="60"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="61"/>
<source>The server has already been added to the application</source>
<translation>Сервер уже был добавлен в приложение</translation>
</message>
@@ -1745,33 +1785,33 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<translation type="vanished">занят установкой других протоколов или сервисов. Установка Amnesia </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="66"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="67"/>
<source>Amnezia has detected that your server is currently </source>
<translation>Amnezia обнаружила, что ваш сервер в настоящее время </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="67"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="68"/>
<source>busy installing other software. Amnezia installation </source>
<translation>занят установкой другого программного обеспечения. Установка Amnezia </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="68"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="69"/>
<source>will pause until the server finishes installing other software</source>
<translation>будет приостановлена до тех пор, пока сервер не завершит установку</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="126"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="127"/>
<source>Installing</source>
<translation>Установка</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="165"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="166"/>
<source>Cancel installation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="21"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="72"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="73"/>
<source>Usually it takes no more than 5 minutes</source>
<translation>Обычно это занимает не более 5 минут</translation>
</message>
@@ -1894,27 +1934,27 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<context>
<name>PageSetupWizardViewConfig</name>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="63"/>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="64"/>
<source>New connection</source>
<translation>Новое соединение</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="90"/>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="91"/>
<source>Do not use connection code from public sources. It could be created to intercept your data.</source>
<translation>Не используйте код подключения из публичных источников. Его могли создать, чтобы перехватывать ваши данные.</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="105"/>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="106"/>
<source>Collapse content</source>
<translation>Свернуть</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="105"/>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="106"/>
<source>Show content</source>
<translation>Показать содержимое ключа</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="148"/>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="149"/>
<source>Connect</source>
<translation>Подключиться</translation>
</message>
@@ -2925,22 +2965,22 @@ This means that AmneziaWG keeps the fast performance of the original while addin
<context>
<name>SettingsController</name>
<message>
<location filename="../ui/controllers/settingsController.cpp" line="26"/>
<location filename="../ui/controllers/settingsController.cpp" line="27"/>
<source>Software version</source>
<translation>Версия ПО</translation>
</message>
<message>
<location filename="../ui/controllers/settingsController.cpp" line="139"/>
<location filename="../ui/controllers/settingsController.cpp" line="148"/>
<source>All settings have been reset to default values</source>
<translation>Все настройки были сброшены к значению &quot;По умолчанию&quot;</translation>
</message>
<message>
<location filename="../ui/controllers/settingsController.cpp" line="145"/>
<location filename="../ui/controllers/settingsController.cpp" line="154"/>
<source>Cached profiles cleared</source>
<translation>Кэш профиля очищен</translation>
</message>
<message>
<location filename="../ui/controllers/settingsController.cpp" line="123"/>
<location filename="../ui/controllers/settingsController.cpp" line="132"/>
<source>Backup file is corrupted</source>
<translation>Backup файл поврежден</translation>
</message>
@@ -3072,7 +3112,7 @@ This means that AmneziaWG keeps the fast performance of the original while addin
<context>
<name>VpnConnection</name>
<message>
<location filename="../vpnconnection.cpp" line="432"/>
<location filename="../vpnconnection.cpp" line="438"/>
<source>Mbps</source>
<translation>Mbps</translation>
</message>
+131 -91
View File
@@ -135,12 +135,12 @@
<context>
<name>HomeContainersListView</name>
<message>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="58"/>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="76"/>
<source>Unable change protocol while there is an active connection</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="68"/>
<location filename="../ui/qml/Components/HomeContainersListView.qml" line="85"/>
<source>The selected protocol is not supported on the current platform</source>
<translation></translation>
</message>
@@ -152,7 +152,7 @@
<context>
<name>ImportController</name>
<message>
<location filename="../ui/controllers/importController.cpp" line="411"/>
<location filename="../ui/controllers/importController.cpp" line="416"/>
<source>Scanned %1 of %2.</source>
<translation> %1 of %2.</translation>
</message>
@@ -199,16 +199,21 @@ Already installed containers were found on the server. All installed containers
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="305"/>
<source>Server &apos;%1&apos; was rebooted</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="314"/>
<source>Server &apos;%1&apos; was removed</source>
<translation> &apos;%1&apos;</translation>
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="315"/>
<location filename="../ui/controllers/installController.cpp" line="324"/>
<source>All containers from server &apos;%1&apos; have been removed</source>
<translation> &apos;%1&apos; </translation>
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="332"/>
<location filename="../ui/controllers/installController.cpp" line="341"/>
<source>%1 has been removed from the server &apos;%2&apos;</source>
<translation>%1 &apos;%2&apos; </translation>
</message>
@@ -229,12 +234,12 @@ Already installed containers were found on the server. All installed containers
<translation type="obsolete"> </translation>
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="478"/>
<location filename="../ui/controllers/installController.cpp" line="487"/>
<source>Please login as the user</source>
<translation></translation>
</message>
<message>
<location filename="../ui/controllers/installController.cpp" line="506"/>
<location filename="../ui/controllers/installController.cpp" line="515"/>
<source>Server added successfully</source>
<translation></translation>
</message>
@@ -302,17 +307,17 @@ Already installed containers were found on the server. All installed containers
<context>
<name>PageHome</name>
<message>
<location filename="../ui/qml/Pages2/PageHome.qml" line="317"/>
<location filename="../ui/qml/Pages2/PageHome.qml" line="318"/>
<source>VPN protocol</source>
<translation>VPN协议</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageHome.qml" line="361"/>
<location filename="../ui/qml/Pages2/PageHome.qml" line="362"/>
<source>Servers</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageHome.qml" line="453"/>
<location filename="../ui/qml/Pages2/PageHome.qml" line="454"/>
<source>Unable change server while there is an active connection</source>
<translation></translation>
</message>
@@ -1297,57 +1302,62 @@ And if you don&apos;t like the app, all the more support it - the donation will
<context>
<name>PageSettingsDns</name>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="45"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="35"/>
<source>Default server does not support custom dns</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="53"/>
<source>DNS servers</source>
<translation>DNS服务器</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="50"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="58"/>
<source>If AmneziaDNS is not used or installed</source>
<translation>使AmneziaDNS</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="57"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="65"/>
<source>Primary DNS</source>
<translation> DNS</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="69"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="77"/>
<source>Secondary DNS</source>
<translation> DNS</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="87"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="95"/>
<source>Restore default</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="90"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="98"/>
<source>Restore default DNS settings?</source>
<translation>DNS配置</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="91"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="99"/>
<source>Continue</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="92"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="100"/>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="100"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="108"/>
<source>Settings have been reset</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="112"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="120"/>
<source>Save</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="121"/>
<location filename="../ui/qml/Pages2/PageSettingsDns.qml" line="129"/>
<source>Settings saved</source>
<translation></translation>
</message>
@@ -1365,52 +1375,52 @@ And if you don&apos;t like the app, all the more support it - the donation will
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="86"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="87"/>
<source>Open folder with logs</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="108"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="109"/>
<source>Save</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="109"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="110"/>
<source>Logs files (*.log)</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="118"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="119"/>
<source>Logs file saved</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="127"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="128"/>
<source>Save logs to file</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="145"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="146"/>
<source>Clear logs?</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="146"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="147"/>
<source>Continue</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="147"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="148"/>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="154"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="155"/>
<source>Logs have been cleaned up</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="167"/>
<location filename="../ui/qml/Pages2/PageSettingsLogging.qml" line="168"/>
<source>Clear logs</source>
<translation></translation>
</message>
@@ -1428,76 +1438,101 @@ And if you don&apos;t like the app, all the more support it - the donation will
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="87"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="91"/>
<source>Clear Amnezia cache</source>
<translation> Amnezia </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="88"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="92"/>
<source>May be needed when changing other settings</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="91"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="95"/>
<source>Clear cached profiles?</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="143"/>
<source>Do you want to reboot the server?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="144"/>
<source>??????????????????????????????</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="175"/>
<source>Do you want to remove the server?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="206"/>
<source>Do you want to clear server from Amnezia software?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="92"/>
<source></source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="93"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="140"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="171"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="97"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="145"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="177"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="208"/>
<source>Continue</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="94"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="141"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="172"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="98"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="146"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="178"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="209"/>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="117"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="121"/>
<source>Check the server for previously installed Amnezia services</source>
<translation> Amnezia </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="118"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="122"/>
<source>Add them to the application if they were not displayed</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="134"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="139"/>
<source>Reboot server</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="171"/>
<source>Remove server from application</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="138"/>
<source>Remove server?</source>
<translation>?</translation>
<translation type="vanished">?</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="139"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="176"/>
<source>All installed AmneziaVPN services will still remain on the server.</source>
<translation> AmneziaVPN </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="165"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="202"/>
<source>Clear server from Amnezia software</source>
<translation>Amnezia中服务器信息</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="169"/>
<source>Clear server from Amnezia software?</source>
<translation>Amnezia中服务器信息</translation>
<translation type="vanished">Amnezia中服务器信息</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="170"/>
<location filename="../ui/qml/Pages2/PageSettingsServerData.qml" line="207"/>
<source>All containers will be deleted on the server. This means that configuration files, keys and certificates will be deleted.</source>
<translation></translation>
</message>
@@ -1598,90 +1633,95 @@ And if you don&apos;t like the app, all the more support it - the donation will
<translation type="obsolete">VPN分流</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="53"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="29"/>
<source>Default server does not support split tunneling function</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="59"/>
<source>Addresses from the list should be accessed via VPN</source>
<translation>使VPN访问</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="58"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="64"/>
<source>Addresses from the list should not be accessed via VPN</source>
<translation>使VPN访问</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="90"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="96"/>
<source>Split tunneling</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="121"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="127"/>
<source>Mode</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="199"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="205"/>
<source>Remove </source>
<translation> </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="200"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="206"/>
<source>Continue</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="201"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="207"/>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="248"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="254"/>
<source>Site or IP</source>
<translation>IP地址</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="292"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="298"/>
<source>Import/Export Sites</source>
<translation>/</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="298"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="304"/>
<source>Import</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="310"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="316"/>
<source>Save site list</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="317"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="323"/>
<source>Save sites</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="318"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="385"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="400"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="324"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="391"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="406"/>
<source>Sites files (*.json)</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="375"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="381"/>
<source>Import a list of sites</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="381"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="387"/>
<source>Replace site list</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="384"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="399"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="390"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="405"/>
<source>Open sites file</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="396"/>
<location filename="../ui/qml/Pages2/PageSettingsSplitTunneling.qml" line="402"/>
<source>Add imported sites to existing ones</source>
<translation></translation>
</message>
@@ -1808,22 +1848,22 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="137"/>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="139"/>
<source>Set up a VPN yourself</source>
<translation>VPN</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="138"/>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="140"/>
<source>I want to choose a VPN protocol</source>
<translation>VPN协议</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="157"/>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="159"/>
<source>Continue</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="197"/>
<location filename="../ui/qml/Pages2/PageSetupWizardEasy.qml" line="199"/>
<source>Set up later</source>
<translation></translation>
</message>
@@ -1832,27 +1872,27 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<name>PageSetupWizardInstalling</name>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="21"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="72"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="73"/>
<source>Usually it takes no more than 5 minutes</source>
<translation>5</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="60"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="61"/>
<source>The server has already been added to the application</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="66"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="67"/>
<source>Amnezia has detected that your server is currently </source>
<translation>Amnezia </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="67"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="68"/>
<source>busy installing other software. Amnezia installation </source>
<translation>Amnezia安装</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="165"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="166"/>
<source>Cancel installation</source>
<translation type="unfinished"></translation>
</message>
@@ -1865,12 +1905,12 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<translation type="vanished">Amnezia安装</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="68"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="69"/>
<source>will pause until the server finishes installing other software</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="126"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="127"/>
<source>Installing</source>
<translation></translation>
</message>
@@ -1993,27 +2033,27 @@ and will not be shared or disclosed to the Amnezia or any third parties</source>
<context>
<name>PageSetupWizardViewConfig</name>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="63"/>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="64"/>
<source>New connection</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="90"/>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="91"/>
<source>Do not use connection code from public sources. It could be created to intercept your data.</source>
<translation>使</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="105"/>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="106"/>
<source>Collapse content</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="105"/>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="106"/>
<source>Show content</source>
<translation></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="148"/>
<location filename="../ui/qml/Pages2/PageSetupWizardViewConfig.qml" line="149"/>
<source>Connect</source>
<translation></translation>
</message>
@@ -3069,22 +3109,22 @@ While it offers a blend of security, stability, and speed, it&apos;s essential t
<context>
<name>SettingsController</name>
<message>
<location filename="../ui/controllers/settingsController.cpp" line="26"/>
<location filename="../ui/controllers/settingsController.cpp" line="27"/>
<source>Software version</source>
<translation></translation>
</message>
<message>
<location filename="../ui/controllers/settingsController.cpp" line="123"/>
<location filename="../ui/controllers/settingsController.cpp" line="132"/>
<source>Backup file is corrupted</source>
<translation></translation>
</message>
<message>
<location filename="../ui/controllers/settingsController.cpp" line="139"/>
<location filename="../ui/controllers/settingsController.cpp" line="148"/>
<source>All settings have been reset to default values</source>
<translation></translation>
</message>
<message>
<location filename="../ui/controllers/settingsController.cpp" line="145"/>
<location filename="../ui/controllers/settingsController.cpp" line="154"/>
<source>Cached profiles cleared</source>
<translation></translation>
</message>
@@ -3220,7 +3260,7 @@ While it offers a blend of security, stability, and speed, it&apos;s essential t
<context>
<name>VpnConnection</name>
<message>
<location filename="../vpnconnection.cpp" line="432"/>
<location filename="../vpnconnection.cpp" line="438"/>
<source>Mbps</source>
<translation></translation>
</message>
@@ -296,6 +296,15 @@ void InstallController::updateContainer(QJsonObject config)
emit installationErrorOccurred(errorString(errorCode));
}
void InstallController::rebootCurrentlyProcessedServer()
{
int serverIndex = m_serversModel->getCurrentlyProcessedServerIndex();
QString serverName = m_serversModel->data(serverIndex, ServersModel::Roles::NameRole).toString();
m_serversModel->rebootServer();
emit rebootCurrentlyProcessedServerFinished(tr("Server '%1' was rebooted").arg(serverName));
}
void InstallController::removeCurrentlyProcessedServer()
{
int serverIndex = m_serversModel->getCurrentlyProcessedServerIndex();
@@ -31,6 +31,7 @@ public slots:
void updateContainer(QJsonObject config);
void removeCurrentlyProcessedServer();
void rebootCurrentlyProcessedServer();
void removeAllContainers();
void removeCurrentlyProcessedContainer();
@@ -53,6 +54,7 @@ signals:
void scanServerFinished(bool isInstalledContainerFound);
void rebootCurrentlyProcessedServerFinished(const QString &finishedMessage);
void removeCurrentlyProcessedServerFinished(const QString &finishedMessage);
void removeAllContainersFinished(const QString &finishedMessage);
void removeCurrentlyProcessedContainerFinished(const QString &finishedMessage);
+9
View File
@@ -435,6 +435,15 @@ ErrorCode ServersModel::removeAllContainers()
return errorCode;
}
ErrorCode ServersModel::rebootServer()
{
ServerController serverController(m_settings);
auto credentials = m_settings->serverCredentials(m_currentlyProcessedServerIndex);
ErrorCode errorCode = serverController.rebootServer(credentials);
return errorCode;
}
ErrorCode ServersModel::removeContainer(const int containerIndex)
{
ServerController serverController(m_settings);
+1
View File
@@ -88,6 +88,7 @@ public slots:
ErrorCode removeContainer(const int containerIndex);
ErrorCode removeAllContainers();
ErrorCode rebootServer();
void setDefaultContainer(const int containerIndex);
DockerContainer getDefaultContainer();
@@ -38,6 +38,10 @@ PageType {
PageController.showNotificationMessage(finishedMessage)
}
function onRebootCurrentlyProcessedServerFinished(finishedMessage) {
PageController.showNotificationMessage(finishedMessage)
}
function onRemoveAllContainersFinished(finishedMessage) {
PageController.closePage() // close deInstalling page
PageController.showNotificationMessage(finishedMessage)
@@ -128,6 +132,39 @@ PageType {
visible: content.isServerWithWriteAccess
}
LabelWithButtonType {
visible: content.isServerWithWriteAccess
Layout.fillWidth: true
text: qsTr("Reboot server")
textColor: "#EB5757"
clickedFunction: function() {
questionDrawer.headerText = qsTr("Do you want to reboot the server?")
questionDrawer.descriptionText = qsTr("The reboot process may take approximately 30 seconds. Are you sure you wish to proceed?")
questionDrawer.yesButtonText = qsTr("Continue")
questionDrawer.noButtonText = qsTr("Cancel")
questionDrawer.yesButtonFunction = function() {
questionDrawer.visible = false
PageController.showBusyIndicator(true)
if (ServersModel.isDefaultServerCurrentlyProcessed() && ConnectionController.isConnected) {
ConnectionController.closeConnection()
}
InstallController.rebootCurrentlyProcessedServer()
PageController.showBusyIndicator(false)
}
questionDrawer.noButtonFunction = function() {
questionDrawer.visible = false
}
questionDrawer.visible = true
}
}
DividerType {
visible: content.isServerWithWriteAccess
}
LabelWithButtonType {
Layout.fillWidth: true
@@ -135,7 +172,7 @@ PageType {
textColor: "#EB5757"
clickedFunction: function() {
questionDrawer.headerText = qsTr("Remove server?")
questionDrawer.headerText = qsTr("Do you want to remove the server?")
questionDrawer.descriptionText = qsTr("All installed AmneziaVPN services will still remain on the server.")
questionDrawer.yesButtonText = qsTr("Continue")
questionDrawer.noButtonText = qsTr("Cancel")
@@ -166,7 +203,7 @@ PageType {
textColor: "#EB5757"
clickedFunction: function() {
questionDrawer.headerText = qsTr("Clear server from Amnezia software?")
questionDrawer.headerText = qsTr("Do you want to clear server from Amnezia software?")
questionDrawer.descriptionText = qsTr("All containers will be deleted on the server. This means that configuration files, keys and certificates will be deleted.")
questionDrawer.yesButtonText = qsTr("Continue")
questionDrawer.noButtonText = qsTr("Cancel")
@@ -188,7 +225,7 @@ PageType {
DividerType {
visible: content.isServerWithWriteAccess
}
}
QuestionDrawer {
id: questionDrawer