hiddifypanel 10.70.9__py3-none-any.whl → 10.80.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hiddifypanel/VERSION +1 -1
- hiddifypanel/VERSION.py +5 -2
- hiddifypanel/__init__.py +5 -1
- hiddifypanel/apps/__init__.py +0 -0
- hiddifypanel/apps/asgi_app.py +7 -0
- hiddifypanel/apps/celery_app.py +3 -0
- hiddifypanel/apps/wsgi_app.py +5 -0
- hiddifypanel/auth.py +8 -3
- hiddifypanel/base.py +43 -126
- hiddifypanel/base_setup.py +82 -0
- hiddifypanel/cache.py +3 -2
- hiddifypanel/celery.py +45 -0
- hiddifypanel/database.py +7 -0
- hiddifypanel/drivers/ssh_liberty_bridge_api.py +2 -1
- hiddifypanel/drivers/wireguard_api.py +1 -1
- hiddifypanel/hutils/crypto.py +27 -0
- hiddifypanel/hutils/flask.py +5 -3
- hiddifypanel/hutils/network/cf_api.py +5 -5
- hiddifypanel/hutils/proxy/__init__.py +1 -0
- hiddifypanel/hutils/proxy/clash.py +3 -3
- hiddifypanel/hutils/proxy/shared.py +14 -18
- hiddifypanel/hutils/proxy/singbox.py +4 -2
- hiddifypanel/hutils/proxy/wireguard.py +34 -0
- hiddifypanel/hutils/proxy/xray.py +3 -3
- hiddifypanel/hutils/proxy/xrayjson.py +10 -7
- hiddifypanel/models/admin.py +1 -1
- hiddifypanel/models/base_account.py +3 -0
- hiddifypanel/models/config.py +5 -2
- hiddifypanel/models/config_enum.py +15 -2
- hiddifypanel/models/proxy.py +1 -1
- hiddifypanel/models/user.py +2 -2
- hiddifypanel/panel/__init__.py +8 -8
- hiddifypanel/panel/admin/AdminstratorAdmin.py +16 -10
- hiddifypanel/panel/admin/DomainAdmin.py +132 -98
- hiddifypanel/panel/admin/ProxyAdmin.py +4 -0
- hiddifypanel/panel/admin/QuickSetup.py +48 -17
- hiddifypanel/panel/admin/SettingAdmin.py +6 -0
- hiddifypanel/panel/admin/UserAdmin.py +63 -36
- hiddifypanel/panel/admin/adminlte.py +1 -1
- hiddifypanel/panel/admin/templates/index.html +6 -4
- hiddifypanel/panel/admin/templates/model/user_list.html +11 -3
- hiddifypanel/panel/cli.py +14 -3
- hiddifypanel/panel/commercial/restapi/v1/tgbot.py +19 -1
- hiddifypanel/panel/commercial/restapi/v2/admin/system_actions.py +5 -1
- hiddifypanel/panel/commercial/restapi/v2/admin/user_api.py +2 -1
- hiddifypanel/panel/commercial/restapi/v2/user/apps_api.py +76 -6
- hiddifypanel/panel/common.py +5 -2
- hiddifypanel/panel/common_bp/login.py +14 -8
- hiddifypanel/panel/hlogger.py +32 -0
- hiddifypanel/panel/init_db.py +157 -77
- hiddifypanel/panel/node/__init__.py +9 -0
- hiddifypanel/panel/node/a.py +14 -0
- hiddifypanel/panel/node/hello.py +14 -0
- hiddifypanel/panel/node/test.proto +13 -0
- hiddifypanel/panel/node/test_grpc.py +40 -0
- hiddifypanel/panel/node/test_pb2.py +40 -0
- hiddifypanel/panel/node/test_pb2.pyi +17 -0
- hiddifypanel/panel/node/test_pb2_grpc.py +97 -0
- hiddifypanel/panel/usage.py +13 -3
- hiddifypanel/panel/user/templates/base_singbox_config.json.j2 +16 -0
- hiddifypanel/panel/user/templates/home/home.html +1 -2
- hiddifypanel/panel/user/templates/home/multi.html +1 -2
- hiddifypanel/panel/user/user.py +13 -19
- hiddifypanel/static/apps-icon/singbox.ico +0 -0
- hiddifypanel/translations/en/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/en/LC_MESSAGES/messages.po +125 -30
- hiddifypanel/translations/fa/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/fa/LC_MESSAGES/messages.po +123 -32
- hiddifypanel/translations/pt/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/pt/LC_MESSAGES/messages.po +114 -22
- hiddifypanel/translations/ru/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/ru/LC_MESSAGES/messages.po +129 -32
- hiddifypanel/translations/zh/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/zh/LC_MESSAGES/messages.po +107 -18
- hiddifypanel/translations.i18n/en.json +73 -14
- hiddifypanel/translations.i18n/fa.json +72 -13
- hiddifypanel/translations.i18n/fr.json +28 -10
- hiddifypanel/translations.i18n/my.json +1266 -0
- hiddifypanel/translations.i18n/pt.json +68 -9
- hiddifypanel/translations.i18n/ru.json +75 -16
- hiddifypanel/translations.i18n/zh.json +67 -8
- hiddifypanel-10.80.0.dist-info/METADATA +137 -0
- {hiddifypanel-10.70.9.dist-info → hiddifypanel-10.80.0.dist-info}/RECORD +136 -119
- {hiddifypanel-10.70.9.dist-info → hiddifypanel-10.80.0.dist-info}/WHEEL +1 -2
- hiddifypanel-10.80.0.dist-info/entry_points.txt +3 -0
- hiddifypanel-10.70.9.dist-info/METADATA +0 -144
- hiddifypanel-10.70.9.dist-info/entry_points.txt +0 -2
- hiddifypanel-10.70.9.dist-info/top_level.txt +0 -1
- {hiddifypanel-10.70.9.dist-info → hiddifypanel-10.80.0.dist-info}/LICENSE.md +0 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
from google.protobuf import descriptor as _descriptor
|
2
|
+
from google.protobuf import message as _message
|
3
|
+
from typing import ClassVar as _ClassVar, Optional as _Optional
|
4
|
+
|
5
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
6
|
+
|
7
|
+
class HelloRequest(_message.Message):
|
8
|
+
__slots__ = ("req",)
|
9
|
+
REQ_FIELD_NUMBER: _ClassVar[int]
|
10
|
+
req: str
|
11
|
+
def __init__(self, req: _Optional[str] = ...) -> None: ...
|
12
|
+
|
13
|
+
class HelloResponse(_message.Message):
|
14
|
+
__slots__ = ("res",)
|
15
|
+
RES_FIELD_NUMBER: _ClassVar[int]
|
16
|
+
res: str
|
17
|
+
def __init__(self, res: _Optional[str] = ...) -> None: ...
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
2
|
+
"""Client and server classes corresponding to protobuf-defined services."""
|
3
|
+
import grpc
|
4
|
+
import warnings
|
5
|
+
|
6
|
+
from hiddifypanel.panel.node import test_pb2 as hiddifypanel_dot_panel_dot_node_dot_test__pb2
|
7
|
+
|
8
|
+
GRPC_GENERATED_VERSION = '1.67.1'
|
9
|
+
GRPC_VERSION = grpc.__version__
|
10
|
+
_version_not_supported = False
|
11
|
+
|
12
|
+
try:
|
13
|
+
from grpc._utilities import first_version_is_lower
|
14
|
+
_version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
|
15
|
+
except ImportError:
|
16
|
+
_version_not_supported = True
|
17
|
+
|
18
|
+
if _version_not_supported:
|
19
|
+
raise RuntimeError(
|
20
|
+
f'The grpc package installed is at version {GRPC_VERSION},'
|
21
|
+
+ f' but the generated code in hiddifypanel/panel/node/test_pb2_grpc.py depends on'
|
22
|
+
+ f' grpcio>={GRPC_GENERATED_VERSION}.'
|
23
|
+
+ f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
|
24
|
+
+ f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
|
25
|
+
)
|
26
|
+
|
27
|
+
|
28
|
+
class HelloStub(object):
|
29
|
+
"""Missing associated documentation comment in .proto file."""
|
30
|
+
|
31
|
+
def __init__(self, channel):
|
32
|
+
"""Constructor.
|
33
|
+
|
34
|
+
Args:
|
35
|
+
channel: A grpc.Channel.
|
36
|
+
"""
|
37
|
+
self.SayHello = channel.unary_unary(
|
38
|
+
'/Hello/SayHello',
|
39
|
+
request_serializer=hiddifypanel_dot_panel_dot_node_dot_test__pb2.HelloRequest.SerializeToString,
|
40
|
+
response_deserializer=hiddifypanel_dot_panel_dot_node_dot_test__pb2.HelloResponse.FromString,
|
41
|
+
)
|
42
|
+
|
43
|
+
|
44
|
+
class HelloServicer(object):
|
45
|
+
"""Missing associated documentation comment in .proto file."""
|
46
|
+
|
47
|
+
def SayHello(self, request, context):
|
48
|
+
"""Missing associated documentation comment in .proto file."""
|
49
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
50
|
+
context.set_details('Method not implemented!')
|
51
|
+
raise NotImplementedError('Method not implemented!')
|
52
|
+
|
53
|
+
|
54
|
+
def add_HelloServicer_to_server(servicer, server):
|
55
|
+
rpc_method_handlers = {
|
56
|
+
'SayHello': grpc.unary_unary_rpc_method_handler(
|
57
|
+
servicer.SayHello,
|
58
|
+
request_deserializer=hiddifypanel_dot_panel_dot_node_dot_test__pb2.HelloRequest.FromString,
|
59
|
+
response_serializer=hiddifypanel_dot_panel_dot_node_dot_test__pb2.HelloResponse.SerializeToString,
|
60
|
+
),
|
61
|
+
}
|
62
|
+
generic_handler = grpc.method_handlers_generic_handler(
|
63
|
+
'Hello', rpc_method_handlers)
|
64
|
+
server.add_generic_rpc_handlers((generic_handler,))
|
65
|
+
server.add_registered_method_handlers('Hello', rpc_method_handlers)
|
66
|
+
|
67
|
+
|
68
|
+
# This class is part of an EXPERIMENTAL API.
|
69
|
+
class Hello(object):
|
70
|
+
"""Missing associated documentation comment in .proto file."""
|
71
|
+
|
72
|
+
@staticmethod
|
73
|
+
def SayHello(request,
|
74
|
+
target,
|
75
|
+
options=(),
|
76
|
+
channel_credentials=None,
|
77
|
+
call_credentials=None,
|
78
|
+
insecure=False,
|
79
|
+
compression=None,
|
80
|
+
wait_for_ready=None,
|
81
|
+
timeout=None,
|
82
|
+
metadata=None):
|
83
|
+
return grpc.experimental.unary_unary(
|
84
|
+
request,
|
85
|
+
target,
|
86
|
+
'/Hello/SayHello',
|
87
|
+
hiddifypanel_dot_panel_dot_node_dot_test__pb2.HelloRequest.SerializeToString,
|
88
|
+
hiddifypanel_dot_panel_dot_node_dot_test__pb2.HelloResponse.FromString,
|
89
|
+
options,
|
90
|
+
channel_credentials,
|
91
|
+
insecure,
|
92
|
+
call_credentials,
|
93
|
+
compression,
|
94
|
+
wait_for_ready,
|
95
|
+
timeout,
|
96
|
+
metadata,
|
97
|
+
)
|
hiddifypanel/panel/usage.py
CHANGED
@@ -11,16 +11,18 @@ from hiddifypanel import cache, hutils
|
|
11
11
|
from loguru import logger
|
12
12
|
to_gig_d = 1024**3
|
13
13
|
|
14
|
+
from celery import shared_task
|
14
15
|
|
16
|
+
@shared_task(ignore_result=False)
|
15
17
|
def update_local_usage():
|
16
18
|
lock_key = "lock-update-local-usage"
|
17
19
|
if not cache.redis_client.set(lock_key, "locked", nx=True, ex=600):
|
18
20
|
return {"msg": "last update task is not finished yet."}
|
19
21
|
try:
|
20
|
-
res
|
21
|
-
# cache.redis_client.delete(lock_key)
|
22
|
+
res=update_local_usage_not_lock()
|
22
23
|
cache.redis_client.set(lock_key, "locked", nx=False, ex=60)
|
23
|
-
|
24
|
+
|
25
|
+
return res
|
24
26
|
except Exception as e:
|
25
27
|
cache.redis_client.set(lock_key, "locked", nx=False, ex=60)
|
26
28
|
logger.exception("Exception in update usage")
|
@@ -28,6 +30,14 @@ def update_local_usage():
|
|
28
30
|
return {"msg": f"Exception in update usage: {e}"}
|
29
31
|
|
30
32
|
# return {"status": 'success', "comments":res}
|
33
|
+
def update_local_usage_not_lock():
|
34
|
+
|
35
|
+
try:
|
36
|
+
res = user_driver.get_users_usage(reset=True)
|
37
|
+
return _add_users_usage(res, child_id=0)
|
38
|
+
except Exception as e:
|
39
|
+
raise
|
40
|
+
|
31
41
|
|
32
42
|
|
33
43
|
def add_users_usage_uuid(uuids_bytes: Dict[str, Dict], child_id, sync=False):
|
@@ -49,6 +49,22 @@
|
|
49
49
|
"download_detour": "bypass"
|
50
50
|
}
|
51
51
|
{%endif%}
|
52
|
+
{%if hconfig(ConfigEnum.country)=="ru"%}
|
53
|
+
{
|
54
|
+
"tag": "geosite-ru",
|
55
|
+
"type": "remote",
|
56
|
+
"format": "binary",
|
57
|
+
"url": "https:\/\/github.com\/SagerNet\/sing-geosite\/raw\/rule-set\/geosite-category-ru.srs",
|
58
|
+
"download_detour": "bypass"
|
59
|
+
},
|
60
|
+
{
|
61
|
+
"tag": "geoip-ru",
|
62
|
+
"type": "remote",
|
63
|
+
"format": "binary",
|
64
|
+
"url": "https:\/\/github.com\/SagerNet\/sing-geoip\/raw\/rule-set\/geoip-ru.srs",
|
65
|
+
"download_detour": "bypass"
|
66
|
+
}
|
67
|
+
{%endif%}
|
52
68
|
{# {
|
53
69
|
"tag": "geosite-category-ads-all",
|
54
70
|
"type": "remote",
|
@@ -404,8 +404,7 @@
|
|
404
404
|
{{_("Check again")}}
|
405
405
|
</button>
|
406
406
|
{%- endmacro -%}
|
407
|
-
{{modal("country-alarm-modal",_("Turn of VPN"),_("
|
408
|
-
expected=%(expected_country)s",your_country=country,expected_country=hconfig(ConfigEnum.country)),footer=reload(),show=True)}}
|
407
|
+
{{modal("country-alarm-modal",_("Turn of VPN"),_("vpn.notallowed",your_country=country,expected_country=hconfig(ConfigEnum.country)),footer=reload(),show=True)}}
|
409
408
|
{% endif %}
|
410
409
|
|
411
410
|
|
@@ -404,8 +404,7 @@
|
|
404
404
|
{{_("Check again")}}
|
405
405
|
</button>
|
406
406
|
{%- endmacro -%}
|
407
|
-
{{modal("country-alarm-modal",_("Turn of VPN"),_("
|
408
|
-
expected=%(expected_country)s",your_country=country,expected_country=hconfig(ConfigEnum.country)),footer=reload(),show=True)}}
|
407
|
+
{{modal("country-alarm-modal",_("Turn of VPN"),_("vpn.notallowed,your_country=country,expected_country=hconfig(ConfigEnum.country)),footer=reload(),show=True)}}
|
409
408
|
{% endif %}
|
410
409
|
|
411
410
|
|
hiddifypanel/panel/user/user.py
CHANGED
@@ -21,6 +21,12 @@ class UserView(FlaskView):
|
|
21
21
|
def index(self):
|
22
22
|
return self.auto_sub()
|
23
23
|
|
24
|
+
@route('/ua')
|
25
|
+
def user_agent(self):
|
26
|
+
ua= str(g.user_agent)+"\n"+str(request.user_agent)
|
27
|
+
print(ua)
|
28
|
+
return ua
|
29
|
+
|
24
30
|
def auto_sub(self):
|
25
31
|
if g.user_agent['is_browser']:
|
26
32
|
return self.new()
|
@@ -86,27 +92,15 @@ class UserView(FlaskView):
|
|
86
92
|
continue
|
87
93
|
wireguards.append(pinfo)
|
88
94
|
|
89
|
-
|
95
|
+
|
90
96
|
|
91
97
|
if not len(wireguards):
|
92
98
|
abort(404)
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
[Interface]
|
99
|
-
PrivateKey = {wg['wg_pk']}
|
100
|
-
Address = {addrs}
|
101
|
-
DNS = 1.1.1.1
|
102
|
-
MTU = 1390
|
103
|
-
|
104
|
-
[Peer]
|
105
|
-
PublicKey = {wg['wg_pub']}
|
106
|
-
PresharedKey = {wg['wg_psk']}
|
107
|
-
AllowedIPs = 0.0.0.0/1, 128.0.0.0/1, ::/1, 8000::/1
|
108
|
-
Endpoint = {next(iter(servers))}:61339 #{servers}
|
109
|
-
"""
|
99
|
+
resp =""
|
100
|
+
for wg in wireguards:
|
101
|
+
resp +=f'#========={wg["extra_info"]} {wg["name"]}================\n'
|
102
|
+
resp+=hutils.proxy.wireguard.generate_wireguard_config(wg)
|
103
|
+
resp+="\n\n"
|
110
104
|
return add_headers(resp, c)
|
111
105
|
|
112
106
|
# return self.singbox_ssh_imp()
|
@@ -266,7 +260,7 @@ Endpoint = {next(iter(servers))}:61339 #{servers}
|
|
266
260
|
if request.method == 'HEAD':
|
267
261
|
resp = ""
|
268
262
|
else:
|
269
|
-
resp = render_template('singbox_config.json', **c, host_keys=hutils.proxy.get_ssh_hostkeys(True),
|
263
|
+
resp = render_template('singbox_config.json', **c, host_keys=hutils.proxy.get_ssh_hostkeys(get_hconfigs(),True),
|
270
264
|
ssh_client_version=hiddify.get_ssh_client_version(user), ssh_ip=hutils.network.get_direct_host_or_ip(4), base64=False)
|
271
265
|
|
272
266
|
return add_headers(resp, c)
|
Binary file
|
Binary file
|
@@ -219,6 +219,9 @@ msgstr ""
|
|
219
219
|
"Domain can not be resolved! There is a problem in your domain. Please check "
|
220
220
|
"your Domain configurations."
|
221
221
|
|
222
|
+
msgid "Domain cannot be resolved! Please check DNS settings"
|
223
|
+
msgstr "Domain cannot be resolved! Please check DNS settings"
|
224
|
+
|
222
225
|
msgid "Domain is not REALITY friendly!"
|
223
226
|
msgstr "Domain is Not REALITY Friendly!"
|
224
227
|
|
@@ -425,7 +428,7 @@ msgstr ""
|
|
425
428
|
|
426
429
|
msgid "It will override the root admin to the current user"
|
427
430
|
msgstr ""
|
428
|
-
"It will override the owner admin of the backup file to the current
|
431
|
+
"It will override the owner admin of the backup file to the current admin."
|
429
432
|
|
430
433
|
msgid ""
|
431
434
|
"Join our Hiddify Telegram channel to get the latest updates on Hiddify."
|
@@ -445,7 +448,7 @@ msgid "Max Active Users"
|
|
445
448
|
msgstr "Max Active Users"
|
446
449
|
|
447
450
|
msgid "Max IPs"
|
448
|
-
msgstr "Max IPs"
|
451
|
+
msgstr "Max IPs (xray only)"
|
449
452
|
|
450
453
|
msgid "Max Users"
|
451
454
|
msgstr "Max Users"
|
@@ -535,13 +538,6 @@ msgstr ""
|
|
535
538
|
"Please connect your Telegram account to the panel to be informed about "
|
536
539
|
"latest news"
|
537
540
|
|
538
|
-
msgid ""
|
539
|
-
"Please connect your telegram accout to the panel to be informed about latest"
|
540
|
-
" news."
|
541
|
-
msgstr ""
|
542
|
-
"Please connect your Telegram account to the panel to know the latest Status "
|
543
|
-
"of your Subscription"
|
544
|
-
|
545
541
|
msgid "Please create an issue on Github."
|
546
542
|
msgstr "Please create an issue on Github"
|
547
543
|
|
@@ -614,6 +610,9 @@ msgstr "RAM"
|
|
614
610
|
msgid "REALITY Fallback domain is not compaitble with server names!"
|
615
611
|
msgstr "REALITY Fallback Domain is not compaitble with Server names!"
|
616
612
|
|
613
|
+
msgid "REALITY Fallback domain is not compatible with server names!"
|
614
|
+
msgstr "REALITY Fallback domain is not compatible with server names!"
|
615
|
+
|
617
616
|
msgid "Release"
|
618
617
|
msgstr "✅ Release"
|
619
618
|
|
@@ -719,6 +718,9 @@ msgstr "📦 SingBox"
|
|
719
718
|
msgid "Sort by %(name)s"
|
720
719
|
msgstr "Sort by %(name)s"
|
721
720
|
|
721
|
+
msgid "Specifying CDN IP is only valid for CDN mode"
|
722
|
+
msgstr "Specifying CDN IP is only valid for CDN mode"
|
723
|
+
|
722
724
|
msgid "Start Date"
|
723
725
|
msgstr "Start Date"
|
724
726
|
|
@@ -784,7 +786,7 @@ msgid "Upload File"
|
|
784
786
|
msgstr "Upload File"
|
785
787
|
|
786
788
|
msgid "Use HiddifyNext:"
|
787
|
-
msgstr "Use
|
789
|
+
msgstr "Use Hiddify:"
|
788
790
|
|
789
791
|
msgid "User activated!"
|
790
792
|
msgstr "User Activated"
|
@@ -860,13 +862,6 @@ msgstr ""
|
|
860
862
|
msgid "You have used this domain in: "
|
861
863
|
msgstr "You have already used this Domain in: "
|
862
864
|
|
863
|
-
msgid ""
|
864
|
-
"You should visit this page without VPN. Your country=%(your_country)s\n"
|
865
|
-
"expected=%(expected_country)s"
|
866
|
-
msgstr ""
|
867
|
-
"You should visit this page without VPN Your Country =%(your_country)s\n"
|
868
|
-
"Expected=%(expected_country)s"
|
869
|
-
|
870
865
|
msgid ""
|
871
866
|
"Your hiddify instance information \n"
|
872
867
|
"Domain: {} \n"
|
@@ -1001,7 +996,7 @@ msgstr ""
|
|
1001
996
|
|
1002
997
|
msgid "adminuser.force_update_usage"
|
1003
998
|
msgstr ""
|
1004
|
-
"Every 6
|
999
|
+
"ℹ️ Every 6 Minutes the usage is being updated. For updating it now <a "
|
1005
1000
|
"href=\"%(link)s\" class=\"btn btn-info\">Press Here</a>"
|
1006
1001
|
|
1007
1002
|
msgid "all"
|
@@ -1068,6 +1063,12 @@ msgstr "Shadowrocket Description"
|
|
1068
1063
|
msgid "app.shadowrocket.title"
|
1069
1064
|
msgstr "Shadowrocket"
|
1070
1065
|
|
1066
|
+
msgid "app.singbox.description"
|
1067
|
+
msgstr "Sing-box app is the official app for Sing-box protocol."
|
1068
|
+
|
1069
|
+
msgid "app.singbox.title"
|
1070
|
+
msgstr "Sing-box app"
|
1071
|
+
|
1071
1072
|
msgid "app.stash.description"
|
1072
1073
|
msgstr "Stash Description"
|
1073
1074
|
|
@@ -1407,7 +1408,7 @@ msgstr "☑️ Allow HTTP Connection"
|
|
1407
1408
|
msgid "config.httpupgrade_enable.description"
|
1408
1409
|
msgstr ""
|
1409
1410
|
"<p>HTTPUpgrade complete a HTTP 1.1 Upgrade request and response before using the connection directly. It is similar to WebSocket in the way it create an direction channel that can be forwarded by many reverse proxies and CDNs, without the need to deal with all the issue around WebSocket Protocol itself.<br />\n"
|
1410
|
-
"⚠️ <strong>Not Available in Xray based Clients. Only
|
1411
|
+
"⚠️ <strong>Not Available in Xray based Clients. Only <p><a href=\"https://app.hiddify.com\" target=\"_blank\">Hiddify</a></p>, Singbox, and V2fly clients are supported.</strong> <a href=\"https://hiddify.com/manager/basic-concepts-and-troubleshooting/Basic-Concepts/#http-upgrade\" target=\"_blank\"><strong>(Read More)</strong></a></p>"
|
1411
1412
|
|
1412
1413
|
msgid "config.httpupgrade_enable.label"
|
1413
1414
|
msgstr "🆙 HTTPUpgrade Method"
|
@@ -1486,7 +1487,9 @@ msgid "config.kcp_ports.label"
|
|
1486
1487
|
msgstr "KCP Ports"
|
1487
1488
|
|
1488
1489
|
msgid "config.lang.description"
|
1489
|
-
msgstr "
|
1490
|
+
msgstr ""
|
1491
|
+
"Select the language for the user interface to personalize your experience in"
|
1492
|
+
" the user area."
|
1490
1493
|
|
1491
1494
|
msgid "config.lang.label"
|
1492
1495
|
msgstr "🗺️ User Area Language"
|
@@ -1541,10 +1544,11 @@ msgstr "⬆️ MUX Brutal Upload (mbps)"
|
|
1541
1544
|
|
1542
1545
|
msgid "config.mux_enable.description"
|
1543
1546
|
msgstr ""
|
1544
|
-
"<p>Mux needs compatible clients. Mux in
|
1545
|
-
"
|
1546
|
-
"
|
1547
|
-
"
|
1547
|
+
"<p>Mux needs compatible clients. Mux in <p><a "
|
1548
|
+
"href=\"https://app.hiddify.com\" target=\"_blank\">Hiddify</a></p> and "
|
1549
|
+
"Singbox are not compatible with XRay. <a "
|
1550
|
+
"href=\"https://hiddify.com/manager/basic-concepts-and-troubleshooting/How-"
|
1551
|
+
"MUX-works-and-its-usage/\" target=\"_blank\">(Read More)</a></p>"
|
1548
1552
|
|
1549
1553
|
msgid "config.mux_enable.label"
|
1550
1554
|
msgstr "Ⓜ️ MUX (⚠️ Incompatible With Some Clients)"
|
@@ -1652,10 +1656,10 @@ msgid "config.path_httpupgrade.label"
|
|
1652
1656
|
msgstr "ℹ️ HTTP Upgrade Path"
|
1653
1657
|
|
1654
1658
|
msgid "config.path_splithttp.description"
|
1655
|
-
msgstr "
|
1659
|
+
msgstr "config.path_splithttp.description"
|
1656
1660
|
|
1657
1661
|
msgid "config.path_splithttp.label"
|
1658
|
-
msgstr "
|
1662
|
+
msgstr "config.path_splithttp.label"
|
1659
1663
|
|
1660
1664
|
msgid "config.path_ss.description"
|
1661
1665
|
msgstr "Shadowsocks Path in the Links"
|
@@ -1699,6 +1703,12 @@ msgstr "Specify the Websocket Path"
|
|
1699
1703
|
msgid "config.path_ws.label"
|
1700
1704
|
msgstr "ℹ️ Path of Websocket Requests"
|
1701
1705
|
|
1706
|
+
msgid "config.path_xhttp.description"
|
1707
|
+
msgstr "This option defines the Path for Split HTTP"
|
1708
|
+
|
1709
|
+
msgid "config.path_xhttp.label"
|
1710
|
+
msgstr "ℹ️ Path for Split HTTP"
|
1711
|
+
|
1702
1712
|
msgid "config.proxies.description"
|
1703
1713
|
msgstr "Define specific proxy settings"
|
1704
1714
|
|
@@ -1878,10 +1888,10 @@ msgid "config.speed_test.label"
|
|
1878
1888
|
msgstr "🚀 Speed Test"
|
1879
1889
|
|
1880
1890
|
msgid "config.splithttp_enable.description"
|
1881
|
-
msgstr "
|
1891
|
+
msgstr "config.splithttp_enable.description"
|
1882
1892
|
|
1883
1893
|
msgid "config.splithttp_enable.label"
|
1884
|
-
msgstr "
|
1894
|
+
msgstr "config.splithttp_enable.label"
|
1885
1895
|
|
1886
1896
|
msgid "config.ssfaketls.description"
|
1887
1897
|
msgstr ""
|
@@ -1915,6 +1925,54 @@ msgstr ""
|
|
1915
1925
|
msgid "config.ssh.label"
|
1916
1926
|
msgstr "SSH Proxy"
|
1917
1927
|
|
1928
|
+
msgid "config.ssh_host_dsa_pk.description"
|
1929
|
+
msgstr "config.ssh_host_dsa_pk.description"
|
1930
|
+
|
1931
|
+
msgid "config.ssh_host_dsa_pk.label"
|
1932
|
+
msgstr "config.ssh_host_dsa_pk.label"
|
1933
|
+
|
1934
|
+
msgid "config.ssh_host_dsa_pub.description"
|
1935
|
+
msgstr "config.ssh_host_dsa_pub.description"
|
1936
|
+
|
1937
|
+
msgid "config.ssh_host_dsa_pub.label"
|
1938
|
+
msgstr "config.ssh_host_dsa_pub.label"
|
1939
|
+
|
1940
|
+
msgid "config.ssh_host_ecdsa_pk.description"
|
1941
|
+
msgstr "config.ssh_host_ecdsa_pk.description"
|
1942
|
+
|
1943
|
+
msgid "config.ssh_host_ecdsa_pk.label"
|
1944
|
+
msgstr "config.ssh_host_ecdsa_pk.label"
|
1945
|
+
|
1946
|
+
msgid "config.ssh_host_ecdsa_pub.description"
|
1947
|
+
msgstr "config.ssh_host_ecdsa_pub.description"
|
1948
|
+
|
1949
|
+
msgid "config.ssh_host_ecdsa_pub.label"
|
1950
|
+
msgstr "config.ssh_host_ecdsa_pub.label"
|
1951
|
+
|
1952
|
+
msgid "config.ssh_host_ed25519_pk.description"
|
1953
|
+
msgstr "config.ssh_host_ed25519_pk.description"
|
1954
|
+
|
1955
|
+
msgid "config.ssh_host_ed25519_pk.label"
|
1956
|
+
msgstr "config.ssh_host_ed25519_pk.label"
|
1957
|
+
|
1958
|
+
msgid "config.ssh_host_ed25519_pub.description"
|
1959
|
+
msgstr "config.ssh_host_ed25519_pub.description"
|
1960
|
+
|
1961
|
+
msgid "config.ssh_host_ed25519_pub.label"
|
1962
|
+
msgstr "config.ssh_host_ed25519_pub.label"
|
1963
|
+
|
1964
|
+
msgid "config.ssh_host_rsa_pk.description"
|
1965
|
+
msgstr "config.ssh_host_rsa_pk.description"
|
1966
|
+
|
1967
|
+
msgid "config.ssh_host_rsa_pk.label"
|
1968
|
+
msgstr "config.ssh_host_rsa_pk.label"
|
1969
|
+
|
1970
|
+
msgid "config.ssh_host_rsa_pub.description"
|
1971
|
+
msgstr "config.ssh_host_rsa_pub.description"
|
1972
|
+
|
1973
|
+
msgid "config.ssh_host_rsa_pub.label"
|
1974
|
+
msgstr "config.ssh_host_rsa_pub.label"
|
1975
|
+
|
1918
1976
|
msgid "config.ssh_server_enable.description"
|
1919
1977
|
msgstr "SSH Proxy is completely different than original SSH Server"
|
1920
1978
|
|
@@ -2268,8 +2326,7 @@ msgstr "WireGuard"
|
|
2268
2326
|
msgid "config.wireguard_enable.description"
|
2269
2327
|
msgstr ""
|
2270
2328
|
"<p>WireGuard is UDP based protocol. (⚠️ It is Working In <a "
|
2271
|
-
"href=\"https://
|
2272
|
-
"Next</a>)</p>"
|
2329
|
+
"href=\"https://app.hiddify.com/\" target=\"_blank\">Hiddify</a>)</p>"
|
2273
2330
|
|
2274
2331
|
msgid "config.wireguard_enable.label"
|
2275
2332
|
msgstr "🐉 WireGuard"
|
@@ -2318,6 +2375,14 @@ msgstr "Websocket creates a tunnel over HTTP that is useful to be used in CDN"
|
|
2318
2375
|
msgid "config.ws_enable.label"
|
2319
2376
|
msgstr "🔰 Websocket"
|
2320
2377
|
|
2378
|
+
msgid "config.xhttp_enable.description"
|
2379
|
+
msgstr ""
|
2380
|
+
"<p>This Protocol send and receive information in individual channels.<br />\n"
|
2381
|
+
"⚠️ <strong>Not Supported in SignBox based Clients. Only <p><a href=\"https://app.hiddify.com\" target=\"_blank\">Hiddify</a></p> App, and XRay base Clients are supported.</strong></p>"
|
2382
|
+
|
2383
|
+
msgid "config.xhttp_enable.label"
|
2384
|
+
msgstr "🈁 Split HTTP"
|
2385
|
+
|
2321
2386
|
msgid "config.xtls_enable.description"
|
2322
2387
|
msgstr "Enables XTLS Protocol"
|
2323
2388
|
|
@@ -2444,6 +2509,15 @@ msgstr "☑️ Python : Low Performance"
|
|
2444
2509
|
msgid "log"
|
2445
2510
|
msgstr "📄 Log"
|
2446
2511
|
|
2512
|
+
msgid "login.button"
|
2513
|
+
msgstr "Login"
|
2514
|
+
|
2515
|
+
msgid "login.password.description"
|
2516
|
+
msgstr "For extra security, you need to enter your password."
|
2517
|
+
|
2518
|
+
msgid "login.password.label"
|
2519
|
+
msgstr "Password"
|
2520
|
+
|
2447
2521
|
msgid "login.secret.description"
|
2448
2522
|
msgstr "For getting access to this page, please enter your secret code (UUID)"
|
2449
2523
|
|
@@ -2889,12 +2963,33 @@ msgstr "Last Usage Date Reset"
|
|
2889
2963
|
msgid "user.name"
|
2890
2964
|
msgstr "Name"
|
2891
2965
|
|
2966
|
+
msgid "user.password.description"
|
2967
|
+
msgstr ""
|
2968
|
+
"The password will be used for extra secutiry. You can only login to the "
|
2969
|
+
"HiddifyManager after entering your password."
|
2970
|
+
|
2971
|
+
msgid "user.password.title"
|
2972
|
+
msgstr "Password"
|
2973
|
+
|
2974
|
+
msgid "user.password.validation-lenght"
|
2975
|
+
msgstr ""
|
2976
|
+
"Your password must be at least 8 characters long for enhanced security."
|
2977
|
+
|
2978
|
+
msgid "user.password.validation-required"
|
2979
|
+
msgstr "Password is required. Please enter your password to continue."
|
2980
|
+
|
2892
2981
|
msgid "user.usage_limit_GB"
|
2893
2982
|
msgstr "⌛️ Usage Limit (GB)"
|
2894
2983
|
|
2895
2984
|
msgid "user.user_links"
|
2896
2985
|
msgstr "User Links"
|
2897
2986
|
|
2987
|
+
msgid "vpn.notallowed"
|
2988
|
+
msgstr ""
|
2989
|
+
"Please visit this page without using a VPN. You need to access it from the "
|
2990
|
+
"country %(expected_country)s, but you're currently accessing it from "
|
2991
|
+
"%(your_country)s."
|
2992
|
+
|
2898
2993
|
msgid "weekly"
|
2899
2994
|
msgstr "📅 Weekly"
|
2900
2995
|
|
Binary file
|