hiddifypanel 10.14.0__py3-none-any.whl → 10.15.0.dev1__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/auth.py +15 -4
- hiddifypanel/base.py +11 -3
- hiddifypanel/cache.py +43 -25
- hiddifypanel/database.py +9 -0
- hiddifypanel/drivers/singbox_api.py +2 -14
- hiddifypanel/drivers/xray_api.py +0 -4
- hiddifypanel/hutils/__init__.py +1 -0
- hiddifypanel/hutils/convert.py +13 -2
- hiddifypanel/hutils/crypto.py +21 -2
- hiddifypanel/hutils/flask.py +19 -5
- hiddifypanel/hutils/importer/xui.py +5 -2
- hiddifypanel/hutils/node/__init__.py +3 -0
- hiddifypanel/hutils/node/api_client.py +76 -0
- hiddifypanel/hutils/node/child.py +147 -0
- hiddifypanel/hutils/node/parent.py +100 -0
- hiddifypanel/hutils/node/shared.py +65 -0
- hiddifypanel/hutils/proxy/shared.py +15 -3
- hiddifypanel/models/__init__.py +2 -2
- hiddifypanel/models/admin.py +14 -2
- hiddifypanel/models/base_account.py +3 -3
- hiddifypanel/models/child.py +30 -16
- hiddifypanel/models/config.py +39 -15
- hiddifypanel/models/config_enum.py +55 -8
- hiddifypanel/models/domain.py +28 -20
- hiddifypanel/models/parent_domain.py +2 -2
- hiddifypanel/models/proxy.py +13 -4
- hiddifypanel/models/report.py +2 -3
- hiddifypanel/models/usage.py +2 -2
- hiddifypanel/models/user.py +13 -4
- hiddifypanel/panel/admin/Actions.py +4 -6
- hiddifypanel/panel/admin/AdminstratorAdmin.py +13 -2
- hiddifypanel/panel/admin/Dashboard.py +5 -10
- hiddifypanel/panel/admin/DomainAdmin.py +12 -11
- hiddifypanel/panel/admin/NodeAdmin.py +6 -2
- hiddifypanel/panel/admin/ProxyAdmin.py +4 -3
- hiddifypanel/panel/admin/SettingAdmin.py +60 -21
- hiddifypanel/panel/admin/UserAdmin.py +10 -2
- hiddifypanel/panel/admin/templates/index.html +1 -1
- hiddifypanel/panel/admin/templates/parent_dash.html +2 -4
- hiddifypanel/panel/cli.py +16 -16
- hiddifypanel/panel/commercial/ProxyDetailsAdmin.py +10 -5
- hiddifypanel/panel/commercial/__init__.py +7 -5
- hiddifypanel/panel/commercial/restapi/v2/admin/__init__.py +0 -5
- hiddifypanel/panel/commercial/restapi/v2/admin/admin_info_api.py +2 -2
- hiddifypanel/panel/commercial/restapi/v2/admin/admin_log_api.py +4 -5
- hiddifypanel/panel/commercial/restapi/v2/admin/admin_user_api.py +8 -35
- hiddifypanel/panel/commercial/restapi/v2/admin/admin_users_api.py +4 -4
- hiddifypanel/panel/commercial/restapi/v2/admin/schema.py +157 -0
- hiddifypanel/panel/commercial/restapi/v2/admin/server_status_api.py +3 -3
- hiddifypanel/panel/commercial/restapi/v2/admin/user_api.py +9 -73
- hiddifypanel/panel/commercial/restapi/v2/admin/users_api.py +1 -1
- hiddifypanel/panel/commercial/restapi/v2/child/__init__.py +18 -0
- hiddifypanel/panel/commercial/restapi/v2/child/actions.py +63 -0
- hiddifypanel/panel/commercial/restapi/v2/child/register_parent_api.py +34 -0
- hiddifypanel/panel/commercial/restapi/v2/child/schema.py +7 -0
- hiddifypanel/panel/commercial/restapi/v2/child/sync_parent_api.py +21 -0
- hiddifypanel/panel/commercial/restapi/v2/panel/__init__.py +13 -0
- hiddifypanel/panel/commercial/restapi/v2/panel/info.py +18 -0
- hiddifypanel/panel/commercial/restapi/v2/panel/ping_pong.py +23 -0
- hiddifypanel/panel/commercial/restapi/v2/panel/schema.py +7 -0
- hiddifypanel/panel/commercial/restapi/v2/parent/__init__.py +16 -0
- hiddifypanel/panel/commercial/restapi/v2/parent/register_api.py +65 -0
- hiddifypanel/panel/commercial/restapi/v2/parent/schema.py +115 -0
- hiddifypanel/panel/commercial/restapi/v2/parent/status_api.py +26 -0
- hiddifypanel/panel/commercial/restapi/v2/parent/sync_api.py +53 -0
- hiddifypanel/panel/commercial/restapi/v2/parent/usage_api.py +57 -0
- hiddifypanel/panel/commercial/telegrambot/admin.py +1 -2
- hiddifypanel/panel/common.py +21 -6
- hiddifypanel/panel/hiddify.py +9 -80
- hiddifypanel/panel/init_db.py +43 -12
- hiddifypanel/panel/usage.py +28 -15
- hiddifypanel/panel/user/templates/home/usage.html +1 -1
- hiddifypanel/panel/user/templates/new.html +1 -1
- hiddifypanel/static/css/custom.css +13 -0
- hiddifypanel/static/images/hiddify.png +0 -0
- hiddifypanel/static/new/assets/{index-bce9b1a6.js → index-ccb9873c.js} +65 -65
- hiddifypanel/templates/admin-layout.html +24 -40
- hiddifypanel/templates/master.html +23 -41
- hiddifypanel/translations/en/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/en/LC_MESSAGES/messages.po +90 -0
- hiddifypanel/translations/fa/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/fa/LC_MESSAGES/messages.po +91 -1
- hiddifypanel/translations/pt/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/pt/LC_MESSAGES/messages.po +98 -6
- hiddifypanel/translations/ru/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/ru/LC_MESSAGES/messages.po +90 -0
- hiddifypanel/translations/zh/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/zh/LC_MESSAGES/messages.po +92 -2
- hiddifypanel/translations.i18n/en.json +56 -0
- hiddifypanel/translations.i18n/fa.json +57 -1
- hiddifypanel/translations.i18n/pt.json +63 -7
- hiddifypanel/translations.i18n/ru.json +56 -0
- hiddifypanel/translations.i18n/zh.json +58 -2
- {hiddifypanel-10.14.0.dist-info → hiddifypanel-10.15.0.dev1.dist-info}/METADATA +47 -47
- {hiddifypanel-10.14.0.dist-info → hiddifypanel-10.15.0.dev1.dist-info}/RECORD +103 -85
- hiddifypanel/panel/commercial/restapi/v2/DTO.py +0 -9
- hiddifypanel/panel/commercial/restapi/v2/hello/__init__.py +0 -16
- hiddifypanel/panel/commercial/restapi/v2/hello/hello.py +0 -32
- /hiddifypanel/static/images/{hiddify1.png → hiddify-old.png} +0 -0
- /hiddifypanel/static/{new/assets/hiddify-logo-noroz-559c8dcb.png → images/hiddify2.png} +0 -0
- {hiddifypanel-10.14.0.dist-info → hiddifypanel-10.15.0.dev1.dist-info}/LICENSE.md +0 -0
- {hiddifypanel-10.14.0.dist-info → hiddifypanel-10.15.0.dev1.dist-info}/WHEEL +0 -0
- {hiddifypanel-10.14.0.dist-info → hiddifypanel-10.15.0.dev1.dist-info}/entry_points.txt +0 -0
- {hiddifypanel-10.14.0.dist-info → hiddifypanel-10.15.0.dev1.dist-info}/top_level.txt +0 -0
@@ -9,25 +9,22 @@
|
|
9
9
|
{% block nav_bar %}
|
10
10
|
{% include "donation.html" %}
|
11
11
|
<!-- Navbar -->
|
12
|
-
<nav class="main-header hold-transition sidebar-mini-md navbar navbar-expand {{
|
13
|
-
else "bg-white navbar-light" }} border-bottom">
|
12
|
+
<nav class="main-header hold-transition sidebar-mini-md navbar navbar-expand {{'navbar-dark' if g.darkmode else 'bg-white navbar-light' }} border-bottom">
|
14
13
|
<!-- Left navbar links -->
|
15
14
|
|
16
15
|
|
17
16
|
|
18
17
|
<div class="navbar-nav">
|
19
|
-
<a class="nav-link" data-widget="pushmenu" href="#"><i class="fa fa-bars"></i> <span
|
20
|
-
class="brand-text font-weight-light">{{_("master.page-title")}}
|
18
|
+
<a class="nav-link" data-widget="pushmenu" href="#"><i class="fa fa-bars"></i> <span class="brand-text font-weight-light">{{_("master.page-title")}}
|
21
19
|
<!-- <span class="badge d-none d-sm-inline-block">{{version}}</span> -->
|
22
|
-
{% if
|
20
|
+
{% if hutils.node.is_parent() %}
|
23
21
|
{{_("Parent Panel")}}
|
24
|
-
{% elif
|
25
|
-
|
22
|
+
{% elif hutils.node.is_child() %}
|
23
|
+
Child Panel
|
26
24
|
{% endif %}
|
27
25
|
</a>
|
28
26
|
<a class="nav-link" href="https://github.com/hiddify/Hiddify-Manager/" target="_blank">
|
29
|
-
<img alt="GitHub Repo stars"
|
30
|
-
src="https://img.shields.io/github/stars/hiddify/hiddify-manager?style=social&logo=star&label=%E2%AD%90">
|
27
|
+
<img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/hiddify/hiddify-manager?style=social&logo=star&label=%E2%AD%90">
|
31
28
|
|
32
29
|
</a>
|
33
30
|
</div>
|
@@ -41,11 +38,10 @@
|
|
41
38
|
<i class="fa-solid fa-moon"></i>
|
42
39
|
</a>
|
43
40
|
{% endif %}
|
44
|
-
{% if 0 and not
|
41
|
+
{% if 0 and not hutils.node.is_parent() %}
|
45
42
|
|
46
43
|
|
47
|
-
<a class="nav-link btn btn-outline-secondary form_post d-none d-md-flex"
|
48
|
-
href="{{hurl_for('admin.Actions:apply_configs')}}">
|
44
|
+
<a class="nav-link btn btn-outline-secondary form_post d-none d-md-flex" href="{{hurl_for('admin.Actions:apply_configs')}}">
|
49
45
|
{{icon('solid','bolt','nav-icon')}} {{_('admin.Actions:apply_configs')}}
|
50
46
|
</a>
|
51
47
|
|
@@ -59,15 +55,13 @@
|
|
59
55
|
|
60
56
|
|
61
57
|
<!-- Main Sidebar Container -->
|
62
|
-
<aside id="main-sidebar" class="main-sidebar {{
|
58
|
+
<aside id="main-sidebar" class="main-sidebar {{'sidebar-dark-primary' if g.darkmode else ''}} elevation-4">
|
63
59
|
<!-- Brand Logo -->
|
64
60
|
|
65
|
-
<a href="https://github.com/hiddify/hiddify-manager/wiki" class=""
|
66
|
-
style="
|
67
|
-
<img src="{{static_url_for(filename='images/WhiteLogo.png')}}" class=" "
|
68
|
-
style="width: 50%;opacity: .8;margin: auto;display:block" />
|
61
|
+
<a href="https://github.com/hiddify/hiddify-manager/wiki" class="" style="text-align: center; color: white;display: block;">
|
62
|
+
<img src="{{static_url_for(filename='images/WhiteLogo.png')}}" class=" " style="width: 50%;opacity: .8;margin: auto;display:block" />
|
69
63
|
<div class="ltr" style="font-size: 8pt;">{{version}}</div>
|
70
|
-
{% if False and
|
64
|
+
{% if False and hutils.node.is_parent() %}
|
71
65
|
<br>
|
72
66
|
<!-- <span class="badge">{{_("Parent Panel")}}</span> -->
|
73
67
|
|
@@ -88,23 +82,18 @@
|
|
88
82
|
<div class="n3av nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false">
|
89
83
|
<!-- Add icons to the links using the .nav-icon class
|
90
84
|
with font-awesome or any other icon font library -->
|
91
|
-
{{ render_nav_item('admin.Dashboard:index', icon('solid','house','nav-icon')+(_("Parent Panel") if
|
92
|
-
hconfig(ConfigEnum.is_parent) else _('admin.menu.home')),_use_li=True)
|
93
|
-
}}
|
85
|
+
{{ render_nav_item('admin.Dashboard:index', icon('solid','house','nav-icon')+(_("Parent Panel") if hutils.node.is_parent() else _('admin.menu.home')),_use_li=True)}}
|
94
86
|
|
95
|
-
{% if
|
96
|
-
{
|
97
|
-
icon('solid','user','nav-icon')+_('admin.menu.user'),_badge=_('in parent panel') ,_use_li=True) #}
|
87
|
+
{% if hutils.node.is_child() %}
|
88
|
+
{{ render_nav_item(hconfig(ConfigEnum.parent_panel)+"/"+g.account.uuid+"/admin/user/",icon('solid','user-secret','nav-icon')+_('admin.menu.user'),_badge=_('in parent panel') ,_use_li=True) }}
|
98
89
|
{% else %}
|
99
|
-
{{ render_nav_item('flask.user.index_view', icon('solid','user','nav-icon')+_('admin.menu.user'),_use_li=True)
|
100
|
-
}}
|
90
|
+
{{ render_nav_item('flask.user.index_view', icon('solid','user','nav-icon')+_('admin.menu.user'),_use_li=True)}}
|
101
91
|
{% endif %}
|
102
|
-
|
103
|
-
{
|
104
|
-
icon('solid','user-secret','nav-icon')+_('Admins'),_badge=_('in parent panel') ,_use_li=True) }}
|
92
|
+
|
93
|
+
{% if hutils.node.is_child() %}
|
94
|
+
{{ render_nav_item(hconfig(ConfigEnum.parent_panel)+"/"+g.account.uuid+"/admin/adminuser/",icon('solid','user-secret','nav-icon')+_('Admins'),_badge=_('in parent panel') ,_use_li=True) }}
|
105
95
|
{% else %}
|
106
|
-
{{ render_nav_item('flask.adminuser.index_view',
|
107
|
-
icon('solid','user-secret','nav-icon')+_('Admins'),_use_li=True) }}
|
96
|
+
{{ render_nav_item('flask.adminuser.index_view', icon('solid','user-secret','nav-icon')+_('Admins'),_use_li=True) }}
|
108
97
|
{% endif %}
|
109
98
|
|
110
99
|
|
@@ -113,8 +102,7 @@
|
|
113
102
|
request.endpoint or "Dashboard" in request.endpoint) else True %}
|
114
103
|
<li class="nav-item {{'menu-open' if settings_active else ''}}">
|
115
104
|
|
116
|
-
<a id=href="#" data-target="#setting-sidebar"
|
117
|
-
class="nav-link">{{icon('solid','gear','nav-icon')+_('admin.menu.config')}}</a>
|
105
|
+
<a id="" href="#" data-target="#setting-sidebar" class="nav-link">{{icon('solid','gear','nav-icon')+_('admin.menu.config')}}</a>
|
118
106
|
|
119
107
|
</li>
|
120
108
|
{% endif %}
|
@@ -129,21 +117,17 @@
|
|
129
117
|
{% if g.account.mode=="super_admin" %}
|
130
118
|
<li class="nav-item {{'menu-open' if action_active else ''}}">
|
131
119
|
|
132
|
-
<a id=href="#" data-target="#action-sidebar"
|
133
|
-
class="nav-link">{{icon('solid','suitcase','nav-icon')+_('admin.actions.title')}} <i
|
134
|
-
class="right fas fa-angle-left"></i></a>
|
120
|
+
<a id=href="#" data-target="#action-sidebar" class="nav-link">{{icon('solid','suitcase','nav-icon')+_('admin.actions.title')}} <i class="right fas fa-angle-left"></i></a>
|
135
121
|
|
136
122
|
</li>
|
137
123
|
{% endif %}
|
138
124
|
|
139
125
|
<li class="nav-item">
|
140
126
|
<a href="https://github.com/hiddify/hiddify-manager/wiki/{{'%D9%87%D9%85%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%E2%80%8C%D9%87%D8%A7-%D9%88-%D9%88%DB%8C%D8%AF%D8%A6%D9%88%D9%87%D8%A7' if get_locale()=='fa' else 'All-tutorials-and-videos'}}"
|
141
|
-
target="_blank"
|
142
|
-
class=" nav-link">{{icon('solid','circle-question','nav-icon')+_('admin.menu.support')}}</a>
|
127
|
+
target="_blank" class=" nav-link">{{icon('solid','circle-question','nav-icon')+_('admin.menu.support')}}</a>
|
143
128
|
</li>
|
144
129
|
<li class="nav-item d-none">
|
145
|
-
<a href="https://t.me/hiddify" target="_blank"
|
146
|
-
class="nav-link">{{icon('brands','telegram','nav-icon')+_('admin.menu.telegram')}}</a>
|
130
|
+
<a href="https://t.me/hiddify" target="_blank" class="nav-link">{{icon('brands','telegram','nav-icon')+_('admin.menu.telegram')}}</a>
|
147
131
|
</li>
|
148
132
|
<li class="nav-item">
|
149
133
|
{% set issue_link = generate_github_issue_link_for_admin_sidebar() %}
|
@@ -20,35 +20,25 @@
|
|
20
20
|
{% else %}
|
21
21
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
22
22
|
{% endif %}
|
23
|
-
<link href="{{static_url_for(filename='images/splash/iphone5_splash.png')}}"
|
24
|
-
media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
23
|
+
<link href="{{static_url_for(filename='images/splash/iphone5_splash.png')}}" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
25
24
|
rel="apple-touch-startup-image" />
|
26
|
-
<link href="{{static_url_for(filename='images/splash/iphone6_splash.png')}}"
|
27
|
-
media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
25
|
+
<link href="{{static_url_for(filename='images/splash/iphone6_splash.png')}}" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
28
26
|
rel="apple-touch-startup-image" />
|
29
|
-
<link href="{{static_url_for(filename='images/splash/iphoneplus_splash.png')}}"
|
30
|
-
media="(device-width: 621px) and (device-height: 1104px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
|
27
|
+
<link href="{{static_url_for(filename='images/splash/iphoneplus_splash.png')}}" media="(device-width: 621px) and (device-height: 1104px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
|
31
28
|
rel="apple-touch-startup-image" />
|
32
|
-
<link href="{{static_url_for(filename='images/splash/iphonex_splash.png')}}"
|
33
|
-
media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
|
29
|
+
<link href="{{static_url_for(filename='images/splash/iphonex_splash.png')}}" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
|
34
30
|
rel="apple-touch-startup-image" />
|
35
|
-
<link href="{{static_url_for(filename='images/splash/iphonexr_splash.png')}}"
|
36
|
-
media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
31
|
+
<link href="{{static_url_for(filename='images/splash/iphonexr_splash.png')}}" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
37
32
|
rel="apple-touch-startup-image" />
|
38
|
-
<link href="{{static_url_for(filename='images/splash/iphonexsmax_splash.png')}}"
|
39
|
-
media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
|
33
|
+
<link href="{{static_url_for(filename='images/splash/iphonexsmax_splash.png')}}" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
|
40
34
|
rel="apple-touch-startup-image" />
|
41
|
-
<link href="{{static_url_for(filename='images/splash/ipad_splash.png')}}"
|
42
|
-
media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
35
|
+
<link href="{{static_url_for(filename='images/splash/ipad_splash.png')}}" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
43
36
|
rel="apple-touch-startup-image" />
|
44
|
-
<link href="{{static_url_for(filename='images/splash/ipadpro1_splash.png')}}"
|
45
|
-
media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
37
|
+
<link href="{{static_url_for(filename='images/splash/ipadpro1_splash.png')}}" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
46
38
|
rel="apple-touch-startup-image" />
|
47
|
-
<link href="{{static_url_for(filename='images/splash/ipadpro3_splash.png')}}"
|
48
|
-
media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
39
|
+
<link href="{{static_url_for(filename='images/splash/ipadpro3_splash.png')}}" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
49
40
|
rel="apple-touch-startup-image" />
|
50
|
-
<link href="{{static_url_for(filename='images/splash/ipadpro2_splash.png')}}"
|
51
|
-
media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
41
|
+
<link href="{{static_url_for(filename='images/splash/ipadpro2_splash.png')}}" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
52
42
|
rel="apple-touch-startup-image" />
|
53
43
|
<link rel="icon" type="image/x-icon" href="{{ static_url_for( filename='images/favicon.ico')}}">
|
54
44
|
<link rel="manifest" href="{{ hurl_for('common_bp.LoginView:create_pwa_manifest',secret_uuid=g.account.uuid or '')}}">
|
@@ -70,8 +60,7 @@
|
|
70
60
|
<link rel="stylesheet" href="{{static_url_for(filename='plugins/datatables/extensions/Responsive/css/responsive.bootstrap4.min.css')}}"> -->
|
71
61
|
|
72
62
|
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.13.2/css/dataTables.bootstrap4.min.css">
|
73
|
-
<link rel="stylesheet" type="text/css"
|
74
|
-
href="https://cdn.datatables.net/responsive/2.4.0/css/responsive.bootstrap4.min.css">
|
63
|
+
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/responsive/2.4.0/css/responsive.bootstrap4.min.css">
|
75
64
|
|
76
65
|
<link rel="stylesheet" href="{{ static_url_for( filename='css/custom.css',version=5.23 ) }}">
|
77
66
|
{% if get_locale()=='fa' %}
|
@@ -90,10 +79,10 @@
|
|
90
79
|
|
91
80
|
<body class="hold-transition layout-fixed {{" dark-mode" if g.darkmode else "" }} {% block bodyclass %}sidebar-collapse{%endblock%}">
|
92
81
|
<div id="splash_screen">
|
93
|
-
<center>
|
94
|
-
|
82
|
+
<center>
|
83
|
+
|
95
84
|
<img src="{{static_url_for( filename='images/hiddify.png' )}}" />
|
96
|
-
|
85
|
+
|
97
86
|
|
98
87
|
<a href="https://github.com/hiddify/hiddify-manager/wiki">
|
99
88
|
<h1 class="title">{{_('user.home.title')}}</h1><br>Powered by hiddify.com
|
@@ -152,21 +141,19 @@
|
|
152
141
|
<footer class="main-footer d-flex flex-wrap justify-content-between align-items-center " dir="ltr">
|
153
142
|
<div class="nav col-md-8 d-flex align-items-center">
|
154
143
|
|
155
|
-
<strong><span class="mb-3 mb-md-0 text-muted">© 2023 Hiddify {{"Central" if
|
144
|
+
<strong><span class="mb-3 mb-md-0 text-muted">© 2023 Hiddify {{"Central" if hutils.node.is_parent() else
|
156
145
|
""}} <span class="badge">{{version}}</span>
|
157
146
|
</span>
|
158
147
|
</strong>
|
159
148
|
</div>
|
160
149
|
|
161
150
|
<ul class="nav col-md-4 justify-content-end list-unstyled d-flex">
|
162
|
-
<li class="ms-3"><a class="text-secondary" href="https://github.com/hiddify/hiddify-manager/wiki"><i
|
163
|
-
class="fa-brands fa-github"></i></a></li>
|
151
|
+
<li class="ms-3"><a class="text-secondary" href="https://github.com/hiddify/hiddify-manager/wiki"><i class="fa-brands fa-github"></i></a></li>
|
164
152
|
<li class="ms-3"><a class="text-danger" href="https://youtube.com/@hiddify/videos">
|
165
153
|
<i class="fa-brands fa-square-youtube fa-margin"></i> </a></li>
|
166
154
|
<li class="ms-3"><a class="text-primary" href="https://twitter.com/intent/follow?screen_name=hiddify_com">
|
167
155
|
<i class="fa-brands fa-square-twitter fa-margin"></i> </a></li>
|
168
|
-
<li class="ms-3"><a class="text-primary" href="https://t.me/hiddify"> <i
|
169
|
-
class="fa-brands fa-telegram fa-margin"></i> </a></li>
|
156
|
+
<li class="ms-3"><a class="text-primary" href="https://t.me/hiddify"> <i class="fa-brands fa-telegram fa-margin"></i> </a></li>
|
170
157
|
</ul>
|
171
158
|
|
172
159
|
</footer>
|
@@ -176,8 +163,7 @@
|
|
176
163
|
</div>
|
177
164
|
<!-- ./wrapper -->
|
178
165
|
|
179
|
-
{#modal("guide-modal","","<video id='guide-video' controls
|
180
|
-
style='max-height: 100%; max-width: 100%;width: auto; height: auto;'>
|
166
|
+
{#modal("guide-modal","","<video id='guide-video' controls style='max-height: 100%; max-width: 100%;width: auto; height: auto;'>
|
181
167
|
<source id='guide-video-mp4' type='video/mp4'>
|
182
168
|
</video>")#}
|
183
169
|
|
@@ -196,10 +182,8 @@
|
|
196
182
|
<div class="btn-group">
|
197
183
|
<a id='qrcode-link' class="btn btn-primary copy-link" href=""><i class="fa-regular fa-copy"></i>
|
198
184
|
{{_("copy")}} </a>
|
199
|
-
<a id="share-link-redirect" class="btn btn-success copy-link" href=""><i
|
200
|
-
|
201
|
-
<a target="_blank" id="share-link-open" class="btn btn-secondary" href=""><i
|
202
|
-
class="fa-solid fa-arrow-up-right-from-square"></i> {{_('open')}}</a>
|
185
|
+
<a id="share-link-redirect" class="btn btn-success copy-link" href=""><i class="fa-solid fa-share-from-square"></i> {{_('clickable copy')}}</a>
|
186
|
+
<a target="_blank" id="share-link-open" class="btn btn-secondary" href=""><i class="fa-solid fa-arrow-up-right-from-square"></i> {{_('open')}}</a>
|
203
187
|
</div>
|
204
188
|
<br />
|
205
189
|
<div id="qrcode" style="margin:10px;padding:10px;"></div>
|
@@ -225,7 +209,7 @@
|
|
225
209
|
wrappers[i].style.display = 'initial';
|
226
210
|
}
|
227
211
|
|
228
|
-
}, document.URL.indexOf("pwa") > 0 ? 0 :
|
212
|
+
}, document.URL.indexOf("pwa") > 0 ? 0 : 500);
|
229
213
|
|
230
214
|
</script>
|
231
215
|
<!-- jQuery -->
|
@@ -250,10 +234,8 @@
|
|
250
234
|
|
251
235
|
<script src="{{ static_url_for( filename='plugins/datatables/jquery.dataTables.min.js' ) }}"></script>
|
252
236
|
<script src="{{ static_url_for( filename='plugins/datatables/dataTables.bootstrap4.js' ) }}"></script>
|
253
|
-
<script
|
254
|
-
|
255
|
-
<script
|
256
|
-
src="{{ static_url_for( filename='plugins/datatables/extensions/Responsive/js/responsive.bootstrap4.min.js' ) }}"></script>
|
237
|
+
<script src="{{ static_url_for( filename='plugins/datatables/extensions/Responsive/js/dataTables.responsive.min.js' ) }}"></script>
|
238
|
+
<script src="{{ static_url_for( filename='plugins/datatables/extensions/Responsive/js/responsive.bootstrap4.min.js' ) }}"></script>
|
257
239
|
|
258
240
|
<!-- <script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.13.2/js/jquery.dataTables.min.js"></script>
|
259
241
|
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.13.2/js/dataTables.bootstrap4.min.js"></script>
|
Binary file
|
@@ -1139,6 +1139,18 @@ msgstr "🔀 CDN (Cloudflare Proxy, ...)"
|
|
1139
1139
|
msgid "child has been removed!"
|
1140
1140
|
msgstr "Child Has Been Removed!"
|
1141
1141
|
|
1142
|
+
msgid "child.register-failed"
|
1143
|
+
msgstr "child.register-failed"
|
1144
|
+
|
1145
|
+
msgid "child.register-success"
|
1146
|
+
msgstr "child.register-success"
|
1147
|
+
|
1148
|
+
msgid "child.sync-failed"
|
1149
|
+
msgstr "child.sync-failed"
|
1150
|
+
|
1151
|
+
msgid "child.sync-success"
|
1152
|
+
msgstr "child.sync-success"
|
1153
|
+
|
1142
1154
|
msgid "clickable copy"
|
1143
1155
|
msgstr "Link for Social Media"
|
1144
1156
|
|
@@ -1381,6 +1393,12 @@ msgstr ""
|
|
1381
1393
|
msgid "config.grpc_enable.label"
|
1382
1394
|
msgstr "➿ Enable gRPC"
|
1383
1395
|
|
1396
|
+
msgid "config.h2_enable.description"
|
1397
|
+
msgstr "config.h2_enable.description"
|
1398
|
+
|
1399
|
+
msgid "config.h2_enable.label"
|
1400
|
+
msgstr "config.h2_enable.label"
|
1401
|
+
|
1384
1402
|
msgid "config.hidden.description"
|
1385
1403
|
msgstr "config.hidden.description"
|
1386
1404
|
|
@@ -1457,6 +1475,9 @@ msgstr "Hysteria Maximum Upload Speed"
|
|
1457
1475
|
msgid "config.hysteria_up_mbps.label"
|
1458
1476
|
msgstr "⬆️ Hysteria Upload (mbps)"
|
1459
1477
|
|
1478
|
+
msgid "config.invalid-pattern-for-warp-sites"
|
1479
|
+
msgstr "config.invalid-pattern-for-warp-sites"
|
1480
|
+
|
1460
1481
|
msgid "config.is_parent.description"
|
1461
1482
|
msgstr "config.is_parent.description"
|
1462
1483
|
|
@@ -1500,6 +1521,12 @@ msgstr "For commercial use of this Product, you must Purchase its License"
|
|
1500
1521
|
msgid "config.license.label"
|
1501
1522
|
msgstr "License Code"
|
1502
1523
|
|
1524
|
+
msgid "config.log_level.description"
|
1525
|
+
msgstr "config.log_level.description"
|
1526
|
+
|
1527
|
+
msgid "config.log_level.label"
|
1528
|
+
msgstr "config.log_level.label"
|
1529
|
+
|
1503
1530
|
msgid "config.mux.description"
|
1504
1531
|
msgstr "MUX (Multiplex) configurations could be set in this section"
|
1505
1532
|
|
@@ -1596,6 +1623,24 @@ msgstr "Specify whether you want Released Package or Beta one"
|
|
1596
1623
|
msgid "config.package_mode.label"
|
1597
1624
|
msgstr "🔄 Package Update Mode"
|
1598
1625
|
|
1626
|
+
msgid "config.panel_mode.description"
|
1627
|
+
msgstr "config.panel_mode.description"
|
1628
|
+
|
1629
|
+
msgid "config.panel_mode.label"
|
1630
|
+
msgstr "config.panel_mode.label"
|
1631
|
+
|
1632
|
+
msgid "config.parent_admin_proxy_path.description"
|
1633
|
+
msgstr "config.parent_admin_proxy_path.description"
|
1634
|
+
|
1635
|
+
msgid "config.parent_admin_proxy_path.label"
|
1636
|
+
msgstr "config.parent_admin_proxy_path.label"
|
1637
|
+
|
1638
|
+
msgid "config.parent_domain.description"
|
1639
|
+
msgstr "config.parent_domain.description"
|
1640
|
+
|
1641
|
+
msgid "config.parent_domain.label"
|
1642
|
+
msgstr "config.parent_domain.label"
|
1643
|
+
|
1599
1644
|
msgid "config.parent_panel.description"
|
1600
1645
|
msgstr ""
|
1601
1646
|
"You can Connect to the Central Panel to define only one user and the usage "
|
@@ -1683,12 +1728,24 @@ msgstr "Secret proxy path hide the proxies from the governments and bots"
|
|
1683
1728
|
msgid "config.proxy_path_client.label"
|
1684
1729
|
msgstr "🔏 Proxy Path for Clients"
|
1685
1730
|
|
1731
|
+
msgid "config.quic_enable.description"
|
1732
|
+
msgstr "config.quic_enable.description"
|
1733
|
+
|
1734
|
+
msgid "config.quic_enable.label"
|
1735
|
+
msgstr "config.quic_enable.label"
|
1736
|
+
|
1686
1737
|
msgid "config.reality.description"
|
1687
1738
|
msgstr "REALITY eliminate the Server-Side TLS Fingerprint Feature"
|
1688
1739
|
|
1689
1740
|
msgid "config.reality.label"
|
1690
1741
|
msgstr "Reality"
|
1691
1742
|
|
1743
|
+
msgid "config.reality_enable.description"
|
1744
|
+
msgstr "config.reality_enable.description"
|
1745
|
+
|
1746
|
+
msgid "config.reality_enable.label"
|
1747
|
+
msgstr "config.reality_enable.label"
|
1748
|
+
|
1692
1749
|
msgid "config.reality_fallback_domain.description"
|
1693
1750
|
msgstr ""
|
1694
1751
|
"When the GFW visit the Websites in Server names, it will be redirect to this"
|
@@ -1901,6 +1958,12 @@ msgstr ""
|
|
1901
1958
|
msgid "config.ssr_fakedomain.label"
|
1902
1959
|
msgstr "SSR FakeDomain"
|
1903
1960
|
|
1961
|
+
msgid "config.tcp_enable.description"
|
1962
|
+
msgstr "config.tcp_enable.description"
|
1963
|
+
|
1964
|
+
msgid "config.tcp_enable.label"
|
1965
|
+
msgstr "config.tcp_enable.label"
|
1966
|
+
|
1904
1967
|
msgid "config.telegram.description"
|
1905
1968
|
msgstr "A proxy designed for Telegram to bypass Telegram filtering"
|
1906
1969
|
|
@@ -2021,6 +2084,12 @@ msgstr "Torrent Block Configurations could be set in this section."
|
|
2021
2084
|
msgid "config.torrent_block.label"
|
2022
2085
|
msgstr "Torrent Block Configuration"
|
2023
2086
|
|
2087
|
+
msgid "config.trojan_enable.description"
|
2088
|
+
msgstr "config.trojan_enable.description"
|
2089
|
+
|
2090
|
+
msgid "config.trojan_enable.label"
|
2091
|
+
msgstr "config.trojan_enable.label"
|
2092
|
+
|
2024
2093
|
msgid "config.tuic.description"
|
2025
2094
|
msgstr ""
|
2026
2095
|
"Delicately-TUICed High-Performance proxy is on top of the QUIC protocol. \n"
|
@@ -2073,6 +2142,12 @@ msgstr ""
|
|
2073
2142
|
msgid "config.validation-success-no-reset"
|
2074
2143
|
msgstr " ✅ Configs have been changed successfully"
|
2075
2144
|
|
2145
|
+
msgid "config.vless_enable.description"
|
2146
|
+
msgstr "config.vless_enable.description"
|
2147
|
+
|
2148
|
+
msgid "config.vless_enable.label"
|
2149
|
+
msgstr "config.vless_enable.label"
|
2150
|
+
|
2076
2151
|
msgid "config.vmess_enable.description"
|
2077
2152
|
msgstr "Active VMess Protocol"
|
2078
2153
|
|
@@ -2185,6 +2260,12 @@ msgstr "Websocket creates a tunnel over HTTP that is useful to be used in CDN"
|
|
2185
2260
|
msgid "config.ws_enable.label"
|
2186
2261
|
msgstr "🔰 Enable Websocket"
|
2187
2262
|
|
2263
|
+
msgid "config.xtls_enable.description"
|
2264
|
+
msgstr "config.xtls_enable.description"
|
2265
|
+
|
2266
|
+
msgid "config.xtls_enable.label"
|
2267
|
+
msgstr "config.xtls_enable.label"
|
2268
|
+
|
2188
2269
|
msgid "config.invalid uuid"
|
2189
2270
|
msgstr ""
|
2190
2271
|
"Invalid UUID secret. example: 6098ea35-8cb2-4a08-ba15-2be25bc49cb6\n"
|
@@ -2304,6 +2385,9 @@ msgstr "Next"
|
|
2304
2385
|
msgid "no_reset"
|
2305
2386
|
msgstr "⭐️ Without Reset"
|
2306
2387
|
|
2388
|
+
msgid "node.diff-version"
|
2389
|
+
msgstr "node.diff-version"
|
2390
|
+
|
2307
2391
|
msgid "node.mode.dscr"
|
2308
2392
|
msgstr "node.mode.dscr"
|
2309
2393
|
|
@@ -2334,6 +2418,12 @@ msgstr "package days?"
|
|
2334
2418
|
msgid "package size?"
|
2335
2419
|
msgstr "package size?"
|
2336
2420
|
|
2421
|
+
msgid "parent.invalid-parent-url"
|
2422
|
+
msgstr "parent.invalid-parent-url"
|
2423
|
+
|
2424
|
+
msgid "parent.sync-req-failed"
|
2425
|
+
msgstr "parent.sync-req-failed"
|
2426
|
+
|
2337
2427
|
msgid "previous"
|
2338
2428
|
msgstr "Previous"
|
2339
2429
|
|
Binary file
|
@@ -1124,6 +1124,18 @@ msgstr "🔀 سیدیان (پروکسی کلودفلر و ...)"
|
|
1124
1124
|
msgid "child has been removed!"
|
1125
1125
|
msgstr "پنل زیر مجموعه حذف شد"
|
1126
1126
|
|
1127
|
+
msgid "child.register-failed"
|
1128
|
+
msgstr ""
|
1129
|
+
|
1130
|
+
msgid "child.register-success"
|
1131
|
+
msgstr ""
|
1132
|
+
|
1133
|
+
msgid "child.sync-failed"
|
1134
|
+
msgstr ""
|
1135
|
+
|
1136
|
+
msgid "child.sync-success"
|
1137
|
+
msgstr ""
|
1138
|
+
|
1127
1139
|
msgid "clickable copy"
|
1128
1140
|
msgstr "لینک برای شبکههای اجتماعی"
|
1129
1141
|
|
@@ -1366,6 +1378,12 @@ msgstr ""
|
|
1366
1378
|
msgid "config.grpc_enable.label"
|
1367
1379
|
msgstr "➿ gRPC را فعال کنید"
|
1368
1380
|
|
1381
|
+
msgid "config.h2_enable.description"
|
1382
|
+
msgstr ""
|
1383
|
+
|
1384
|
+
msgid "config.h2_enable.label"
|
1385
|
+
msgstr ""
|
1386
|
+
|
1369
1387
|
msgid "config.hidden.description"
|
1370
1388
|
msgstr "-"
|
1371
1389
|
|
@@ -1447,6 +1465,9 @@ msgstr "حداکثر سرعت آپلود هیستریا"
|
|
1447
1465
|
msgid "config.hysteria_up_mbps.label"
|
1448
1466
|
msgstr "⬆️ آپلود (mbps) Hysteria"
|
1449
1467
|
|
1468
|
+
msgid "config.invalid-pattern-for-warp-sites"
|
1469
|
+
msgstr ""
|
1470
|
+
|
1450
1471
|
msgid "config.is_parent.description"
|
1451
1472
|
msgstr "-"
|
1452
1473
|
|
@@ -1491,11 +1512,17 @@ msgstr "برای استفاده تجاری از این محصول باید مج
|
|
1491
1512
|
msgid "config.license.label"
|
1492
1513
|
msgstr "کد مجوز"
|
1493
1514
|
|
1515
|
+
msgid "config.log_level.description"
|
1516
|
+
msgstr ""
|
1517
|
+
|
1518
|
+
msgid "config.log_level.label"
|
1519
|
+
msgstr ""
|
1520
|
+
|
1494
1521
|
msgid "config.mux.description"
|
1495
1522
|
msgstr "تنظیمات MUX (Multiplex) را می توان در این بخش تنظیم کرد"
|
1496
1523
|
|
1497
1524
|
msgid "config.mux.label"
|
1498
|
-
msgstr "
|
1525
|
+
msgstr "تنظیمات MUX"
|
1499
1526
|
|
1500
1527
|
msgid "config.mux_brutal_down_mbps.description"
|
1501
1528
|
msgstr "حداکثر سرعت دانلود TCP-Brutal"
|
@@ -1589,6 +1616,24 @@ msgstr ""
|
|
1589
1616
|
msgid "config.package_mode.label"
|
1590
1617
|
msgstr "🔄 حالت به روز رسانی"
|
1591
1618
|
|
1619
|
+
msgid "config.panel_mode.description"
|
1620
|
+
msgstr ""
|
1621
|
+
|
1622
|
+
msgid "config.panel_mode.label"
|
1623
|
+
msgstr ""
|
1624
|
+
|
1625
|
+
msgid "config.parent_admin_proxy_path.description"
|
1626
|
+
msgstr ""
|
1627
|
+
|
1628
|
+
msgid "config.parent_admin_proxy_path.label"
|
1629
|
+
msgstr ""
|
1630
|
+
|
1631
|
+
msgid "config.parent_domain.description"
|
1632
|
+
msgstr ""
|
1633
|
+
|
1634
|
+
msgid "config.parent_domain.label"
|
1635
|
+
msgstr ""
|
1636
|
+
|
1592
1637
|
msgid "config.parent_panel.description"
|
1593
1638
|
msgstr ""
|
1594
1639
|
"میتوانید به پنل مرکزی وصل شوید، تا فقط یک یوزر را تعریف کنید و میزان "
|
@@ -1679,12 +1724,24 @@ msgstr "مسیر مخفی پروکسی پروکسی ها را از دولت ها
|
|
1679
1724
|
msgid "config.proxy_path_client.label"
|
1680
1725
|
msgstr "مسیر پروکسی برای مشتریان"
|
1681
1726
|
|
1727
|
+
msgid "config.quic_enable.description"
|
1728
|
+
msgstr ""
|
1729
|
+
|
1730
|
+
msgid "config.quic_enable.label"
|
1731
|
+
msgstr ""
|
1732
|
+
|
1682
1733
|
msgid "config.reality.description"
|
1683
1734
|
msgstr "REALITY قابلیت اثر انگشت TLS سمت سرور را حذف می کند"
|
1684
1735
|
|
1685
1736
|
msgid "config.reality.label"
|
1686
1737
|
msgstr "ریالیتی"
|
1687
1738
|
|
1739
|
+
msgid "config.reality_enable.description"
|
1740
|
+
msgstr ""
|
1741
|
+
|
1742
|
+
msgid "config.reality_enable.label"
|
1743
|
+
msgstr ""
|
1744
|
+
|
1688
1745
|
msgid "config.reality_fallback_domain.description"
|
1689
1746
|
msgstr ""
|
1690
1747
|
"هنگامی که GTW از وب سایتها در نام سرور بازدید میکند، به این دامنه هدایت "
|
@@ -1900,6 +1957,12 @@ msgstr ""
|
|
1900
1957
|
msgid "config.ssr_fakedomain.label"
|
1901
1958
|
msgstr "دامنه جعلی برای SSR"
|
1902
1959
|
|
1960
|
+
msgid "config.tcp_enable.description"
|
1961
|
+
msgstr ""
|
1962
|
+
|
1963
|
+
msgid "config.tcp_enable.label"
|
1964
|
+
msgstr ""
|
1965
|
+
|
1903
1966
|
msgid "config.telegram.description"
|
1904
1967
|
msgstr ""
|
1905
1968
|
"پروکسی تلگرام برای استفاده درون اپ تلگرام طراحی شده تا فیلترینگ تلگرام را "
|
@@ -2020,6 +2083,12 @@ msgstr "در این قسمت تنظیمات Torrent Block قابل انجام ا
|
|
2020
2083
|
msgid "config.torrent_block.label"
|
2021
2084
|
msgstr "تنظیمات Torrent Block"
|
2022
2085
|
|
2086
|
+
msgid "config.trojan_enable.description"
|
2087
|
+
msgstr ""
|
2088
|
+
|
2089
|
+
msgid "config.trojan_enable.label"
|
2090
|
+
msgstr ""
|
2091
|
+
|
2023
2092
|
msgid "config.tuic.description"
|
2024
2093
|
msgstr ""
|
2025
2094
|
"پروکسی Delicately-TUICed با کارایی بالا روی پروتکل QUIC است. \n"
|
@@ -2071,6 +2140,12 @@ msgstr ""
|
|
2071
2140
|
msgid "config.validation-success-no-reset"
|
2072
2141
|
msgstr " ✅ تنظیمات با موفقیت تغییر کرد"
|
2073
2142
|
|
2143
|
+
msgid "config.vless_enable.description"
|
2144
|
+
msgstr ""
|
2145
|
+
|
2146
|
+
msgid "config.vless_enable.label"
|
2147
|
+
msgstr ""
|
2148
|
+
|
2074
2149
|
msgid "config.vmess_enable.description"
|
2075
2150
|
msgstr "فعال کردن پروتکل VMess"
|
2076
2151
|
|
@@ -2184,6 +2259,12 @@ msgstr ""
|
|
2184
2259
|
msgid "config.ws_enable.label"
|
2185
2260
|
msgstr "🔰 Websocket را فعال کنید"
|
2186
2261
|
|
2262
|
+
msgid "config.xtls_enable.description"
|
2263
|
+
msgstr ""
|
2264
|
+
|
2265
|
+
msgid "config.xtls_enable.label"
|
2266
|
+
msgstr ""
|
2267
|
+
|
2187
2268
|
msgid "config.invalid uuid"
|
2188
2269
|
msgstr ""
|
2189
2270
|
"رمز UUID نامعتبر است. به عنوان مثال: 6098ea35-8cb2-4a08-ba15-2be25bc49cb6"
|
@@ -2303,6 +2384,9 @@ msgstr "بعدی"
|
|
2303
2384
|
msgid "no_reset"
|
2304
2385
|
msgstr "⭐️ بدون ریست شدن"
|
2305
2386
|
|
2387
|
+
msgid "node.diff-version"
|
2388
|
+
msgstr ""
|
2389
|
+
|
2306
2390
|
msgid "node.mode.dscr"
|
2307
2391
|
msgstr ""
|
2308
2392
|
|
@@ -2333,6 +2417,12 @@ msgstr "تعداد روز؟"
|
|
2333
2417
|
msgid "package size?"
|
2334
2418
|
msgstr "حجم بسته"
|
2335
2419
|
|
2420
|
+
msgid "parent.invalid-parent-url"
|
2421
|
+
msgstr ""
|
2422
|
+
|
2423
|
+
msgid "parent.sync-req-failed"
|
2424
|
+
msgstr ""
|
2425
|
+
|
2336
2426
|
msgid "previous"
|
2337
2427
|
msgstr "قبلی"
|
2338
2428
|
|
Binary file
|