mirror of
https://github.com/Qv2ray/Qv2ray.git
synced 2025-05-20 19:00:22 +08:00
parent
c51eef6dcc
commit
2fb44b3b33
@ -30,7 +30,7 @@ namespace Qv2ray
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct ApiObject {
|
struct ApiObject {
|
||||||
string tag;
|
string tag = "api";
|
||||||
list<string> services;
|
list<string> services;
|
||||||
ApiObject() : tag(), services() {}
|
ApiObject() : tag(), services() {}
|
||||||
XTOSTRUCT(O(tag, services))
|
XTOSTRUCT(O(tag, services))
|
||||||
@ -70,32 +70,32 @@ namespace Qv2ray
|
|||||||
namespace TRANSFERObjectsInternal
|
namespace TRANSFERObjectsInternal
|
||||||
{
|
{
|
||||||
struct HTTPRequestObject {
|
struct HTTPRequestObject {
|
||||||
string version = "1.1";
|
string version ;
|
||||||
string method = "GET";
|
string method ;
|
||||||
list<string> path;
|
list<string> path;
|
||||||
map<string, list<string>> headers;
|
map<string, list<string>> headers;
|
||||||
HTTPRequestObject(): version(), method(), path(), headers() {}
|
HTTPRequestObject(): version("1.1"), method("GET"), path(), headers() {}
|
||||||
XTOSTRUCT(O(version, method, path, headers))
|
XTOSTRUCT(O(version, method, path, headers))
|
||||||
};
|
};
|
||||||
|
|
||||||
struct HTTPResponseObject {
|
struct HTTPResponseObject {
|
||||||
string version = "1.1";
|
string version;
|
||||||
string status = "200";
|
string status ;
|
||||||
string reason = "OK";
|
string reason ;
|
||||||
map<string, list<string>> headers;
|
map<string, list<string>> headers;
|
||||||
HTTPResponseObject(): version(), status(), reason(), headers() {}
|
HTTPResponseObject(): version("1.1"), status("200"), reason("OK"), headers() {}
|
||||||
XTOSTRUCT(O(version, status, reason, headers))
|
XTOSTRUCT(O(version, status, reason, headers))
|
||||||
};
|
};
|
||||||
struct TCPHeader_M_Object {
|
struct TCPHeader_M_Object {
|
||||||
string type;
|
string type;
|
||||||
HTTPRequestObject request;
|
HTTPRequestObject request;
|
||||||
HTTPResponseObject response;
|
HTTPResponseObject response;
|
||||||
TCPHeader_M_Object(): type(), request(), response() {}
|
TCPHeader_M_Object(): type("none"), request(), response() {}
|
||||||
XTOSTRUCT(O(type, request, response))
|
XTOSTRUCT(O(type, request, response))
|
||||||
};
|
};
|
||||||
struct HeaderObject {
|
struct HeaderObject {
|
||||||
string type;
|
string type;
|
||||||
HeaderObject(): type() {}
|
HeaderObject(): type("none") {}
|
||||||
XTOSTRUCT(O(type))
|
XTOSTRUCT(O(type))
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -125,20 +125,20 @@ namespace Qv2ray
|
|||||||
struct WebSocketObject {
|
struct WebSocketObject {
|
||||||
string path;
|
string path;
|
||||||
map<string, string> headers;
|
map<string, string> headers;
|
||||||
WebSocketObject(): path(), headers() {}
|
WebSocketObject(): path("/"), headers() {}
|
||||||
XTOSTRUCT(O(path, headers))
|
XTOSTRUCT(O(path, headers))
|
||||||
};
|
};
|
||||||
|
|
||||||
struct HttpObject {
|
struct HttpObject {
|
||||||
list<string> host;
|
list<string> host;
|
||||||
string path;
|
string path;
|
||||||
HttpObject() : host(), path() {}
|
HttpObject() : host(), path("/") {}
|
||||||
XTOSTRUCT(O(host, path))
|
XTOSTRUCT(O(host, path))
|
||||||
};
|
};
|
||||||
|
|
||||||
struct DomainSocketObject {
|
struct DomainSocketObject {
|
||||||
string path;
|
string path;
|
||||||
DomainSocketObject(): path() {}
|
DomainSocketObject(): path("/") {}
|
||||||
XTOSTRUCT(O(path))
|
XTOSTRUCT(O(path))
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -146,7 +146,7 @@ namespace Qv2ray
|
|||||||
string security;
|
string security;
|
||||||
string key;
|
string key;
|
||||||
TRANSFERObjectsInternal::HeaderObject header;
|
TRANSFERObjectsInternal::HeaderObject header;
|
||||||
QuicObject(): security(), key(), header() {}
|
QuicObject(): security(""), key(""), header() {}
|
||||||
XTOSTRUCT(O(security, key, header))
|
XTOSTRUCT(O(security, key, header))
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -154,7 +154,7 @@ namespace Qv2ray
|
|||||||
namespace INBOUNDObjects
|
namespace INBOUNDObjects
|
||||||
{
|
{
|
||||||
struct SniffingObject {
|
struct SniffingObject {
|
||||||
bool enabled;
|
bool enabled = false;
|
||||||
list<string> destOverride;
|
list<string> destOverride;
|
||||||
SniffingObject(): enabled(), destOverride() {}
|
SniffingObject(): enabled(), destOverride() {}
|
||||||
XTOSTRUCT(O(enabled, destOverride))
|
XTOSTRUCT(O(enabled, destOverride))
|
||||||
@ -167,7 +167,7 @@ namespace Qv2ray
|
|||||||
int mark;
|
int mark;
|
||||||
bool tcpFastOpen;
|
bool tcpFastOpen;
|
||||||
string tproxy;
|
string tproxy;
|
||||||
SockoptObject(): mark(), tcpFastOpen(), tproxy() {}
|
SockoptObject(): mark(0), tcpFastOpen(), tproxy("off") {}
|
||||||
XTOSTRUCT(O(mark, tcpFastOpen, tproxy))
|
XTOSTRUCT(O(mark, tcpFastOpen, tproxy))
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -203,7 +203,7 @@ namespace Qv2ray
|
|||||||
_TransferSettingObjects::HttpObject httpSettings;
|
_TransferSettingObjects::HttpObject httpSettings;
|
||||||
_TransferSettingObjects::DomainSocketObject dsSettings;
|
_TransferSettingObjects::DomainSocketObject dsSettings;
|
||||||
_TransferSettingObjects::QuicObject quicSettings;
|
_TransferSettingObjects::QuicObject quicSettings;
|
||||||
StreamSettingsObject(): network(), security(), sockopt(), tlsSettings(), tcpSettings(), kcpSettings(), wsSettings(), httpSettings(), dsSettings(), quicSettings() {}
|
StreamSettingsObject(): network("tcp"), security(), sockopt(), tlsSettings(), tcpSettings(), kcpSettings(), wsSettings(), httpSettings(), dsSettings(), quicSettings() {}
|
||||||
XTOSTRUCT(O(network, security, sockopt, tcpSettings, tlsSettings, kcpSettings, wsSettings, httpSettings, dsSettings, quicSettings))
|
XTOSTRUCT(O(network, security, sockopt, tcpSettings, tlsSettings, kcpSettings, wsSettings, httpSettings, dsSettings, quicSettings))
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -214,7 +214,6 @@ namespace Qv2ray
|
|||||||
XTOSTRUCT(O(enabled, concurrency))
|
XTOSTRUCT(O(enabled, concurrency))
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct RootObject {
|
struct RootObject {
|
||||||
ApiObject api;
|
ApiObject api;
|
||||||
PolicyObject policy;
|
PolicyObject policy;
|
||||||
@ -222,8 +221,6 @@ namespace Qv2ray
|
|||||||
XTOSTRUCT(O(api, policy))
|
XTOSTRUCT(O(api, policy))
|
||||||
};
|
};
|
||||||
//
|
//
|
||||||
//
|
|
||||||
//
|
|
||||||
/// Some protocols from: https://v2ray.com/chapter_02/02_protocols.html
|
/// Some protocols from: https://v2ray.com/chapter_02/02_protocols.html
|
||||||
namespace Protocols
|
namespace Protocols
|
||||||
{
|
{
|
||||||
@ -278,6 +275,7 @@ namespace Qv2ray
|
|||||||
int alterId;
|
int alterId;
|
||||||
string security;
|
string security;
|
||||||
int level;
|
int level;
|
||||||
|
UserObject() : id(), alterId(64), security("auto"), level(0) {}
|
||||||
XTOSTRUCT(O(id, alterId, security, level))
|
XTOSTRUCT(O(id, alterId, security, level))
|
||||||
};
|
};
|
||||||
// OUTBound;
|
// OUTBound;
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
#define QV2RAY_MAIN_CONFIG_FILE_PATH (QV2RAY_CONFIG_PATH + "Qv2ray.conf")
|
#define QV2RAY_MAIN_CONFIG_FILE_PATH (QV2RAY_CONFIG_PATH + "Qv2ray.conf")
|
||||||
#define QV2RAY_GENERATED_CONFIG_DIRPATH (QV2RAY_CONFIG_PATH + "genrerated/")
|
#define QV2RAY_GENERATED_CONFIG_DIRPATH (QV2RAY_CONFIG_PATH + "genrerated/")
|
||||||
#define QV2RAY_GENERATED_CONFIG_FILE_PATH (QV2RAY_GENERATED_CONFIG_DIRPATH + "config.gen.json")
|
#define QV2RAY_GENERATED_CONFIG_FILE_PATH (QV2RAY_GENERATED_CONFIG_DIRPATH + "config.gen.json")
|
||||||
#define QV2RAY_FIRSTRUN_IDENTIFIER (QV2RAY_CONFIG_PATH + ".initialised")
|
|
||||||
|
|
||||||
#define QV2RAY_VCORE_LOG_DIRNAME "logs/"
|
#define QV2RAY_VCORE_LOG_DIRNAME "logs/"
|
||||||
#define QV2RAY_VCORE_ACCESS_LOG_FILENAME "access.log"
|
#define QV2RAY_VCORE_ACCESS_LOG_FILENAME "access.log"
|
||||||
@ -22,6 +21,17 @@ using namespace std;
|
|||||||
|
|
||||||
#define QV2RAY_CONNECTION_FILE_EXTENSION ".qv2ray.json"
|
#define QV2RAY_CONNECTION_FILE_EXTENSION ".qv2ray.json"
|
||||||
|
|
||||||
|
// GUI TOOLS
|
||||||
|
#define RED(obj) \
|
||||||
|
auto p = ui->obj->palette(); \
|
||||||
|
p.setColor(QPalette::Text, Qt::red); \
|
||||||
|
ui->obj->setPalette(p);
|
||||||
|
|
||||||
|
#define WHITE(obj) \
|
||||||
|
auto p = ui->obj->palette(); \
|
||||||
|
p.setColor(QPalette::Text, Qt::black); \
|
||||||
|
ui->obj->setPalette(p);
|
||||||
|
|
||||||
namespace Qv2ray
|
namespace Qv2ray
|
||||||
{
|
{
|
||||||
namespace QvConfigModels
|
namespace QvConfigModels
|
||||||
|
@ -57,7 +57,7 @@ bool initializeQv()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Utils::CheckFile(ConfigDir, ".initialised")) {
|
if (!QFile(QV2RAY_MAIN_CONFIG_FILE_PATH).exists()) {
|
||||||
// This is first run!
|
// This is first run!
|
||||||
//
|
//
|
||||||
// These below genenrated very basic global config.
|
// These below genenrated very basic global config.
|
||||||
@ -68,11 +68,6 @@ bool initializeQv()
|
|||||||
SetGlobalConfig(conf);
|
SetGlobalConfig(conf);
|
||||||
SaveGlobalConfig();
|
SaveGlobalConfig();
|
||||||
//
|
//
|
||||||
// Create Placeholder for initialise indicator.
|
|
||||||
QFile initPlaceHolder(QV2RAY_FIRSTRUN_IDENTIFIER);
|
|
||||||
initPlaceHolder.open(QFile::WriteOnly);
|
|
||||||
initPlaceHolder.close();
|
|
||||||
//
|
|
||||||
LOG("Created initial default config file.")
|
LOG("Created initial default config file.")
|
||||||
} else {
|
} else {
|
||||||
LoadGlobalConfig();
|
LoadGlobalConfig();
|
||||||
|
@ -4,17 +4,6 @@
|
|||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QIntValidator>
|
#include <QIntValidator>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#define RED(obj) \
|
|
||||||
auto p = ui->obj->palette(); \
|
|
||||||
p.setColor(QPalette::Text, Qt::red); \
|
|
||||||
ui->obj->setPalette(p);
|
|
||||||
|
|
||||||
#define WHITE(obj) \
|
|
||||||
auto p = ui->obj->palette(); \
|
|
||||||
p.setColor(QPalette::Text, Qt::black); \
|
|
||||||
ui->obj->setPalette(p);
|
|
||||||
|
|
||||||
ConnectionEditWindow::ConnectionEditWindow(QWidget *parent)
|
ConnectionEditWindow::ConnectionEditWindow(QWidget *parent)
|
||||||
: QDialog(parent),
|
: QDialog(parent),
|
||||||
_alias(),
|
_alias(),
|
||||||
@ -25,6 +14,8 @@ ConnectionEditWindow::ConnectionEditWindow(QWidget *parent)
|
|||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
ui->portLineEdit->setValidator(new QIntValidator());
|
ui->portLineEdit->setValidator(new QIntValidator());
|
||||||
ui->alterLineEdit->setValidator(new QIntValidator());
|
ui->alterLineEdit->setValidator(new QIntValidator());
|
||||||
|
//
|
||||||
|
LoadGUIContents();
|
||||||
}
|
}
|
||||||
|
|
||||||
ConnectionEditWindow::ConnectionEditWindow(QJsonObject editRootObject, QString alias, QWidget *parent)
|
ConnectionEditWindow::ConnectionEditWindow(QJsonObject editRootObject, QString alias, QWidget *parent)
|
||||||
@ -126,6 +117,17 @@ void ConnectionEditWindow::on_buttonBox_accepted()
|
|||||||
void ConnectionEditWindow::on_ipLineEdit_textEdited(const QString &arg1)
|
void ConnectionEditWindow::on_ipLineEdit_textEdited(const QString &arg1)
|
||||||
{
|
{
|
||||||
vmess.address = arg1.toStdString();
|
vmess.address = arg1.toStdString();
|
||||||
|
//
|
||||||
|
// No thanks.
|
||||||
|
//if (ui->httpHostTxt->toPlainText() == "") {
|
||||||
|
// ui->httpHostTxt->setPlainText(arg1);
|
||||||
|
// on_httpHostTxt_textChanged();
|
||||||
|
//}
|
||||||
|
//
|
||||||
|
//if (ui->wsHeadersTxt->toPlainText() == "") {
|
||||||
|
// ui->wsHeadersTxt->setPlainText("Host|" + arg1);
|
||||||
|
// on_wsHeadersTxt_textChanged();
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectionEditWindow::on_portLineEdit_textEdited(const QString &arg1)
|
void ConnectionEditWindow::on_portLineEdit_textEdited(const QString &arg1)
|
||||||
@ -137,19 +139,22 @@ void ConnectionEditWindow::on_portLineEdit_textEdited(const QString &arg1)
|
|||||||
|
|
||||||
void ConnectionEditWindow::on_idLineEdit_textEdited(const QString &arg1)
|
void ConnectionEditWindow::on_idLineEdit_textEdited(const QString &arg1)
|
||||||
{
|
{
|
||||||
LOG("BUGFUL!")
|
if (vmess.users.size() == 0) vmess.users.push_back(VMessOut::ServerObject::UserObject());
|
||||||
|
|
||||||
vmess.users.front().id = arg1.toStdString();
|
vmess.users.front().id = arg1.toStdString();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectionEditWindow::on_alterLineEdit_textEdited(const QString &arg1)
|
void ConnectionEditWindow::on_alterLineEdit_textEdited(const QString &arg1)
|
||||||
{
|
{
|
||||||
LOG("BUGFUL!")
|
if (vmess.users.size() == 0) vmess.users.push_back(VMessOut::ServerObject::UserObject());
|
||||||
vmess.users.front().id = arg1.toStdString();
|
|
||||||
|
vmess.users.front().alterId = stoi(arg1.toStdString());
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectionEditWindow::on_securityCombo_currentIndexChanged(const QString &arg1)
|
void ConnectionEditWindow::on_securityCombo_currentIndexChanged(const QString &arg1)
|
||||||
{
|
{
|
||||||
LOG("BUGFUL!")
|
if (vmess.users.size() == 0) vmess.users.push_back(VMessOut::ServerObject::UserObject());
|
||||||
|
|
||||||
vmess.users.front().security = arg1.toStdString();
|
vmess.users.front().security = arg1.toStdString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,11 +163,6 @@ void ConnectionEditWindow::on_tranportCombo_currentIndexChanged(const QString &a
|
|||||||
stream.network = arg1.toStdString();
|
stream.network = arg1.toStdString();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectionEditWindow::on_comboBox_currentIndexChanged(const QString &arg1)
|
|
||||||
{
|
|
||||||
stream.tcpSettings.header.type = arg1.toStdString();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConnectionEditWindow::on_httpPathTxt_textEdited(const QString &arg1)
|
void ConnectionEditWindow::on_httpPathTxt_textEdited(const QString &arg1)
|
||||||
{
|
{
|
||||||
stream.httpSettings.path = arg1.toStdString();
|
stream.httpSettings.path = arg1.toStdString();
|
||||||
@ -184,11 +184,6 @@ void ConnectionEditWindow::on_httpHostTxt_textChanged()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectionEditWindow::on_lineEdit_textEdited(const QString &arg1)
|
|
||||||
{
|
|
||||||
stream.wsSettings.path = arg1.toStdString();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConnectionEditWindow::on_wsHeadersTxt_textChanged()
|
void ConnectionEditWindow::on_wsHeadersTxt_textChanged()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
@ -209,28 +204,24 @@ void ConnectionEditWindow::on_wsHeadersTxt_textChanged()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectionEditWindow::on_spinBox_valueChanged(int arg1)
|
|
||||||
{
|
|
||||||
stream.kcpSettings.mtu = arg1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConnectionEditWindow::on_tcpRequestDefBtn_clicked()
|
void ConnectionEditWindow::on_tcpRequestDefBtn_clicked()
|
||||||
{
|
{
|
||||||
ui->tcpRequestTxt->clear();
|
ui->tcpRequestTxt->clear();
|
||||||
ui->tcpRequestTxt->insertPlainText("{ \"version\" : \"TODO....\"");
|
ui->tcpRequestTxt->insertPlainText("{\"version\":\"1.1\",\"method\":\"GET\",\"path\":[\"/\"],\"headers\":{\"Host\":[\"www.baidu.com\",\"www.bing.com\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36\",\"Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/53.0.2785.109 Mobile/14A456 Safari/601.1.46\"],\"Accept-Encoding\":[\"gzip, deflate\"],\"Connection\":[\"keep-alive\"],\"Pragma\":\"no-cache\"}}");
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectionEditWindow::on_tcpRespDefBtn_clicked()
|
void ConnectionEditWindow::on_tcpRespDefBtn_clicked()
|
||||||
{
|
{
|
||||||
ui->tcpRespTxt->clear();
|
ui->tcpRespTxt->clear();
|
||||||
ui->tcpRespTxt->insertPlainText("{ \"version\" : \"TODO....\"");
|
ui->tcpRespTxt->insertPlainText("{\"version\":\"1.1\",\"status\":\"200\",\"reason\":\"OK\",\"headers\":{\"Content-Type\":[\"application/octet-stream\",\"video/mpeg\"],\"Transfer-Encoding\":[\"chunked\"],\"Connection\":[\"keep-alive\"],\"Pragma\":\"no-cache\"}}");
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectionEditWindow::on_tcpRequestTxt_textChanged()
|
void ConnectionEditWindow::on_tcpRequestTxt_textChanged()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
auto httpReqObject = StructFromJSONString<_TransferSettingObjects::TRANSFERObjectsInternal::HTTPRequestObject>(ui->tcpRequestTxt->toPlainText());
|
auto tcpReqObject = StructFromJSONString<_TransferSettingObjects::TRANSFERObjectsInternal::HTTPRequestObject>(ui->tcpRequestTxt->toPlainText());
|
||||||
stream.tcpSettings.header.request = httpReqObject;
|
stream.tcpSettings.header.request = tcpReqObject;
|
||||||
WHITE(tcpRequestTxt)
|
WHITE(tcpRequestTxt)
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
RED(tcpRequestTxt)
|
RED(tcpRequestTxt)
|
||||||
@ -240,8 +231,8 @@ void ConnectionEditWindow::on_tcpRequestTxt_textChanged()
|
|||||||
void ConnectionEditWindow::on_tcpRespTxt_textChanged()
|
void ConnectionEditWindow::on_tcpRespTxt_textChanged()
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
auto httpRspObject = StructFromJSONString<_TransferSettingObjects::TRANSFERObjectsInternal::HTTPResponseObject>(ui->tcpRespTxt->toPlainText());
|
auto tcpRspObject = StructFromJSONString<_TransferSettingObjects::TRANSFERObjectsInternal::HTTPResponseObject>(ui->tcpRespTxt->toPlainText());
|
||||||
stream.tcpSettings.header.response = httpRspObject;
|
stream.tcpSettings.header.response = tcpRspObject;
|
||||||
WHITE(tcpRespTxt)
|
WHITE(tcpRespTxt)
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
RED(tcpRespTxt)
|
RED(tcpRespTxt)
|
||||||
@ -289,7 +280,7 @@ void ConnectionEditWindow::on_tProxyCB_currentIndexChanged(const QString &arg1)
|
|||||||
|
|
||||||
void ConnectionEditWindow::on_quicSecurityCB_currentTextChanged(const QString &arg1)
|
void ConnectionEditWindow::on_quicSecurityCB_currentTextChanged(const QString &arg1)
|
||||||
{
|
{
|
||||||
stream.quicSettings.header.type = arg1.toStdString();
|
stream.quicSettings.security = arg1.toStdString();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectionEditWindow::on_quicKeyTxt_textEdited(const QString &arg1)
|
void ConnectionEditWindow::on_quicKeyTxt_textEdited(const QString &arg1)
|
||||||
@ -301,3 +292,76 @@ void ConnectionEditWindow::on_quicHeaderTypeCB_currentIndexChanged(const QString
|
|||||||
{
|
{
|
||||||
stream.quicSettings.header.type = arg1.toStdString();
|
stream.quicSettings.header.type = arg1.toStdString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ConnectionEditWindow::on_tcpRequestPrettifyBtn_clicked()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
auto tcpReqObject = StructFromJSONString<_TransferSettingObjects::TRANSFERObjectsInternal::HTTPRequestObject>(ui->tcpRequestTxt->toPlainText());
|
||||||
|
auto tcpReqObjectStr = StructToJSONString(tcpReqObject);
|
||||||
|
ui->tcpRequestTxt->setPlainText(tcpReqObjectStr);
|
||||||
|
} catch (...) {
|
||||||
|
QvMessageBox(this, tr("#JsonPrettify"), tr("#JsonContainsError"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionEditWindow::on_tcpRespPrettifyBtn_clicked()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
auto tcpRspObject = StructFromJSONString<_TransferSettingObjects::TRANSFERObjectsInternal::HTTPResponseObject>(ui->tcpRespTxt->toPlainText());
|
||||||
|
auto tcpRspObjectStr = StructToJSONString(tcpRspObject);
|
||||||
|
ui->tcpRespTxt->setPlainText(tcpRspObjectStr);
|
||||||
|
} catch (...) {
|
||||||
|
QvMessageBox(this, tr("#JsonPrettify"), tr("#JsonContainsError"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionEditWindow::on_tcpHeaderTypeCB_currentIndexChanged(const QString &arg1)
|
||||||
|
{
|
||||||
|
stream.tcpSettings.header.type = arg1.toStdString();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionEditWindow::on_wsPathTxt_textEdited(const QString &arg1)
|
||||||
|
{
|
||||||
|
stream.wsSettings.path = arg1.toStdString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void ConnectionEditWindow::on_kcpMTU_valueChanged(int arg1)
|
||||||
|
{
|
||||||
|
stream.kcpSettings.mtu = arg1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionEditWindow::on_kcpTTI_valueChanged(int arg1)
|
||||||
|
{
|
||||||
|
stream.kcpSettings.tti = arg1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionEditWindow::on_kcpUploadCapacSB_valueChanged(int arg1)
|
||||||
|
{
|
||||||
|
stream.kcpSettings.uplinkCapacity = arg1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionEditWindow::on_kcpCongestionCB_stateChanged(int arg1)
|
||||||
|
{
|
||||||
|
stream.kcpSettings.congestion = arg1 == Qt::Checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionEditWindow::on_kcpDownCapacitySB_valueChanged(int arg1)
|
||||||
|
{
|
||||||
|
stream.kcpSettings.downlinkCapacity = arg1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionEditWindow::on_kcpReadBufferSB_valueChanged(int arg1)
|
||||||
|
{
|
||||||
|
stream.kcpSettings.readBufferSize = arg1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionEditWindow::on_kcpWriteBufferSB_valueChanged(int arg1)
|
||||||
|
{
|
||||||
|
stream.kcpSettings.writeBufferSize = arg1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionEditWindow::on_kcpHeaderType_currentTextChanged(const QString &arg1)
|
||||||
|
{
|
||||||
|
stream.kcpSettings.header.type = arg1.toStdString();
|
||||||
|
}
|
||||||
|
@ -36,18 +36,12 @@ class ConnectionEditWindow : public QDialog
|
|||||||
|
|
||||||
void on_tranportCombo_currentIndexChanged(const QString &arg1);
|
void on_tranportCombo_currentIndexChanged(const QString &arg1);
|
||||||
|
|
||||||
void on_comboBox_currentIndexChanged(const QString &arg1);
|
|
||||||
|
|
||||||
void on_httpPathTxt_textEdited(const QString &arg1);
|
void on_httpPathTxt_textEdited(const QString &arg1);
|
||||||
|
|
||||||
void on_httpHostTxt_textChanged();
|
void on_httpHostTxt_textChanged();
|
||||||
|
|
||||||
void on_lineEdit_textEdited(const QString &arg1);
|
|
||||||
|
|
||||||
void on_wsHeadersTxt_textChanged();
|
void on_wsHeadersTxt_textChanged();
|
||||||
|
|
||||||
void on_spinBox_valueChanged(int arg1);
|
|
||||||
|
|
||||||
void on_tcpRequestDefBtn_clicked();
|
void on_tcpRequestDefBtn_clicked();
|
||||||
|
|
||||||
void on_tcpRespDefBtn_clicked();
|
void on_tcpRespDefBtn_clicked();
|
||||||
@ -72,6 +66,30 @@ class ConnectionEditWindow : public QDialog
|
|||||||
|
|
||||||
void on_quicHeaderTypeCB_currentIndexChanged(const QString &arg1);
|
void on_quicHeaderTypeCB_currentIndexChanged(const QString &arg1);
|
||||||
|
|
||||||
|
void on_tcpRequestPrettifyBtn_clicked();
|
||||||
|
|
||||||
|
void on_tcpRespPrettifyBtn_clicked();
|
||||||
|
|
||||||
|
void on_tcpHeaderTypeCB_currentIndexChanged(const QString &arg1);
|
||||||
|
|
||||||
|
void on_wsPathTxt_textEdited(const QString &arg1);
|
||||||
|
|
||||||
|
void on_kcpMTU_valueChanged(int arg1);
|
||||||
|
|
||||||
|
void on_kcpTTI_valueChanged(int arg1);
|
||||||
|
|
||||||
|
void on_kcpUploadCapacSB_valueChanged(int arg1);
|
||||||
|
|
||||||
|
void on_kcpCongestionCB_stateChanged(int arg1);
|
||||||
|
|
||||||
|
void on_kcpDownCapacitySB_valueChanged(int arg1);
|
||||||
|
|
||||||
|
void on_kcpReadBufferSB_valueChanged(int arg1);
|
||||||
|
|
||||||
|
void on_kcpWriteBufferSB_valueChanged(int arg1);
|
||||||
|
|
||||||
|
void on_kcpHeaderType_currentTextChanged(const QString &arg1);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString _alias;
|
QString _alias;
|
||||||
void LoadGUIContents();
|
void LoadGUIContents();
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1012</width>
|
<width>1012</width>
|
||||||
<height>547</height>
|
<height>574</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -227,7 +227,7 @@
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>2</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="usesScrollButtons">
|
<property name="usesScrollButtons">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@ -237,7 +237,7 @@
|
|||||||
<string>TCP</string>
|
<string>TCP</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="0" column="0" colspan="2">
|
<item row="0" column="0" colspan="4">
|
||||||
<layout class="QGridLayout" name="gridLayout_4" columnstretch="1,5">
|
<layout class="QGridLayout" name="gridLayout_4" columnstretch="1,5">
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QComboBox" name="tcpHeaderTypeCB">
|
<widget class="QComboBox" name="tcpHeaderTypeCB">
|
||||||
@ -269,14 +269,14 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="1" column="2">
|
||||||
<widget class="QLabel" name="label_3">
|
<widget class="QLabel" name="label_3">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>#Response</string>
|
<string>#Response</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="2" column="0" colspan="2">
|
||||||
<widget class="QPlainTextEdit" name="tcpRequestTxt">
|
<widget class="QPlainTextEdit" name="tcpRequestTxt">
|
||||||
<property name="lineWrapMode">
|
<property name="lineWrapMode">
|
||||||
<enum>QPlainTextEdit::NoWrap</enum>
|
<enum>QPlainTextEdit::NoWrap</enum>
|
||||||
@ -289,7 +289,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="2" column="2" colspan="2">
|
||||||
<widget class="QPlainTextEdit" name="tcpRespTxt">
|
<widget class="QPlainTextEdit" name="tcpRespTxt">
|
||||||
<property name="lineWrapMode">
|
<property name="lineWrapMode">
|
||||||
<enum>QPlainTextEdit::NoWrap</enum>
|
<enum>QPlainTextEdit::NoWrap</enum>
|
||||||
@ -307,12 +307,26 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="3" column="1">
|
||||||
|
<widget class="QPushButton" name="tcpRequestPrettifyBtn">
|
||||||
|
<property name="text">
|
||||||
|
<string>#Prettify</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="2">
|
||||||
<widget class="QPushButton" name="tcpRespDefBtn">
|
<widget class="QPushButton" name="tcpRespDefBtn">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>#InsertDefaultContent</string>
|
<string>#InsertDefaultContent</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="3" column="3">
|
||||||
|
<widget class="QPushButton" name="tcpRespPrettifyBtn">
|
||||||
|
<property name="text">
|
||||||
|
<string>#Prettify</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QWidget" name="httpTab">
|
<widget class="QWidget" name="httpTab">
|
||||||
|
@ -105,6 +105,7 @@ void MainWindow::on_stopButton_clicked()
|
|||||||
{
|
{
|
||||||
LOG("Stop connection!")
|
LOG("Stop connection!")
|
||||||
this->vinstance->Stop();
|
this->vinstance->Stop();
|
||||||
|
QFile(QV2RAY_GENERATED_CONFIG_FILE_PATH).remove();
|
||||||
ui->statusLabel->setText(tr("#Stopped"));
|
ui->statusLabel->setText(tr("#Stopped"));
|
||||||
ui->logText->clear();
|
ui->logText->clear();
|
||||||
trayMenu->actions()[2]->setEnabled(true);
|
trayMenu->actions()[2]->setEnabled(true);
|
||||||
@ -126,6 +127,7 @@ void MainWindow::on_clbutton_clicked()
|
|||||||
void MainWindow::closeEvent(QCloseEvent *event)
|
void MainWindow::closeEvent(QCloseEvent *event)
|
||||||
{
|
{
|
||||||
this->hide();
|
this->hide();
|
||||||
|
trayMenu->actions()[0]->setText(tr("#Show"));
|
||||||
event->ignore();
|
event->ignore();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,13 +143,6 @@ void MainWindow::on_activatedTray(QSystemTrayIcon::ActivationReason reason)
|
|||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QSystemTrayIcon::DoubleClick:
|
|
||||||
if (this->isHidden()) {
|
|
||||||
this->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case QSystemTrayIcon::MiddleClick:
|
case QSystemTrayIcon::MiddleClick:
|
||||||
if (this->vinstance->Status == Qv2ray::STOPPED) {
|
if (this->vinstance->Status == Qv2ray::STOPPED) {
|
||||||
on_startButton_clicked();
|
on_startButton_clicked();
|
||||||
@ -244,14 +239,16 @@ void MainWindow::on_delConfigBtn_clicked()
|
|||||||
{
|
{
|
||||||
auto conf = GetGlobalConfig();
|
auto conf = GetGlobalConfig();
|
||||||
QList<string> list = QList<string>::fromStdList(conf.configs);
|
QList<string> list = QList<string>::fromStdList(conf.configs);
|
||||||
auto currentSelected = ui->connectionListWidget->currentItem()->text();
|
auto currentSelected = ui->connectionListWidget->currentIndex().row();
|
||||||
|
|
||||||
if (currentSelected == CurrentConnectionName) {
|
if (currentSelected < 0) return;
|
||||||
|
|
||||||
|
if (ui->connectionListWidget->item(currentSelected)->text() == CurrentConnectionName) {
|
||||||
on_stopButton_clicked();
|
on_stopButton_clicked();
|
||||||
CurrentConnectionName = "";
|
CurrentConnectionName = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
list.removeOne(currentSelected.toStdString());
|
list.removeOne(ui->connectionListWidget->item(currentSelected)->text().toStdString());
|
||||||
conf.configs = list.toStdList();
|
conf.configs = list.toStdList();
|
||||||
SetGlobalConfig(conf);
|
SetGlobalConfig(conf);
|
||||||
SaveGlobalConfig();
|
SaveGlobalConfig();
|
||||||
@ -262,7 +259,6 @@ void MainWindow::on_prefrencesBtn_clicked()
|
|||||||
{
|
{
|
||||||
PrefrencesWindow *w = new PrefrencesWindow(this);
|
PrefrencesWindow *w = new PrefrencesWindow(this);
|
||||||
connect(w, &PrefrencesWindow::s_reload_config, this, &MainWindow::reload_config);
|
connect(w, &PrefrencesWindow::s_reload_config, this, &MainWindow::reload_config);
|
||||||
w->ReloadCurrentConfig();
|
|
||||||
w->show();
|
w->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>568</width>
|
<width>607</width>
|
||||||
<height>457</height>
|
<height>457</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -25,12 +25,6 @@
|
|||||||
<height>457</height>
|
<height>457</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>866</width>
|
|
||||||
<height>990</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Qv2ray</string>
|
<string>Qv2ray</string>
|
||||||
</property>
|
</property>
|
||||||
@ -41,8 +35,8 @@
|
|||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item>
|
<item row="0" column="0" colspan="4">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1,1,1,0,0,0,0">
|
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1,1,1,0,0,0,0">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>5</number>
|
<number>5</number>
|
||||||
@ -117,191 +111,175 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item row="1" column="0">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3" stretch="1,1">
|
<widget class="QLabel" name="label_8">
|
||||||
<item>
|
<property name="text">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
<string>#HostList</string>
|
||||||
<item>
|
</property>
|
||||||
<widget class="QLabel" name="label_8">
|
</widget>
|
||||||
<property name="text">
|
|
||||||
<string>#HostList</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QListWidget" name="connectionListWidget">
|
|
||||||
<property name="frameShape">
|
|
||||||
<enum>QFrame::StyledPanel</enum>
|
|
||||||
</property>
|
|
||||||
<property name="frameShadow">
|
|
||||||
<enum>QFrame::Sunken</enum>
|
|
||||||
</property>
|
|
||||||
<property name="lineWidth">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="midLineWidth">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="verticalScrollBarPolicy">
|
|
||||||
<enum>Qt::ScrollBarAsNeeded</enum>
|
|
||||||
</property>
|
|
||||||
<property name="horizontalScrollBarPolicy">
|
|
||||||
<enum>Qt::ScrollBarAsNeeded</enum>
|
|
||||||
</property>
|
|
||||||
<property name="defaultDropAction">
|
|
||||||
<enum>Qt::CopyAction</enum>
|
|
||||||
</property>
|
|
||||||
<property name="verticalScrollMode">
|
|
||||||
<enum>QAbstractItemView::ScrollPerPixel</enum>
|
|
||||||
</property>
|
|
||||||
<property name="horizontalScrollMode">
|
|
||||||
<enum>QAbstractItemView::ScrollPerPixel</enum>
|
|
||||||
</property>
|
|
||||||
<property name="viewMode">
|
|
||||||
<enum>QListView::ListMode</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="importConfigBtn">
|
|
||||||
<property name="text">
|
|
||||||
<string>#ImportConfig</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="addConfigBtn">
|
|
||||||
<property name="text">
|
|
||||||
<string>#AddConfig</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="delConfigBtn">
|
|
||||||
<property name="text">
|
|
||||||
<string>#RemoveConfig</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="groupBox">
|
|
||||||
<property name="title">
|
|
||||||
<string>#ConfigDetail</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QFormLayout" name="formLayout">
|
|
||||||
<property name="fieldGrowthPolicy">
|
|
||||||
<enum>QFormLayout::ExpandingFieldsGrow</enum>
|
|
||||||
</property>
|
|
||||||
<property name="verticalSpacing">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="label">
|
|
||||||
<property name="text">
|
|
||||||
<string>#Host</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QLabel" name="_hostLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="label_3">
|
|
||||||
<property name="text">
|
|
||||||
<string>#Port</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QLabel" name="_portLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="label_9">
|
|
||||||
<property name="text">
|
|
||||||
<string>#UUID</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QLabel" name="_uuidLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0">
|
|
||||||
<widget class="QLabel" name="label_5">
|
|
||||||
<property name="text">
|
|
||||||
<string>#Transport</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="1">
|
|
||||||
<widget class="QLabel" name="_transportLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="0">
|
|
||||||
<widget class="QLabel" name="label_11">
|
|
||||||
<property name="text">
|
|
||||||
<string>#ConnectionSettings</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="1">
|
|
||||||
<widget class="QPushButton" name="editConnectionSettingsBtn">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>#ConnectionSettings</string>
|
|
||||||
</property>
|
|
||||||
<property name="flat">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item row="1" column="3" rowspan="3">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
<widget class="QGroupBox" name="groupBox">
|
||||||
<item>
|
<property name="title">
|
||||||
<widget class="QLabel" name="label_10">
|
<string>#ConfigDetail</string>
|
||||||
<property name="text">
|
</property>
|
||||||
<string>#Log</string>
|
<layout class="QFormLayout" name="formLayout">
|
||||||
</property>
|
<property name="fieldGrowthPolicy">
|
||||||
</widget>
|
<enum>QFormLayout::ExpandingFieldsGrow</enum>
|
||||||
</item>
|
</property>
|
||||||
<item>
|
<property name="verticalSpacing">
|
||||||
<widget class="QTextBrowser" name="logText">
|
<number>10</number>
|
||||||
<property name="verticalScrollBarPolicy">
|
</property>
|
||||||
<enum>Qt::ScrollBarAlwaysOn</enum>
|
<item row="0" column="0">
|
||||||
</property>
|
<widget class="QLabel" name="label">
|
||||||
</widget>
|
<property name="text">
|
||||||
</item>
|
<string>#Host</string>
|
||||||
</layout>
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLabel" name="_hostLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="text">
|
||||||
|
<string>#Port</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLabel" name="_portLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_9">
|
||||||
|
<property name="text">
|
||||||
|
<string>#UUID</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLabel" name="_uuidLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>#Transport</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QLabel" name="_transportLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QLabel" name="label_11">
|
||||||
|
<property name="text">
|
||||||
|
<string>#ConnectionSettings</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<widget class="QPushButton" name="editConnectionSettingsBtn">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>#ConnectionSettings</string>
|
||||||
|
</property>
|
||||||
|
<property name="flat">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0" colspan="3">
|
||||||
|
<widget class="QListWidget" name="connectionListWidget">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Sunken</enum>
|
||||||
|
</property>
|
||||||
|
<property name="lineWidth">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="midLineWidth">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="verticalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAsNeeded</enum>
|
||||||
|
</property>
|
||||||
|
<property name="horizontalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAsNeeded</enum>
|
||||||
|
</property>
|
||||||
|
<property name="defaultDropAction">
|
||||||
|
<enum>Qt::CopyAction</enum>
|
||||||
|
</property>
|
||||||
|
<property name="verticalScrollMode">
|
||||||
|
<enum>QAbstractItemView::ScrollPerPixel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="horizontalScrollMode">
|
||||||
|
<enum>QAbstractItemView::ScrollPerPixel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="viewMode">
|
||||||
|
<enum>QListView::ListMode</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QPushButton" name="importConfigBtn">
|
||||||
|
<property name="text">
|
||||||
|
<string>#ImportConfig</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QPushButton" name="addConfigBtn">
|
||||||
|
<property name="text">
|
||||||
|
<string>#AddConfig</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="2">
|
||||||
|
<widget class="QPushButton" name="delConfigBtn">
|
||||||
|
<property name="text">
|
||||||
|
<string>#RemoveConfig</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QLabel" name="label_10">
|
||||||
|
<property name="text">
|
||||||
|
<string>#Log</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0" colspan="4">
|
||||||
|
<widget class="QTextBrowser" name="logText">
|
||||||
|
<property name="verticalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAlwaysOn</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#include "QvUtils.h"
|
#include "QvUtils.h"
|
||||||
#include "QvCoreInteractions.h"
|
#include "QvCoreInteractions.h"
|
||||||
#include "w_PrefrencesWindow.h"
|
#include "w_PrefrencesWindow.h"
|
||||||
|
#include <QFileDialog>
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
@ -11,11 +12,6 @@ PrefrencesWindow::PrefrencesWindow(QWidget *parent) : QDialog(parent),
|
|||||||
ui(new Ui::PrefrencesWindow)
|
ui(new Ui::PrefrencesWindow)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
ReloadCurrentConfig();
|
|
||||||
}
|
|
||||||
|
|
||||||
void PrefrencesWindow::ReloadCurrentConfig()
|
|
||||||
{
|
|
||||||
CurrentConfig = GetGlobalConfig();
|
CurrentConfig = GetGlobalConfig();
|
||||||
//
|
//
|
||||||
ui->languageComboBox->setCurrentText(QString::fromStdString(CurrentConfig.language));
|
ui->languageComboBox->setCurrentText(QString::fromStdString(CurrentConfig.language));
|
||||||
@ -56,11 +52,13 @@ void PrefrencesWindow::ReloadCurrentConfig()
|
|||||||
ui->proxyDefaultCb->setChecked(CurrentConfig.proxyDefault);
|
ui->proxyDefaultCb->setChecked(CurrentConfig.proxyDefault);
|
||||||
ui->localDNSCb->setChecked(CurrentConfig.withLocalDNS);
|
ui->localDNSCb->setChecked(CurrentConfig.withLocalDNS);
|
||||||
//
|
//
|
||||||
ui->DNSListListBox->clear();
|
ui->DNSListTxt->clear();
|
||||||
|
|
||||||
foreach (auto dnsStr, CurrentConfig.dnsList) {
|
foreach (auto dnsStr, CurrentConfig.dnsList) {
|
||||||
ui->DNSListListBox->addItem(QString::fromStdString(dnsStr));
|
ui->DNSListTxt->appendPlainText(QString::fromStdString(dnsStr) + "\r\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
finishedLoading = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
PrefrencesWindow::~PrefrencesWindow()
|
PrefrencesWindow::~PrefrencesWindow()
|
||||||
@ -227,3 +225,42 @@ void PrefrencesWindow::on_localDNSCb_stateChanged(int arg1)
|
|||||||
{
|
{
|
||||||
CurrentConfig.withLocalDNS = arg1 == Qt::Checked;
|
CurrentConfig.withLocalDNS = arg1 == Qt::Checked;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PrefrencesWindow::on_selectVCoreBtn_clicked()
|
||||||
|
{
|
||||||
|
QString dir = QFileDialog::getOpenFileName(this, tr("#OpenVCoreFile"), QDir::homePath());
|
||||||
|
ui->vCoreExePathTxt->setText(dir);
|
||||||
|
on_vCoreExePathTxt_textEdited(dir);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PrefrencesWindow::on_selectVAssetBtn_clicked()
|
||||||
|
{
|
||||||
|
QString dir = QFileDialog::getExistingDirectory(this, tr("OpenVAssetsDir"), QDir::homePath());
|
||||||
|
ui->vCoreAssetsPathTxt->setText(dir);
|
||||||
|
on_vCoreAssetsPathTxt_textChanged(dir);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PrefrencesWindow::on_DNSListTxt_textChanged()
|
||||||
|
{
|
||||||
|
if (finishedLoading) {
|
||||||
|
try {
|
||||||
|
QStringList hosts = ui->DNSListTxt->toPlainText().replace("\r", "").split("\n");
|
||||||
|
CurrentConfig.dnsList.clear();
|
||||||
|
|
||||||
|
foreach (auto host, hosts) {
|
||||||
|
if (host != "" && host != "\r") {
|
||||||
|
// Not empty, so we save.
|
||||||
|
CurrentConfig.dnsList.push_back(host.toStdString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
WHITE(DNSListTxt)
|
||||||
|
} catch (...) {
|
||||||
|
RED(DNSListTxt)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void PrefrencesWindow::on_vCoreAssetsPathTxt_textChanged(const QString &arg1)
|
||||||
|
{
|
||||||
|
CurrentConfig.v2AssetsPath = arg1.toStdString();
|
||||||
|
}
|
||||||
|
@ -17,7 +17,6 @@ class PrefrencesWindow : public QDialog
|
|||||||
public:
|
public:
|
||||||
explicit PrefrencesWindow(QWidget *parent = nullptr);
|
explicit PrefrencesWindow(QWidget *parent = nullptr);
|
||||||
~PrefrencesWindow();
|
~PrefrencesWindow();
|
||||||
void ReloadCurrentConfig();
|
|
||||||
signals:
|
signals:
|
||||||
void s_reload_config();
|
void s_reload_config();
|
||||||
private slots:
|
private slots:
|
||||||
@ -63,7 +62,16 @@ class PrefrencesWindow : public QDialog
|
|||||||
|
|
||||||
void on_localDNSCb_stateChanged(int arg1);
|
void on_localDNSCb_stateChanged(int arg1);
|
||||||
|
|
||||||
|
void on_selectVCoreBtn_clicked();
|
||||||
|
|
||||||
|
void on_selectVAssetBtn_clicked();
|
||||||
|
|
||||||
|
void on_DNSListTxt_textChanged();
|
||||||
|
|
||||||
|
void on_vCoreAssetsPathTxt_textChanged(const QString &arg1);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
bool finishedLoading = false;
|
||||||
Qv2ray::QvConfigModels::Qv2Config_v1 CurrentConfig;
|
Qv2ray::QvConfigModels::Qv2Config_v1 CurrentConfig;
|
||||||
Ui::PrefrencesWindow *ui;
|
Ui::PrefrencesWindow *ui;
|
||||||
};
|
};
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QTabWidget" name="tabWidget">
|
<widget class="QTabWidget" name="tabWidget">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>3</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="tab">
|
<widget class="QWidget" name="tab">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
@ -37,6 +37,26 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QComboBox" name="languageComboBox">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>zh-CN</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>en-US</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="label_7">
|
<widget class="QLabel" name="label_7">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -107,7 +127,18 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QLineEdit" name="vCoreExePathTxt"/>
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="vCoreExePathTxt"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="selectVCoreBtn">
|
||||||
|
<property name="text">
|
||||||
|
<string>#Select</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="0">
|
<item row="4" column="0">
|
||||||
<widget class="QLabel" name="label_15">
|
<widget class="QLabel" name="label_15">
|
||||||
@ -117,27 +148,18 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="QLineEdit" name="vCoreAssetsPathTxt"/>
|
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QComboBox" name="languageComboBox">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<widget class="QLineEdit" name="vCoreAssetsPathTxt"/>
|
||||||
<string>zh-CN</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<widget class="QPushButton" name="selectVAssetBtn">
|
||||||
<string>en-US</string>
|
<property name="text">
|
||||||
</property>
|
<string>#Select</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</widget>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
@ -406,32 +428,7 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QListWidget" name="DNSListListBox"/>
|
<widget class="QPlainTextEdit" name="DNSListTxt"/>
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="addDNStoListBtn">
|
|
||||||
<property name="text">
|
|
||||||
<string>Add</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="removeDNSinListBtn">
|
|
||||||
<property name="text">
|
|
||||||
<string>Remove</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="chearDNSListBtn">
|
|
||||||
<property name="text">
|
|
||||||
<string>Clear</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="31"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="31"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="336"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="350"/>
|
||||||
<source>#Host</source>
|
<source>#Host</source>
|
||||||
<translation>Host</translation>
|
<translation>Host</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -31,7 +31,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="86"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="86"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="649"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="663"/>
|
||||||
<source>#Security</source>
|
<source>#Security</source>
|
||||||
<translation>Security Settings</translation>
|
<translation>Security Settings</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -52,8 +52,8 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="259"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="259"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="567"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="581"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="716"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="730"/>
|
||||||
<source>#Type</source>
|
<source>#Type</source>
|
||||||
<translation>Type</translation>
|
<translation>Type</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -64,7 +64,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="305"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="305"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="312"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="319"/>
|
||||||
<source>#InsertDefaultContent</source>
|
<source>#InsertDefaultContent</source>
|
||||||
<translation>Insert Default Content</translation>
|
<translation>Insert Default Content</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -84,82 +84,88 @@
|
|||||||
<translation>Generate JSON</translation>
|
<translation>Generate JSON</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="320"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="312"/>
|
||||||
|
<location filename="../src/w_ConnectionEditWindow.ui" line="326"/>
|
||||||
|
<source>#Prettify</source>
|
||||||
|
<translation>Prettify JSON</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/w_ConnectionEditWindow.ui" line="334"/>
|
||||||
<source>HTTP</source>
|
<source>HTTP</source>
|
||||||
<translation>HTTP</translation>
|
<translation>HTTP</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="326"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="340"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="355"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="369"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="626"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="640"/>
|
||||||
<source>#Path</source>
|
<source>#Path</source>
|
||||||
<translation>Path</translation>
|
<translation>Path</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="347"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="361"/>
|
||||||
<source>WebSocket</source>
|
<source>WebSocket</source>
|
||||||
<translation>WebSocket</translation>
|
<translation>WebSocket</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="371"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="385"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="695"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="709"/>
|
||||||
<source>#Headers</source>
|
<source>#Headers</source>
|
||||||
<translation>Headers</translation>
|
<translation>Headers</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="378"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="392"/>
|
||||||
<source>#key|value format</source>
|
<source>#key|value format</source>
|
||||||
<translation>Format: KEY|VALUE</translation>
|
<translation>Format: KEY|VALUE</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="389"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="403"/>
|
||||||
<source>mKCP</source>
|
<source>mKCP</source>
|
||||||
<translation>mKCP</translation>
|
<translation>mKCP</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="397"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="411"/>
|
||||||
<source>#MTU</source>
|
<source>#MTU</source>
|
||||||
<translation>MTU</translation>
|
<translation>MTU</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="423"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="437"/>
|
||||||
<source>#TTI (ms)</source>
|
<source>#TTI (ms)</source>
|
||||||
<translation>TTI (ms)</translation>
|
<translation>TTI (ms)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="449"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="463"/>
|
||||||
<source>#UplinkCapacity (MB/s)</source>
|
<source>#UplinkCapacity (MB/s)</source>
|
||||||
<translation>Uplink Capacity (MB/s)</translation>
|
<translation>Uplink Capacity (MB/s)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="472"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="486"/>
|
||||||
<source>#Congestion</source>
|
<source>#Congestion</source>
|
||||||
<translation>Congestion Control</translation>
|
<translation>Congestion Control</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="769"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="783"/>
|
||||||
<source>SockOpt</source>
|
<source>SockOpt</source>
|
||||||
<translation>SockOpt</translation>
|
<translation>SockOpt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="775"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="789"/>
|
||||||
<source>#Mark</source>
|
<source>#Mark</source>
|
||||||
<translation>Mark</translation>
|
<translation>Mark</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="785"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="799"/>
|
||||||
<source>#TCPFastOpen</source>
|
<source>#TCPFastOpen</source>
|
||||||
<translation>TCP Fast Open</translation>
|
<translation>TCP Fast Open</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="799"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="813"/>
|
||||||
<source>#TProxy</source>
|
<source>#TProxy</source>
|
||||||
<translation>Transparent Proxy Mode</translation>
|
<translation>Transparent Proxy Mode</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="165"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="165"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="479"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="493"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="792"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="806"/>
|
||||||
<source>#Enabled</source>
|
<source>#Enabled</source>
|
||||||
<translation>Enabled</translation>
|
<translation>Enabled</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -169,41 +175,53 @@
|
|||||||
<translation>Preview Generated JSON</translation>
|
<translation>Preview Generated JSON</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="490"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="504"/>
|
||||||
<source>#DownlinkCapacity (MB/s)</source>
|
<source>#DownlinkCapacity (MB/s)</source>
|
||||||
<translation>Downlink Capacity (MB/s)</translation>
|
<translation>Downlink Capacity (MB/s)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="513"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="527"/>
|
||||||
<source>#ReadBufferSize (MB)</source>
|
<source>#ReadBufferSize (MB)</source>
|
||||||
<translation>Read Buffer Size (MB)</translation>
|
<translation>Read Buffer Size (MB)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="536"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="550"/>
|
||||||
<source>#WriteBufferSize (MB)</source>
|
<source>#WriteBufferSize (MB)</source>
|
||||||
<translation>Write Buffer Size (MB)</translation>
|
<translation>Write Buffer Size (MB)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="561"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="575"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="708"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="722"/>
|
||||||
<source>#Header</source>
|
<source>#Header</source>
|
||||||
<translation>Headers</translation>
|
<translation>Headers</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="618"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="632"/>
|
||||||
<source>DomainSocket</source>
|
<source>DomainSocket</source>
|
||||||
<translation>DomainSocket</translation>
|
<translation>DomainSocket</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="643"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="657"/>
|
||||||
<source>QUIC</source>
|
<source>QUIC</source>
|
||||||
<translation>QUIC</translation>
|
<translation>QUIC</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="681"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="695"/>
|
||||||
<source>#Key</source>
|
<source>#Key</source>
|
||||||
<translation>Key</translation>
|
<translation>Key</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/w_ConnectionEditWindow.cpp" line="303"/>
|
||||||
|
<location filename="../src/w_ConnectionEditWindow.cpp" line="314"/>
|
||||||
|
<source>#JsonPrettify</source>
|
||||||
|
<translation>Prettify JSON</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/w_ConnectionEditWindow.cpp" line="303"/>
|
||||||
|
<location filename="../src/w_ConnectionEditWindow.cpp" line="314"/>
|
||||||
|
<source>#JsonContainsError</source>
|
||||||
|
<translation>JSON is in a bad syntax</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ImportConfigWindow</name>
|
<name>ImportConfigWindow</name>
|
||||||
@ -297,127 +315,127 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>MainWindow</name>
|
<name>MainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="35"/>
|
<location filename="../src/w_MainWindow.ui" line="29"/>
|
||||||
<source>Qv2ray</source>
|
<source>Qv2ray</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="53"/>
|
<location filename="../src/w_MainWindow.ui" line="47"/>
|
||||||
<location filename="../src/w_MainWindow.ui" line="331"/>
|
<location filename="../src/w_MainWindow.ui" line="309"/>
|
||||||
<location filename="../src/w_MainWindow.cpp" line="28"/>
|
<location filename="../src/w_MainWindow.cpp" line="28"/>
|
||||||
<source>#Start</source>
|
<source>#Start</source>
|
||||||
<translation>Start</translation>
|
<translation>Start</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="60"/>
|
<location filename="../src/w_MainWindow.ui" line="54"/>
|
||||||
<location filename="../src/w_MainWindow.ui" line="336"/>
|
<location filename="../src/w_MainWindow.ui" line="314"/>
|
||||||
<location filename="../src/w_MainWindow.cpp" line="29"/>
|
<location filename="../src/w_MainWindow.cpp" line="29"/>
|
||||||
<source>#Stop</source>
|
<source>#Stop</source>
|
||||||
<translation>Stop</translation>
|
<translation>Stop</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="67"/>
|
<location filename="../src/w_MainWindow.ui" line="61"/>
|
||||||
<location filename="../src/w_MainWindow.ui" line="341"/>
|
<location filename="../src/w_MainWindow.ui" line="319"/>
|
||||||
<location filename="../src/w_MainWindow.cpp" line="30"/>
|
<location filename="../src/w_MainWindow.cpp" line="30"/>
|
||||||
<source>#Restart</source>
|
<source>#Restart</source>
|
||||||
<translation>Restart</translation>
|
<translation>Restart</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="77"/>
|
<location filename="../src/w_MainWindow.ui" line="71"/>
|
||||||
<source>#ClearLog</source>
|
<source>#ClearLog</source>
|
||||||
<translation>Clear Log</translation>
|
<translation>Clear Log</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="107"/>
|
<location filename="../src/w_MainWindow.ui" line="101"/>
|
||||||
<source>#Status</source>
|
<source>#Status</source>
|
||||||
<translation>Status</translation>
|
<translation>Status</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="114"/>
|
<location filename="../src/w_MainWindow.ui" line="108"/>
|
||||||
<location filename="../src/w_MainWindow.cpp" line="108"/>
|
<location filename="../src/w_MainWindow.cpp" line="109"/>
|
||||||
<source>#Stopped</source>
|
<source>#Stopped</source>
|
||||||
<translation>Stopped</translation>
|
<translation>Stopped</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="127"/>
|
<location filename="../src/w_MainWindow.ui" line="117"/>
|
||||||
<source>#HostList</source>
|
<source>#HostList</source>
|
||||||
<translation>Host List</translation>
|
<translation>Host List</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="170"/>
|
<location filename="../src/w_MainWindow.ui" line="252"/>
|
||||||
<source>#ImportConfig</source>
|
<source>#ImportConfig</source>
|
||||||
<translation>Import Config</translation>
|
<translation>Import Config</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="177"/>
|
<location filename="../src/w_MainWindow.ui" line="259"/>
|
||||||
<source>#AddConfig</source>
|
<source>#AddConfig</source>
|
||||||
<translation>Add Config</translation>
|
<translation>Add Config</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="184"/>
|
<location filename="../src/w_MainWindow.ui" line="266"/>
|
||||||
<source>#RemoveConfig</source>
|
<source>#RemoveConfig</source>
|
||||||
<translation>Remove Config</translation>
|
<translation>Remove Config</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="195"/>
|
<location filename="../src/w_MainWindow.ui" line="124"/>
|
||||||
<source>#ConfigDetail</source>
|
<source>#ConfigDetail</source>
|
||||||
<translation>Detailed Config Info</translation>
|
<translation>Detailed Config Info</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="207"/>
|
<location filename="../src/w_MainWindow.ui" line="136"/>
|
||||||
<source>#Host</source>
|
<source>#Host</source>
|
||||||
<translation>Host</translation>
|
<translation>Host</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="221"/>
|
<location filename="../src/w_MainWindow.ui" line="150"/>
|
||||||
<source>#Port</source>
|
<source>#Port</source>
|
||||||
<translation>Port</translation>
|
<translation>Port</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="235"/>
|
<location filename="../src/w_MainWindow.ui" line="164"/>
|
||||||
<source>#UUID</source>
|
<source>#UUID</source>
|
||||||
<translation>UUID</translation>
|
<translation>UUID</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="249"/>
|
<location filename="../src/w_MainWindow.ui" line="178"/>
|
||||||
<source>#Transport</source>
|
<source>#Transport</source>
|
||||||
<translation>Transport Settings</translation>
|
<translation>Transport Settings</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="263"/>
|
<location filename="../src/w_MainWindow.ui" line="192"/>
|
||||||
<location filename="../src/w_MainWindow.ui" line="276"/>
|
<location filename="../src/w_MainWindow.ui" line="205"/>
|
||||||
<source>#ConnectionSettings</source>
|
<source>#ConnectionSettings</source>
|
||||||
<translation>Connection Settings</translation>
|
<translation>Connection Settings</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="293"/>
|
<location filename="../src/w_MainWindow.ui" line="273"/>
|
||||||
<source>#Log</source>
|
<source>#Log</source>
|
||||||
<translation>Log</translation>
|
<translation>Log</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="311"/>
|
<location filename="../src/w_MainWindow.ui" line="289"/>
|
||||||
<source>#ManuallyCreateConnection</source>
|
<source>#ManuallyCreateConnection</source>
|
||||||
<translation>Manually Create Connection</translation>
|
<translation>Manually Create Connection</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="316"/>
|
<location filename="../src/w_MainWindow.ui" line="294"/>
|
||||||
<source>#ImportConnection</source>
|
<source>#ImportConnection</source>
|
||||||
<translation>Import Config File</translation>
|
<translation>Import Config File</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="321"/>
|
<location filename="../src/w_MainWindow.ui" line="299"/>
|
||||||
<source>#Exit</source>
|
<source>#Exit</source>
|
||||||
<translation>Exit</translation>
|
<translation>Exit</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="84"/>
|
<location filename="../src/w_MainWindow.ui" line="78"/>
|
||||||
<location filename="../src/w_MainWindow.ui" line="326"/>
|
<location filename="../src/w_MainWindow.ui" line="304"/>
|
||||||
<source>#Preferences</source>
|
<source>#Preferences</source>
|
||||||
<translation>Preferences</translation>
|
<translation>Preferences</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.cpp" line="26"/>
|
<location filename="../src/w_MainWindow.cpp" line="26"/>
|
||||||
<location filename="../src/w_MainWindow.cpp" line="169"/>
|
<location filename="../src/w_MainWindow.cpp" line="164"/>
|
||||||
<source>#Hide</source>
|
<source>#Hide</source>
|
||||||
<translation>Hide</translation>
|
<translation>Hide</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -442,7 +460,8 @@
|
|||||||
<translation>Started</translation>
|
<translation>Started</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.cpp" line="172"/>
|
<location filename="../src/w_MainWindow.cpp" line="130"/>
|
||||||
|
<location filename="../src/w_MainWindow.cpp" line="167"/>
|
||||||
<source>#Show</source>
|
<source>#Show</source>
|
||||||
<translation>Show</translation>
|
<translation>Show</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -451,8 +470,8 @@
|
|||||||
<name>PrefrencesWindow</name>
|
<name>PrefrencesWindow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="20"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="20"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.cpp" line="74"/>
|
<location filename="../src/w_PrefrencesWindow.cpp" line="72"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.cpp" line="140"/>
|
<location filename="../src/w_PrefrencesWindow.cpp" line="138"/>
|
||||||
<source>Prefrences</source>
|
<source>Prefrences</source>
|
||||||
<translation>Preferences</translation>
|
<translation>Preferences</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -467,188 +486,201 @@
|
|||||||
<translation>Language</translation>
|
<translation>Language</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="132"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="50"/>
|
||||||
<source>zh-CN</source>
|
<source>zh-CN</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="137"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="55"/>
|
||||||
<source>en-US</source>
|
<source>en-US</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="43"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="63"/>
|
||||||
<source>#RunAsRoot</source>
|
<source>#RunAsRoot</source>
|
||||||
<translation>Run v2ray as root</translation>
|
<translation>Run v2ray as root</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="50"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="70"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="152"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="174"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="159"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="181"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="229"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="251"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="236"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="258"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="302"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="324"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="316"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="338"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="364"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="386"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="385"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="407"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="392"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="414"/>
|
||||||
<source>#Enabled</source>
|
<source>#Enabled</source>
|
||||||
<translation>Enabled</translation>
|
<translation>Enabled</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="57"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="77"/>
|
||||||
<source>#LogLevel</source>
|
<source>#LogLevel</source>
|
||||||
<translation>Log Level</translation>
|
<translation>Log Level</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="82"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="102"/>
|
||||||
<source>debug</source>
|
<source>debug</source>
|
||||||
<translation>Debug</translation>
|
<translation>Debug</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="87"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="107"/>
|
||||||
<source>info</source>
|
<source>info</source>
|
||||||
<translation>Info</translation>
|
<translation>Info</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="92"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="112"/>
|
||||||
<source>warning</source>
|
<source>warning</source>
|
||||||
<translation>Warning</translation>
|
<translation>Warning</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="97"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="117"/>
|
||||||
<source>error</source>
|
<source>error</source>
|
||||||
<translation>Error</translation>
|
<translation>Error</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="357"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="137"/>
|
||||||
|
<location filename="../src/w_PrefrencesWindow.ui" line="158"/>
|
||||||
|
<source>#Select</source>
|
||||||
|
<translation>Select</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/w_PrefrencesWindow.ui" line="379"/>
|
||||||
<source>#ProxyGlobal</source>
|
<source>#ProxyGlobal</source>
|
||||||
<translation>Use Proxy as Default</translation>
|
<translation>Use Proxy as Default</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="371"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="393"/>
|
||||||
<source>#ProxyCN</source>
|
<source>#ProxyCN</source>
|
||||||
<translation>Use Proxy for China Mainland</translation>
|
<translation>Use Proxy for China Mainland</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="378"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="400"/>
|
||||||
<source>#WithLocalDNS</source>
|
<source>#WithLocalDNS</source>
|
||||||
<translation>Use localhost DNS</translation>
|
<translation>Use localhost DNS</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="404"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="426"/>
|
||||||
<source>#DNSList</source>
|
<source>#DNSList</source>
|
||||||
<translation>DNS Address List</translation>
|
<translation>DNS Address List</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="416"/>
|
|
||||||
<source>Add</source>
|
<source>Add</source>
|
||||||
<translation>Add</translation>
|
<translation type="vanished">Add</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="423"/>
|
|
||||||
<source>Remove</source>
|
<source>Remove</source>
|
||||||
<translation>Remove</translation>
|
<translation type="vanished">Remove</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="430"/>
|
|
||||||
<source>Clear</source>
|
<source>Clear</source>
|
||||||
<translation>Clear</translation>
|
<translation type="vanished">Clear</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="77"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="97"/>
|
||||||
<source>none</source>
|
<source>none</source>
|
||||||
<translation>Do not use</translation>
|
<translation>Do not use</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="105"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="125"/>
|
||||||
<source>#VCoreExePath</source>
|
<source>#VCoreExePath</source>
|
||||||
<translation>V2ray Kernal Path</translation>
|
<translation>V2ray Kernal Path</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="115"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="146"/>
|
||||||
<source>#VCoreAssetsPath</source>
|
<source>#VCoreAssetsPath</source>
|
||||||
<translation>V2ray Assets Path</translation>
|
<translation>V2ray Assets Path</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="146"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="168"/>
|
||||||
<source>#MuxSettings</source>
|
<source>#MuxSettings</source>
|
||||||
<translation>Mux Settings</translation>
|
<translation>Mux Settings</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="187"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="209"/>
|
||||||
<source>#InBoundSettings</source>
|
<source>#InBoundSettings</source>
|
||||||
<translation>Inbound Settings</translation>
|
<translation>Inbound Settings</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="195"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="217"/>
|
||||||
<source>#ListenIP</source>
|
<source>#ListenIP</source>
|
||||||
<translation>Listen IP</translation>
|
<translation>Listen IP</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="273"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="295"/>
|
||||||
<source>#HTTPInBoundSettings</source>
|
<source>#HTTPInBoundSettings</source>
|
||||||
<translation>HTTP Inbound Settings</translation>
|
<translation>HTTP Inbound Settings</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="209"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="231"/>
|
||||||
<source>#SOCKSBoundSettings</source>
|
<source>#SOCKSBoundSettings</source>
|
||||||
<translation>SOCKS Inbound Settings</translation>
|
<translation>SOCKS Inbound Settings</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="349"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="371"/>
|
||||||
<source>#RouteSettings</source>
|
<source>#RouteSettings</source>
|
||||||
<translation>Route Settings</translation>
|
<translation>Route Settings</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="166"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="188"/>
|
||||||
<source>#Concurrency</source>
|
<source>#Concurrency</source>
|
||||||
<translation>Maximum Connections</translation>
|
<translation>Maximum Connections</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="215"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="237"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="279"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="301"/>
|
||||||
<source>#Port</source>
|
<source>#Port</source>
|
||||||
<translation>Port</translation>
|
<translation>Port</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="253"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="275"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="323"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="345"/>
|
||||||
<source>#Username</source>
|
<source>#Username</source>
|
||||||
<translation>Username</translation>
|
<translation>Username</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="243"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="265"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="309"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="331"/>
|
||||||
<source>#Auth</source>
|
<source>#Auth</source>
|
||||||
<translation>Authentication</translation>
|
<translation>Authentication</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="260"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="282"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="333"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="355"/>
|
||||||
<source>#Password</source>
|
<source>#Password</source>
|
||||||
<translation>Password</translation>
|
<translation>Password</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.cpp" line="74"/>
|
<location filename="../src/w_PrefrencesWindow.cpp" line="72"/>
|
||||||
<source>PortNumbersCannotBeSame</source>
|
<source>PortNumbersCannotBeSame</source>
|
||||||
<translation>Port numbers cannot be the same</translation>
|
<translation>Port numbers cannot be the same</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.cpp" line="140"/>
|
<location filename="../src/w_PrefrencesWindow.cpp" line="138"/>
|
||||||
<source>RunAsRootNotOnWindows</source>
|
<source>RunAsRootNotOnWindows</source>
|
||||||
<translation>Run as root is not avaliable on Windows Platform</translation>
|
<translation>Run as root is not avaliable on Windows Platform</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/w_PrefrencesWindow.cpp" line="231"/>
|
||||||
|
<source>#OpenVCoreFile</source>
|
||||||
|
<translation>Open v2rat-core file</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/w_PrefrencesWindow.cpp" line="238"/>
|
||||||
|
<source>OpenVAssetsDir</source>
|
||||||
|
<translation>Open v2ray assets folder</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/main.cpp" line="91"/>
|
<location filename="../src/main.cpp" line="86"/>
|
||||||
<source>AnotherInstanceRunning</source>
|
<source>AnotherInstanceRunning</source>
|
||||||
<translation>Another instance is already running</translation>
|
<translation>Another instance is already running</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/main.cpp" line="91"/>
|
<location filename="../src/main.cpp" line="86"/>
|
||||||
<source>Qv2ray</source>
|
<source>Qv2ray</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="31"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="31"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="336"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="350"/>
|
||||||
<source>#Host</source>
|
<source>#Host</source>
|
||||||
<translation>域名</translation>
|
<translation>域名</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -31,7 +31,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="86"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="86"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="649"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="663"/>
|
||||||
<source>#Security</source>
|
<source>#Security</source>
|
||||||
<translation>安全设置</translation>
|
<translation>安全设置</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -52,8 +52,8 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="259"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="259"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="567"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="581"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="716"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="730"/>
|
||||||
<source>#Type</source>
|
<source>#Type</source>
|
||||||
<translation>类型</translation>
|
<translation>类型</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -64,7 +64,7 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="305"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="305"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="312"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="319"/>
|
||||||
<source>#InsertDefaultContent</source>
|
<source>#InsertDefaultContent</source>
|
||||||
<translation>默认值</translation>
|
<translation>默认值</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -84,82 +84,88 @@
|
|||||||
<translation>生成 JSON</translation>
|
<translation>生成 JSON</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="320"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="312"/>
|
||||||
|
<location filename="../src/w_ConnectionEditWindow.ui" line="326"/>
|
||||||
|
<source>#Prettify</source>
|
||||||
|
<translation>格式化 JSON</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/w_ConnectionEditWindow.ui" line="334"/>
|
||||||
<source>HTTP</source>
|
<source>HTTP</source>
|
||||||
<translation>HTTP</translation>
|
<translation>HTTP</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="326"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="340"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="355"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="369"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="626"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="640"/>
|
||||||
<source>#Path</source>
|
<source>#Path</source>
|
||||||
<translation>路径</translation>
|
<translation>路径</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="347"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="361"/>
|
||||||
<source>WebSocket</source>
|
<source>WebSocket</source>
|
||||||
<translation>WebSocket</translation>
|
<translation>WebSocket</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="371"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="385"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="695"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="709"/>
|
||||||
<source>#Headers</source>
|
<source>#Headers</source>
|
||||||
<translation>头伪装</translation>
|
<translation>头伪装</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="378"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="392"/>
|
||||||
<source>#key|value format</source>
|
<source>#key|value format</source>
|
||||||
<translation>格式:键|值</translation>
|
<translation>格式:键|值</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="389"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="403"/>
|
||||||
<source>mKCP</source>
|
<source>mKCP</source>
|
||||||
<translation>mKCP</translation>
|
<translation>mKCP</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="397"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="411"/>
|
||||||
<source>#MTU</source>
|
<source>#MTU</source>
|
||||||
<translation>最大传输单元</translation>
|
<translation>最大传输单元</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="423"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="437"/>
|
||||||
<source>#TTI (ms)</source>
|
<source>#TTI (ms)</source>
|
||||||
<translation>传输时间间隔</translation>
|
<translation>传输时间间隔</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="449"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="463"/>
|
||||||
<source>#UplinkCapacity (MB/s)</source>
|
<source>#UplinkCapacity (MB/s)</source>
|
||||||
<translation>上行链路容量 (MB/s)</translation>
|
<translation>上行链路容量 (MB/s)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="472"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="486"/>
|
||||||
<source>#Congestion</source>
|
<source>#Congestion</source>
|
||||||
<translation>拥塞控制</translation>
|
<translation>拥塞控制</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="769"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="783"/>
|
||||||
<source>SockOpt</source>
|
<source>SockOpt</source>
|
||||||
<translation>SockOpt</translation>
|
<translation>SockOpt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="775"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="789"/>
|
||||||
<source>#Mark</source>
|
<source>#Mark</source>
|
||||||
<translation>Mark</translation>
|
<translation>Mark</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="785"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="799"/>
|
||||||
<source>#TCPFastOpen</source>
|
<source>#TCPFastOpen</source>
|
||||||
<translation>TCP Fast Open</translation>
|
<translation>TCP Fast Open</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="799"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="813"/>
|
||||||
<source>#TProxy</source>
|
<source>#TProxy</source>
|
||||||
<translation>透明代理模式</translation>
|
<translation>透明代理模式</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="165"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="165"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="479"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="493"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="792"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="806"/>
|
||||||
<source>#Enabled</source>
|
<source>#Enabled</source>
|
||||||
<translation>启用</translation>
|
<translation>启用</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -169,41 +175,53 @@
|
|||||||
<translation>生成JSON预览</translation>
|
<translation>生成JSON预览</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="490"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="504"/>
|
||||||
<source>#DownlinkCapacity (MB/s)</source>
|
<source>#DownlinkCapacity (MB/s)</source>
|
||||||
<translation>下行链路容量 (MB/s)</translation>
|
<translation>下行链路容量 (MB/s)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="513"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="527"/>
|
||||||
<source>#ReadBufferSize (MB)</source>
|
<source>#ReadBufferSize (MB)</source>
|
||||||
<translation>读取缓冲区大小 (MB)</translation>
|
<translation>读取缓冲区大小 (MB)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="536"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="550"/>
|
||||||
<source>#WriteBufferSize (MB)</source>
|
<source>#WriteBufferSize (MB)</source>
|
||||||
<translation>写入缓冲区大小 (MB)</translation>
|
<translation>写入缓冲区大小 (MB)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="561"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="575"/>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="708"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="722"/>
|
||||||
<source>#Header</source>
|
<source>#Header</source>
|
||||||
<translation>头伪装</translation>
|
<translation>头伪装</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="618"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="632"/>
|
||||||
<source>DomainSocket</source>
|
<source>DomainSocket</source>
|
||||||
<translation>DomainSocket</translation>
|
<translation>DomainSocket</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="643"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="657"/>
|
||||||
<source>QUIC</source>
|
<source>QUIC</source>
|
||||||
<translation>QUIC</translation>
|
<translation>QUIC</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_ConnectionEditWindow.ui" line="681"/>
|
<location filename="../src/w_ConnectionEditWindow.ui" line="695"/>
|
||||||
<source>#Key</source>
|
<source>#Key</source>
|
||||||
<translation>密钥</translation>
|
<translation>密钥</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/w_ConnectionEditWindow.cpp" line="303"/>
|
||||||
|
<location filename="../src/w_ConnectionEditWindow.cpp" line="314"/>
|
||||||
|
<source>#JsonPrettify</source>
|
||||||
|
<translation>美化 JSON</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/w_ConnectionEditWindow.cpp" line="303"/>
|
||||||
|
<location filename="../src/w_ConnectionEditWindow.cpp" line="314"/>
|
||||||
|
<source>#JsonContainsError</source>
|
||||||
|
<translation>JSON 格式错误</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ImportConfigWindow</name>
|
<name>ImportConfigWindow</name>
|
||||||
@ -297,127 +315,127 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>MainWindow</name>
|
<name>MainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="35"/>
|
<location filename="../src/w_MainWindow.ui" line="29"/>
|
||||||
<source>Qv2ray</source>
|
<source>Qv2ray</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="53"/>
|
<location filename="../src/w_MainWindow.ui" line="47"/>
|
||||||
<location filename="../src/w_MainWindow.ui" line="331"/>
|
<location filename="../src/w_MainWindow.ui" line="309"/>
|
||||||
<location filename="../src/w_MainWindow.cpp" line="28"/>
|
<location filename="../src/w_MainWindow.cpp" line="28"/>
|
||||||
<source>#Start</source>
|
<source>#Start</source>
|
||||||
<translation>启动</translation>
|
<translation>启动</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="60"/>
|
<location filename="../src/w_MainWindow.ui" line="54"/>
|
||||||
<location filename="../src/w_MainWindow.ui" line="336"/>
|
<location filename="../src/w_MainWindow.ui" line="314"/>
|
||||||
<location filename="../src/w_MainWindow.cpp" line="29"/>
|
<location filename="../src/w_MainWindow.cpp" line="29"/>
|
||||||
<source>#Stop</source>
|
<source>#Stop</source>
|
||||||
<translation>停止</translation>
|
<translation>停止</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="67"/>
|
<location filename="../src/w_MainWindow.ui" line="61"/>
|
||||||
<location filename="../src/w_MainWindow.ui" line="341"/>
|
<location filename="../src/w_MainWindow.ui" line="319"/>
|
||||||
<location filename="../src/w_MainWindow.cpp" line="30"/>
|
<location filename="../src/w_MainWindow.cpp" line="30"/>
|
||||||
<source>#Restart</source>
|
<source>#Restart</source>
|
||||||
<translation>重新启动</translation>
|
<translation>重新启动</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="77"/>
|
<location filename="../src/w_MainWindow.ui" line="71"/>
|
||||||
<source>#ClearLog</source>
|
<source>#ClearLog</source>
|
||||||
<translation>清除日志</translation>
|
<translation>清除日志</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="107"/>
|
<location filename="../src/w_MainWindow.ui" line="101"/>
|
||||||
<source>#Status</source>
|
<source>#Status</source>
|
||||||
<translation>状态</translation>
|
<translation>状态</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="114"/>
|
<location filename="../src/w_MainWindow.ui" line="108"/>
|
||||||
<location filename="../src/w_MainWindow.cpp" line="108"/>
|
<location filename="../src/w_MainWindow.cpp" line="109"/>
|
||||||
<source>#Stopped</source>
|
<source>#Stopped</source>
|
||||||
<translation>已停止</translation>
|
<translation>已停止</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="127"/>
|
<location filename="../src/w_MainWindow.ui" line="117"/>
|
||||||
<source>#HostList</source>
|
<source>#HostList</source>
|
||||||
<translation>服务器列表</translation>
|
<translation>服务器列表</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="170"/>
|
<location filename="../src/w_MainWindow.ui" line="252"/>
|
||||||
<source>#ImportConfig</source>
|
<source>#ImportConfig</source>
|
||||||
<translation>导入配置</translation>
|
<translation>导入配置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="177"/>
|
<location filename="../src/w_MainWindow.ui" line="259"/>
|
||||||
<source>#AddConfig</source>
|
<source>#AddConfig</source>
|
||||||
<translation>添加配置</translation>
|
<translation>添加配置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="184"/>
|
<location filename="../src/w_MainWindow.ui" line="266"/>
|
||||||
<source>#RemoveConfig</source>
|
<source>#RemoveConfig</source>
|
||||||
<translation>移除配置</translation>
|
<translation>移除配置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="195"/>
|
<location filename="../src/w_MainWindow.ui" line="124"/>
|
||||||
<source>#ConfigDetail</source>
|
<source>#ConfigDetail</source>
|
||||||
<translation>配置详细信息</translation>
|
<translation>配置详细信息</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="207"/>
|
<location filename="../src/w_MainWindow.ui" line="136"/>
|
||||||
<source>#Host</source>
|
<source>#Host</source>
|
||||||
<translation>域名</translation>
|
<translation>域名</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="221"/>
|
<location filename="../src/w_MainWindow.ui" line="150"/>
|
||||||
<source>#Port</source>
|
<source>#Port</source>
|
||||||
<translation>端口</translation>
|
<translation>端口</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="235"/>
|
<location filename="../src/w_MainWindow.ui" line="164"/>
|
||||||
<source>#UUID</source>
|
<source>#UUID</source>
|
||||||
<translation>UUID</translation>
|
<translation>UUID</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="249"/>
|
<location filename="../src/w_MainWindow.ui" line="178"/>
|
||||||
<source>#Transport</source>
|
<source>#Transport</source>
|
||||||
<translation>传输设置</translation>
|
<translation>传输设置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="263"/>
|
<location filename="../src/w_MainWindow.ui" line="192"/>
|
||||||
<location filename="../src/w_MainWindow.ui" line="276"/>
|
<location filename="../src/w_MainWindow.ui" line="205"/>
|
||||||
<source>#ConnectionSettings</source>
|
<source>#ConnectionSettings</source>
|
||||||
<translation>连接设置</translation>
|
<translation>连接设置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="293"/>
|
<location filename="../src/w_MainWindow.ui" line="273"/>
|
||||||
<source>#Log</source>
|
<source>#Log</source>
|
||||||
<translation>日志</translation>
|
<translation>日志</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="311"/>
|
<location filename="../src/w_MainWindow.ui" line="289"/>
|
||||||
<source>#ManuallyCreateConnection</source>
|
<source>#ManuallyCreateConnection</source>
|
||||||
<translation>手动添加配置</translation>
|
<translation>手动添加配置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="316"/>
|
<location filename="../src/w_MainWindow.ui" line="294"/>
|
||||||
<source>#ImportConnection</source>
|
<source>#ImportConnection</source>
|
||||||
<translation>导入配置文件</translation>
|
<translation>导入配置文件</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="321"/>
|
<location filename="../src/w_MainWindow.ui" line="299"/>
|
||||||
<source>#Exit</source>
|
<source>#Exit</source>
|
||||||
<translation>退出</translation>
|
<translation>退出</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.ui" line="84"/>
|
<location filename="../src/w_MainWindow.ui" line="78"/>
|
||||||
<location filename="../src/w_MainWindow.ui" line="326"/>
|
<location filename="../src/w_MainWindow.ui" line="304"/>
|
||||||
<source>#Preferences</source>
|
<source>#Preferences</source>
|
||||||
<translation>首选项</translation>
|
<translation>首选项</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.cpp" line="26"/>
|
<location filename="../src/w_MainWindow.cpp" line="26"/>
|
||||||
<location filename="../src/w_MainWindow.cpp" line="169"/>
|
<location filename="../src/w_MainWindow.cpp" line="164"/>
|
||||||
<source>#Hide</source>
|
<source>#Hide</source>
|
||||||
<translation>隐藏</translation>
|
<translation>隐藏</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -442,7 +460,8 @@
|
|||||||
<translation>已启动</translation>
|
<translation>已启动</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_MainWindow.cpp" line="172"/>
|
<location filename="../src/w_MainWindow.cpp" line="130"/>
|
||||||
|
<location filename="../src/w_MainWindow.cpp" line="167"/>
|
||||||
<source>#Show</source>
|
<source>#Show</source>
|
||||||
<translation>显示</translation>
|
<translation>显示</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -451,8 +470,8 @@
|
|||||||
<name>PrefrencesWindow</name>
|
<name>PrefrencesWindow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="20"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="20"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.cpp" line="74"/>
|
<location filename="../src/w_PrefrencesWindow.cpp" line="72"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.cpp" line="140"/>
|
<location filename="../src/w_PrefrencesWindow.cpp" line="138"/>
|
||||||
<source>Prefrences</source>
|
<source>Prefrences</source>
|
||||||
<translation>首选项</translation>
|
<translation>首选项</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -467,188 +486,201 @@
|
|||||||
<translation>语言</translation>
|
<translation>语言</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="132"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="50"/>
|
||||||
<source>zh-CN</source>
|
<source>zh-CN</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="137"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="55"/>
|
||||||
<source>en-US</source>
|
<source>en-US</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="43"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="63"/>
|
||||||
<source>#RunAsRoot</source>
|
<source>#RunAsRoot</source>
|
||||||
<translation>使用 root 启动</translation>
|
<translation>使用 root 启动</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="50"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="70"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="152"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="174"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="159"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="181"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="229"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="251"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="236"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="258"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="302"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="324"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="316"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="338"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="364"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="386"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="385"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="407"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="392"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="414"/>
|
||||||
<source>#Enabled</source>
|
<source>#Enabled</source>
|
||||||
<translation>启用</translation>
|
<translation>启用</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="57"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="77"/>
|
||||||
<source>#LogLevel</source>
|
<source>#LogLevel</source>
|
||||||
<translation>日志等级</translation>
|
<translation>日志等级</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="82"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="102"/>
|
||||||
<source>debug</source>
|
<source>debug</source>
|
||||||
<translation>调试</translation>
|
<translation>调试</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="87"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="107"/>
|
||||||
<source>info</source>
|
<source>info</source>
|
||||||
<translation>信息</translation>
|
<translation>信息</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="92"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="112"/>
|
||||||
<source>warning</source>
|
<source>warning</source>
|
||||||
<translation>警告</translation>
|
<translation>警告</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="97"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="117"/>
|
||||||
<source>error</source>
|
<source>error</source>
|
||||||
<translation>错误</translation>
|
<translation>错误</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="357"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="137"/>
|
||||||
|
<location filename="../src/w_PrefrencesWindow.ui" line="158"/>
|
||||||
|
<source>#Select</source>
|
||||||
|
<translation>选择</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/w_PrefrencesWindow.ui" line="379"/>
|
||||||
<source>#ProxyGlobal</source>
|
<source>#ProxyGlobal</source>
|
||||||
<translation>默认走代理</translation>
|
<translation>默认走代理</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="371"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="393"/>
|
||||||
<source>#ProxyCN</source>
|
<source>#ProxyCN</source>
|
||||||
<translation>中国大陆使用代理</translation>
|
<translation>中国大陆使用代理</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="378"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="400"/>
|
||||||
<source>#WithLocalDNS</source>
|
<source>#WithLocalDNS</source>
|
||||||
<translation>使用本地 DNS</translation>
|
<translation>使用本地 DNS</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="404"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="426"/>
|
||||||
<source>#DNSList</source>
|
<source>#DNSList</source>
|
||||||
<translation>DNS 列表</translation>
|
<translation>DNS 列表</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="416"/>
|
|
||||||
<source>Add</source>
|
<source>Add</source>
|
||||||
<translation>添加</translation>
|
<translation type="vanished">添加</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="423"/>
|
|
||||||
<source>Remove</source>
|
<source>Remove</source>
|
||||||
<translation>移除</translation>
|
<translation type="vanished">移除</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="430"/>
|
|
||||||
<source>Clear</source>
|
<source>Clear</source>
|
||||||
<translation>清空</translation>
|
<translation type="vanished">清空</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="77"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="97"/>
|
||||||
<source>none</source>
|
<source>none</source>
|
||||||
<translation>不使用</translation>
|
<translation>不使用</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="105"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="125"/>
|
||||||
<source>#VCoreExePath</source>
|
<source>#VCoreExePath</source>
|
||||||
<translation>v2ray 内核程序位置</translation>
|
<translation>v2ray 内核程序位置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="115"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="146"/>
|
||||||
<source>#VCoreAssetsPath</source>
|
<source>#VCoreAssetsPath</source>
|
||||||
<translation>v2ray 资源文件夹</translation>
|
<translation>v2ray 资源文件夹</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="146"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="168"/>
|
||||||
<source>#MuxSettings</source>
|
<source>#MuxSettings</source>
|
||||||
<translation>Mux 设置</translation>
|
<translation>Mux 设置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="187"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="209"/>
|
||||||
<source>#InBoundSettings</source>
|
<source>#InBoundSettings</source>
|
||||||
<translation>入站设置</translation>
|
<translation>入站设置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="195"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="217"/>
|
||||||
<source>#ListenIP</source>
|
<source>#ListenIP</source>
|
||||||
<translation>监听 IP</translation>
|
<translation>监听 IP</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="273"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="295"/>
|
||||||
<source>#HTTPInBoundSettings</source>
|
<source>#HTTPInBoundSettings</source>
|
||||||
<translation>HTTP 入站设置</translation>
|
<translation>HTTP 入站设置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="209"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="231"/>
|
||||||
<source>#SOCKSBoundSettings</source>
|
<source>#SOCKSBoundSettings</source>
|
||||||
<translation>SOCKS 入站设置</translation>
|
<translation>SOCKS 入站设置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="349"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="371"/>
|
||||||
<source>#RouteSettings</source>
|
<source>#RouteSettings</source>
|
||||||
<translation>路由配置</translation>
|
<translation>路由配置</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="166"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="188"/>
|
||||||
<source>#Concurrency</source>
|
<source>#Concurrency</source>
|
||||||
<translation>最大并发连接数</translation>
|
<translation>最大并发连接数</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="215"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="237"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="279"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="301"/>
|
||||||
<source>#Port</source>
|
<source>#Port</source>
|
||||||
<translation>端口</translation>
|
<translation>端口</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="253"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="275"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="323"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="345"/>
|
||||||
<source>#Username</source>
|
<source>#Username</source>
|
||||||
<translation>用户名</translation>
|
<translation>用户名</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="243"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="265"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="309"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="331"/>
|
||||||
<source>#Auth</source>
|
<source>#Auth</source>
|
||||||
<translation>鉴权</translation>
|
<translation>鉴权</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="260"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="282"/>
|
||||||
<location filename="../src/w_PrefrencesWindow.ui" line="333"/>
|
<location filename="../src/w_PrefrencesWindow.ui" line="355"/>
|
||||||
<source>#Password</source>
|
<source>#Password</source>
|
||||||
<translation>密码</translation>
|
<translation>密码</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.cpp" line="74"/>
|
<location filename="../src/w_PrefrencesWindow.cpp" line="72"/>
|
||||||
<source>PortNumbersCannotBeSame</source>
|
<source>PortNumbersCannotBeSame</source>
|
||||||
<translation>端口号不能相同</translation>
|
<translation>端口号不能相同</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/w_PrefrencesWindow.cpp" line="140"/>
|
<location filename="../src/w_PrefrencesWindow.cpp" line="138"/>
|
||||||
<source>RunAsRootNotOnWindows</source>
|
<source>RunAsRootNotOnWindows</source>
|
||||||
<translation>Windows 平台不支持这个选项</translation>
|
<translation>Windows 平台不支持这个选项</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/w_PrefrencesWindow.cpp" line="231"/>
|
||||||
|
<source>#OpenVCoreFile</source>
|
||||||
|
<translation>打开 v2ray 内核文件</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/w_PrefrencesWindow.cpp" line="238"/>
|
||||||
|
<source>OpenVAssetsDir</source>
|
||||||
|
<translation>打开 v2ray 资源文件夹</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/main.cpp" line="91"/>
|
<location filename="../src/main.cpp" line="86"/>
|
||||||
<source>AnotherInstanceRunning</source>
|
<source>AnotherInstanceRunning</source>
|
||||||
<translation>另一个实例正在运行</translation>
|
<translation>另一个实例正在运行</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/main.cpp" line="91"/>
|
<location filename="../src/main.cpp" line="86"/>
|
||||||
<source>Qv2ray</source>
|
<source>Qv2ray</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
|
Loading…
Reference in New Issue
Block a user