strapi-plugin-magic-sessionmanager 4.0.0 → 4.0.2
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.
- package/README.md +2 -2
- package/admin/src/components/LicenseGuard.jsx +6 -6
- package/admin/src/components/OnlineUsersWidget.jsx +11 -7
- package/admin/src/components/SessionDetailModal.jsx +45 -41
- package/admin/src/components/SessionInfoCard.jsx +3 -3
- package/admin/src/components/SessionInfoPanel.jsx +31 -21
- package/admin/src/index.js +9 -0
- package/admin/src/pages/Analytics.jsx +2 -2
- package/admin/src/pages/HomePage.jsx +129 -165
- package/admin/src/pages/License.jsx +5 -5
- package/admin/src/pages/Settings.jsx +148 -144
- package/admin/src/pages/SettingsNew.jsx +21 -21
- package/admin/src/pages/UpgradePage.jsx +448 -0
- package/admin/src/pluginId.js +1 -0
- package/admin/src/translations/de.json +294 -15
- package/admin/src/translations/en.json +293 -14
- package/admin/src/translations/es.json +284 -18
- package/admin/src/translations/fr.json +284 -18
- package/admin/src/translations/pt.json +284 -18
- package/admin/src/utils/parseUserAgent.js +6 -6
- package/admin/src/utils/theme.js +85 -0
- package/dist/_chunks/{Analytics-mYu_uGwU.mjs → Analytics-DTE_zmRV.mjs} +4 -4
- package/dist/_chunks/{Analytics-ioaeEh-E.js → Analytics-lw_JaOVy.js} +4 -4
- package/dist/_chunks/{App-DdnUYWbC.js → App-DDKYCjKw.js} +221 -216
- package/dist/_chunks/{App-BXpIS12l.mjs → App-DJW1ZNl5.mjs} +221 -216
- package/dist/_chunks/{License-C03C2j9P.mjs → License-DaOFuImm.mjs} +6 -10
- package/dist/_chunks/{License-DZYrOgcx.js → License-Tk-6UfPl.js} +6 -10
- package/dist/_chunks/{OnlineUsersWidget-B8JS1xZu.js → OnlineUsersWidget-C1qTpsws.js} +11 -7
- package/dist/_chunks/{OnlineUsersWidget-ArMl0nen.mjs → OnlineUsersWidget-CADphbXG.mjs} +11 -7
- package/dist/_chunks/{Settings-0ocB3qHk.mjs → Settings-C9xvckgq.mjs} +200 -188
- package/dist/_chunks/{Settings-C6_CqpCC.js → Settings-DyEAuTNQ.js} +200 -188
- package/dist/_chunks/UpgradePage-Dssk8A0Z.js +354 -0
- package/dist/_chunks/UpgradePage-cINvE9zY.mjs +352 -0
- package/dist/_chunks/de-CDA1V0rF.mjs +292 -0
- package/dist/_chunks/de-I-Q-pWqu.js +292 -0
- package/dist/_chunks/en-Bd7_h-4e.js +292 -0
- package/dist/_chunks/en-DzmOCyzQ.mjs +292 -0
- package/dist/_chunks/es-BcAx18XG.js +277 -0
- package/dist/_chunks/es-Cx-SN6qV.mjs +277 -0
- package/dist/_chunks/fr-DCzYMuJ-.js +277 -0
- package/dist/_chunks/fr-DXlXE5Eo.mjs +277 -0
- package/dist/_chunks/{index-DC8Y0qxx.js → index-CWcvrfXc.js} +52 -49
- package/dist/_chunks/{index-DBRS3kt5.mjs → index-DQO9bNP7.mjs} +52 -49
- package/dist/_chunks/pt-21-MAb72.js +277 -0
- package/dist/_chunks/pt-zsdTSjba.mjs +277 -0
- package/dist/_chunks/{useLicense-qgGfMvse.js → useLicense-DtvJOszr.js} +1 -1
- package/dist/_chunks/{useLicense-DSLL9n3Y.mjs → useLicense-DxbD4Wf8.mjs} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/server/index.js +142 -33
- package/dist/server/index.mjs +142 -33
- package/package.json +1 -1
- package/server/src/bootstrap.js +76 -4
- package/server/src/controllers/session.js +59 -9
- package/server/src/middlewares/last-seen.js +5 -4
- package/server/src/routes/content-api.js +11 -2
- package/server/src/services/notifications.js +10 -10
- package/server/src/services/session.js +24 -4
- package/dist/_chunks/de-BxFx1pwE.js +0 -23
- package/dist/_chunks/de-CdO3s01z.mjs +0 -23
- package/dist/_chunks/en-CsPpPJL3.mjs +0 -23
- package/dist/_chunks/en-RqmpDHdS.js +0 -23
- package/dist/_chunks/es-CuLHazN1.js +0 -23
- package/dist/_chunks/es-Dkmjhy9c.mjs +0 -23
- package/dist/_chunks/fr-BAJp2yhI.js +0 -23
- package/dist/_chunks/fr-Bssg_3UF.mjs +0 -23
- package/dist/_chunks/pt-BAP9cKs3.js +0 -23
- package/dist/_chunks/pt-BVNoNcuY.mjs +0 -23
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const Session = "Session";
|
|
4
|
+
const User = "User";
|
|
5
|
+
const en = {
|
|
6
|
+
"plugin.name": "Session Manager",
|
|
7
|
+
"plugin.description": "Track user login/logout and session activity",
|
|
8
|
+
Session,
|
|
9
|
+
User,
|
|
10
|
+
"session.user": "User",
|
|
11
|
+
"session.ipAddress": "IP Address",
|
|
12
|
+
"session.userAgent": "Browser Agent",
|
|
13
|
+
"session.loginTime": "Login Time",
|
|
14
|
+
"session.logoutTime": "Logout Time",
|
|
15
|
+
"session.lastActive": "Last Active",
|
|
16
|
+
"session.isActive": "Active",
|
|
17
|
+
"session.token": "Token",
|
|
18
|
+
"session.EditorX": "Editor X",
|
|
19
|
+
"settings.section": "Session Manager",
|
|
20
|
+
"settings.sessions": "Active Sessions",
|
|
21
|
+
"settings.upgrade": "Upgrade",
|
|
22
|
+
"settings.general": "General",
|
|
23
|
+
"settings.analytics": "Analytics",
|
|
24
|
+
"settings.license": "License",
|
|
25
|
+
"widget.online-users.title": "Online Users",
|
|
26
|
+
"widget.stats.onlineNow": "Online Now",
|
|
27
|
+
"widget.stats.offline": "Offline",
|
|
28
|
+
"widget.stats.last15min": "Last 15 min",
|
|
29
|
+
"widget.stats.last30min": "Last 30 min",
|
|
30
|
+
"widget.stats.totalUsers": "Total Users",
|
|
31
|
+
"widget.stats.blocked": "Blocked",
|
|
32
|
+
"homepage.title": "Session Manager",
|
|
33
|
+
"homepage.subtitle": "Monitor and manage user sessions in real-time",
|
|
34
|
+
"homepage.stats.active": "Active",
|
|
35
|
+
"homepage.stats.idle": "Idle",
|
|
36
|
+
"homepage.stats.loggedOut": "Logged Out",
|
|
37
|
+
"homepage.stats.terminated": "Terminated",
|
|
38
|
+
"homepage.stats.total": "Total",
|
|
39
|
+
"homepage.export.csv": "Export CSV",
|
|
40
|
+
"homepage.export.json": "Export JSON",
|
|
41
|
+
"homepage.loading": "Loading sessions...",
|
|
42
|
+
"homepage.allSessions": "All Sessions",
|
|
43
|
+
"homepage.search.placeholder": "Search by user, IP address, or device...",
|
|
44
|
+
"homepage.filter.all": "All Sessions",
|
|
45
|
+
"homepage.filter.active": "Active (less than 15 min)",
|
|
46
|
+
"homepage.filter.idle": "Idle (more than 15 min)",
|
|
47
|
+
"homepage.filter.loggedout": "Logged Out",
|
|
48
|
+
"homepage.filter.terminated": "Terminated",
|
|
49
|
+
"homepage.entries.10": "10 entries",
|
|
50
|
+
"homepage.entries.25": "25 entries",
|
|
51
|
+
"homepage.entries.50": "50 entries",
|
|
52
|
+
"homepage.entries.100": "100 entries",
|
|
53
|
+
"homepage.showing": "Showing {count} of {total} sessions",
|
|
54
|
+
"homepage.showingFiltered": 'Showing {count} of {total} sessions (filtered by "{query}")',
|
|
55
|
+
"homepage.table.status": "Status",
|
|
56
|
+
"homepage.table.user": "User",
|
|
57
|
+
"homepage.table.device": "Device",
|
|
58
|
+
"homepage.table.ipAddress": "IP Address",
|
|
59
|
+
"homepage.table.loginTime": "Login Time",
|
|
60
|
+
"homepage.table.lastActive": "Last Active",
|
|
61
|
+
"homepage.table.actions": "Actions",
|
|
62
|
+
"homepage.status.active": "Active",
|
|
63
|
+
"homepage.status.idle": "Idle",
|
|
64
|
+
"homepage.status.loggedOut": "Logged Out",
|
|
65
|
+
"homepage.status.terminated": "Terminated",
|
|
66
|
+
"homepage.user.unknown": "Unknown",
|
|
67
|
+
"homepage.time.minAgo": "{minutes} min ago",
|
|
68
|
+
"homepage.actions.viewDetails": "View Details",
|
|
69
|
+
"homepage.actions.terminate": "Terminate (Logout)",
|
|
70
|
+
"homepage.actions.alreadyInactive": "Already inactive",
|
|
71
|
+
"homepage.actions.deletePermanently": "Delete Permanently",
|
|
72
|
+
"homepage.empty.title": "No sessions yet",
|
|
73
|
+
"homepage.empty.description": "Sessions will appear here when users log in to your application",
|
|
74
|
+
"homepage.noResults.title": "No sessions found",
|
|
75
|
+
"homepage.noResults.description": "Try adjusting your search query or filters to find sessions",
|
|
76
|
+
"homepage.confirm.terminate": "Are you sure you want to terminate this session?\n\nThis will set isActive to false (user will be logged out).",
|
|
77
|
+
"homepage.confirm.delete": "[WARNING] This will PERMANENTLY delete this session from the database!\n\nThis action cannot be undone.\n\nAre you sure?",
|
|
78
|
+
"modal.title": "Session Details",
|
|
79
|
+
"modal.id": "ID: {id}",
|
|
80
|
+
"modal.status.online": "ONLINE",
|
|
81
|
+
"modal.status.offline": "OFFLINE",
|
|
82
|
+
"modal.section.user": "User",
|
|
83
|
+
"modal.section.device": "Device",
|
|
84
|
+
"modal.section.timeline": "Timeline",
|
|
85
|
+
"modal.section.security": "Location and Security",
|
|
86
|
+
"modal.section.technical": "Technical Details",
|
|
87
|
+
"modal.user.username": "Username",
|
|
88
|
+
"modal.user.email": "Email",
|
|
89
|
+
"modal.user.id": "User ID",
|
|
90
|
+
"modal.user.na": "N/A",
|
|
91
|
+
"modal.device.device": "Device",
|
|
92
|
+
"modal.device.browser": "Browser",
|
|
93
|
+
"modal.device.os": "OS",
|
|
94
|
+
"modal.device.ip": "IP",
|
|
95
|
+
"modal.timeline.login": "Login",
|
|
96
|
+
"modal.timeline.lastActive": "Last Active",
|
|
97
|
+
"modal.timeline.idleTime": "Idle Time",
|
|
98
|
+
"modal.timeline.logout": "Logout",
|
|
99
|
+
"modal.timeline.minutes": "{minutes} min",
|
|
100
|
+
"modal.security.loading": "Loading location data...",
|
|
101
|
+
"modal.security.country": "Country",
|
|
102
|
+
"modal.security.city": "City",
|
|
103
|
+
"modal.security.timezone": "Timezone",
|
|
104
|
+
"modal.security.score": "Security",
|
|
105
|
+
"modal.security.vpn": "VPN",
|
|
106
|
+
"modal.security.proxy": "Proxy",
|
|
107
|
+
"modal.security.vpnWarning": "[WARNING] Yes",
|
|
108
|
+
"modal.security.no": "No",
|
|
109
|
+
"modal.premium.title": "Location and Security Analysis",
|
|
110
|
+
"modal.premium.description": "Unlock premium features to get IP geolocation, security scoring, and VPN/Proxy detection for every session",
|
|
111
|
+
"modal.premium.upgrade": "Upgrade to Premium",
|
|
112
|
+
"modal.technical.show": "Show Details",
|
|
113
|
+
"modal.technical.hide": "Hide Details",
|
|
114
|
+
"modal.actions.close": "Close",
|
|
115
|
+
"modal.actions.terminate": "Terminate Session",
|
|
116
|
+
"modal.confirm.terminate": "Are you sure you want to terminate this session?",
|
|
117
|
+
"panel.title": "Session Info",
|
|
118
|
+
"panel.loading": "Loading...",
|
|
119
|
+
"panel.status.active": "ACTIVE",
|
|
120
|
+
"panel.status.offline": "OFFLINE",
|
|
121
|
+
"panel.sessions.count": "{count} active session{count, plural, one {} other {s}}",
|
|
122
|
+
"panel.sessions.title": "Active Sessions",
|
|
123
|
+
"panel.sessions.active": "Active",
|
|
124
|
+
"panel.sessions.activeNow": "Active now",
|
|
125
|
+
"panel.sessions.activeAgo": "Active {minutes} min ago",
|
|
126
|
+
"panel.sessions.more": "+{count} more session{count, plural, one {} other {s}}",
|
|
127
|
+
"panel.blocked.title": "User is blocked",
|
|
128
|
+
"panel.blocked.description": "Authentication disabled",
|
|
129
|
+
"panel.empty.title": "No active sessions",
|
|
130
|
+
"panel.empty.description": "User has not logged in yet",
|
|
131
|
+
"panel.actions.title": "Actions",
|
|
132
|
+
"panel.actions.terminateAll": "Terminate All Sessions",
|
|
133
|
+
"panel.actions.blockUser": "Block User",
|
|
134
|
+
"panel.actions.unblockUser": "Unblock User",
|
|
135
|
+
"settings.title": "Session Manager Settings",
|
|
136
|
+
"settings.subtitle": "Configure session tracking, security, and email notifications",
|
|
137
|
+
"settings.save": "Save Changes",
|
|
138
|
+
"settings.saving": "Saving...",
|
|
139
|
+
"settings.noChanges": "No Changes",
|
|
140
|
+
"settings.reset": "Reset",
|
|
141
|
+
"settings.license.title": "Current License Status",
|
|
142
|
+
"settings.license.premium": "Premium",
|
|
143
|
+
"settings.license.advanced": "Advanced",
|
|
144
|
+
"settings.license.enterprise": "Enterprise",
|
|
145
|
+
"settings.general.title": "General Settings",
|
|
146
|
+
"settings.general.description": "Basic session tracking configuration",
|
|
147
|
+
"settings.general.timeout.title": "SESSION TIMEOUT",
|
|
148
|
+
"settings.general.timeout.inactivity": "Inactivity Timeout",
|
|
149
|
+
"settings.general.timeout.inactivityHint": "Sessions inactive for more than {minutes} minutes will be marked as offline",
|
|
150
|
+
"settings.general.timeout.5min": "5 minutes (Very Strict)",
|
|
151
|
+
"settings.general.timeout.10min": "10 minutes (Strict)",
|
|
152
|
+
"settings.general.timeout.15min": "15 minutes (Recommended)",
|
|
153
|
+
"settings.general.timeout.30min": "30 minutes (Moderate)",
|
|
154
|
+
"settings.general.timeout.1hour": "1 hour (Relaxed)",
|
|
155
|
+
"settings.general.timeout.2hours": "2 hours (Very Relaxed)",
|
|
156
|
+
"settings.general.rateLimit.title": "Last Seen Rate Limit",
|
|
157
|
+
"settings.general.rateLimit.hint": "Prevents excessive database writes. Updates throttled to once every {seconds} seconds",
|
|
158
|
+
"settings.general.rateLimit.10sec": "10 seconds",
|
|
159
|
+
"settings.general.rateLimit.30sec": "30 seconds (Recommended)",
|
|
160
|
+
"settings.general.rateLimit.1min": "1 minute",
|
|
161
|
+
"settings.general.rateLimit.2min": "2 minutes",
|
|
162
|
+
"settings.general.rateLimit.5min": "5 minutes",
|
|
163
|
+
"settings.general.cleanup.title": "AUTO-CLEANUP & RETENTION",
|
|
164
|
+
"settings.general.cleanup.interval": "Cleanup Interval",
|
|
165
|
+
"settings.general.cleanup.intervalHint": "Inactive sessions are automatically cleaned every {minutes} minutes",
|
|
166
|
+
"settings.general.cleanup.15min": "15 minutes",
|
|
167
|
+
"settings.general.cleanup.30min": "30 minutes (Recommended)",
|
|
168
|
+
"settings.general.cleanup.1hour": "1 hour",
|
|
169
|
+
"settings.general.cleanup.2hours": "2 hours",
|
|
170
|
+
"settings.general.retention.title": "Retention Period",
|
|
171
|
+
"settings.general.retention.hint": "Old sessions deleted after {days}",
|
|
172
|
+
"settings.general.retention.hintNever": "Old sessions deleted after never",
|
|
173
|
+
"settings.general.retention.7days": "7 days",
|
|
174
|
+
"settings.general.retention.30days": "30 days",
|
|
175
|
+
"settings.general.retention.60days": "60 days",
|
|
176
|
+
"settings.general.retention.90days": "90 days (Recommended)",
|
|
177
|
+
"settings.general.retention.180days": "180 days",
|
|
178
|
+
"settings.general.retention.1year": "1 year",
|
|
179
|
+
"settings.general.retention.forever": "Forever",
|
|
180
|
+
"settings.general.danger.title": "Danger Zone",
|
|
181
|
+
"settings.general.danger.description": "Clean All Inactive: Permanently deletes all inactive sessions. This cannot be undone.",
|
|
182
|
+
"settings.general.danger.cleanNow": "Clean Now",
|
|
183
|
+
"settings.general.danger.confirm": "[WARNING] This will permanently delete ALL inactive sessions.\n\nContinue?",
|
|
184
|
+
"settings.security.title": "Security Settings",
|
|
185
|
+
"settings.security.description": "Security policies and threat protection",
|
|
186
|
+
"settings.security.options": "SECURITY OPTIONS",
|
|
187
|
+
"settings.security.encryption.title": "JWT Encryption Key Generator",
|
|
188
|
+
"settings.security.encryption.description": "Generate a secure 32-character encryption key for JWT token storage. This key is used to encrypt tokens before saving them to the database.",
|
|
189
|
+
"settings.security.encryption.important": "Important",
|
|
190
|
+
"settings.security.encryption.envHint": "Add this key to your .env file as SESSION_ENCRYPTION_KEY for production.",
|
|
191
|
+
"settings.security.encryption.label": "Generated Encryption Key",
|
|
192
|
+
"settings.security.encryption.placeholder": "Click 'Generate Key' to create a secure key",
|
|
193
|
+
"settings.security.encryption.show": "Show",
|
|
194
|
+
"settings.security.encryption.hide": "Hide",
|
|
195
|
+
"settings.security.encryption.generate": "Generate Key",
|
|
196
|
+
"settings.security.encryption.copy": "Copy to Clipboard",
|
|
197
|
+
"settings.security.encryption.copyEnv": "Copy for .env",
|
|
198
|
+
"settings.security.encryption.envLabel": "Add to .env file:",
|
|
199
|
+
"settings.security.blockSuspicious.title": "Block Suspicious Sessions",
|
|
200
|
+
"settings.security.blockSuspicious.description": "Automatically block sessions from VPNs, proxies, or threat IPs",
|
|
201
|
+
"settings.security.geolocation.title": "IP Geolocation",
|
|
202
|
+
"settings.security.geolocation.description": "Fetch location data for each session (Premium)",
|
|
203
|
+
"settings.security.scoring.title": "Security Scoring",
|
|
204
|
+
"settings.security.scoring.description": "Calculate security scores and detect threats (Premium)",
|
|
205
|
+
"settings.security.maxFailed.title": "Max Failed Login Attempts",
|
|
206
|
+
"settings.security.maxFailed.hint": "User will be blocked after {count} failed attempts",
|
|
207
|
+
"settings.email.title": "Email Notifications (Advanced)",
|
|
208
|
+
"settings.email.description": "Email alerts for security events",
|
|
209
|
+
"settings.email.alerts.title": "EMAIL ALERTS",
|
|
210
|
+
"settings.email.alerts.subtitle": "Send security alerts to users via email",
|
|
211
|
+
"settings.email.enable.title": "Enable Email Alerts",
|
|
212
|
+
"settings.email.enable.description": "Send security alerts for suspicious logins, new locations, and VPN/Proxy usage",
|
|
213
|
+
"settings.email.types.title": "ALERT TYPES",
|
|
214
|
+
"settings.email.types.suspicious": "Suspicious Login",
|
|
215
|
+
"settings.email.types.newLocation": "New Location",
|
|
216
|
+
"settings.email.types.vpnProxy": "VPN/Proxy",
|
|
217
|
+
"settings.email.templates.title": "EMAIL TEMPLATES",
|
|
218
|
+
"settings.email.templates.subtitle": "Customize email notification templates with dynamic variables",
|
|
219
|
+
"settings.email.templates.subject": "Email Subject",
|
|
220
|
+
"settings.email.templates.subjectPlaceholder": "Enter email subject...",
|
|
221
|
+
"settings.email.templates.variables": "Available Variables (click to copy)",
|
|
222
|
+
"settings.email.templates.html.title": "HTML Template",
|
|
223
|
+
"settings.email.templates.html.badge": "Main Template",
|
|
224
|
+
"settings.email.templates.html.description": "HTML template for email notifications. Use variables like {{user.email}} for dynamic content.",
|
|
225
|
+
"settings.email.templates.html.loadDefault": "Load Default",
|
|
226
|
+
"settings.email.templates.html.copy": "Copy Template",
|
|
227
|
+
"settings.email.templates.html.validate": "Validate",
|
|
228
|
+
"settings.email.templates.html.info": "Template Info",
|
|
229
|
+
"settings.email.templates.text.title": "Text Template",
|
|
230
|
+
"settings.email.templates.text.badge": "Fallback",
|
|
231
|
+
"settings.email.templates.text.description": "Plain text version (no HTML) as fallback for older email clients",
|
|
232
|
+
"settings.email.templates.text.loadDefault": "Load Default",
|
|
233
|
+
"settings.email.templates.text.copy": "Copy Template",
|
|
234
|
+
"settings.email.templates.tab.suspicious": "Suspicious Login",
|
|
235
|
+
"settings.email.templates.tab.newLocation": "New Location",
|
|
236
|
+
"settings.email.templates.tab.vpnProxy": "VPN/Proxy",
|
|
237
|
+
"settings.webhooks.title": "Webhook Integration (Advanced)",
|
|
238
|
+
"settings.webhooks.description": "Discord & Slack integration",
|
|
239
|
+
"settings.webhooks.enable.title": "Enable Webhooks",
|
|
240
|
+
"settings.webhooks.enable.description": "Send session events to Discord, Slack, or custom endpoints",
|
|
241
|
+
"settings.webhooks.discord.title": "Discord Webhook URL",
|
|
242
|
+
"settings.webhooks.discord.placeholder": "https://discord.com/api/webhooks/123456789/abcdefghijklmnopqrstuvwxyz...",
|
|
243
|
+
"settings.webhooks.discord.hint": "Optional: Post session alerts to your Discord channel",
|
|
244
|
+
"settings.webhooks.slack.title": "Slack Webhook URL",
|
|
245
|
+
"settings.webhooks.slack.placeholder": "https://hooks.slack.com/services/XXXX/XXXX/XXXX",
|
|
246
|
+
"settings.webhooks.slack.hint": "Optional: Post session alerts to your Slack workspace",
|
|
247
|
+
"settings.webhooks.characters": "{count} characters",
|
|
248
|
+
"settings.footer.title": "Database-Backed Settings",
|
|
249
|
+
"settings.footer.description": "All settings are stored in your Strapi database and shared across all admin users. Changes take effect immediately - no server restart required! Email templates, webhooks, and security options are all managed from this interface.",
|
|
250
|
+
"common.loading": "Loading...",
|
|
251
|
+
"common.save": "Save",
|
|
252
|
+
"common.cancel": "Cancel",
|
|
253
|
+
"common.close": "Close",
|
|
254
|
+
"common.delete": "Delete",
|
|
255
|
+
"common.confirm": "Confirm",
|
|
256
|
+
"common.yes": "Yes",
|
|
257
|
+
"common.no": "No",
|
|
258
|
+
"common.on": "on",
|
|
259
|
+
"common.active": "ACTIVE",
|
|
260
|
+
"common.inactive": "INACTIVE",
|
|
261
|
+
"notifications.success.saved": "Settings saved successfully to database!",
|
|
262
|
+
"notifications.success.deleted": "Session permanently deleted",
|
|
263
|
+
"notifications.success.terminated": "Session terminated successfully",
|
|
264
|
+
"notifications.success.terminatedAll": "All sessions terminated successfully",
|
|
265
|
+
"notifications.success.blocked": "User blocked successfully",
|
|
266
|
+
"notifications.success.unblocked": "User unblocked successfully",
|
|
267
|
+
"notifications.success.exported": "Exported {count} sessions to {format}",
|
|
268
|
+
"notifications.success.cleaned": "Successfully deleted {count} inactive sessions!",
|
|
269
|
+
"notifications.success.keyCopied": "Encryption key copied to clipboard!",
|
|
270
|
+
"notifications.success.keyGenerated": "32-character encryption key generated!",
|
|
271
|
+
"notifications.success.envCopied": "Copied as .env format!",
|
|
272
|
+
"notifications.success.templateCopied": "Template copied!",
|
|
273
|
+
"notifications.success.htmlCopied": "HTML template copied!",
|
|
274
|
+
"notifications.success.textCopied": "Text template copied!",
|
|
275
|
+
"notifications.success.defaultLoaded": "Default template loaded!",
|
|
276
|
+
"notifications.success.variableCopied": "{variable} copied!",
|
|
277
|
+
"notifications.success.validated": "Template valid! Found {found}/{total} variables.",
|
|
278
|
+
"notifications.warning.premiumRequired": "Premium license required for export functionality",
|
|
279
|
+
"notifications.warning.noVariables": "[WARNING] No variables found. Add at least one variable.",
|
|
280
|
+
"notifications.warning.settingsLoad": "Could not load settings from server. Using defaults.",
|
|
281
|
+
"notifications.error.terminate": "Failed to terminate session",
|
|
282
|
+
"notifications.error.terminateAll": "Failed to terminate sessions",
|
|
283
|
+
"notifications.error.delete": "Failed to delete session",
|
|
284
|
+
"notifications.error.block": "Failed to update user status",
|
|
285
|
+
"notifications.error.save": "Failed to save settings to server",
|
|
286
|
+
"notifications.error.clean": "Failed to delete inactive sessions",
|
|
287
|
+
"notifications.error.export": "Failed to export sessions",
|
|
288
|
+
"notifications.info.templateStats": "Template has {lines} lines and {chars} characters"
|
|
289
|
+
};
|
|
290
|
+
exports.Session = Session;
|
|
291
|
+
exports.User = User;
|
|
292
|
+
exports.default = en;
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
const Session = "Session";
|
|
2
|
+
const User = "User";
|
|
3
|
+
const en = {
|
|
4
|
+
"plugin.name": "Session Manager",
|
|
5
|
+
"plugin.description": "Track user login/logout and session activity",
|
|
6
|
+
Session,
|
|
7
|
+
User,
|
|
8
|
+
"session.user": "User",
|
|
9
|
+
"session.ipAddress": "IP Address",
|
|
10
|
+
"session.userAgent": "Browser Agent",
|
|
11
|
+
"session.loginTime": "Login Time",
|
|
12
|
+
"session.logoutTime": "Logout Time",
|
|
13
|
+
"session.lastActive": "Last Active",
|
|
14
|
+
"session.isActive": "Active",
|
|
15
|
+
"session.token": "Token",
|
|
16
|
+
"session.EditorX": "Editor X",
|
|
17
|
+
"settings.section": "Session Manager",
|
|
18
|
+
"settings.sessions": "Active Sessions",
|
|
19
|
+
"settings.upgrade": "Upgrade",
|
|
20
|
+
"settings.general": "General",
|
|
21
|
+
"settings.analytics": "Analytics",
|
|
22
|
+
"settings.license": "License",
|
|
23
|
+
"widget.online-users.title": "Online Users",
|
|
24
|
+
"widget.stats.onlineNow": "Online Now",
|
|
25
|
+
"widget.stats.offline": "Offline",
|
|
26
|
+
"widget.stats.last15min": "Last 15 min",
|
|
27
|
+
"widget.stats.last30min": "Last 30 min",
|
|
28
|
+
"widget.stats.totalUsers": "Total Users",
|
|
29
|
+
"widget.stats.blocked": "Blocked",
|
|
30
|
+
"homepage.title": "Session Manager",
|
|
31
|
+
"homepage.subtitle": "Monitor and manage user sessions in real-time",
|
|
32
|
+
"homepage.stats.active": "Active",
|
|
33
|
+
"homepage.stats.idle": "Idle",
|
|
34
|
+
"homepage.stats.loggedOut": "Logged Out",
|
|
35
|
+
"homepage.stats.terminated": "Terminated",
|
|
36
|
+
"homepage.stats.total": "Total",
|
|
37
|
+
"homepage.export.csv": "Export CSV",
|
|
38
|
+
"homepage.export.json": "Export JSON",
|
|
39
|
+
"homepage.loading": "Loading sessions...",
|
|
40
|
+
"homepage.allSessions": "All Sessions",
|
|
41
|
+
"homepage.search.placeholder": "Search by user, IP address, or device...",
|
|
42
|
+
"homepage.filter.all": "All Sessions",
|
|
43
|
+
"homepage.filter.active": "Active (less than 15 min)",
|
|
44
|
+
"homepage.filter.idle": "Idle (more than 15 min)",
|
|
45
|
+
"homepage.filter.loggedout": "Logged Out",
|
|
46
|
+
"homepage.filter.terminated": "Terminated",
|
|
47
|
+
"homepage.entries.10": "10 entries",
|
|
48
|
+
"homepage.entries.25": "25 entries",
|
|
49
|
+
"homepage.entries.50": "50 entries",
|
|
50
|
+
"homepage.entries.100": "100 entries",
|
|
51
|
+
"homepage.showing": "Showing {count} of {total} sessions",
|
|
52
|
+
"homepage.showingFiltered": 'Showing {count} of {total} sessions (filtered by "{query}")',
|
|
53
|
+
"homepage.table.status": "Status",
|
|
54
|
+
"homepage.table.user": "User",
|
|
55
|
+
"homepage.table.device": "Device",
|
|
56
|
+
"homepage.table.ipAddress": "IP Address",
|
|
57
|
+
"homepage.table.loginTime": "Login Time",
|
|
58
|
+
"homepage.table.lastActive": "Last Active",
|
|
59
|
+
"homepage.table.actions": "Actions",
|
|
60
|
+
"homepage.status.active": "Active",
|
|
61
|
+
"homepage.status.idle": "Idle",
|
|
62
|
+
"homepage.status.loggedOut": "Logged Out",
|
|
63
|
+
"homepage.status.terminated": "Terminated",
|
|
64
|
+
"homepage.user.unknown": "Unknown",
|
|
65
|
+
"homepage.time.minAgo": "{minutes} min ago",
|
|
66
|
+
"homepage.actions.viewDetails": "View Details",
|
|
67
|
+
"homepage.actions.terminate": "Terminate (Logout)",
|
|
68
|
+
"homepage.actions.alreadyInactive": "Already inactive",
|
|
69
|
+
"homepage.actions.deletePermanently": "Delete Permanently",
|
|
70
|
+
"homepage.empty.title": "No sessions yet",
|
|
71
|
+
"homepage.empty.description": "Sessions will appear here when users log in to your application",
|
|
72
|
+
"homepage.noResults.title": "No sessions found",
|
|
73
|
+
"homepage.noResults.description": "Try adjusting your search query or filters to find sessions",
|
|
74
|
+
"homepage.confirm.terminate": "Are you sure you want to terminate this session?\n\nThis will set isActive to false (user will be logged out).",
|
|
75
|
+
"homepage.confirm.delete": "[WARNING] This will PERMANENTLY delete this session from the database!\n\nThis action cannot be undone.\n\nAre you sure?",
|
|
76
|
+
"modal.title": "Session Details",
|
|
77
|
+
"modal.id": "ID: {id}",
|
|
78
|
+
"modal.status.online": "ONLINE",
|
|
79
|
+
"modal.status.offline": "OFFLINE",
|
|
80
|
+
"modal.section.user": "User",
|
|
81
|
+
"modal.section.device": "Device",
|
|
82
|
+
"modal.section.timeline": "Timeline",
|
|
83
|
+
"modal.section.security": "Location and Security",
|
|
84
|
+
"modal.section.technical": "Technical Details",
|
|
85
|
+
"modal.user.username": "Username",
|
|
86
|
+
"modal.user.email": "Email",
|
|
87
|
+
"modal.user.id": "User ID",
|
|
88
|
+
"modal.user.na": "N/A",
|
|
89
|
+
"modal.device.device": "Device",
|
|
90
|
+
"modal.device.browser": "Browser",
|
|
91
|
+
"modal.device.os": "OS",
|
|
92
|
+
"modal.device.ip": "IP",
|
|
93
|
+
"modal.timeline.login": "Login",
|
|
94
|
+
"modal.timeline.lastActive": "Last Active",
|
|
95
|
+
"modal.timeline.idleTime": "Idle Time",
|
|
96
|
+
"modal.timeline.logout": "Logout",
|
|
97
|
+
"modal.timeline.minutes": "{minutes} min",
|
|
98
|
+
"modal.security.loading": "Loading location data...",
|
|
99
|
+
"modal.security.country": "Country",
|
|
100
|
+
"modal.security.city": "City",
|
|
101
|
+
"modal.security.timezone": "Timezone",
|
|
102
|
+
"modal.security.score": "Security",
|
|
103
|
+
"modal.security.vpn": "VPN",
|
|
104
|
+
"modal.security.proxy": "Proxy",
|
|
105
|
+
"modal.security.vpnWarning": "[WARNING] Yes",
|
|
106
|
+
"modal.security.no": "No",
|
|
107
|
+
"modal.premium.title": "Location and Security Analysis",
|
|
108
|
+
"modal.premium.description": "Unlock premium features to get IP geolocation, security scoring, and VPN/Proxy detection for every session",
|
|
109
|
+
"modal.premium.upgrade": "Upgrade to Premium",
|
|
110
|
+
"modal.technical.show": "Show Details",
|
|
111
|
+
"modal.technical.hide": "Hide Details",
|
|
112
|
+
"modal.actions.close": "Close",
|
|
113
|
+
"modal.actions.terminate": "Terminate Session",
|
|
114
|
+
"modal.confirm.terminate": "Are you sure you want to terminate this session?",
|
|
115
|
+
"panel.title": "Session Info",
|
|
116
|
+
"panel.loading": "Loading...",
|
|
117
|
+
"panel.status.active": "ACTIVE",
|
|
118
|
+
"panel.status.offline": "OFFLINE",
|
|
119
|
+
"panel.sessions.count": "{count} active session{count, plural, one {} other {s}}",
|
|
120
|
+
"panel.sessions.title": "Active Sessions",
|
|
121
|
+
"panel.sessions.active": "Active",
|
|
122
|
+
"panel.sessions.activeNow": "Active now",
|
|
123
|
+
"panel.sessions.activeAgo": "Active {minutes} min ago",
|
|
124
|
+
"panel.sessions.more": "+{count} more session{count, plural, one {} other {s}}",
|
|
125
|
+
"panel.blocked.title": "User is blocked",
|
|
126
|
+
"panel.blocked.description": "Authentication disabled",
|
|
127
|
+
"panel.empty.title": "No active sessions",
|
|
128
|
+
"panel.empty.description": "User has not logged in yet",
|
|
129
|
+
"panel.actions.title": "Actions",
|
|
130
|
+
"panel.actions.terminateAll": "Terminate All Sessions",
|
|
131
|
+
"panel.actions.blockUser": "Block User",
|
|
132
|
+
"panel.actions.unblockUser": "Unblock User",
|
|
133
|
+
"settings.title": "Session Manager Settings",
|
|
134
|
+
"settings.subtitle": "Configure session tracking, security, and email notifications",
|
|
135
|
+
"settings.save": "Save Changes",
|
|
136
|
+
"settings.saving": "Saving...",
|
|
137
|
+
"settings.noChanges": "No Changes",
|
|
138
|
+
"settings.reset": "Reset",
|
|
139
|
+
"settings.license.title": "Current License Status",
|
|
140
|
+
"settings.license.premium": "Premium",
|
|
141
|
+
"settings.license.advanced": "Advanced",
|
|
142
|
+
"settings.license.enterprise": "Enterprise",
|
|
143
|
+
"settings.general.title": "General Settings",
|
|
144
|
+
"settings.general.description": "Basic session tracking configuration",
|
|
145
|
+
"settings.general.timeout.title": "SESSION TIMEOUT",
|
|
146
|
+
"settings.general.timeout.inactivity": "Inactivity Timeout",
|
|
147
|
+
"settings.general.timeout.inactivityHint": "Sessions inactive for more than {minutes} minutes will be marked as offline",
|
|
148
|
+
"settings.general.timeout.5min": "5 minutes (Very Strict)",
|
|
149
|
+
"settings.general.timeout.10min": "10 minutes (Strict)",
|
|
150
|
+
"settings.general.timeout.15min": "15 minutes (Recommended)",
|
|
151
|
+
"settings.general.timeout.30min": "30 minutes (Moderate)",
|
|
152
|
+
"settings.general.timeout.1hour": "1 hour (Relaxed)",
|
|
153
|
+
"settings.general.timeout.2hours": "2 hours (Very Relaxed)",
|
|
154
|
+
"settings.general.rateLimit.title": "Last Seen Rate Limit",
|
|
155
|
+
"settings.general.rateLimit.hint": "Prevents excessive database writes. Updates throttled to once every {seconds} seconds",
|
|
156
|
+
"settings.general.rateLimit.10sec": "10 seconds",
|
|
157
|
+
"settings.general.rateLimit.30sec": "30 seconds (Recommended)",
|
|
158
|
+
"settings.general.rateLimit.1min": "1 minute",
|
|
159
|
+
"settings.general.rateLimit.2min": "2 minutes",
|
|
160
|
+
"settings.general.rateLimit.5min": "5 minutes",
|
|
161
|
+
"settings.general.cleanup.title": "AUTO-CLEANUP & RETENTION",
|
|
162
|
+
"settings.general.cleanup.interval": "Cleanup Interval",
|
|
163
|
+
"settings.general.cleanup.intervalHint": "Inactive sessions are automatically cleaned every {minutes} minutes",
|
|
164
|
+
"settings.general.cleanup.15min": "15 minutes",
|
|
165
|
+
"settings.general.cleanup.30min": "30 minutes (Recommended)",
|
|
166
|
+
"settings.general.cleanup.1hour": "1 hour",
|
|
167
|
+
"settings.general.cleanup.2hours": "2 hours",
|
|
168
|
+
"settings.general.retention.title": "Retention Period",
|
|
169
|
+
"settings.general.retention.hint": "Old sessions deleted after {days}",
|
|
170
|
+
"settings.general.retention.hintNever": "Old sessions deleted after never",
|
|
171
|
+
"settings.general.retention.7days": "7 days",
|
|
172
|
+
"settings.general.retention.30days": "30 days",
|
|
173
|
+
"settings.general.retention.60days": "60 days",
|
|
174
|
+
"settings.general.retention.90days": "90 days (Recommended)",
|
|
175
|
+
"settings.general.retention.180days": "180 days",
|
|
176
|
+
"settings.general.retention.1year": "1 year",
|
|
177
|
+
"settings.general.retention.forever": "Forever",
|
|
178
|
+
"settings.general.danger.title": "Danger Zone",
|
|
179
|
+
"settings.general.danger.description": "Clean All Inactive: Permanently deletes all inactive sessions. This cannot be undone.",
|
|
180
|
+
"settings.general.danger.cleanNow": "Clean Now",
|
|
181
|
+
"settings.general.danger.confirm": "[WARNING] This will permanently delete ALL inactive sessions.\n\nContinue?",
|
|
182
|
+
"settings.security.title": "Security Settings",
|
|
183
|
+
"settings.security.description": "Security policies and threat protection",
|
|
184
|
+
"settings.security.options": "SECURITY OPTIONS",
|
|
185
|
+
"settings.security.encryption.title": "JWT Encryption Key Generator",
|
|
186
|
+
"settings.security.encryption.description": "Generate a secure 32-character encryption key for JWT token storage. This key is used to encrypt tokens before saving them to the database.",
|
|
187
|
+
"settings.security.encryption.important": "Important",
|
|
188
|
+
"settings.security.encryption.envHint": "Add this key to your .env file as SESSION_ENCRYPTION_KEY for production.",
|
|
189
|
+
"settings.security.encryption.label": "Generated Encryption Key",
|
|
190
|
+
"settings.security.encryption.placeholder": "Click 'Generate Key' to create a secure key",
|
|
191
|
+
"settings.security.encryption.show": "Show",
|
|
192
|
+
"settings.security.encryption.hide": "Hide",
|
|
193
|
+
"settings.security.encryption.generate": "Generate Key",
|
|
194
|
+
"settings.security.encryption.copy": "Copy to Clipboard",
|
|
195
|
+
"settings.security.encryption.copyEnv": "Copy for .env",
|
|
196
|
+
"settings.security.encryption.envLabel": "Add to .env file:",
|
|
197
|
+
"settings.security.blockSuspicious.title": "Block Suspicious Sessions",
|
|
198
|
+
"settings.security.blockSuspicious.description": "Automatically block sessions from VPNs, proxies, or threat IPs",
|
|
199
|
+
"settings.security.geolocation.title": "IP Geolocation",
|
|
200
|
+
"settings.security.geolocation.description": "Fetch location data for each session (Premium)",
|
|
201
|
+
"settings.security.scoring.title": "Security Scoring",
|
|
202
|
+
"settings.security.scoring.description": "Calculate security scores and detect threats (Premium)",
|
|
203
|
+
"settings.security.maxFailed.title": "Max Failed Login Attempts",
|
|
204
|
+
"settings.security.maxFailed.hint": "User will be blocked after {count} failed attempts",
|
|
205
|
+
"settings.email.title": "Email Notifications (Advanced)",
|
|
206
|
+
"settings.email.description": "Email alerts for security events",
|
|
207
|
+
"settings.email.alerts.title": "EMAIL ALERTS",
|
|
208
|
+
"settings.email.alerts.subtitle": "Send security alerts to users via email",
|
|
209
|
+
"settings.email.enable.title": "Enable Email Alerts",
|
|
210
|
+
"settings.email.enable.description": "Send security alerts for suspicious logins, new locations, and VPN/Proxy usage",
|
|
211
|
+
"settings.email.types.title": "ALERT TYPES",
|
|
212
|
+
"settings.email.types.suspicious": "Suspicious Login",
|
|
213
|
+
"settings.email.types.newLocation": "New Location",
|
|
214
|
+
"settings.email.types.vpnProxy": "VPN/Proxy",
|
|
215
|
+
"settings.email.templates.title": "EMAIL TEMPLATES",
|
|
216
|
+
"settings.email.templates.subtitle": "Customize email notification templates with dynamic variables",
|
|
217
|
+
"settings.email.templates.subject": "Email Subject",
|
|
218
|
+
"settings.email.templates.subjectPlaceholder": "Enter email subject...",
|
|
219
|
+
"settings.email.templates.variables": "Available Variables (click to copy)",
|
|
220
|
+
"settings.email.templates.html.title": "HTML Template",
|
|
221
|
+
"settings.email.templates.html.badge": "Main Template",
|
|
222
|
+
"settings.email.templates.html.description": "HTML template for email notifications. Use variables like {{user.email}} for dynamic content.",
|
|
223
|
+
"settings.email.templates.html.loadDefault": "Load Default",
|
|
224
|
+
"settings.email.templates.html.copy": "Copy Template",
|
|
225
|
+
"settings.email.templates.html.validate": "Validate",
|
|
226
|
+
"settings.email.templates.html.info": "Template Info",
|
|
227
|
+
"settings.email.templates.text.title": "Text Template",
|
|
228
|
+
"settings.email.templates.text.badge": "Fallback",
|
|
229
|
+
"settings.email.templates.text.description": "Plain text version (no HTML) as fallback for older email clients",
|
|
230
|
+
"settings.email.templates.text.loadDefault": "Load Default",
|
|
231
|
+
"settings.email.templates.text.copy": "Copy Template",
|
|
232
|
+
"settings.email.templates.tab.suspicious": "Suspicious Login",
|
|
233
|
+
"settings.email.templates.tab.newLocation": "New Location",
|
|
234
|
+
"settings.email.templates.tab.vpnProxy": "VPN/Proxy",
|
|
235
|
+
"settings.webhooks.title": "Webhook Integration (Advanced)",
|
|
236
|
+
"settings.webhooks.description": "Discord & Slack integration",
|
|
237
|
+
"settings.webhooks.enable.title": "Enable Webhooks",
|
|
238
|
+
"settings.webhooks.enable.description": "Send session events to Discord, Slack, or custom endpoints",
|
|
239
|
+
"settings.webhooks.discord.title": "Discord Webhook URL",
|
|
240
|
+
"settings.webhooks.discord.placeholder": "https://discord.com/api/webhooks/123456789/abcdefghijklmnopqrstuvwxyz...",
|
|
241
|
+
"settings.webhooks.discord.hint": "Optional: Post session alerts to your Discord channel",
|
|
242
|
+
"settings.webhooks.slack.title": "Slack Webhook URL",
|
|
243
|
+
"settings.webhooks.slack.placeholder": "https://hooks.slack.com/services/XXXX/XXXX/XXXX",
|
|
244
|
+
"settings.webhooks.slack.hint": "Optional: Post session alerts to your Slack workspace",
|
|
245
|
+
"settings.webhooks.characters": "{count} characters",
|
|
246
|
+
"settings.footer.title": "Database-Backed Settings",
|
|
247
|
+
"settings.footer.description": "All settings are stored in your Strapi database and shared across all admin users. Changes take effect immediately - no server restart required! Email templates, webhooks, and security options are all managed from this interface.",
|
|
248
|
+
"common.loading": "Loading...",
|
|
249
|
+
"common.save": "Save",
|
|
250
|
+
"common.cancel": "Cancel",
|
|
251
|
+
"common.close": "Close",
|
|
252
|
+
"common.delete": "Delete",
|
|
253
|
+
"common.confirm": "Confirm",
|
|
254
|
+
"common.yes": "Yes",
|
|
255
|
+
"common.no": "No",
|
|
256
|
+
"common.on": "on",
|
|
257
|
+
"common.active": "ACTIVE",
|
|
258
|
+
"common.inactive": "INACTIVE",
|
|
259
|
+
"notifications.success.saved": "Settings saved successfully to database!",
|
|
260
|
+
"notifications.success.deleted": "Session permanently deleted",
|
|
261
|
+
"notifications.success.terminated": "Session terminated successfully",
|
|
262
|
+
"notifications.success.terminatedAll": "All sessions terminated successfully",
|
|
263
|
+
"notifications.success.blocked": "User blocked successfully",
|
|
264
|
+
"notifications.success.unblocked": "User unblocked successfully",
|
|
265
|
+
"notifications.success.exported": "Exported {count} sessions to {format}",
|
|
266
|
+
"notifications.success.cleaned": "Successfully deleted {count} inactive sessions!",
|
|
267
|
+
"notifications.success.keyCopied": "Encryption key copied to clipboard!",
|
|
268
|
+
"notifications.success.keyGenerated": "32-character encryption key generated!",
|
|
269
|
+
"notifications.success.envCopied": "Copied as .env format!",
|
|
270
|
+
"notifications.success.templateCopied": "Template copied!",
|
|
271
|
+
"notifications.success.htmlCopied": "HTML template copied!",
|
|
272
|
+
"notifications.success.textCopied": "Text template copied!",
|
|
273
|
+
"notifications.success.defaultLoaded": "Default template loaded!",
|
|
274
|
+
"notifications.success.variableCopied": "{variable} copied!",
|
|
275
|
+
"notifications.success.validated": "Template valid! Found {found}/{total} variables.",
|
|
276
|
+
"notifications.warning.premiumRequired": "Premium license required for export functionality",
|
|
277
|
+
"notifications.warning.noVariables": "[WARNING] No variables found. Add at least one variable.",
|
|
278
|
+
"notifications.warning.settingsLoad": "Could not load settings from server. Using defaults.",
|
|
279
|
+
"notifications.error.terminate": "Failed to terminate session",
|
|
280
|
+
"notifications.error.terminateAll": "Failed to terminate sessions",
|
|
281
|
+
"notifications.error.delete": "Failed to delete session",
|
|
282
|
+
"notifications.error.block": "Failed to update user status",
|
|
283
|
+
"notifications.error.save": "Failed to save settings to server",
|
|
284
|
+
"notifications.error.clean": "Failed to delete inactive sessions",
|
|
285
|
+
"notifications.error.export": "Failed to export sessions",
|
|
286
|
+
"notifications.info.templateStats": "Template has {lines} lines and {chars} characters"
|
|
287
|
+
};
|
|
288
|
+
export {
|
|
289
|
+
Session,
|
|
290
|
+
User,
|
|
291
|
+
en as default
|
|
292
|
+
};
|