hiddifypanel 11.0.10__py3-none-any.whl → 11.0.12b1__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 +2 -2
- hiddifypanel/hutils/proxy/shared.py +14 -15
- hiddifypanel/models/config_enum.py +1 -1
- hiddifypanel/models/domain.py +3 -0
- hiddifypanel/panel/admin/DomainAdmin.py +5 -3
- hiddifypanel/panel/admin/UserAdmin.py +55 -1
- hiddifypanel/panel/init_db.py +6 -0
- hiddifypanel/templates/flaskadmin-layout.html +4 -3
- hiddifypanel/translations/en/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/en/LC_MESSAGES/messages.po +17 -0
- hiddifypanel/translations/fa/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/fa/LC_MESSAGES/messages.po +17 -0
- hiddifypanel/translations/my/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/pt/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/pt/LC_MESSAGES/messages.po +15 -0
- hiddifypanel/translations/ru/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/ru/LC_MESSAGES/messages.po +15 -0
- hiddifypanel/translations/zh/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/zh/LC_MESSAGES/messages.po +15 -0
- hiddifypanel/translations.i18n/en.json +7 -0
- hiddifypanel/translations.i18n/fa.json +7 -0
- hiddifypanel/translations.i18n/pt.json +7 -0
- hiddifypanel/translations.i18n/ru.json +7 -0
- hiddifypanel/translations.i18n/zh.json +7 -0
- {hiddifypanel-11.0.10.dist-info → hiddifypanel-11.0.12b1.dist-info}/METADATA +1 -1
- {hiddifypanel-11.0.10.dist-info → hiddifypanel-11.0.12b1.dist-info}/RECORD +31 -31
- {hiddifypanel-11.0.10.dist-info → hiddifypanel-11.0.12b1.dist-info}/WHEEL +0 -0
- {hiddifypanel-11.0.10.dist-info → hiddifypanel-11.0.12b1.dist-info}/entry_points.txt +0 -0
- {hiddifypanel-11.0.10.dist-info → hiddifypanel-11.0.12b1.dist-info}/licenses/LICENSE.md +0 -0
- {hiddifypanel-11.0.10.dist-info → hiddifypanel-11.0.12b1.dist-info}/top_level.txt +0 -0
hiddifypanel/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
11.0.
|
1
|
+
11.0.12b1
|
hiddifypanel/VERSION.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# import importlib.metadata
|
2
2
|
from datetime import datetime
|
3
3
|
|
4
|
-
__version__ = '11.0.
|
5
|
-
__release_time__= datetime.strptime('2025-07-
|
4
|
+
__version__ = '11.0.12b1'
|
5
|
+
__release_time__= datetime.strptime('2025-07-20T19:36:54','%Y-%m-%dT%H:%M:%S')
|
6
6
|
is_released_version=True
|
@@ -262,7 +262,7 @@ def sni_host_server_extractor(domain_db: Domain, hconfigs):
|
|
262
262
|
elif 'special' in domain_db.mode.value or domain_db.mode in [DomainType.fake]:
|
263
263
|
server=hutils.network.get_direct_host_or_ip(4)
|
264
264
|
|
265
|
-
if
|
265
|
+
if domain_db.resolve_ip:
|
266
266
|
server = str(random_or_none(hutils.network.get_domain_ips_cached(server)) or server)
|
267
267
|
|
268
268
|
|
@@ -276,6 +276,7 @@ def sni_host_server_extractor(domain_db: Domain, hconfigs):
|
|
276
276
|
|
277
277
|
else:
|
278
278
|
allow_insecure=True
|
279
|
+
|
279
280
|
|
280
281
|
base = {
|
281
282
|
'sni': sni,
|
@@ -296,15 +297,14 @@ def sni_host_server_extractor(domain_db: Domain, hconfigs):
|
|
296
297
|
|
297
298
|
return base
|
298
299
|
|
299
|
-
def put_default_header(
|
300
|
-
|
301
|
-
|
302
|
-
parmas['headers']={}
|
300
|
+
def put_default_header(params:dict):
|
301
|
+
if not isinstance(params.get('headers'),dict):
|
302
|
+
params['headers']={}
|
303
303
|
|
304
|
-
if not
|
305
|
-
|
306
|
-
if not
|
307
|
-
|
304
|
+
if not params['headers'].get('User-Agent'):
|
305
|
+
params['headers']['User-Agent']=hconfig(ConfigEnum.default_useragent_string)
|
306
|
+
if not params['headers'].get('Pragma'):
|
307
|
+
params['headers']['Pragma']="no-cache"
|
308
308
|
|
309
309
|
|
310
310
|
|
@@ -336,16 +336,15 @@ def make_proxy(hconfigs: dict, proxy: Proxy, domain_db: Domain, phttp=80, ptls=4
|
|
336
336
|
# 'cdn': is_cdn,
|
337
337
|
# 'mode': "CDN" if is_cdn else "direct",
|
338
338
|
'l3': l3,
|
339
|
-
|
339
|
+
|
340
340
|
'port': port,
|
341
|
-
|
342
|
-
# 'sni': domain_db.servernames if is_cdn and domain_db.servernames else domain,
|
341
|
+
|
343
342
|
'uuid': str(g.account.uuid),
|
344
343
|
'proto': proxy.proto,
|
345
344
|
'transport': proxy.transport,
|
346
345
|
'proxy_path': hconfigs[ConfigEnum.proxy_path],
|
347
346
|
'alpn': alpn,
|
348
|
-
'extra_info': f'{domain_db.alias or domain}',
|
347
|
+
'extra_info': f'{domain_db.alias or domain_db.domain}',
|
349
348
|
'fingerprint': hconfigs[ConfigEnum.utls],
|
350
349
|
# 'allow_insecure': domain_db.mode == DomainType.fake or "Fake" in proxy.cdn,
|
351
350
|
'dbe': proxy,
|
@@ -472,13 +471,13 @@ def make_proxy(hconfigs: dict, proxy: Proxy, domain_db: Domain, phttp=80, ptls=4
|
|
472
471
|
if proxy.transport in ["ws", "WS"]:
|
473
472
|
base['transport'] = 'ws'
|
474
473
|
base['path'] = f'/{path[base["proto"]]}{hconfigs[ConfigEnum.path_ws]}'
|
475
|
-
|
474
|
+
|
476
475
|
return base
|
477
476
|
|
478
477
|
if proxy.transport in [ProxyTransport.httpupgrade]:
|
479
478
|
base['transport'] = 'httpupgrade'
|
480
479
|
base['path'] = f'/{path[base["proto"]]}{hconfigs[ConfigEnum.path_httpupgrade]}'
|
481
|
-
|
480
|
+
|
482
481
|
return base
|
483
482
|
|
484
483
|
if proxy.transport in [ProxyTransport.xhttp]:
|
@@ -163,7 +163,7 @@ class ConfigEnum(metaclass=FastEnum):
|
|
163
163
|
admin_secret = _StrConfigDscr(ConfigCategory.hidden) # removed
|
164
164
|
|
165
165
|
default_useragent_string = _StrConfigDscr(ConfigCategory.general)
|
166
|
-
use_ip_in_config=_BoolConfigDscr(ConfigCategory.
|
166
|
+
use_ip_in_config=_BoolConfigDscr(ConfigCategory.hidden)
|
167
167
|
# tls
|
168
168
|
tls_ports = _StrConfigDscr(ConfigCategory.tls, ApplyMode.apply_config)
|
169
169
|
|
hiddifypanel/models/domain.py
CHANGED
@@ -62,6 +62,7 @@ class Domain(db.Model):
|
|
62
62
|
download_domain_id= db.Column(db.Integer, db.ForeignKey('domain.id', ondelete='SET NULL'), default=None,nullable=True)
|
63
63
|
download_domain = db.relationship('Domain',remote_side=[id], foreign_keys=[download_domain_id])
|
64
64
|
extra_params = db.Column(db.String(200), nullable=True, default='')
|
65
|
+
resolve_ip= db.Column(db.Boolean, nullable=True, default=False)
|
65
66
|
|
66
67
|
def __repr__(self):
|
67
68
|
return f'{self.domain}'
|
@@ -88,6 +89,7 @@ class Domain(db.Model):
|
|
88
89
|
'grpc': self.grpc,
|
89
90
|
'download_domain':self.download_domain.domain if self.download_domain else "",
|
90
91
|
'show_domains': [dd.domain for dd in self.show_domains], # type: ignore
|
92
|
+
"resolve_ip":self.resolve_ip,
|
91
93
|
}
|
92
94
|
if dump_child_id:
|
93
95
|
data['child_id'] = self.child_id
|
@@ -201,6 +203,7 @@ class Domain(db.Model):
|
|
201
203
|
dbdomain.alias = domain.get('alias', '')
|
202
204
|
dbdomain.grpc = domain.get('grpc', False)
|
203
205
|
dbdomain.servernames = domain.get('servernames', '')
|
206
|
+
dbdomain.resolve_ip=domain.get("resolve_ip",False)
|
204
207
|
show_domains = domain.get('show_domains', [])
|
205
208
|
dbdomain.show_domains = Domain.query.filter(Domain.domain.in_(show_domains)).all()
|
206
209
|
dl_domain=domain.get("download_domain")
|
@@ -51,7 +51,8 @@ class DomainAdmin(AdminLTEModelView):
|
|
51
51
|
servernames=_('config.reality_server_names.description'),
|
52
52
|
sub_link_only=_('This can be used for giving your users a permanent non blockable links.'),
|
53
53
|
grpc=_('grpc-proxy.description'),
|
54
|
-
download_domain=_('download_domain.description')
|
54
|
+
download_domain=_('download_domain.description'),
|
55
|
+
resolve_ip=_("domain.resolveip.description")
|
55
56
|
)
|
56
57
|
# create_modal = True
|
57
58
|
can_export = False
|
@@ -86,10 +87,11 @@ class DomainAdmin(AdminLTEModelView):
|
|
86
87
|
'show_domains': _('Show Domains'),
|
87
88
|
'alias': _('Alias'),
|
88
89
|
'grpc': _('gRPC'),
|
89
|
-
"download_domain":_('download_domain.label')
|
90
|
+
"download_domain":_('download_domain.label'),
|
91
|
+
'resolve_ip':_("domain.resolveip.label"),
|
90
92
|
}
|
91
93
|
|
92
|
-
form_columns = ['mode', 'domain',
|
94
|
+
form_columns = ['mode', 'domain', 'alias', 'servernames', 'cdn_ip', 'resolve_ip', 'show_domains', 'download_domain',]
|
93
95
|
|
94
96
|
def _domain_admin_link(view, context, model, name):
|
95
97
|
if model.mode == DomainType.fake:
|
@@ -11,7 +11,7 @@ from flask_babel import lazy_gettext as _
|
|
11
11
|
from flask import g, request # type: ignore
|
12
12
|
from markupsafe import Markup
|
13
13
|
from sqlalchemy import desc, func
|
14
|
-
|
14
|
+
from flask_admin.contrib.sqla import form, filters as sqla_filters, tools
|
15
15
|
from hiddifypanel.hutils.flask import hurl_for
|
16
16
|
from wtforms.validators import Regexp, ValidationError
|
17
17
|
from flask import current_app
|
@@ -432,3 +432,57 @@ class UserAdmin(AdminLTEModelView):
|
|
432
432
|
# abort(403)
|
433
433
|
|
434
434
|
return query
|
435
|
+
|
436
|
+
|
437
|
+
@action('disable', 'Disable', 'Are you sure you want to disable selected users?')
|
438
|
+
def action_disable(self, ids):
|
439
|
+
query = tools.get_query_for_ids(self.get_query(), self.model, ids)
|
440
|
+
count = query.update({'enable': False})
|
441
|
+
|
442
|
+
self.session.commit()
|
443
|
+
hutils.flask.flash(_('%(count)s records were successfully disabled.', count=count), 'success')
|
444
|
+
self.apply(query.all())
|
445
|
+
|
446
|
+
@action('enable', 'Enable', 'Are you sure you want to enable selected users?')
|
447
|
+
def action_enable(self, ids):
|
448
|
+
query = tools.get_query_for_ids(self.get_query(), self.model, ids)
|
449
|
+
count = query.update({'enable': True})
|
450
|
+
|
451
|
+
self.session.commit()
|
452
|
+
hutils.flask.flash(_('%(count)s records were successfully enabled.', count=count), 'success')
|
453
|
+
self.apply(query.all())
|
454
|
+
|
455
|
+
@action('delete', 'Delete', 'Are you sure you want to delete selected users?')
|
456
|
+
def action_delete(self, ids):
|
457
|
+
query = tools.get_query_for_ids(self.get_query(), self.model, ids)
|
458
|
+
count = query.update({'enable': False})
|
459
|
+
self.session.commit()
|
460
|
+
self.apply(query.all())
|
461
|
+
count =query.delete()
|
462
|
+
self.session.commit()
|
463
|
+
hutils.flask.flash(_('%(count)s records were successfully deleted.', count=count), 'success')
|
464
|
+
|
465
|
+
@action('reset usage', 'Reset Usage', 'Are you sure you want to reset usage of selected users?')
|
466
|
+
def action_reset_usage(self, ids):
|
467
|
+
query = tools.get_query_for_ids(self.get_query(), self.model, ids)
|
468
|
+
count = query.update({'current_usage': 0})
|
469
|
+
self.session.commit()
|
470
|
+
hutils.flask.flash(_('%(count)s records were successfully reset usage.', count=count), 'success')
|
471
|
+
self.apply(query.all())
|
472
|
+
|
473
|
+
@action('reset day', 'Reset Day', 'Are you sure you want to reset day of selected users?')
|
474
|
+
def action_reset_days(self, ids):
|
475
|
+
query = tools.get_query_for_ids(self.get_query(), self.model, ids)
|
476
|
+
count = query.update({'start_date': None})
|
477
|
+
self.session.commit()
|
478
|
+
hutils.flask.flash(_('%(count)s records were successfully reset days.', count=count), 'success')
|
479
|
+
self.apply(query.all())
|
480
|
+
|
481
|
+
def apply(self,users):
|
482
|
+
for user in users:
|
483
|
+
|
484
|
+
if user.is_active:
|
485
|
+
user_driver.add_client(user)
|
486
|
+
else:
|
487
|
+
user_driver.remove_client(user)
|
488
|
+
hiddify.quick_apply_users()
|
hiddifypanel/panel/init_db.py
CHANGED
@@ -16,6 +16,12 @@ from hiddifypanel.database import db, db_execute
|
|
16
16
|
from loguru import logger
|
17
17
|
MAX_DB_VERSION = 120
|
18
18
|
|
19
|
+
def _v108(child_id):
|
20
|
+
Domain.query.filter(Domain.mode==DomainType.auto_cdn_ip).update({
|
21
|
+
"mode":"cdn",
|
22
|
+
"resolve_ip":True
|
23
|
+
})
|
24
|
+
|
19
25
|
def _v107(child_id):
|
20
26
|
# set_hconfig(ConfigEnum.core_type,'xray') # disable singbox core temporary
|
21
27
|
execute("UPDATE proxy SET params = '{}' WHERE params is NULL;")
|
@@ -61,9 +61,9 @@
|
|
61
61
|
if ($("#domain").length > 0) {
|
62
62
|
var selectElement = document.getElementById("mode");
|
63
63
|
var groups = [
|
64
|
-
{ label: `{{_("Direct")}}`, options: ["direct"
|
64
|
+
{ label: `{{_("Direct")}}`, options: ["direct"] },
|
65
65
|
{ label: `{{_("Panel Link")}}`, options: ["sub_link_only"] },
|
66
|
-
{ label: `{{_("Bridge Servers")}}`, options: ["cdn",
|
66
|
+
{ label: `{{_("Bridge Servers")}}`, options: ["cdn", "worker", "relay"] },
|
67
67
|
{ label: `{{_("Fake")}}`, options: ["special_reality_xhttp","special_reality_tcp","special_reality_grpc", "fake"] }
|
68
68
|
];
|
69
69
|
|
@@ -104,6 +104,7 @@
|
|
104
104
|
$("#cdn_ip").val("")
|
105
105
|
//$("#mode").parent().hide();
|
106
106
|
$("#show_domains").parent().show()
|
107
|
+
$("#resolve_ip").parent().hide()
|
107
108
|
$("#servernames").parent().hide();
|
108
109
|
$("#domain").parent().find(".control-label").html(`{{_('domain.domain')}}`)
|
109
110
|
$("#domain").parent().find(".help-block").html(`{{_('domain.description')}}`)
|
@@ -114,7 +115,7 @@
|
|
114
115
|
$("#cdn_ip").parent().show();
|
115
116
|
//$("#mode").parent().show();
|
116
117
|
$("#show_domains").parent().hide()
|
117
|
-
|
118
|
+
$("#resolve_ip").parent().show()
|
118
119
|
|
119
120
|
if ($("#mode").val() == 'direct') {
|
120
121
|
$("#cdn_ip").parent().hide();
|
Binary file
|
@@ -9,12 +9,21 @@ msgstr ""
|
|
9
9
|
" Search\n"
|
10
10
|
" Settings"
|
11
11
|
|
12
|
+
msgid "%(count)s records were successfully deleted."
|
13
|
+
msgstr "%(count)s records were successfully deleted."
|
14
|
+
|
12
15
|
msgid "%(count)s records were successfully disabled."
|
13
16
|
msgstr "%(count)s Records were successfully disabled."
|
14
17
|
|
15
18
|
msgid "%(count)s records were successfully enabled."
|
16
19
|
msgstr "%(count)s Records were successfully enabled."
|
17
20
|
|
21
|
+
msgid "%(count)s records were successfully reset days."
|
22
|
+
msgstr "%(count)s records were successfully reset days."
|
23
|
+
|
24
|
+
msgid "%(count)s records were successfully reset usage."
|
25
|
+
msgstr "%(count)s records were successfully reset usage."
|
26
|
+
|
18
27
|
msgid "%(expire_days)s days"
|
19
28
|
msgstr "%(expire_days)s Days"
|
20
29
|
|
@@ -2518,6 +2527,14 @@ msgstr ""
|
|
2518
2527
|
"Selected Domain for REALITY is not in the same ASN. To better use of the "
|
2519
2528
|
"Protocol, it is better to find a Domain in the same ASN"
|
2520
2529
|
|
2530
|
+
msgid "domain.resolveip.description"
|
2531
|
+
msgstr ""
|
2532
|
+
"Use IP instead of domain name in the proxies. Useful when there are huge "
|
2533
|
+
"noise on the DNS."
|
2534
|
+
|
2535
|
+
msgid "domain.resolveip.label"
|
2536
|
+
msgstr "Resolve IP"
|
2537
|
+
|
2521
2538
|
msgid "domain.show_domains_description"
|
2522
2539
|
msgstr ""
|
2523
2540
|
"For users visit the user area with this domain, Specify they can see the proxies of which domains.\n"
|
Binary file
|
@@ -9,12 +9,21 @@ msgstr ""
|
|
9
9
|
" جستجو کردن\n"
|
10
10
|
"تنظیمات"
|
11
11
|
|
12
|
+
msgid "%(count)s records were successfully deleted."
|
13
|
+
msgstr ""
|
14
|
+
|
12
15
|
msgid "%(count)s records were successfully disabled."
|
13
16
|
msgstr "%(count)s رکورد با موفقیت غیرفعال شد."
|
14
17
|
|
15
18
|
msgid "%(count)s records were successfully enabled."
|
16
19
|
msgstr "%(count)s رکوردها با موفقیت فعال شد."
|
17
20
|
|
21
|
+
msgid "%(count)s records were successfully reset days."
|
22
|
+
msgstr ""
|
23
|
+
|
24
|
+
msgid "%(count)s records were successfully reset usage."
|
25
|
+
msgstr ""
|
26
|
+
|
18
27
|
msgid "%(expire_days)s days"
|
19
28
|
msgstr "%(expire_days)s روز"
|
20
29
|
|
@@ -2513,6 +2522,14 @@ msgstr ""
|
|
2513
2522
|
"دامنه انتخاب شده برای REALITY در همان ASN نیست. برای استفاده بهتر از این "
|
2514
2523
|
"پروتکل، بهتر است یک دامنه در همان ASN پیدا کنید."
|
2515
2524
|
|
2525
|
+
msgid "domain.resolveip.description"
|
2526
|
+
msgstr ""
|
2527
|
+
"به جای نام دامنه از IP در پروکسیها استفاده شود. زمانی مفید است که نویز "
|
2528
|
+
"زیادی در DNS وجود دارد."
|
2529
|
+
|
2530
|
+
msgid "domain.resolveip.label"
|
2531
|
+
msgstr "استفاده از IP"
|
2532
|
+
|
2516
2533
|
msgid "domain.show_domains_description"
|
2517
2534
|
msgstr ""
|
2518
2535
|
"مشخص کنید کاربرانی که با این دامنه، پنل کاربری را مشاهده میکنند، کانفیگهای مربوط به کدام دامنهها را مشاهده کنند.\n"
|
Binary file
|
Binary file
|
@@ -9,12 +9,21 @@ msgstr ""
|
|
9
9
|
" Procurar\n"
|
10
10
|
"Configurações"
|
11
11
|
|
12
|
+
msgid "%(count)s records were successfully deleted."
|
13
|
+
msgstr ""
|
14
|
+
|
12
15
|
msgid "%(count)s records were successfully disabled."
|
13
16
|
msgstr "%(count)s registros foram desativados com sucesso."
|
14
17
|
|
15
18
|
msgid "%(count)s records were successfully enabled."
|
16
19
|
msgstr "%(count)s registros foram ativados com sucesso."
|
17
20
|
|
21
|
+
msgid "%(count)s records were successfully reset days."
|
22
|
+
msgstr ""
|
23
|
+
|
24
|
+
msgid "%(count)s records were successfully reset usage."
|
25
|
+
msgstr ""
|
26
|
+
|
18
27
|
msgid "%(expire_days)s days"
|
19
28
|
msgstr "%(expire_days)s dias"
|
20
29
|
|
@@ -2475,6 +2484,12 @@ msgstr ""
|
|
2475
2484
|
"O domínio selecionado para REALITY não está no mesmo ASN.\n"
|
2476
2485
|
"Para melhor aproveitamento do Protocolo, é melhor encontrar um Domínio com o mesmo ASN"
|
2477
2486
|
|
2487
|
+
msgid "domain.resolveip.description"
|
2488
|
+
msgstr ""
|
2489
|
+
|
2490
|
+
msgid "domain.resolveip.label"
|
2491
|
+
msgstr ""
|
2492
|
+
|
2478
2493
|
msgid "domain.show_domains_description"
|
2479
2494
|
msgstr ""
|
2480
2495
|
"Para os usuários que visitam a área do usuário com este domínio, especifique que eles podem ver os proxies de quais domínios.\n"
|
Binary file
|
@@ -9,12 +9,21 @@ msgstr ""
|
|
9
9
|
" Поиск\n"
|
10
10
|
"Настройки"
|
11
11
|
|
12
|
+
msgid "%(count)s records were successfully deleted."
|
13
|
+
msgstr ""
|
14
|
+
|
12
15
|
msgid "%(count)s records were successfully disabled."
|
13
16
|
msgstr "%(count)s записей были успешно отключены."
|
14
17
|
|
15
18
|
msgid "%(count)s records were successfully enabled."
|
16
19
|
msgstr "%(count)s записей были успешно включены."
|
17
20
|
|
21
|
+
msgid "%(count)s records were successfully reset days."
|
22
|
+
msgstr ""
|
23
|
+
|
24
|
+
msgid "%(count)s records were successfully reset usage."
|
25
|
+
msgstr ""
|
26
|
+
|
18
27
|
msgid "%(expire_days)s days"
|
19
28
|
msgstr "%(expire_days)s дней"
|
20
29
|
|
@@ -2530,6 +2539,12 @@ msgstr ""
|
|
2530
2539
|
"Выбранный домен для REALITY не находится в том же ASN. Для более "
|
2531
2540
|
"эффективного использования протокола лучше найти Домен в том же ASN"
|
2532
2541
|
|
2542
|
+
msgid "domain.resolveip.description"
|
2543
|
+
msgstr ""
|
2544
|
+
|
2545
|
+
msgid "domain.resolveip.label"
|
2546
|
+
msgstr ""
|
2547
|
+
|
2533
2548
|
msgid "domain.show_domains_description"
|
2534
2549
|
msgstr ""
|
2535
2550
|
"Для посетителей пользовательской области с этим доменом, укажите, какие домены они могут видеть.\n"
|
Binary file
|
@@ -7,12 +7,21 @@ msgid ""
|
|
7
7
|
" Settings"
|
8
8
|
msgstr " 搜索<inlang-LineFeed>设置"
|
9
9
|
|
10
|
+
msgid "%(count)s records were successfully deleted."
|
11
|
+
msgstr ""
|
12
|
+
|
10
13
|
msgid "%(count)s records were successfully disabled."
|
11
14
|
msgstr "%(count)s 条记录已成功禁用。"
|
12
15
|
|
13
16
|
msgid "%(count)s records were successfully enabled."
|
14
17
|
msgstr "%(count)s 条记录已成功启用。"
|
15
18
|
|
19
|
+
msgid "%(count)s records were successfully reset days."
|
20
|
+
msgstr ""
|
21
|
+
|
22
|
+
msgid "%(count)s records were successfully reset usage."
|
23
|
+
msgstr ""
|
24
|
+
|
16
25
|
msgid "%(expire_days)s days"
|
17
26
|
msgstr "%(expire_days)s 天"
|
18
27
|
|
@@ -2342,6 +2351,12 @@ msgstr "模式"
|
|
2342
2351
|
msgid "domain.reality.asn_issue"
|
2343
2352
|
msgstr "REALITY 的所选域不在同一 ASN 中。为了更好地使用该协议,最好在同一 ASN 中找到一个域"
|
2344
2353
|
|
2354
|
+
msgid "domain.resolveip.description"
|
2355
|
+
msgstr ""
|
2356
|
+
|
2357
|
+
msgid "domain.resolveip.label"
|
2358
|
+
msgstr ""
|
2359
|
+
|
2345
2360
|
msgid "domain.show_domains_description"
|
2346
2361
|
msgstr ""
|
2347
2362
|
"对于访问该域的用户区的用户,指定他们可以看到哪些域的代理。\n"
|
@@ -1,7 +1,10 @@
|
|
1
1
|
{
|
2
2
|
" Search\n Settings": " Search\n Settings",
|
3
|
+
"%(count)s records were successfully deleted.": "%(count)s records were successfully deleted.",
|
3
4
|
"%(count)s records were successfully disabled.": "%(count)s Records were successfully disabled.",
|
4
5
|
"%(count)s records were successfully enabled.": "%(count)s Records were successfully enabled.",
|
6
|
+
"%(count)s records were successfully reset days.": "%(count)s records were successfully reset days.",
|
7
|
+
"%(count)s records were successfully reset usage.": "%(count)s records were successfully reset usage.",
|
5
8
|
"%(expire_days)s days": "%(expire_days)s Days",
|
6
9
|
"%(placeholder)s": "%(placeholder)s",
|
7
10
|
"0 - Last day": "Last Day",
|
@@ -1122,6 +1125,10 @@
|
|
1122
1125
|
"reality": {
|
1123
1126
|
"asn_issue": "Selected Domain for REALITY is not in the same ASN. To better use of the Protocol, it is better to find a Domain in the same ASN"
|
1124
1127
|
},
|
1128
|
+
"resolveip": {
|
1129
|
+
"description": "Use IP instead of domain name in the proxies. Useful when there are huge noise on the DNS.",
|
1130
|
+
"label": "Resolve IP"
|
1131
|
+
},
|
1125
1132
|
"show_domains_description": "For users visit the user area with this domain, Specify they can see the proxies of which domains.\n<br>\nSuggestion: For a domain with an unfiltered IP and different from the others, select all other domains (except the current domain). As a result, since the use of this IP is not for proxy and it is a simple website, this domain and IP will never be blocked and your users can easily update new profiles."
|
1126
1133
|
},
|
1127
1134
|
"download": "Direct Download",
|
@@ -1,7 +1,10 @@
|
|
1
1
|
{
|
2
2
|
" Search\n Settings": " جستجو کردن\nتنظیمات",
|
3
|
+
"%(count)s records were successfully deleted.": "",
|
3
4
|
"%(count)s records were successfully disabled.": "%(count)s رکورد با موفقیت غیرفعال شد.",
|
4
5
|
"%(count)s records were successfully enabled.": "%(count)s رکوردها با موفقیت فعال شد.",
|
6
|
+
"%(count)s records were successfully reset days.": "",
|
7
|
+
"%(count)s records were successfully reset usage.": "",
|
5
8
|
"%(expire_days)s days": "%(expire_days)s روز",
|
6
9
|
"%(placeholder)s": "%(placeholder)s",
|
7
10
|
"0 - Last day": "آخرین روز",
|
@@ -1121,6 +1124,10 @@
|
|
1121
1124
|
"reality": {
|
1122
1125
|
"asn_issue": "دامنه انتخاب شده برای REALITY در همان ASN نیست. برای استفاده بهتر از این پروتکل، بهتر است یک دامنه در همان ASN پیدا کنید."
|
1123
1126
|
},
|
1127
|
+
"resolveip": {
|
1128
|
+
"description": "به جای نام دامنه از IP در پروکسیها استفاده شود. زمانی مفید است که نویز زیادی در DNS وجود دارد.",
|
1129
|
+
"label": "استفاده از IP"
|
1130
|
+
},
|
1124
1131
|
"show_domains_description": "مشخص کنید کاربرانی که با این دامنه، پنل کاربری را مشاهده میکنند، کانفیگهای مربوط به کدام دامنهها را مشاهده کنند.\n<br>\nپیشنهاد: برای یک دامنه با IP فیلتر نشده و متفاوت با بقیه، همه دامنه های دیگر (به جز دامنه فعلی) را انتخاب کنید. در نتیجه از آنجایی که از این IP برای فیلترشکن استفاده نمیشود و یک وبسایت ساده است، این دامنه و آی پی هرگز مسدود نمیشود و کاربران شما به راحتی می توانند پروفایل های جدید را به روز کنند."
|
1125
1132
|
},
|
1126
1133
|
"download": "دانلود مستقیم",
|
@@ -1,7 +1,10 @@
|
|
1
1
|
{
|
2
2
|
" Search\n Settings": " Procurar\nConfigurações",
|
3
|
+
"%(count)s records were successfully deleted.": "",
|
3
4
|
"%(count)s records were successfully disabled.": "%(count)s registros foram desativados com sucesso.",
|
4
5
|
"%(count)s records were successfully enabled.": "%(count)s registros foram ativados com sucesso.",
|
6
|
+
"%(count)s records were successfully reset days.": "",
|
7
|
+
"%(count)s records were successfully reset usage.": "",
|
5
8
|
"%(expire_days)s days": "%(expire_days)s dias",
|
6
9
|
"%(placeholder)s": "%(placeholder)s",
|
7
10
|
"0 - Last day": "Último dia",
|
@@ -1113,6 +1116,10 @@
|
|
1113
1116
|
"reality": {
|
1114
1117
|
"asn_issue": "O domínio selecionado para REALITY não está no mesmo ASN.\nPara melhor aproveitamento do Protocolo, é melhor encontrar um Domínio com o mesmo ASN"
|
1115
1118
|
},
|
1119
|
+
"resolveip": {
|
1120
|
+
"description": "",
|
1121
|
+
"label": ""
|
1122
|
+
},
|
1116
1123
|
"show_domains_description": "Para os usuários que visitam a área do usuário com este domínio, especifique que eles podem ver os proxies de quais domínios.\n<br>\nSugestão: Para um domínio com IP não filtrado e diferente dos demais, selecione todos os outros domínios (exceto o domínio atual). Como resultado, como o uso deste IP não é para proxy e é um site simples, este domínio e IP nunca serão bloqueados e seus usuários poderão facilmente atualizar novos perfis."
|
1117
1124
|
},
|
1118
1125
|
"download": "Download direto",
|
@@ -1,7 +1,10 @@
|
|
1
1
|
{
|
2
2
|
" Search\n Settings": " Поиск\nНастройки",
|
3
|
+
"%(count)s records were successfully deleted.": "",
|
3
4
|
"%(count)s records were successfully disabled.": "%(count)s записей были успешно отключены.",
|
4
5
|
"%(count)s records were successfully enabled.": "%(count)s записей были успешно включены.",
|
6
|
+
"%(count)s records were successfully reset days.": "",
|
7
|
+
"%(count)s records were successfully reset usage.": "",
|
5
8
|
"%(expire_days)s days": "%(expire_days)s дней",
|
6
9
|
"%(placeholder)s": "%(placeholder)s",
|
7
10
|
"0 - Last day": "Последний день",
|
@@ -1113,6 +1116,10 @@
|
|
1113
1116
|
"reality": {
|
1114
1117
|
"asn_issue": "Выбранный домен для REALITY не находится в том же ASN. Для более эффективного использования протокола лучше найти Домен в том же ASN"
|
1115
1118
|
},
|
1119
|
+
"resolveip": {
|
1120
|
+
"description": "",
|
1121
|
+
"label": ""
|
1122
|
+
},
|
1116
1123
|
"show_domains_description": "Для посетителей пользовательской области с этим доменом, укажите, какие домены они могут видеть.\n<br>\nПредложение: Для домена с IP-адресом не попадащим под фильтры, отличного от других, выберите все остальные домены (кроме текущего). В результате, поскольку этот IP-адрес используется не для прокси-сервера, а для простого веб-сайта, этот домен и IP-адрес никогда не будут заблокированы, и ваши пользователи смогут легко обновлять свои профили."
|
1117
1124
|
},
|
1118
1125
|
"download": "Direct Download",
|
@@ -1,7 +1,10 @@
|
|
1
1
|
{
|
2
2
|
" Search\n Settings": " 搜索<inlang-LineFeed>设置",
|
3
|
+
"%(count)s records were successfully deleted.": "",
|
3
4
|
"%(count)s records were successfully disabled.": "%(count)s 条记录已成功禁用。",
|
4
5
|
"%(count)s records were successfully enabled.": "%(count)s 条记录已成功启用。",
|
6
|
+
"%(count)s records were successfully reset days.": "",
|
7
|
+
"%(count)s records were successfully reset usage.": "",
|
5
8
|
"%(expire_days)s days": "%(expire_days)s 天",
|
6
9
|
"%(placeholder)s": "%(placeholder)s",
|
7
10
|
"0 - Last day": "最后一天",
|
@@ -1113,6 +1116,10 @@
|
|
1113
1116
|
"reality": {
|
1114
1117
|
"asn_issue": "REALITY 的所选域不在同一 ASN 中。为了更好地使用该协议,最好在同一 ASN 中找到一个域"
|
1115
1118
|
},
|
1119
|
+
"resolveip": {
|
1120
|
+
"description": "",
|
1121
|
+
"label": ""
|
1122
|
+
},
|
1116
1123
|
"show_domains_description": "对于访问该域的用户区的用户,指定他们可以看到哪些域的代理。\n<br>\n建议:对于IP未过滤且与其他域不同的域,选择所有其他域(当前域除外)。因此,由于该 IP 的使用不是用于代理,并且它是一个简单的网站,因此该域名和 IP 永远不会被阻止,您的用户可以轻松更新新的配置文件。"
|
1117
1124
|
},
|
1118
1125
|
"download": "直接下载",
|
@@ -1,6 +1,6 @@
|
|
1
1
|
hiddifypanel/Events.py,sha256=AlnRdjVul0jP-NCT4-zoaQgowoOo-JhdQB4ytetAFKA,723
|
2
|
-
hiddifypanel/VERSION,sha256=
|
3
|
-
hiddifypanel/VERSION.py,sha256=
|
2
|
+
hiddifypanel/VERSION,sha256=joq5e4Gi-_VooYArjbkgxsGcXgMqXWnIoHK_XSYo1OA,10
|
3
|
+
hiddifypanel/VERSION.py,sha256=LU925yaHZFvJY9AGWd54uKxDJb1vM7aV1OPBT5oF_gg,189
|
4
4
|
hiddifypanel/__init__.py,sha256=kigwDO8d9jXyPZLvJAWd6zo-GX3pG_xWf-q2aStz80Y,377
|
5
5
|
hiddifypanel/__main__.py,sha256=IVchnXpK6bm8T3N--mN17HBQNLMeLAjyP7iwzULexB4,218
|
6
6
|
hiddifypanel/auth.py,sha256=LJmH4ROqZv5ej_4m1b0xvbEw2meJTzDR1mFCDm523kE,8041
|
@@ -44,7 +44,7 @@ hiddifypanel/hutils/node/parent.py,sha256=UbyfvfP4fTSn6HN9oZDjYsKYIejiqW6eApKIfP
|
|
44
44
|
hiddifypanel/hutils/node/shared.py,sha256=FDSj3e-i3pb3mEv5vcUeX0Km1nxYg1CeAruIq7RwFmU,2540
|
45
45
|
hiddifypanel/hutils/proxy/__init__.py,sha256=V2dGkYT3tji__5YOSmKOMChFYXtlENe1fX6eHqK70Pc,129
|
46
46
|
hiddifypanel/hutils/proxy/clash.py,sha256=JiT3wj48b9ezCGxZoEp5FrhvwfmNKslcF5GMoH9-8OU,7061
|
47
|
-
hiddifypanel/hutils/proxy/shared.py,sha256=
|
47
|
+
hiddifypanel/hutils/proxy/shared.py,sha256=xJeC8kHX_pbtrU96Rl_i4YCcbqTscmB-sRRwsUfQUCE,24072
|
48
48
|
hiddifypanel/hutils/proxy/singbox.py,sha256=Fmmzoake-gpnRB5yfTyQvd1dB-10WKwhJt4vhiKzJZQ,11722
|
49
49
|
hiddifypanel/hutils/proxy/wireguard.py,sha256=gij01BYXII-RxAh3Yky0o3yce20HJKeHtu1KNwb0Uzk,934
|
50
50
|
hiddifypanel/hutils/proxy/xray.py,sha256=IypJKIGxZnjrJ1SsXa-412uWdJtmCcEavZMCyIPHH7U,11793
|
@@ -54,8 +54,8 @@ hiddifypanel/models/admin.py,sha256=bbvpbquyPTmRjqwVT4zVC3bIF39zZYv8snlOR5XIF90,
|
|
54
54
|
hiddifypanel/models/base_account.py,sha256=jVO4haLwTsiE7u4fWoDhhRZ_NjbO7hVJhry8k-Vnrzk,3507
|
55
55
|
hiddifypanel/models/child.py,sha256=IhmCszhUgi1QXbWgji4UDjHV7_OyzLSLsW86BQWFys4,3009
|
56
56
|
hiddifypanel/models/config.py,sha256=Ny3MXiPC-CrF8-xAEmRth6d_lfpDiWZHbCctyJNyWgg,6382
|
57
|
-
hiddifypanel/models/config_enum.py,sha256=
|
58
|
-
hiddifypanel/models/domain.py,sha256=
|
57
|
+
hiddifypanel/models/config_enum.py,sha256=x9vUT4qvSrxlZsXAFy-GlcDac2pD4fM11-N7g6eNmG4,17099
|
58
|
+
hiddifypanel/models/domain.py,sha256=DuHBH9mKwGTCcZXyGxK32eFtT2qAH3oHbhJwgfNchWk,9692
|
59
59
|
hiddifypanel/models/parent_domain.py,sha256=bs5F1neOAQu9XHEk3QQTBM4p2iuebM4cnAQqwfNjCtg,2291
|
60
60
|
hiddifypanel/models/proxy.py,sha256=Bjagdx7IPMlOLBDZ5KPJvwiWQo-oYtjuJEUs_DhhQU0,3487
|
61
61
|
hiddifypanel/models/report.py,sha256=FLoZdsIJd2ZlT6WidTQShi1GjJYk5ikS-KskzSnc9Mw,918
|
@@ -72,7 +72,7 @@ hiddifypanel/panel/common.py,sha256=pMxdgt37ubIZroFBuvHfN5qXNp8kytVTIzVxzZA_X_I,
|
|
72
72
|
hiddifypanel/panel/custom_widgets.py,sha256=ojnLz-kAa1juZVW1JoCy8FAjvWNORKNpFIb8OnY0lLw,3767
|
73
73
|
hiddifypanel/panel/hiddify.py,sha256=nwLTMYa_LyNuS26BPOO8jfyrslHX2MbQxN0o4lxCTd4,15687
|
74
74
|
hiddifypanel/panel/hlogger.py,sha256=1AQQCs1lg0Y1AYIASRjxWAdFE92HENeg3z1rFycOoY0,1215
|
75
|
-
hiddifypanel/panel/init_db.py,sha256=
|
75
|
+
hiddifypanel/panel/init_db.py,sha256=FcUFkbuWF654Wj1dxXzP14Ib12zfNwesE6hXAdjL28o,39671
|
76
76
|
hiddifypanel/panel/run_commander.py,sha256=cXCFVvZ6iTzab3EOZ-Eq3aOeIqfgzgt2ppNaxm_3OJI,3205
|
77
77
|
hiddifypanel/panel/usage.py,sha256=kQAz9nfHt3Mcfa8kLHdrpD408DZEFDT7T1xFV6MlDQE,11991
|
78
78
|
hiddifypanel/panel/admin/Actions.py,sha256=o_ENbphriVrbRJkx9nvrkpaliuMIfp34sscMkZJ3P5s,8578
|
@@ -80,13 +80,13 @@ hiddifypanel/panel/admin/AdminstratorAdmin.py,sha256=X8MI3DtW62vJqFRp97M_CxSdB-N
|
|
80
80
|
hiddifypanel/panel/admin/Backup.py,sha256=BKSoAZgw1j16P1Jh9vMqGj7ZfB2m-WafDK0C5vil5FY,3634
|
81
81
|
hiddifypanel/panel/admin/ConfigAdmin.py,sha256=0hnLY-8BxrpVnrAcQaedWjHnRUq1X_Styi_ZCZ2ivds,2876
|
82
82
|
hiddifypanel/panel/admin/Dashboard.py,sha256=JOqZLHxPOYKQYQVJ7AtHAkilH-anJZQyK1rQrgCJUeA,3798
|
83
|
-
hiddifypanel/panel/admin/DomainAdmin.py,sha256=
|
83
|
+
hiddifypanel/panel/admin/DomainAdmin.py,sha256=snCzrD5JmbAgHPN4n2zLLaGwf3WYdIfkGHLXagJ5DQ8,16660
|
84
84
|
hiddifypanel/panel/admin/NodeAdmin.py,sha256=QAHQjF7e7F4KqsWNWpMt7SoLANlFEborVtWQV9OXJ2E,3102
|
85
85
|
hiddifypanel/panel/admin/ProxyAdmin.py,sha256=HtuYHkZ8LCrYtjF2xO2i7lyw_KtOTBYCPu0bNWR4fOs,5364
|
86
86
|
hiddifypanel/panel/admin/QuickSetup.py,sha256=7ysSAlS7yJerstTDWhuhEwGyoTqpkry2-SfEbuP1VuY,12689
|
87
87
|
hiddifypanel/panel/admin/SettingAdmin.py,sha256=PLu9SEffkMu_GfgRJ5VGjIdaU_8AvkGs5KlskqjRxxI,20434
|
88
88
|
hiddifypanel/panel/admin/Terminal.py,sha256=rzZWRjMhjVnAvC65rfE3HJT3boUDznI6fl-htzKp7sI,1712
|
89
|
-
hiddifypanel/panel/admin/UserAdmin.py,sha256=
|
89
|
+
hiddifypanel/panel/admin/UserAdmin.py,sha256=SasWk0Lt2II70QrFE90dc83b41icONATxqvw-isu5XE,21068
|
90
90
|
hiddifypanel/panel/admin/__init__.py,sha256=hb0A2HuK_nBZRCNPumwahXX-25FMxODKYlNbk2ItF08,3015
|
91
91
|
hiddifypanel/panel/admin/adminlte.py,sha256=TrUUu6WYUM-rpgvW2C2KBq3bXkvKe3Pa3cEPjpWCJuk,758
|
92
92
|
hiddifypanel/panel/admin/commercial_info.py,sha256=_fBJcR6zTlMs5Wx4NQJYxq5LvMHY8qfoh73-eCNJyb8,278
|
@@ -833,7 +833,7 @@ hiddifypanel/templates/admin.ht.old,sha256=e9FBo9YPi7zFVidg8jS6JhOOsYdBbNPxfpTWG
|
|
833
833
|
hiddifypanel/templates/donation.html,sha256=Oft3WENpSnwpbDgMw3MnhQIlQhuN_TDKm54qd4_FwIk,741
|
834
834
|
hiddifypanel/templates/error.html,sha256=Tnu3mMZ6zvFcATU6_OY1stljVPd9Djnxm3LV7Zx4zck,476
|
835
835
|
hiddifypanel/templates/fake.html,sha256=AfAN68M52vzE5OgR432HbtXF6XXWLZ2n5sgy2YKpHgQ,14129
|
836
|
-
hiddifypanel/templates/flaskadmin-layout.html,sha256=
|
836
|
+
hiddifypanel/templates/flaskadmin-layout.html,sha256=k3hMTkuClSBQ1o6ADxXjSigDPzhDDOOU7_lOgXEU1jU,8112
|
837
837
|
hiddifypanel/templates/github_issue_body.j2,sha256=6Z4QF-cOAaUxDtRQXT8H4O9SrZ3TGoxgpjnfIpGbsxo,474
|
838
838
|
hiddifypanel/templates/lte-master.html,sha256=jYhcNj8SuMOPT35OEG4e1sLWm03Vq53n4ynf3SdOWj4,1585
|
839
839
|
hiddifypanel/templates/macros.html,sha256=HlnXbIMN8i37fVusBdfw0QfVkImnFpZw9zbmtpAT4p8,4139
|
@@ -842,28 +842,28 @@ hiddifypanel/templates/redirect.html,sha256=K9x_O4P96vEkqBhOXIhoGrWw1KIqd2bL0BjI
|
|
842
842
|
hiddifypanel/templates/static.html,sha256=jp6q4wtx-k2A_cjqJoNiMS7Ee30arE45qI3ev4d5ky4,165
|
843
843
|
hiddifypanel/templates/hiddify-flask-admin/actions.html,sha256=2NeITe2e-lPKCk_o511tCIqVtrPu8LYHE1wTCtrFUrI,1331
|
844
844
|
hiddifypanel/templates/hiddify-flask-admin/list.html,sha256=MBGrTqZpzNLe4sZy0RozvXNr8seFUQc2C6v88BJtNWc,11095
|
845
|
-
hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=
|
846
|
-
hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=
|
847
|
-
hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=
|
848
|
-
hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=
|
849
|
-
hiddifypanel/translations/my/LC_MESSAGES/messages.mo,sha256=
|
845
|
+
hiddifypanel/translations/en/LC_MESSAGES/messages.mo,sha256=uzqVMpC1XgDcXi-Gzg11esYcKbtuPO2cQ6YAGYr4PUg,81862
|
846
|
+
hiddifypanel/translations/en/LC_MESSAGES/messages.po,sha256=u_oPub6KzdSDKrqKzm7FC_1pKCYTG4QIcxdQbqu_eFs,85241
|
847
|
+
hiddifypanel/translations/fa/LC_MESSAGES/messages.mo,sha256=mJ7rVnthOv_h6D8lNiGUmwO_vTbb1W9y7djFpoOTiYE,104895
|
848
|
+
hiddifypanel/translations/fa/LC_MESSAGES/messages.po,sha256=LjMKyC6OAD8vOG5e2leV9PanjQYjEyV2lNM4JaOaeOw,109877
|
849
|
+
hiddifypanel/translations/my/LC_MESSAGES/messages.mo,sha256=BotcFrWd3i1cGbBs2VNafh-nTF5suuR03tk-t4gLdKU,139090
|
850
850
|
hiddifypanel/translations/my/LC_MESSAGES/messages.po,sha256=PvYBwQWXaUpAoqy90oow-sH-ZyPE7Fm_l-3FrXT_vEA,141985
|
851
|
-
hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=
|
852
|
-
hiddifypanel/translations/pt/LC_MESSAGES/messages.po,sha256=
|
853
|
-
hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=
|
854
|
-
hiddifypanel/translations/ru/LC_MESSAGES/messages.po,sha256=
|
855
|
-
hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=
|
856
|
-
hiddifypanel/translations/zh/LC_MESSAGES/messages.po,sha256=
|
857
|
-
hiddifypanel/translations.i18n/en.json,sha256=
|
858
|
-
hiddifypanel/translations.i18n/fa.json,sha256=
|
851
|
+
hiddifypanel/translations/pt/LC_MESSAGES/messages.mo,sha256=ymffr9WMmGGF-4NdGp6_jKmwY0QzfKKEI5q_-xvDKII,80947
|
852
|
+
hiddifypanel/translations/pt/LC_MESSAGES/messages.po,sha256=Wswd3gUKUp3F-G8apMoTXd7WRvPImYbGXv22hTLvfEA,86272
|
853
|
+
hiddifypanel/translations/ru/LC_MESSAGES/messages.mo,sha256=lfLw0i1fPN9mGr-ne2-p1K-uJ0d34cf_d0WmTPKG28E,108744
|
854
|
+
hiddifypanel/translations/ru/LC_MESSAGES/messages.po,sha256=rI53bLwvV6SpSTNO_St3JY9fPE1WcAdKMAfpt76nQ-o,114275
|
855
|
+
hiddifypanel/translations/zh/LC_MESSAGES/messages.mo,sha256=7H9xm9IMsRAeCjYqc_hedTMo9v9C5SAsq6TlreS7xqI,75446
|
856
|
+
hiddifypanel/translations/zh/LC_MESSAGES/messages.po,sha256=wf6-t8InQ53DN2oBx5BLnb7ZMwMRBUNhmD8qSM403ac,80382
|
857
|
+
hiddifypanel/translations.i18n/en.json,sha256=U38E-aBW-oKTTigNyNxrR7zT9saeYFf2E4wWJRq-ulk,74045
|
858
|
+
hiddifypanel/translations.i18n/fa.json,sha256=xaKMnDFCzYVPkEt31kDX8ALj52kds3X2y6Ny-jJA2TM,98691
|
859
859
|
hiddifypanel/translations.i18n/fr.json,sha256=mAZvPzYQhQ1zleLr21cxeB99mb8gvoJBlw7_8AsJgQc,80895
|
860
860
|
hiddifypanel/translations.i18n/my.json,sha256=FWUSUOcHAmVBaq7KL2aX5W8ywsElsy_Dj_ZHuT2EMpE,137466
|
861
|
-
hiddifypanel/translations.i18n/pt.json,sha256=
|
862
|
-
hiddifypanel/translations.i18n/ru.json,sha256=
|
863
|
-
hiddifypanel/translations.i18n/zh.json,sha256=
|
864
|
-
hiddifypanel-11.0.
|
865
|
-
hiddifypanel-11.0.
|
866
|
-
hiddifypanel-11.0.
|
867
|
-
hiddifypanel-11.0.
|
868
|
-
hiddifypanel-11.0.
|
869
|
-
hiddifypanel-11.0.
|
861
|
+
hiddifypanel/translations.i18n/pt.json,sha256=MxeCi0cpmNyJbo8swgw0F1pQYRhRWy3sY7F_WqbkkKM,75278
|
862
|
+
hiddifypanel/translations.i18n/ru.json,sha256=v4REl-NcInzLm6pR3Tnzxdr4mP90zfpsPMJ3vI--JB4,103065
|
863
|
+
hiddifypanel/translations.i18n/zh.json,sha256=BDHwuEp6dDZ2OnovdasTmUEwbUzE1C1HRKIee3fOUX0,69811
|
864
|
+
hiddifypanel-11.0.12b1.dist-info/licenses/LICENSE.md,sha256=oDrt-cUsyiDGnRPjEJh-3dH2ddAuK_bIVBD8ntkOtZw,19807
|
865
|
+
hiddifypanel-11.0.12b1.dist-info/METADATA,sha256=RRezPq51WgRk6ekuNjha9VJA_UhQeQnFwu4v1KDQU0E,25627
|
866
|
+
hiddifypanel-11.0.12b1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
867
|
+
hiddifypanel-11.0.12b1.dist-info/entry_points.txt,sha256=Xzpqlh3nwBtZhoV9AANJykano056VJvYzaujxPztJaM,60
|
868
|
+
hiddifypanel-11.0.12b1.dist-info/top_level.txt,sha256=rv-b3qFWUZQTBy0kyBfsr7L6tPpeO7AaQlLHXn-HI5M,13
|
869
|
+
hiddifypanel-11.0.12b1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|