Add Loki and Sentinel utility classes for web API endpoints

- Implemented LokiUtils class with GET and POST endpoints for managing scripts, jobs, and payloads.
- Added SentinelUtils class with GET and POST endpoints for managing events, rules, devices, and notifications.
- Both classes include error handling and JSON response formatting.
This commit is contained in:
infinition
2026-03-14 22:33:10 +01:00
parent eb20b168a6
commit aac77a3e76
525 changed files with 29400 additions and 13136 deletions

View File

@@ -40,22 +40,40 @@
"settings.errorRestoring": "Fehler beim Wiederherstellen der Standardwerte",
"theme.group.colors": "Farben",
"theme.group.surfaces": "Oberflächen",
"theme.group.borders": "Rahmen",
"theme.group.controls": "Steuerelemente",
"theme.group.layout": "Layout",
"theme.token.bg": "Hintergrund",
"theme.token.bg2": "Hintergrund Alt",
"theme.token.ink": "Textfarbe",
"theme.token.muted": "Gedämpfter Text",
"theme.token.accent1": "Akzent 1 (Acid)",
"theme.token.accent2": "Akzent 2 (Cyan)",
"theme.token.accent": "Akzent",
"theme.token.accentAlt": "Akzent Alt",
"theme.token.danger": "Gefahr",
"theme.token.warning": "Warnung",
"theme.token.ok": "Erfolg",
"theme.token.panel": "Panel",
"theme.token.panel2": "Panel Alt",
"theme.token.ctrlPanel": "Steuerpanel",
"theme.token.ctrlPanel2": "Steuerpanel Alt",
"theme.token.btnBg": "Schaltflächenhintergrund",
"theme.token.border": "Rahmen",
"theme.token.borderStrong": "Starker Rahmen",
"theme.token.borderHi": "Rahmenhervorhebung",
"theme.token.switchTrack": "Schalter-Spur",
"theme.token.switchOnBg": "Schalter Ein-Hintergrund",
"theme.token.scrollTrack": "Scrollleisten-Spur",
"theme.token.scrollThumb": "Scrollleisten-Griff",
"theme.token.glass": "Glasüberlagerung",
"theme.token.radius": "Rahmenradius",
"theme.advanced": "Erweitertes CSS",
"theme.applyRaw": "Anwenden",
"theme.reset": "Zurücksetzen",
"theme.reset": "Auf Standard zurücksetzen",
"theme.export": "Design exportieren",
"theme.import": "Design importieren",
"theme.importError": "Ungültige Design-Datei",
"dash.title": "Dashboard",
"dash.battery": "Batterie",
"dash.internet": "Internet",
@@ -777,5 +795,137 @@
"api.timeout": "Anfrage Zeitüberschreitung",
"api.failed": "Anfrage fehlgeschlagen",
"router.notFound": "Seite nicht gefunden: {{path}}",
"router.errorLoading": "Fehler beim Laden der Seite: {{message}}"
"router.errorLoading": "Fehler beim Laden der Seite: {{message}}",
"nav.sentinel": "Sentinel",
"sentinel.title": "Sentinel Wachhund",
"sentinel.enabled": "Aktiviert",
"sentinel.disabled": "Deaktiviert",
"sentinel.eventFeed": "Ereignis-Feed",
"sentinel.ackAll": "Alle bestätigen",
"sentinel.clearAll": "Alle löschen",
"sentinel.allAcked": "Alle Ereignisse bestätigt",
"sentinel.confirmClear": "Alle Ereignisse löschen? Dies kann nicht rückgängig gemacht werden.",
"sentinel.eventsCleared": "Ereignisse gelöscht",
"sentinel.noEvents": "Noch keine Ereignisse. Sentinel überwacht Ihr Netzwerk auf Anomalien.",
"sentinel.rules": "Regeln",
"sentinel.devices": "Geräte",
"sentinel.notifiers": "Benachrichtigungen",
"sentinel.statDevices": "Bekannte Geräte",
"sentinel.statAlive": "Aktiv",
"sentinel.statUnread": "Ungelesen",
"sentinel.statEvents": "Ereignisse gesamt",
"sentinel.statRules": "Aktive Regeln",
"sentinel.addRule": "Regel hinzufügen",
"sentinel.noRules": "Keine Regeln konfiguriert.",
"sentinel.ruleLogic": "Logik",
"sentinel.ruleActions": "Aktionen",
"sentinel.enable": "Aktivieren",
"sentinel.disable": "Deaktivieren",
"sentinel.editRule": "Regel bearbeiten",
"sentinel.deleteRule": "Regel löschen",
"sentinel.confirmDeleteRule": "Diese Regel löschen?",
"sentinel.ruleDeleted": "Regel gelöscht",
"sentinel.ruleUpdated": "Regel aktualisiert",
"sentinel.ruleCreated": "Regel erstellt",
"sentinel.ruleName": "Regelname",
"sentinel.triggerType": "Auslösertyp",
"sentinel.cooldown": "Cooldown",
"sentinel.conditions": "Bedingungen",
"sentinel.cancel": "Abbrechen",
"sentinel.save": "Speichern",
"sentinel.nameRequired": "Regelname ist erforderlich",
"sentinel.noDevices": "Noch keine Geräte entdeckt.",
"sentinel.trusted": "Vertraut",
"sentinel.untrusted": "Nicht vertraut",
"sentinel.alias": "Alias",
"sentinel.expectedIps": "Erwartete IPs",
"sentinel.lastSeen": "Zuletzt gesehen",
"sentinel.deviceSaved": "Gerät aktualisiert",
"sentinel.discordWebhook": "Discord Webhook",
"sentinel.webhookUrl": "Webhook URL",
"sentinel.smtpHost": "SMTP Host",
"sentinel.smtpPort": "SMTP Port",
"sentinel.smtpUser": "SMTP Benutzer",
"sentinel.smtpPass": "SMTP Passwort",
"sentinel.emailFrom": "E-Mail Absender",
"sentinel.emailTo": "E-Mail Empfänger",
"sentinel.saveNotifiers": "Benachrichtigungen speichern",
"sentinel.notifiersSaved": "Benachrichtigungskonfiguration gespeichert",
"sentinel.justNow": "gerade eben",
"sentinel.acknowledge": "Bestätigen",
"nav.bifrost": "Bifrost",
"bifrost.title": "Bifrost",
"bifrost.enabled": "Aktiviert",
"bifrost.disabled": "Deaktiviert",
"bifrost.activityFeed": "Aktivitätsfeed",
"bifrost.clearActivity": "Löschen",
"bifrost.activityCleared": "Aktivität gelöscht",
"bifrost.noActivity": "Keine Aktivität. Aktivieren Sie Bifrost für WiFi-Aufklärung.",
"bifrost.networks": "Netzwerke",
"bifrost.plugins": "Plugins",
"bifrost.history": "Verlauf",
"bifrost.mood": "Stimmung",
"bifrost.statNetworks": "Netzwerke",
"bifrost.statHandshakes": "Handshakes",
"bifrost.statDeauths": "Deauths",
"bifrost.statAssocs": "Assocs",
"bifrost.statEpochs": "Epochen",
"bifrost.statPeers": "Peers",
"bifrost.noNetworks": "Noch keine Netzwerke entdeckt.",
"bifrost.noPlugins": "Keine Plugins geladen.",
"bifrost.noEpochs": "Noch keine Epochen aufgezeichnet.",
"bifrost.justNow": "gerade eben",
"bifrost.confirmEnable": "Bifrost-Modus aktivieren? WiFi wird in den Monitormodus versetzt — die Netzwerkverbindung geht verloren. Verbinden Sie sich stattdessen über USB/Bluetooth/Ethernet.",
"bifrost.monitorFailed": "Monitormodus Fehlgeschlagen",
"bifrost.monitorFailedHint": "Für Broadcom-Chips (Pi Zero) installieren Sie nexmon. Oder verwenden Sie einen externen USB-WiFi-Adapter.",
"bifrost.nexmonRequired": "Nexmon erforderlich",
"bifrost.nexmonRequiredDesc": "Ihr Broadcom WiFi-Chip benötigt Nexmon-Firmware-Patches für den Monitormodus. Klicken Sie zum Auto-Installieren (~15-25 Min auf Pi Zero 2 W).",
"bifrost.nexmonInstallBtn": "Nexmon installieren",
"bifrost.nexmonConfirm": "Nexmon-Firmware-Patches installieren? Dies lädt und kompiliert nexmon (~15-25 Min). Internetzugang und Root-Rechte erforderlich.",
"bifrost.nexmonStarted": "Nexmon-Installation gestartet ...",
"bifrost.nexmonInstalling": "Nexmon wird installiert ...",
"nav.loki": "Loki",
"loki.title": "Loki — HID-Angriffs-Suite",
"loki.enable": "Aktivieren",
"loki.enabled_msg": "Loki-Modus aktiviert",
"loki.disabled_msg": "Loki-Modus deaktiviert",
"loki.status_label": "Status",
"loki.gadget_label": "Gadget",
"loki.layout_label": "Layout",
"loki.jobs_label": "Aufgaben",
"loki.running": "Läuft",
"loki.running_lc": "läuft",
"loki.idle": "Leerlauf",
"loki.ready": "Bereit",
"loki.not_ready": "Nicht bereit",
"loki.run": "Ausführen",
"loki.save": "Speichern",
"loki.new": "Neu",
"loki.delete": "Löschen",
"loki.cancel": "Abbrechen",
"loki.output": "Ausgabe",
"loki.payloads": "Nutzlasten",
"loki.custom_scripts": "Eigene Skripte",
"loki.jobs": "Aufgaben",
"loki.clear_completed": "Abgeschlossene löschen",
"loki.script": "Skript",
"loki.status_col": "Status",
"loki.started": "Gestartet",
"loki.actions": "Aktionen",
"loki.no_payloads": "Keine eingebauten Nutzlasten",
"loki.no_scripts": "Keine gespeicherten Skripte",
"loki.no_jobs": "Noch keine Aufgaben",
"loki.no_output": "Keine Ausgabe",
"loki.empty_script": "Skript ist leer",
"loki.job_started": "Aufgabe gestartet: {id}",
"loki.run_error": "Skript konnte nicht ausgeführt werden",
"loki.script_name_prompt": "Skriptname:",
"loki.saved": "Skript gespeichert",
"loki.save_error": "Skript konnte nicht gespeichert werden",
"loki.confirm_delete": "Skript '{name}' löschen?",
"loki.quick_placeholder": "Schnelltext hier eingeben...",
"loki.quick_send": "Tippen",
"loki.quick_sent": "Text an Ziel gesendet",
"loki.quick_error": "Text konnte nicht gesendet werden"
}

View File

@@ -82,22 +82,40 @@
"settings.tooltip.bruteforce_exhaustive_max_candidates": "Maximum generated candidates for exhaustive bruteforce.",
"theme.group.colors": "Colors",
"theme.group.surfaces": "Surfaces",
"theme.group.borders": "Borders",
"theme.group.controls": "Controls",
"theme.group.layout": "Layout",
"theme.token.bg": "Background",
"theme.token.bg2": "Background Alt",
"theme.token.ink": "Text Color",
"theme.token.muted": "Muted Text",
"theme.token.accent1": "Accent 1 (Acid)",
"theme.token.accent2": "Accent 2 (Cyan)",
"theme.token.accent": "Accent",
"theme.token.accentAlt": "Accent Alt",
"theme.token.danger": "Danger",
"theme.token.warning": "Warning",
"theme.token.ok": "Success",
"theme.token.panel": "Panel",
"theme.token.panel2": "Panel Alt",
"theme.token.ctrlPanel": "Control Panel",
"theme.token.ctrlPanel2": "Control Panel Alt",
"theme.token.btnBg": "Button Background",
"theme.token.border": "Border",
"theme.token.borderStrong": "Border Strong",
"theme.token.borderHi": "Border Highlight",
"theme.token.switchTrack": "Switch Track",
"theme.token.switchOnBg": "Switch On BG",
"theme.token.scrollTrack": "Scrollbar Track",
"theme.token.scrollThumb": "Scrollbar Thumb",
"theme.token.glass": "Glass Overlay",
"theme.token.radius": "Border Radius",
"theme.advanced": "Advanced CSS",
"theme.applyRaw": "Apply",
"theme.reset": "Reset to Default",
"theme.export": "Export Theme",
"theme.import": "Import Theme",
"theme.importError": "Invalid theme file",
"dash.title": "Dashboard",
"dash.battery": "Battery",
"dash.internet": "Internet",
@@ -819,5 +837,417 @@
"api.timeout": "Request timed out",
"api.failed": "Request failed",
"router.notFound": "Page not found: {{path}}",
"router.errorLoading": "Error loading page: {{message}}"
"router.errorLoading": "Error loading page: {{message}}",
"sched.filterPlaceholder": "Filter (action, MAC, IP, host, service, port...)",
"sched.focusActive": "Focus active",
"sched.compact": "Compact",
"sched.collapse": "Collapse",
"sched.expand": "Expand",
"sched.showSuperseded": "+ superseded",
"sched.hideSuperseded": "- superseded",
"sched.noEntries": "No entries",
"sched.entries": "entries",
"sched.displayMore": "Display more\u2026",
"sched.fetchError": "Queue fetch error",
"sched.cmdFailed": "Command failed",
"sched.noHistory": "No history",
"sched.historyColorCoded": "Rows are color-coded by status.",
"sched.port": "Port",
"sched.service": "Svc",
"sched.eligibleIn": "Eligible in",
"sched.elapsed": "Elapsed",
"sched.due": "due",
"sched.created": "created",
"sched.started": "started",
"sched.retries": "retries",
"sched.retry": "retry",
"sched.priority": "prio",
"studio.autoLayout": "Auto-layout",
"studio.repel": "Repel",
"studio.apply": "Apply",
"studio.help": "Help",
"studio.filterActions": "Filter actions...",
"studio.filterHosts": "Filter host/IP/MAC...",
"studio.total": "total",
"studio.placed": "placed",
"studio.alive": "alive",
"studio.availableActions": "Available actions",
"studio.realHosts": "Real hosts",
"studio.testHosts": "Test hosts",
"studio.createTestHost": "Create test host",
"studio.selectedAction": "Selected action",
"studio.selectNodeToEdit": "Select a node to edit it",
"studio.selectedHost": "Selected host",
"studio.addHost": "Add host",
"studio.fitGraph": "Fit graph",
"studio.saveToDb": "Save to DB",
"studio.importActionsDb": "Import actions DB",
"studio.importStudioDb": "Import studio DB",
"studio.tips": "Tips",
"studio.tipsText": "Drag background to pan, mouse wheel/pinch to zoom, connect ports to link nodes.",
"studio.shortcuts": "Studio shortcuts",
"studio.navigation": "Navigation",
"studio.keyboard": "Keyboard",
"studio.shortcutZoom": "Mouse wheel / pinch: zoom",
"studio.shortcutPan": "Drag canvas background: pan",
"studio.shortcutDragNode": "Drag node: move node",
"studio.shortcutFit": "F: fit graph to viewport",
"studio.shortcutSave": "Ctrl/Cmd + S: save to DB",
"studio.shortcutEsc": "Esc: close menus / sidebars / modals",
"studio.shortcutDelete": "Delete: delete selected node",
"studio.success": "success",
"studio.failure": "failure",
"studio.requires": "requires",
"studio.pinchHint": "Pinch/scroll = zoom, drag = pan, connect ports to create links",
"studio.nodesCount": "nodes",
"studio.linksCount": "links",
"studio.noActionsMatch": "No actions match this filter.",
"studio.noRealHostsMatch": "No real hosts match this filter.",
"studio.noTestHostsYet": "No test hosts yet.",
"studio.saved": "Saved",
"studio.localBackup": "Local backup (DB unavailable)",
"studio.applied": "Applied to runtime",
"studio.applyFailed": "Apply runtime failed",
"studio.autoLayoutApplied": "Auto-layout applied",
"studio.actionUpdated": "Action updated",
"studio.hostUpdated": "Host updated",
"studio.testHostDeleted": "Test host deleted",
"studio.testHostCreated": "Test host created",
"studio.macExists": "MAC already exists",
"studio.deleteTestHost": "Delete this test host?",
"studio.link": "Link",
"studio.from": "From",
"studio.to": "To",
"studio.linkContext": "Choose behavior (trigger or requirement). Presets adapt to node types.",
"studio.mode": "Mode",
"studio.preset": "Preset",
"studio.trigger": "Trigger",
"studio.requirement": "Requirement",
"studio.param1": "Param 1",
"studio.param2": "Param 2",
"studio.preview": "Preview",
"studio.validate": "Validate",
"studio.removeFromCanvas": "Remove from canvas",
"studio.deleteFromCanvas": "Delete from canvas",
"studio.addCondition": "+ Condition",
"studio.addTestHost": "Add test host",
"studio.closePanel": "Close panel",
"studio.openPalette": "Open palette",
"studio.openInspector": "Open inspector",
"vulns.totalCVEs": "Total CVEs",
"vulns.active": "Active",
"vulns.remediated": "Remediated",
"vulns.hosts": "Hosts",
"vulns.withExploit": "w/ Exploit",
"vulns.kev": "KEV",
"vulns.updateFeeds": "Update Exploit Feeds",
"vulns.sortBy": "Sort by",
"vulns.cvssScore": "CVSS Score",
"vulns.lastSeen": "Last Seen",
"vulns.firstSeen": "First Seen",
"vulns.dateFilter": "Date filter (last seen)",
"vulns.clearDates": "Clear dates",
"vulns.cveView": "CVE View",
"vulns.hostView": "Host View",
"vulns.exploits": "Exploits",
"vulns.lastRefresh": "Last refresh: {{time}}",
"vulns.downloading": "Downloading…",
"vulns.syncingFeeds": "Syncing CISA KEV, Exploit-DB, EPSS…",
"vulns.noSyncYet": "No sync yet — click to update.",
"vulns.lastSync": "Last sync: {{date}} · {{count}} exploits",
"vulns.clickDetails": "click for details",
"vulns.noHostsFound": "No hosts found",
"vulns.vulnsCount": "{{count}} vulns",
"vulns.fixed": "FIXED",
"vulns.maxCvss": "Max CVSS",
"vulns.noExploitData": "No exploit data yet",
"vulns.searchExploits": "Search All Exploits now",
"vulns.filterHistory": "Filter history…",
"vulns.noHistory": "No history entries",
"vulns.pageInfo": "Page {{page}}/{{total}} — {{count}} entries",
"vulns.resultsInfo": "Page {{page}}/{{total}} — {{count}} results",
"vulns.score": "Score",
"vulns.probability": "Probability",
"vulns.percentile": "Percentile",
"vulns.cisaKev": "CISA KEV",
"vulns.cisaKevMsg": "This vulnerability is in the CISA Known Exploited Vulnerabilities catalog.",
"vulns.epss": "EPSS",
"vulns.affectedProducts": "Affected Products",
"vulns.product": "Product",
"vulns.versions": "Versions",
"vulns.exploitsRefs": "Exploits & References",
"vulns.noExploitRecords": "No exploit records in DB yet — use \"Search All Exploits\" to enrich.",
"vulns.references": "References",
"vulns.lastModified": "Last Modified",
"vulns.noEnrichment": "No enrichment data available.",
"vulns.github": "GitHub",
"vulns.rapid7": "Rapid7",
"vulns.nvd": "NVD",
"vulns.mitre": "MITRE",
"vulns.na": "N/A",
"vulns.unknown": "Unknown",
"dash.auto": "AUTO",
"dash.manual": "MANUAL",
"dash.lvl": "LVL {{level}}",
"dash.on": "ON",
"dash.off": "OFF",
"dash.yes": "YES",
"dash.no": "NO",
"dash.ssid": "SSID",
"dash.ip": "IP",
"dash.gw": "GW",
"dash.dns": "DNS",
"dash.fds": "FDS",
"dash.fix": "Fix",
"dash.sats": "Sats",
"dash.osLabel": "OS",
"dash.arch": "Arch",
"dash.model": "Model",
"dash.waveshare": "Waveshare E-Ink",
"dash.bjorn": "BJORN",
"dash.cpuRam": "CPU/RAM",
"dash.device": "Device",
"dash.equalSinceScan": "= since last scan",
"netkb.ip": "IP",
"netkb.mac": "MAC",
"netkb.vendor": "Vendor",
"netkb.essid": "ESSID",
"netkb.toggleOffline": "Toggle offline",
"netkb.hasPorts": "Has ports",
"netkb.hasActions": "Has actions",
"netkb.na": "N/A",
"netkb.success": "Success",
"netkb.failed": "Failed",
"netkb.running": "Running",
"netkb.pending": "Pending",
"netkb.expired": "Expired",
"netkb.cancelled": "Cancelled",
"netkb.at": "at",
"network.unknownHost": "Unknown host",
"network.showHostname": "Show hostname",
"network.d3Unavailable": "D3 library not available for map view.",
"network.portLabel": "Port {{label}}",
"network.clear": "Clear",
"creds.all": "All",
"creds.copied": "Copied to clipboard!",
"creds.noCredentials": "No credentials",
"creds.credentialsCount": "Credentials: {{count}}",
"creds.searchDots": "Search...",
"creds.downloadCsv": "Download CSV",
"creds.clickToCopy": "Click to copy",
"creds.services": "Services",
"webenum.searchPlaceholder": "Search host, IP, directory, status…",
"webenum.allHosts": "All Hosts",
"webenum.allStatus": "All Status",
"webenum.allPorts": "All Ports",
"webenum.noResults": "No web enumeration results found",
"webenum.actions": "Actions",
"webenum.open": "Open",
"webenum.perPage": "Per page:",
"webenum.resultCount": "{{count}} result(s)",
"webenum.showingAll": "Showing all {{count}} result(s)",
"webenum.prev": "Prev",
"webenum.next": "Next",
"webenum.pageInfo": "Page {{page}} of {{total}} ({{count}} results)",
"webenum.truncated": "{{count}} (truncated)",
"webenum.openUrl": "Open URL",
"webenum.copyUrl": "Copy URL",
"files.newFolder": "New Folder",
"files.confirmDeleteMulti": "Delete {{count}} item(s)?",
"files.moveTitle": "Move {{count}} item(s) to...",
"files.moveTo": "Move to...",
"files.switchToList": "Switch to list view",
"files.switchToGrid": "Switch to grid view",
"files.copySuffix": " (copy)",
"loot.treeView": "Tree View",
"loot.filesCount": "{{count}} files",
"db.views": "Views",
"db.tables": "Tables",
"db.addRowBtn": "+Row",
"db.csv": "CSV",
"db.json": "JSON",
"db.vacuum": "VACUUM",
"db.truncate": "Truncate",
"db.drop": "Drop",
"db.rowsInfo": "{{shown}} of {{total}} rows",
"actions.autoClear": "Auto-clear",
"actions.autoClearOn": "Auto-clear ON",
"actions.autoClearOff": "Auto-clear OFF",
"actions.exportLogs": "Export",
"actions.selectAction": "Select an action to see logs",
"actions.waitingLogs": "Waiting for logs...",
"actions.logs.scriptCompleted": "Script completed",
"actions.docs": "Docs",
"actions.preset": "Preset {{n}}",
"actions.byAuthor": "by {{author}}",
"zombie.cpuRam": "CPU/RAM",
"zombie.connectedToC2": "Connected to C2 event stream",
"zombie.c2ConnectionLost": "C2 event stream connection lost",
"zombie.telemetryReceived": "Agent {{name}} telemetry received.",
"zombie.staleFound": "{{count}} stale agent(s) found (>5min)",
"zombie.staleCheck": "Stale check: {{count}} inactive >5min.",
"zombie.clientGenerated": "Client {{id}} generated",
"zombie.deployStarted": "Deployment to {{host}} started",
"zombie.noAgentsSelected": "No agents selected for command.",
"zombie.loadingFiles": "Loading...",
"zombie.browseCommandSent": "Browse command sent. Check console for output.",
"zombie.browseCommandFailed": "Failed to send browse command",
"zombie.uploadStarted": "File {{name}} upload started.",
"zombie.uploadFailed": "Failed to upload file.",
"zombie.sshHost": "SSH Host",
"zombie.sshUser": "SSH User",
"zombie.sshPass": "SSH Pass",
"zombie.avgCpu": "Avg CPU",
"zombie.avgRam": "Avg RAM",
"zombie.total": "Total",
"zombie.online": "Online",
"nav.sentinel": "Sentinel",
"sentinel.title": "Sentinel Watchdog",
"sentinel.enabled": "Enabled",
"sentinel.disabled": "Disabled",
"sentinel.eventFeed": "Event Feed",
"sentinel.ackAll": "Ack All",
"sentinel.clearAll": "Clear All",
"sentinel.allAcked": "All events acknowledged",
"sentinel.confirmClear": "Clear all events? This cannot be undone.",
"sentinel.eventsCleared": "Events cleared",
"sentinel.noEvents": "No events yet. Sentinel monitors your network for anomalies.",
"sentinel.rules": "Rules",
"sentinel.devices": "Devices",
"sentinel.notifiers": "Notifiers",
"sentinel.statDevices": "Known Devices",
"sentinel.statAlive": "Alive",
"sentinel.statUnread": "Unread",
"sentinel.statEvents": "Total Events",
"sentinel.statRules": "Active Rules",
"sentinel.addRule": "Add Rule",
"sentinel.noRules": "No rules configured.",
"sentinel.ruleLogic": "Logic",
"sentinel.ruleActions": "Actions",
"sentinel.enable": "Enable",
"sentinel.disable": "Disable",
"sentinel.editRule": "Edit Rule",
"sentinel.deleteRule": "Delete Rule",
"sentinel.confirmDeleteRule": "Delete this rule?",
"sentinel.ruleDeleted": "Rule deleted",
"sentinel.ruleUpdated": "Rule updated",
"sentinel.ruleCreated": "Rule created",
"sentinel.ruleName": "Rule Name",
"sentinel.triggerType": "Trigger Type",
"sentinel.cooldown": "Cooldown",
"sentinel.conditions": "Conditions",
"sentinel.cancel": "Cancel",
"sentinel.save": "Save",
"sentinel.nameRequired": "Rule name is required",
"sentinel.noDevices": "No devices discovered yet.",
"sentinel.trusted": "Trusted",
"sentinel.untrusted": "Untrusted",
"sentinel.alias": "Alias",
"sentinel.expectedIps": "Expected IPs",
"sentinel.lastSeen": "Last seen",
"sentinel.deviceSaved": "Device updated",
"sentinel.discordWebhook": "Discord Webhook",
"sentinel.webhookUrl": "Webhook URL",
"sentinel.smtpHost": "SMTP Host",
"sentinel.smtpPort": "SMTP Port",
"sentinel.smtpUser": "SMTP User",
"sentinel.smtpPass": "SMTP Password",
"sentinel.emailFrom": "Email From",
"sentinel.emailTo": "Email To",
"sentinel.saveNotifiers": "Save Notifiers",
"sentinel.notifiersSaved": "Notifier config saved",
"sentinel.justNow": "just now",
"sentinel.acknowledge": "Acknowledge",
"nav.bifrost": "Bifrost",
"bifrost.title": "Bifrost",
"bifrost.enabled": "Enabled",
"bifrost.disabled": "Disabled",
"bifrost.activityFeed": "Activity Feed",
"bifrost.clearActivity": "Clear",
"bifrost.activityCleared": "Activity cleared",
"bifrost.noActivity": "No activity yet. Enable Bifrost to start WiFi recon.",
"bifrost.networks": "Networks",
"bifrost.plugins": "Plugins",
"bifrost.history": "History",
"bifrost.mood": "Mood",
"bifrost.statNetworks": "Networks",
"bifrost.statHandshakes": "Handshakes",
"bifrost.statDeauths": "Deauths",
"bifrost.statAssocs": "Assocs",
"bifrost.statEpochs": "Epochs",
"bifrost.statPeers": "Peers",
"bifrost.noNetworks": "No networks discovered yet.",
"bifrost.noPlugins": "No plugins loaded.",
"bifrost.noEpochs": "No epochs recorded yet.",
"bifrost.justNow": "just now",
"bifrost.confirmEnable": "Enable Bifrost mode? WiFi will be put in monitor mode — network connection will be lost. Connect via USB/Bluetooth/Ethernet instead.",
"bifrost.monitorFailed": "Monitor Mode Failed",
"bifrost.monitorFailedHint": "For Broadcom chips (Pi Zero), install nexmon. Or use an external USB WiFi adapter.",
"bifrost.nexmonRequired": "Nexmon Required",
"bifrost.nexmonRequiredDesc": "Your Broadcom WiFi chip needs nexmon firmware patches for monitor mode. Click below to auto-install (takes ~15-25 min on Pi Zero 2 W).",
"bifrost.nexmonInstallBtn": "Install Nexmon",
"bifrost.nexmonConfirm": "Install nexmon firmware patches? This will download and compile nexmon from source (~15-25 min). Requires internet access and root privileges.",
"bifrost.nexmonStarted": "Nexmon installation started ...",
"bifrost.nexmonInstalling": "Installing Nexmon ...",
"nav.loki": "Loki",
"loki.title": "Loki — HID Attack Suite",
"loki.enable": "Enable",
"loki.enabled_msg": "Loki mode enabled",
"loki.disabled_msg": "Loki mode disabled",
"loki.status_label": "Status",
"loki.gadget_label": "Gadget",
"loki.layout_label": "Layout",
"loki.jobs_label": "Jobs",
"loki.running": "Running",
"loki.running_lc": "running",
"loki.idle": "Idle",
"loki.ready": "Ready",
"loki.not_ready": "Not Ready",
"loki.not_installed": "Not Installed",
"loki.install_msg": "HID gadget not installed. Install it and reboot to enable Loki.",
"loki.install_btn": "Install HID Gadget & Reboot",
"loki.reboot_confirm": "HID gadget installed. Reboot now to activate?",
"loki.run": "Run",
"loki.save": "Save",
"loki.new": "New",
"loki.delete": "Delete",
"loki.cancel": "Cancel",
"loki.output": "Output",
"loki.payloads": "Payloads",
"loki.custom_scripts": "Custom Scripts",
"loki.jobs": "Jobs",
"loki.clear_completed": "Clear Completed",
"loki.script": "Script",
"loki.status_col": "Status",
"loki.started": "Started",
"loki.actions": "Actions",
"loki.no_payloads": "No built-in payloads",
"loki.no_scripts": "No saved scripts",
"loki.no_jobs": "No jobs yet",
"loki.no_output": "No output",
"loki.empty_script": "Script is empty",
"loki.job_started": "Job started: {id}",
"loki.run_error": "Failed to run script",
"loki.script_name_prompt": "Script name:",
"loki.saved": "Script saved",
"loki.save_error": "Failed to save script",
"loki.confirm_delete": "Delete script '{name}'?",
"loki.quick_placeholder": "Quick type text here...",
"loki.quick_send": "Type",
"loki.quick_sent": "Text sent to target",
"loki.quick_error": "Failed to send text"
}

View File

@@ -40,22 +40,40 @@
"settings.errorRestoring": "Error al restaurar valores predeterminados",
"theme.group.colors": "Colores",
"theme.group.surfaces": "Superficies",
"theme.group.borders": "Bordes",
"theme.group.controls": "Controles",
"theme.group.layout": "Diseño",
"theme.token.bg": "Fondo",
"theme.token.bg2": "Fondo Alt",
"theme.token.ink": "Color de texto",
"theme.token.muted": "Texto atenuado",
"theme.token.accent1": "Acento 1 (Ácido)",
"theme.token.accent2": "Acento 2 (Cian)",
"theme.token.accent": "Acento",
"theme.token.accentAlt": "Acento Alt",
"theme.token.danger": "Peligro",
"theme.token.warning": "Advertencia",
"theme.token.ok": "Éxito",
"theme.token.panel": "Panel",
"theme.token.panel2": "Panel Alt",
"theme.token.ctrlPanel": "Panel control",
"theme.token.ctrlPanel2": "Panel control Alt",
"theme.token.btnBg": "Fondo de botón",
"theme.token.border": "Borde",
"theme.token.borderStrong": "Borde fuerte",
"theme.token.borderHi": "Borde resaltado",
"theme.token.switchTrack": "Pista del interruptor",
"theme.token.switchOnBg": "Fondo interruptor activo",
"theme.token.scrollTrack": "Pista de la barra de desplazamiento",
"theme.token.scrollThumb": "Control de la barra de desplazamiento",
"theme.token.glass": "Superposición de cristal",
"theme.token.radius": "Radio de borde",
"theme.advanced": "CSS avanzado",
"theme.applyRaw": "Aplicar",
"theme.reset": "Restablecer",
"theme.reset": "Restablecer valores predeterminados",
"theme.export": "Exportar tema",
"theme.import": "Importar tema",
"theme.importError": "Archivo de tema no válido",
"dash.title": "Panel de control",
"dash.battery": "Batería",
"dash.internet": "Internet",
@@ -777,5 +795,137 @@
"api.timeout": "La solicitud ha expirado",
"api.failed": "La solicitud ha fallado",
"router.notFound": "Página no encontrada: {{path}}",
"router.errorLoading": "Error al cargar la página: {{message}}"
"router.errorLoading": "Error al cargar la página: {{message}}",
"nav.sentinel": "Sentinel",
"sentinel.title": "Sentinel Vigilante",
"sentinel.enabled": "Activado",
"sentinel.disabled": "Desactivado",
"sentinel.eventFeed": "Eventos",
"sentinel.ackAll": "Confirmar todos",
"sentinel.clearAll": "Borrar todos",
"sentinel.allAcked": "Todos los eventos confirmados",
"sentinel.confirmClear": "¿Borrar todos los eventos? Esta acción es irreversible.",
"sentinel.eventsCleared": "Eventos borrados",
"sentinel.noEvents": "Aún no hay eventos. Sentinel vigila tu red en busca de anomalías.",
"sentinel.rules": "Reglas",
"sentinel.devices": "Dispositivos",
"sentinel.notifiers": "Notificadores",
"sentinel.statDevices": "Dispositivos conocidos",
"sentinel.statAlive": "Activos",
"sentinel.statUnread": "Sin leer",
"sentinel.statEvents": "Eventos totales",
"sentinel.statRules": "Reglas activas",
"sentinel.addRule": "Añadir regla",
"sentinel.noRules": "No hay reglas configuradas.",
"sentinel.ruleLogic": "Lógica",
"sentinel.ruleActions": "Acciones",
"sentinel.enable": "Activar",
"sentinel.disable": "Desactivar",
"sentinel.editRule": "Editar regla",
"sentinel.deleteRule": "Eliminar regla",
"sentinel.confirmDeleteRule": "¿Eliminar esta regla?",
"sentinel.ruleDeleted": "Regla eliminada",
"sentinel.ruleUpdated": "Regla actualizada",
"sentinel.ruleCreated": "Regla creada",
"sentinel.ruleName": "Nombre de regla",
"sentinel.triggerType": "Tipo de activación",
"sentinel.cooldown": "Cooldown",
"sentinel.conditions": "Condiciones",
"sentinel.cancel": "Cancelar",
"sentinel.save": "Guardar",
"sentinel.nameRequired": "El nombre de la regla es obligatorio",
"sentinel.noDevices": "Aún no se han descubierto dispositivos.",
"sentinel.trusted": "De confianza",
"sentinel.untrusted": "No confiable",
"sentinel.alias": "Alias",
"sentinel.expectedIps": "IPs esperadas",
"sentinel.lastSeen": "Última vez visto",
"sentinel.deviceSaved": "Dispositivo actualizado",
"sentinel.discordWebhook": "Discord Webhook",
"sentinel.webhookUrl": "Webhook URL",
"sentinel.smtpHost": "SMTP Host",
"sentinel.smtpPort": "SMTP Port",
"sentinel.smtpUser": "SMTP Usuario",
"sentinel.smtpPass": "SMTP Contraseña",
"sentinel.emailFrom": "Correo remitente",
"sentinel.emailTo": "Correo destinatario",
"sentinel.saveNotifiers": "Guardar notificadores",
"sentinel.notifiersSaved": "Configuración de notificadores guardada",
"sentinel.justNow": "ahora mismo",
"sentinel.acknowledge": "Confirmar",
"nav.bifrost": "Bifrost",
"bifrost.title": "Bifrost",
"bifrost.enabled": "Activado",
"bifrost.disabled": "Desactivado",
"bifrost.activityFeed": "Feed de actividad",
"bifrost.clearActivity": "Limpiar",
"bifrost.activityCleared": "Actividad limpiada",
"bifrost.noActivity": "Sin actividad. Active Bifrost para iniciar el reconocimiento WiFi.",
"bifrost.networks": "Redes",
"bifrost.plugins": "Plugins",
"bifrost.history": "Historial",
"bifrost.mood": "Estado",
"bifrost.statNetworks": "Redes",
"bifrost.statHandshakes": "Handshakes",
"bifrost.statDeauths": "Deauths",
"bifrost.statAssocs": "Asocs",
"bifrost.statEpochs": "Épocas",
"bifrost.statPeers": "Pares",
"bifrost.noNetworks": "Aún no se han descubierto redes.",
"bifrost.noPlugins": "No hay plugins cargados.",
"bifrost.noEpochs": "Aún no se han registrado épocas.",
"bifrost.justNow": "ahora mismo",
"bifrost.confirmEnable": "¿Activar el modo Bifrost? El WiFi se pondrá en modo monitor — se perderá la conexión de red. Conéctese por USB/Bluetooth/Ethernet.",
"bifrost.monitorFailed": "Modo Monitor Fallido",
"bifrost.monitorFailedHint": "Para chips Broadcom (Pi Zero), instale nexmon. O use un adaptador WiFi USB externo.",
"bifrost.nexmonRequired": "Nexmon requerido",
"bifrost.nexmonRequiredDesc": "Su chip WiFi Broadcom necesita los parches de firmware nexmon para el modo monitor. Haga clic para auto-instalar (~15-25 min en Pi Zero 2 W).",
"bifrost.nexmonInstallBtn": "Instalar Nexmon",
"bifrost.nexmonConfirm": "¿Instalar parches de firmware nexmon? Esto descargará y compilará nexmon (~15-25 min). Requiere acceso a internet y privilegios root.",
"bifrost.nexmonStarted": "Instalación de nexmon iniciada ...",
"bifrost.nexmonInstalling": "Instalando Nexmon ...",
"nav.loki": "Loki",
"loki.title": "Loki — Suite de ataque HID",
"loki.enable": "Activar",
"loki.enabled_msg": "Modo Loki activado",
"loki.disabled_msg": "Modo Loki desactivado",
"loki.status_label": "Estado",
"loki.gadget_label": "Gadget",
"loki.layout_label": "Disposición",
"loki.jobs_label": "Trabajos",
"loki.running": "En ejecución",
"loki.running_lc": "en ejecución",
"loki.idle": "Inactivo",
"loki.ready": "Listo",
"loki.not_ready": "No listo",
"loki.run": "Ejecutar",
"loki.save": "Guardar",
"loki.new": "Nuevo",
"loki.delete": "Eliminar",
"loki.cancel": "Cancelar",
"loki.output": "Salida",
"loki.payloads": "Cargas útiles",
"loki.custom_scripts": "Scripts personalizados",
"loki.jobs": "Trabajos",
"loki.clear_completed": "Limpiar completados",
"loki.script": "Script",
"loki.status_col": "Estado",
"loki.started": "Iniciado",
"loki.actions": "Acciones",
"loki.no_payloads": "Sin cargas útiles integradas",
"loki.no_scripts": "Sin scripts guardados",
"loki.no_jobs": "Sin trabajos aún",
"loki.no_output": "Sin salida",
"loki.empty_script": "El script está vacío",
"loki.job_started": "Trabajo iniciado: {id}",
"loki.run_error": "Error al ejecutar el script",
"loki.script_name_prompt": "Nombre del script:",
"loki.saved": "Script guardado",
"loki.save_error": "Error al guardar el script",
"loki.confirm_delete": "¿Eliminar script '{name}'?",
"loki.quick_placeholder": "Escribir texto rápido aquí...",
"loki.quick_send": "Escribir",
"loki.quick_sent": "Texto enviado al objetivo",
"loki.quick_error": "Error al enviar texto"
}

View File

@@ -41,22 +41,40 @@
"settings.errorRestoring": "Erreur lors de la restauration des valeurs par défaut",
"theme.group.colors": "Couleurs",
"theme.group.surfaces": "Surfaces",
"theme.group.borders": "Bordures",
"theme.group.controls": "Contrôles",
"theme.group.layout": "Disposition",
"theme.token.bg": "Arrière-plan",
"theme.token.bg2": "Arrière-plan Alt",
"theme.token.ink": "Couleur du texte",
"theme.token.muted": "Texte atténué",
"theme.token.accent1": "Accent 1 (Acide)",
"theme.token.accent2": "Accent 2 (Cyan)",
"theme.token.accent": "Accent",
"theme.token.accentAlt": "Accent Alt",
"theme.token.danger": "Danger",
"theme.token.warning": "Avertissement",
"theme.token.ok": "Succès",
"theme.token.panel": "Panneau",
"theme.token.panel2": "Panneau Alt",
"theme.token.ctrlPanel": "Panneau contrôle",
"theme.token.ctrlPanel2": "Panneau contrôle Alt",
"theme.token.btnBg": "Fond bouton",
"theme.token.border": "Bordure",
"theme.token.borderStrong": "Bordure forte",
"theme.token.borderHi": "Bordure vive",
"theme.token.switchTrack": "Piste interrupteur",
"theme.token.switchOnBg": "Fond interrupteur actif",
"theme.token.scrollTrack": "Piste défilement",
"theme.token.scrollThumb": "Poignée défilement",
"theme.token.glass": "Overlay verre",
"theme.token.radius": "Rayon de bordure",
"theme.advanced": "CSS avancé",
"theme.applyRaw": "Appliquer",
"theme.reset": "Réinitialiser",
"theme.export": "Exporter le thème",
"theme.import": "Importer un thème",
"theme.importError": "Fichier thème invalide",
"dash.title": "Tableau de bord",
"dash.battery": "Batterie",
"dash.internet": "Internet",
@@ -778,5 +796,141 @@
"api.timeout": "La requête a expiré",
"api.failed": "La requête a échoué",
"router.notFound": "Page non trouvée : {{path}}",
"router.errorLoading": "Erreur lors du chargement de la page : {{message}}"
"router.errorLoading": "Erreur lors du chargement de la page : {{message}}",
"nav.sentinel": "Sentinelle",
"sentinel.title": "Sentinelle Watchdog",
"sentinel.enabled": "Activé",
"sentinel.disabled": "Désactivé",
"sentinel.eventFeed": "Flux d'événements",
"sentinel.ackAll": "Tout ack.",
"sentinel.clearAll": "Tout effacer",
"sentinel.allAcked": "Tous les événements acquittés",
"sentinel.confirmClear": "Effacer tous les événements ? Cette action est irréversible.",
"sentinel.eventsCleared": "Événements effacés",
"sentinel.noEvents": "Aucun événement. Sentinel surveille votre réseau.",
"sentinel.rules": "Règles",
"sentinel.devices": "Appareils",
"sentinel.notifiers": "Notifications",
"sentinel.statDevices": "Appareils connus",
"sentinel.statAlive": "En ligne",
"sentinel.statUnread": "Non lus",
"sentinel.statEvents": "Total événements",
"sentinel.statRules": "Règles actives",
"sentinel.addRule": "Ajouter une règle",
"sentinel.noRules": "Aucune règle configurée.",
"sentinel.ruleLogic": "Logique",
"sentinel.ruleActions": "Actions",
"sentinel.enable": "Activer",
"sentinel.disable": "Désactiver",
"sentinel.editRule": "Modifier la règle",
"sentinel.deleteRule": "Supprimer la règle",
"sentinel.confirmDeleteRule": "Supprimer cette règle ?",
"sentinel.ruleDeleted": "Règle supprimée",
"sentinel.ruleUpdated": "Règle mise à jour",
"sentinel.ruleCreated": "Règle créée",
"sentinel.ruleName": "Nom de la règle",
"sentinel.triggerType": "Type de déclencheur",
"sentinel.cooldown": "Délai de récupération",
"sentinel.conditions": "Conditions",
"sentinel.cancel": "Annuler",
"sentinel.save": "Enregistrer",
"sentinel.nameRequired": "Le nom de la règle est requis",
"sentinel.noDevices": "Aucun appareil découvert.",
"sentinel.trusted": "Fiable",
"sentinel.untrusted": "Non fiable",
"sentinel.alias": "Alias",
"sentinel.expectedIps": "IPs attendues",
"sentinel.lastSeen": "Vu en dernier",
"sentinel.deviceSaved": "Appareil mis à jour",
"sentinel.discordWebhook": "Webhook Discord",
"sentinel.webhookUrl": "URL Webhook",
"sentinel.smtpHost": "Hôte SMTP",
"sentinel.smtpPort": "Port SMTP",
"sentinel.smtpUser": "Utilisateur SMTP",
"sentinel.smtpPass": "Mot de passe SMTP",
"sentinel.emailFrom": "Email expéditeur",
"sentinel.emailTo": "Email destinataire",
"sentinel.saveNotifiers": "Sauvegarder",
"sentinel.notifiersSaved": "Configuration sauvegardée",
"sentinel.justNow": "à l'instant",
"sentinel.acknowledge": "Acquitter",
"nav.bifrost": "Bifrost",
"bifrost.title": "Bifrost",
"bifrost.enabled": "Activé",
"bifrost.disabled": "Désactivé",
"bifrost.activityFeed": "Fil d'activité",
"bifrost.clearActivity": "Effacer",
"bifrost.activityCleared": "Activité effacée",
"bifrost.noActivity": "Aucune activité. Activez Bifrost pour lancer la reconnaissance WiFi.",
"bifrost.networks": "Réseaux",
"bifrost.plugins": "Plugins",
"bifrost.history": "Historique",
"bifrost.mood": "Humeur",
"bifrost.statNetworks": "Réseaux",
"bifrost.statHandshakes": "Handshakes",
"bifrost.statDeauths": "Déauths",
"bifrost.statAssocs": "Assocs",
"bifrost.statEpochs": "Époques",
"bifrost.statPeers": "Pairs",
"bifrost.noNetworks": "Aucun réseau découvert.",
"bifrost.noPlugins": "Aucun plugin chargé.",
"bifrost.noEpochs": "Aucune époque enregistrée.",
"bifrost.justNow": "à l'instant",
"bifrost.confirmEnable": "Activer le mode Bifrost ? Le WiFi passera en mode monitor — la connexion réseau sera perdue. Connectez-vous via USB/Bluetooth/Ethernet.",
"bifrost.monitorFailed": "Mode Moniteur Échoué",
"bifrost.monitorFailedHint": "Pour les puces Broadcom (Pi Zero), installez nexmon. Ou utilisez un adaptateur WiFi USB externe.",
"bifrost.nexmonRequired": "Nexmon requis",
"bifrost.nexmonRequiredDesc": "Votre puce WiFi Broadcom nécessite les patchs firmware nexmon pour le mode moniteur. Cliquez pour auto-installer (~15-25 min sur Pi Zero 2 W).",
"bifrost.nexmonInstallBtn": "Installer Nexmon",
"bifrost.nexmonConfirm": "Installer les patchs firmware nexmon ? Cela va télécharger et compiler nexmon (~15-25 min). Nécessite un accès internet et les droits root.",
"bifrost.nexmonStarted": "Installation de nexmon lancée ...",
"bifrost.nexmonInstalling": "Installation de Nexmon ...",
"nav.loki": "Loki",
"loki.title": "Loki — Suite d'attaque HID",
"loki.enable": "Activer",
"loki.enabled_msg": "Mode Loki activé",
"loki.disabled_msg": "Mode Loki désactivé",
"loki.status_label": "Statut",
"loki.gadget_label": "Gadget",
"loki.layout_label": "Disposition",
"loki.jobs_label": "Tâches",
"loki.running": "En cours",
"loki.running_lc": "en cours",
"loki.idle": "Inactif",
"loki.ready": "Prêt",
"loki.not_ready": "Non prêt",
"loki.not_installed": "Non installé",
"loki.install_msg": "Le gadget HID n'est pas installé. Installez-le et redémarrez pour activer Loki.",
"loki.install_btn": "Installer le gadget HID & Redémarrer",
"loki.reboot_confirm": "Gadget HID installé. Redémarrer maintenant pour activer ?",
"loki.run": "Exécuter",
"loki.save": "Sauvegarder",
"loki.new": "Nouveau",
"loki.delete": "Supprimer",
"loki.cancel": "Annuler",
"loki.output": "Sortie",
"loki.payloads": "Charges utiles",
"loki.custom_scripts": "Scripts personnalisés",
"loki.jobs": "Tâches",
"loki.clear_completed": "Effacer terminés",
"loki.script": "Script",
"loki.status_col": "Statut",
"loki.started": "Démarré",
"loki.actions": "Actions",
"loki.no_payloads": "Aucune charge utile",
"loki.no_scripts": "Aucun script sauvegardé",
"loki.no_jobs": "Aucune tâche",
"loki.no_output": "Aucune sortie",
"loki.empty_script": "Script vide",
"loki.job_started": "Tâche démarrée : {id}",
"loki.run_error": "Échec de l'exécution",
"loki.script_name_prompt": "Nom du script :",
"loki.saved": "Script sauvegardé",
"loki.save_error": "Échec de la sauvegarde",
"loki.confirm_delete": "Supprimer le script '{name}' ?",
"loki.quick_placeholder": "Taper du texte ici...",
"loki.quick_send": "Taper",
"loki.quick_sent": "Texte envoyé à la cible",
"loki.quick_error": "Échec de l'envoi"
}

View File

@@ -40,22 +40,40 @@
"settings.errorRestoring": "Errore nel ripristino dei valori predefiniti",
"theme.group.colors": "Colori",
"theme.group.surfaces": "Superfici",
"theme.group.borders": "Bordi",
"theme.group.controls": "Controlli",
"theme.group.layout": "Disposizione",
"theme.token.bg": "Sfondo",
"theme.token.bg2": "Sfondo Alt",
"theme.token.ink": "Colore testo",
"theme.token.muted": "Testo attenuato",
"theme.token.accent1": "Accento 1 (Acido)",
"theme.token.accent2": "Accento 2 (Ciano)",
"theme.token.accent": "Accento",
"theme.token.accentAlt": "Accento Alt",
"theme.token.danger": "Pericolo",
"theme.token.warning": "Avviso",
"theme.token.ok": "Successo",
"theme.token.panel": "Pannello",
"theme.token.panel2": "Pannello Alt",
"theme.token.ctrlPanel": "Pannello controllo",
"theme.token.ctrlPanel2": "Pannello controllo Alt",
"theme.token.btnBg": "Sfondo pulsante",
"theme.token.border": "Bordo",
"theme.token.borderStrong": "Bordo forte",
"theme.token.borderHi": "Bordo evidenziato",
"theme.token.switchTrack": "Traccia interruttore",
"theme.token.switchOnBg": "Sfondo interruttore attivo",
"theme.token.scrollTrack": "Traccia barra di scorrimento",
"theme.token.scrollThumb": "Cursore barra di scorrimento",
"theme.token.glass": "Sovrapposizione vetro",
"theme.token.radius": "Raggio bordo",
"theme.advanced": "CSS avanzato",
"theme.applyRaw": "Applica",
"theme.reset": "Ripristina",
"theme.reset": "Ripristina predefinito",
"theme.export": "Esporta tema",
"theme.import": "Importa tema",
"theme.importError": "File tema non valido",
"dash.title": "Cruscotto",
"dash.battery": "Batteria",
"dash.internet": "Internet",
@@ -777,5 +795,137 @@
"api.timeout": "La richiesta è scaduta",
"api.failed": "La richiesta è fallita",
"router.notFound": "Pagina non trovata : {{path}}",
"router.errorLoading": "Errore nel caricamento della pagina : {{message}}"
"router.errorLoading": "Errore nel caricamento della pagina : {{message}}",
"nav.sentinel": "Sentinel",
"sentinel.title": "Sentinel Watchdog",
"sentinel.enabled": "Abilitato",
"sentinel.disabled": "Disabilitato",
"sentinel.eventFeed": "Feed eventi",
"sentinel.ackAll": "Conferma tutti",
"sentinel.clearAll": "Cancella tutti",
"sentinel.allAcked": "Tutti gli eventi confermati",
"sentinel.confirmClear": "Cancellare tutti gli eventi? Azione irreversibile.",
"sentinel.eventsCleared": "Eventi cancellati",
"sentinel.noEvents": "Nessun evento per ora. Sentinel monitora la rete alla ricerca di anomalie.",
"sentinel.rules": "Regole",
"sentinel.devices": "Dispositivi",
"sentinel.notifiers": "Notifiche",
"sentinel.statDevices": "Dispositivi noti",
"sentinel.statAlive": "Attivi",
"sentinel.statUnread": "Non letti",
"sentinel.statEvents": "Eventi totali",
"sentinel.statRules": "Regole attive",
"sentinel.addRule": "Aggiungi regola",
"sentinel.noRules": "Nessuna regola configurata.",
"sentinel.ruleLogic": "Logica",
"sentinel.ruleActions": "Azioni",
"sentinel.enable": "Abilita",
"sentinel.disable": "Disabilita",
"sentinel.editRule": "Modifica regola",
"sentinel.deleteRule": "Elimina regola",
"sentinel.confirmDeleteRule": "Eliminare questa regola?",
"sentinel.ruleDeleted": "Regola eliminata",
"sentinel.ruleUpdated": "Regola aggiornata",
"sentinel.ruleCreated": "Regola creata",
"sentinel.ruleName": "Nome regola",
"sentinel.triggerType": "Tipo di attivazione",
"sentinel.cooldown": "Cooldown",
"sentinel.conditions": "Condizioni",
"sentinel.cancel": "Annulla",
"sentinel.save": "Salva",
"sentinel.nameRequired": "Il nome della regola è obbligatorio",
"sentinel.noDevices": "Nessun dispositivo scoperto.",
"sentinel.trusted": "Attendibile",
"sentinel.untrusted": "Non attendibile",
"sentinel.alias": "Alias",
"sentinel.expectedIps": "IP previsti",
"sentinel.lastSeen": "Ultima vista",
"sentinel.deviceSaved": "Dispositivo aggiornato",
"sentinel.discordWebhook": "Discord Webhook",
"sentinel.webhookUrl": "Webhook URL",
"sentinel.smtpHost": "SMTP Host",
"sentinel.smtpPort": "SMTP Port",
"sentinel.smtpUser": "SMTP Utente",
"sentinel.smtpPass": "SMTP Password",
"sentinel.emailFrom": "E-mail mittente",
"sentinel.emailTo": "E-mail destinatario",
"sentinel.saveNotifiers": "Salva notifiche",
"sentinel.notifiersSaved": "Configurazione notifiche salvata",
"sentinel.justNow": "adesso",
"sentinel.acknowledge": "Conferma",
"nav.bifrost": "Bifrost",
"bifrost.title": "Bifrost",
"bifrost.enabled": "Attivato",
"bifrost.disabled": "Disattivato",
"bifrost.activityFeed": "Feed attività",
"bifrost.clearActivity": "Cancella",
"bifrost.activityCleared": "Attività cancellata",
"bifrost.noActivity": "Nessuna attività. Attiva Bifrost per la ricognizione WiFi.",
"bifrost.networks": "Reti",
"bifrost.plugins": "Plugin",
"bifrost.history": "Cronologia",
"bifrost.mood": "Umore",
"bifrost.statNetworks": "Reti",
"bifrost.statHandshakes": "Handshake",
"bifrost.statDeauths": "Deauth",
"bifrost.statAssocs": "Assoc",
"bifrost.statEpochs": "Epoche",
"bifrost.statPeers": "Peer",
"bifrost.noNetworks": "Nessuna rete scoperta.",
"bifrost.noPlugins": "Nessun plugin caricato.",
"bifrost.noEpochs": "Nessuna epoca registrata.",
"bifrost.justNow": "proprio ora",
"bifrost.confirmEnable": "Attivare la modalità Bifrost? Il WiFi verrà messo in modalità monitor — la connessione di rete andrà persa. Collegati tramite USB/Bluetooth/Ethernet.",
"bifrost.monitorFailed": "Modalità Monitor Fallita",
"bifrost.monitorFailedHint": "Per chip Broadcom (Pi Zero), installa nexmon. O usa un adattatore WiFi USB esterno.",
"bifrost.nexmonRequired": "Nexmon richiesto",
"bifrost.nexmonRequiredDesc": "Il tuo chip WiFi Broadcom necessita delle patch firmware nexmon per la modalità monitor. Clicca per auto-installare (~15-25 min su Pi Zero 2 W).",
"bifrost.nexmonInstallBtn": "Installa Nexmon",
"bifrost.nexmonConfirm": "Installare le patch firmware nexmon? Questo scaricherà e compilerà nexmon (~15-25 min). Richiede accesso internet e privilegi root.",
"bifrost.nexmonStarted": "Installazione di nexmon avviata ...",
"bifrost.nexmonInstalling": "Installazione di Nexmon ...",
"nav.loki": "Loki",
"loki.title": "Loki — Suite di attacco HID",
"loki.enable": "Abilita",
"loki.enabled_msg": "Modalità Loki abilitata",
"loki.disabled_msg": "Modalità Loki disabilitata",
"loki.status_label": "Stato",
"loki.gadget_label": "Gadget",
"loki.layout_label": "Layout",
"loki.jobs_label": "Lavori",
"loki.running": "In esecuzione",
"loki.running_lc": "in esecuzione",
"loki.idle": "Inattivo",
"loki.ready": "Pronto",
"loki.not_ready": "Non pronto",
"loki.run": "Esegui",
"loki.save": "Salva",
"loki.new": "Nuovo",
"loki.delete": "Elimina",
"loki.cancel": "Annulla",
"loki.output": "Output",
"loki.payloads": "Payload",
"loki.custom_scripts": "Script personalizzati",
"loki.jobs": "Lavori",
"loki.clear_completed": "Elimina completati",
"loki.script": "Script",
"loki.status_col": "Stato",
"loki.started": "Avviato",
"loki.actions": "Azioni",
"loki.no_payloads": "Nessun payload integrato",
"loki.no_scripts": "Nessuno script salvato",
"loki.no_jobs": "Nessun lavoro ancora",
"loki.no_output": "Nessun output",
"loki.empty_script": "Lo script è vuoto",
"loki.job_started": "Lavoro avviato: {id}",
"loki.run_error": "Impossibile eseguire lo script",
"loki.script_name_prompt": "Nome dello script:",
"loki.saved": "Script salvato",
"loki.save_error": "Impossibile salvare lo script",
"loki.confirm_delete": "Eliminare lo script '{name}'?",
"loki.quick_placeholder": "Digita testo rapido qui...",
"loki.quick_send": "Digita",
"loki.quick_sent": "Testo inviato al target",
"loki.quick_error": "Impossibile inviare il testo"
}

View File

@@ -40,22 +40,40 @@
"settings.errorRestoring": "Ошибка восстановления настроек по умолчанию",
"theme.group.colors": "Цвета",
"theme.group.surfaces": "Поверхности",
"theme.group.borders": "Границы",
"theme.group.controls": "Элементы управления",
"theme.group.layout": "Макет",
"theme.token.bg": "Фон",
"theme.token.bg2": "Фон Альт",
"theme.token.ink": "Цвет текста",
"theme.token.muted": "Приглушённый текст",
"theme.token.accent1": "Акцент 1 (Кислотный)",
"theme.token.accent2": "Акцент 2 (Циан)",
"theme.token.accent": "Акцент",
"theme.token.accentAlt": "Акцент Альт",
"theme.token.danger": "Опасно",
"theme.token.warning": "Предупреждение",
"theme.token.ok": "Успех",
"theme.token.panel": "Панель",
"theme.token.panel2": "Панель Альт",
"theme.token.ctrlPanel": "Панель управления",
"theme.token.ctrlPanel2": "Панель управления Альт",
"theme.token.btnBg": "Фон кнопки",
"theme.token.border": "Рамка",
"theme.token.borderStrong": "Усиленная рамка",
"theme.token.borderHi": "Подсветка рамки",
"theme.token.switchTrack": "Дорожка переключателя",
"theme.token.switchOnBg": "Фон включённого переключателя",
"theme.token.scrollTrack": "Дорожка прокрутки",
"theme.token.scrollThumb": "Ползунок прокрутки",
"theme.token.glass": "Стеклянное наложение",
"theme.token.radius": "Радиус рамки",
"theme.advanced": "Продвинутый CSS",
"theme.applyRaw": "Применить",
"theme.reset": "Сбросить",
"theme.reset": "Сбросить по умолчанию",
"theme.export": "Экспорт темы",
"theme.import": "Импорт темы",
"theme.importError": "Недопустимый файл темы",
"dash.title": "Панель управления",
"dash.battery": "Батарея",
"dash.internet": "Интернет",
@@ -777,5 +795,137 @@
"api.timeout": "Время запроса истекло",
"api.failed": "Запрос не удался",
"router.notFound": "Страница не найдена: {{path}}",
"router.errorLoading": "Ошибка при загрузке страницы: {{message}}"
"router.errorLoading": "Ошибка при загрузке страницы: {{message}}",
"nav.sentinel": "Sentinel",
"sentinel.title": "Sentinel Сторожевой",
"sentinel.enabled": "Включено",
"sentinel.disabled": "Выключено",
"sentinel.eventFeed": "Лента событий",
"sentinel.ackAll": "Подтвердить все",
"sentinel.clearAll": "Очистить все",
"sentinel.allAcked": "Все события подтверждены",
"sentinel.confirmClear": "Очистить все события? Это действие необратимо.",
"sentinel.eventsCleared": "События очищены",
"sentinel.noEvents": "Пока нет событий. Sentinel следит за вашей сетью на предмет аномалий.",
"sentinel.rules": "Правила",
"sentinel.devices": "Устройства",
"sentinel.notifiers": "Уведомления",
"sentinel.statDevices": "Известные устройства",
"sentinel.statAlive": "Активные",
"sentinel.statUnread": "Непрочитанные",
"sentinel.statEvents": "Всего событий",
"sentinel.statRules": "Активные правила",
"sentinel.addRule": "Добавить правило",
"sentinel.noRules": "Правила не настроены.",
"sentinel.ruleLogic": "Логика",
"sentinel.ruleActions": "Действия",
"sentinel.enable": "Включить",
"sentinel.disable": "Выключить",
"sentinel.editRule": "Редактировать правило",
"sentinel.deleteRule": "Удалить правило",
"sentinel.confirmDeleteRule": "Удалить это правило?",
"sentinel.ruleDeleted": "Правило удалено",
"sentinel.ruleUpdated": "Правило обновлено",
"sentinel.ruleCreated": "Правило создано",
"sentinel.ruleName": "Название правила",
"sentinel.triggerType": "Тип триггера",
"sentinel.cooldown": "Cooldown",
"sentinel.conditions": "Условия",
"sentinel.cancel": "Отмена",
"sentinel.save": "Сохранить",
"sentinel.nameRequired": "Название правила обязательно",
"sentinel.noDevices": "Устройства пока не обнаружены.",
"sentinel.trusted": "Доверенное",
"sentinel.untrusted": "Недоверенное",
"sentinel.alias": "Псевдоним",
"sentinel.expectedIps": "Ожидаемые IP",
"sentinel.lastSeen": "Последний раз в сети",
"sentinel.deviceSaved": "Устройство обновлено",
"sentinel.discordWebhook": "Discord Webhook",
"sentinel.webhookUrl": "Webhook URL",
"sentinel.smtpHost": "SMTP Host",
"sentinel.smtpPort": "SMTP Port",
"sentinel.smtpUser": "SMTP Пользователь",
"sentinel.smtpPass": "SMTP Пароль",
"sentinel.emailFrom": "E-mail отправителя",
"sentinel.emailTo": "E-mail получателя",
"sentinel.saveNotifiers": "Сохранить уведомления",
"sentinel.notifiersSaved": "Настройки уведомлений сохранены",
"sentinel.justNow": "только что",
"sentinel.acknowledge": "Подтвердить",
"nav.bifrost": "Бифрост",
"bifrost.title": "Бифрост",
"bifrost.enabled": "Включено",
"bifrost.disabled": "Выключено",
"bifrost.activityFeed": "Лента активности",
"bifrost.clearActivity": "Очистить",
"bifrost.activityCleared": "Активность очищена",
"bifrost.noActivity": "Нет активности. Включите Bifrost для разведки WiFi.",
"bifrost.networks": "Сети",
"bifrost.plugins": "Плагины",
"bifrost.history": "История",
"bifrost.mood": "Настроение",
"bifrost.statNetworks": "Сети",
"bifrost.statHandshakes": "Рукопожатия",
"bifrost.statDeauths": "Деаутент.",
"bifrost.statAssocs": "Ассоц.",
"bifrost.statEpochs": "Эпохи",
"bifrost.statPeers": "Пиры",
"bifrost.noNetworks": "Сети пока не обнаружены.",
"bifrost.noPlugins": "Плагины не загружены.",
"bifrost.noEpochs": "Эпохи ещё не записаны.",
"bifrost.justNow": "только что",
"bifrost.confirmEnable": "Включить режим Bifrost? WiFi перейдёт в режим мониторинга — сетевое подключение будет потеряно. Подключайтесь через USB/Bluetooth/Ethernet.",
"bifrost.monitorFailed": "Режим мониторинга не работает",
"bifrost.monitorFailedHint": "Для чипов Broadcom (Pi Zero) установите nexmon. Или используйте внешний USB WiFi адаптер.",
"bifrost.nexmonRequired": "Требуется Nexmon",
"bifrost.nexmonRequiredDesc": "Вашему WiFi чипу Broadcom нужны патчи прошивки nexmon для режима мониторинга. Нажмите для авто-установки (~15-25 мин на Pi Zero 2 W).",
"bifrost.nexmonInstallBtn": "Установить Nexmon",
"bifrost.nexmonConfirm": "Установить патчи прошивки nexmon? Это загрузит и скомпилирует nexmon (~15-25 мин). Требуется доступ в интернет и права root.",
"bifrost.nexmonStarted": "Установка nexmon начата ...",
"bifrost.nexmonInstalling": "Установка Nexmon ...",
"nav.loki": "Loki",
"loki.title": "Loki — HID Атака",
"loki.enable": "Включить",
"loki.enabled_msg": "Режим Loki включён",
"loki.disabled_msg": "Режим Loki выключен",
"loki.status_label": "Статус",
"loki.gadget_label": "Гаджет",
"loki.layout_label": "Раскладка",
"loki.jobs_label": "Задачи",
"loki.running": "Работает",
"loki.running_lc": "работает",
"loki.idle": "Простой",
"loki.ready": "Готов",
"loki.not_ready": "Не готов",
"loki.run": "Запустить",
"loki.save": "Сохранить",
"loki.new": "Новый",
"loki.delete": "Удалить",
"loki.cancel": "Отмена",
"loki.output": "Вывод",
"loki.payloads": "Нагрузки",
"loki.custom_scripts": "Пользовательские скрипты",
"loki.jobs": "Задачи",
"loki.clear_completed": "Очистить завершённые",
"loki.script": "Скрипт",
"loki.status_col": "Статус",
"loki.started": "Запущено",
"loki.actions": "Действия",
"loki.no_payloads": "Нет встроенных нагрузок",
"loki.no_scripts": "Нет сохранённых скриптов",
"loki.no_jobs": "Задач пока нет",
"loki.no_output": "Нет вывода",
"loki.empty_script": "Скрипт пуст",
"loki.job_started": "Задача запущена: {id}",
"loki.run_error": "Не удалось запустить скрипт",
"loki.script_name_prompt": "Имя скрипта:",
"loki.saved": "Скрипт сохранён",
"loki.save_error": "Не удалось сохранить скрипт",
"loki.confirm_delete": "Удалить скрипт '{name}'?",
"loki.quick_placeholder": "Введите текст здесь...",
"loki.quick_send": "Ввод",
"loki.quick_sent": "Текст отправлен на цель",
"loki.quick_error": "Не удалось отправить текст"
}

View File

@@ -40,22 +40,40 @@
"settings.errorRestoring": "恢复默认值时出错",
"theme.group.colors": "颜色",
"theme.group.surfaces": "界面",
"theme.group.borders": "边框",
"theme.group.controls": "控件",
"theme.group.layout": "布局",
"theme.token.bg": "背景",
"theme.token.bg2": "备选背景",
"theme.token.ink": "文字颜色",
"theme.token.muted": "弱化文字",
"theme.token.accent1": "强调色 1 (酸性)",
"theme.token.accent2": "强调色 2 (青色)",
"theme.token.accent": "强调色",
"theme.token.accentAlt": "备选强调色",
"theme.token.danger": "危险",
"theme.token.warning": "警告",
"theme.token.ok": "成功",
"theme.token.panel": "面板",
"theme.token.panel2": "备选面板",
"theme.token.ctrlPanel": "控制面板",
"theme.token.ctrlPanel2": "备选控制面板",
"theme.token.btnBg": "按钮背景",
"theme.token.border": "边框",
"theme.token.borderStrong": "加粗边框",
"theme.token.borderHi": "高亮边框",
"theme.token.switchTrack": "开关轨道",
"theme.token.switchOnBg": "开关开启背景",
"theme.token.scrollTrack": "滚动条轨道",
"theme.token.scrollThumb": "滚动条滑块",
"theme.token.glass": "玻璃覆盖层",
"theme.token.radius": "圆角",
"theme.advanced": "高级 CSS",
"theme.applyRaw": "应用",
"theme.reset": "重置",
"theme.reset": "恢复默认",
"theme.export": "导出主题",
"theme.import": "导入主题",
"theme.importError": "无效的主题文件",
"dash.title": "仪表盘",
"dash.battery": "电池",
"dash.internet": "互联网",
@@ -777,5 +795,137 @@
"api.timeout": "请求超时",
"api.failed": "请求失败",
"router.notFound": "页面未找到:{{path}}",
"router.errorLoading": "加载页面时出错:{{message}}"
"router.errorLoading": "加载页面时出错:{{message}}",
"nav.sentinel": "Sentinel",
"sentinel.title": "Sentinel 守护犬",
"sentinel.enabled": "已启用",
"sentinel.disabled": "已禁用",
"sentinel.eventFeed": "事件动态",
"sentinel.ackAll": "全部确认",
"sentinel.clearAll": "全部清除",
"sentinel.allAcked": "所有事件已确认",
"sentinel.confirmClear": "清除所有事件?此操作不可逆。",
"sentinel.eventsCleared": "事件已清除",
"sentinel.noEvents": "暂无事件。Sentinel 正在监控您的网络以发现异常。",
"sentinel.rules": "规则",
"sentinel.devices": "设备",
"sentinel.notifiers": "通知器",
"sentinel.statDevices": "已知设备",
"sentinel.statAlive": "在线",
"sentinel.statUnread": "未读",
"sentinel.statEvents": "事件总数",
"sentinel.statRules": "活跃规则",
"sentinel.addRule": "添加规则",
"sentinel.noRules": "未配置规则。",
"sentinel.ruleLogic": "逻辑",
"sentinel.ruleActions": "动作",
"sentinel.enable": "启用",
"sentinel.disable": "禁用",
"sentinel.editRule": "编辑规则",
"sentinel.deleteRule": "删除规则",
"sentinel.confirmDeleteRule": "确定删除此规则?",
"sentinel.ruleDeleted": "规则已删除",
"sentinel.ruleUpdated": "规则已更新",
"sentinel.ruleCreated": "规则已创建",
"sentinel.ruleName": "规则名称",
"sentinel.triggerType": "触发类型",
"sentinel.cooldown": "冷却时间",
"sentinel.conditions": "条件",
"sentinel.cancel": "取消",
"sentinel.save": "保存",
"sentinel.nameRequired": "规则名称为必填项",
"sentinel.noDevices": "尚未发现设备。",
"sentinel.trusted": "受信任",
"sentinel.untrusted": "不受信任",
"sentinel.alias": "别名",
"sentinel.expectedIps": "预期 IP",
"sentinel.lastSeen": "最后上线",
"sentinel.deviceSaved": "设备已更新",
"sentinel.discordWebhook": "Discord Webhook",
"sentinel.webhookUrl": "Webhook URL",
"sentinel.smtpHost": "SMTP Host",
"sentinel.smtpPort": "SMTP Port",
"sentinel.smtpUser": "SMTP 用户",
"sentinel.smtpPass": "SMTP 密码",
"sentinel.emailFrom": "发件人邮箱",
"sentinel.emailTo": "收件人邮箱",
"sentinel.saveNotifiers": "保存通知器",
"sentinel.notifiersSaved": "通知器配置已保存",
"sentinel.justNow": "刚刚",
"sentinel.acknowledge": "确认",
"nav.bifrost": "彩虹桥",
"bifrost.title": "彩虹桥",
"bifrost.enabled": "已启用",
"bifrost.disabled": "已禁用",
"bifrost.activityFeed": "活动日志",
"bifrost.clearActivity": "清除",
"bifrost.activityCleared": "活动已清除",
"bifrost.noActivity": "暂无活动。启用 Bifrost 开始 WiFi 侦察。",
"bifrost.networks": "网络",
"bifrost.plugins": "插件",
"bifrost.history": "历史",
"bifrost.mood": "心情",
"bifrost.statNetworks": "网络",
"bifrost.statHandshakes": "握手",
"bifrost.statDeauths": "去认证",
"bifrost.statAssocs": "关联",
"bifrost.statEpochs": "纪元",
"bifrost.statPeers": "节点",
"bifrost.noNetworks": "尚未发现网络。",
"bifrost.noPlugins": "未加载插件。",
"bifrost.noEpochs": "尚无纪元记录。",
"bifrost.justNow": "刚刚",
"bifrost.confirmEnable": "启用 Bifrost 模式WiFi 将切换为监听模式 — 网络连接将断开。请通过 USB/蓝牙/以太网连接。",
"bifrost.monitorFailed": "监控模式失败",
"bifrost.monitorFailedHint": "对于Broadcom芯片(Pi Zero)请安装nexmon。或使用外置USB WiFi适配器。",
"bifrost.nexmonRequired": "需要安装 Nexmon",
"bifrost.nexmonRequiredDesc": "您的Broadcom WiFi芯片需要nexmon固件补丁才能使用监控模式。点击自动安装Pi Zero 2 W约需15-25分钟。",
"bifrost.nexmonInstallBtn": "安装 Nexmon",
"bifrost.nexmonConfirm": "安装nexmon固件补丁这将下载并编译nexmon约15-25分钟。需要网络连接和root权限。",
"bifrost.nexmonStarted": "nexmon 安装已开始 ...",
"bifrost.nexmonInstalling": "正在安装 Nexmon ...",
"nav.loki": "Loki",
"loki.title": "Loki — HID 攻击套件",
"loki.enable": "启用",
"loki.enabled_msg": "Loki 模式已启用",
"loki.disabled_msg": "Loki 模式已禁用",
"loki.status_label": "状态",
"loki.gadget_label": "设备",
"loki.layout_label": "布局",
"loki.jobs_label": "任务",
"loki.running": "运行中",
"loki.running_lc": "运行中",
"loki.idle": "空闲",
"loki.ready": "就绪",
"loki.not_ready": "未就绪",
"loki.run": "运行",
"loki.save": "保存",
"loki.new": "新建",
"loki.delete": "删除",
"loki.cancel": "取消",
"loki.output": "输出",
"loki.payloads": "有效载荷",
"loki.custom_scripts": "自定义脚本",
"loki.jobs": "任务",
"loki.clear_completed": "清除已完成",
"loki.script": "脚本",
"loki.status_col": "状态",
"loki.started": "已启动",
"loki.actions": "操作",
"loki.no_payloads": "无内置有效载荷",
"loki.no_scripts": "无已保存脚本",
"loki.no_jobs": "暂无任务",
"loki.no_output": "无输出",
"loki.empty_script": "脚本为空",
"loki.job_started": "任务已启动:{id}",
"loki.run_error": "运行脚本失败",
"loki.script_name_prompt": "脚本名称:",
"loki.saved": "脚本已保存",
"loki.save_error": "保存脚本失败",
"loki.confirm_delete": "删除脚本 '{name}'",
"loki.quick_placeholder": "在此输入快速文本...",
"loki.quick_send": "输入",
"loki.quick_sent": "文本已发送至目标",
"loki.quick_error": "发送文本失败"
}