# Copyright (C) 2026 Fabrice Ducarme
# This file is distributed under the GPLv2 or later.
msgid ""
msgstr ""
"Project-Id-Version: Login Armor 2.0.0\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/login-armor\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2026-04-18T21:00:00+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: Login Armor build-pot.py\n"
"X-Domain: login-armor\n"

#: admin/class-admin.php:191
#: admin/class-admin.php:192
#: admin/views/two-factor-verify.php:78
msgid "Login Armor"
msgstr ""

#: admin/class-admin.php:321
msgid "Analysing…"
msgstr ""

#: admin/class-admin.php:322
msgid "AI analysis failed."
msgstr ""

#: admin/class-admin.php:323
#: admin/class-admin.php:344
#: admin/class-admin.php:689
msgid "Network error."
msgstr ""

#: admin/class-admin.php:324
msgid "Saved."
msgstr ""

#: admin/class-admin.php:335
msgid "Unblock this IP address?"
msgstr ""

#: admin/class-admin.php:336
msgid "Delete all logs older than the selected period? This cannot be undone."
msgstr ""

#: admin/class-admin.php:337
msgid "Done."
msgstr ""

#: admin/class-admin.php:338
msgid "An error occurred. Please try again."
msgstr ""

#: admin/class-admin.php:343
msgid "Action failed."
msgstr ""

#: admin/class-admin.php:345
msgid "Missing nonce, reload the page."
msgstr ""

#: admin/class-admin.php:346
msgid "All changes saved."
msgstr ""

#: admin/class-admin.php:347
msgid "Saved"
msgstr ""

#: admin/class-admin.php:348
#: admin/class-admin.php:620
#: admin/class-admin.php:688
msgid "Save failed."
msgstr ""

#: admin/class-admin.php:349
msgid "Copied."
msgstr ""

#: admin/class-admin.php:350
msgid "Copy failed."
msgstr ""

#: admin/class-admin.php:351
msgid "Could not detect IP."
msgstr ""

#: admin/class-admin.php:352
msgid "Could not skip advice."
msgstr ""

#: admin/class-admin.php:353
msgid "Activity logging enabled."
msgstr ""

#: admin/class-admin.php:354
msgid "Activity logging disabled."
msgstr ""

#: admin/class-admin.php:355
msgid "Brute force protection enabled."
msgstr ""

#: admin/class-admin.php:356
msgid "Brute force protection disabled."
msgstr ""

#: admin/class-admin.php:357
msgid "Detection & logs enabled."
msgstr ""

#: admin/class-admin.php:358
msgid "Detection & logs disabled."
msgstr ""

#: admin/class-admin.php:359
msgid "Hardening settings saved."
msgstr ""

#: admin/class-admin.php:360
msgid "Hide Login enabled."
msgstr ""

#: admin/class-admin.php:361
msgid "Hide Login disabled."
msgstr ""

#: admin/class-admin.php:362
msgid "Hide Login settings saved."
msgstr ""

#: admin/class-admin.php:363
msgid "Login headers enabled."
msgstr ""

#: admin/class-admin.php:364
msgid "Login headers disabled."
msgstr ""

#: admin/class-admin.php:365
msgid "Login headers saved."
msgstr ""

#: admin/class-admin.php:366
msgid "Notifications enabled — defaulting to Email. Configure channel below."
msgstr ""

#: admin/class-admin.php:367
msgid "Notifications disabled."
msgstr ""

#: admin/class-admin.php:368
msgid "Test notification sent."
msgstr ""

#: admin/class-admin.php:369
msgid "Two-factor authentication enabled."
msgstr ""

#: admin/class-admin.php:370
msgid "Two-factor authentication disabled."
msgstr ""

#: admin/class-admin.php:371
msgid "Enable failed."
msgstr ""

#: admin/class-admin.php:372
msgid "Disable failed."
msgstr ""

#: admin/class-admin.php:373
msgid "Email failed."
msgstr ""

#: admin/class-admin.php:374
msgid "Purge failed."
msgstr ""

#: admin/class-admin.php:375
#: admin/class-admin.php:443
msgid "Regenerate failed."
msgstr ""

#: admin/class-admin.php:376
msgid "Regenerated. New URL emailed to admin."
msgstr ""

#: admin/class-admin.php:377
msgid "Reset failed."
msgstr ""

#: admin/class-admin.php:378
msgid "Reset to defaults. New URL emailed to admin."
msgstr ""

#: admin/class-admin.php:379
msgid "Recommended values applied."
msgstr ""

#: admin/class-admin.php:380
msgid "Defaults restored."
msgstr ""

#: admin/class-admin.php:381
msgid "Incident resolved."
msgstr ""

#: admin/class-admin.php:382
msgid "Incident ignored."
msgstr ""

#: admin/class-admin.php:385
#: admin/class-admin.php:431
#: admin/class-admin.php:495
#: admin/class-admin.php:502
#: admin/class-admin.php:509
#: admin/class-admin.php:515
#: admin/class-admin.php:521
#: admin/class-admin.php:538
#: admin/class-admin.php:544
#: admin/class-admin.php:550
#: admin/class-admin.php:556
#: admin/class-admin.php:563
#: admin/class-admin.php:569
#: admin/class-admin.php:575
#: admin/class-admin.php:582
#: admin/class-admin.php:588
#: admin/class-admin.php:606
#: admin/class-admin.php:683
#: admin/class-admin.php:2247
#: admin/class-admin.php:2255
msgid "Cancel"
msgstr ""

#: admin/class-admin.php:386
#: admin/class-admin.php:2256
msgid "Confirm"
msgstr ""

#: admin/class-admin.php:387
#: admin/class-admin.php:2257
msgid "I understand"
msgstr ""

#: admin/class-admin.php:390
msgid "7 recommended defaults active."
msgstr ""

#: admin/class-admin.php:391
#: admin/views/sections/hardening.php:171
msgid "Enables the 7 most common security toggles at once."
msgstr ""

#: admin/class-admin.php:392
msgid "All 7 recommended defaults are already active."
msgstr ""

#: admin/class-admin.php:395
#: admin/views/sidebar/events.php:24
#: admin/views/tabs/events.php:265
#: admin/views/tabs/incidents.php:610
#: admin/views/tabs/overview.php:491
msgid "OK"
msgstr ""

#: admin/class-admin.php:396
#: admin/views/sidebar/events.php:25
#: admin/views/tabs/events.php:260
#: admin/views/tabs/incidents.php:620
#: admin/views/tabs/overview.php:493
msgid "FAIL"
msgstr ""

#: admin/class-admin.php:397
#: admin/views/sidebar/events.php:26
#: admin/views/tabs/activity.php:202
#: admin/views/tabs/events.php:270
#: admin/views/tabs/incidents.php:615
#: admin/views/tabs/overview.php:492
msgid "BLOCKED"
msgstr ""

#: admin/class-admin.php:398
#: admin/views/tabs/events.php:267
#: admin/views/tabs/incidents.php:607
#: admin/views/tabs/overview.php:575
msgid "Successful sign-in"
msgstr ""

#: admin/class-admin.php:399
#: admin/views/tabs/overview.php:577
msgid "Locked out"
msgstr ""

#: admin/class-admin.php:400
msgid "Auth denied — wrong password"
msgstr ""

#: admin/class-admin.php:401
msgid "No events recorded yet."
msgstr ""

#: admin/class-admin.php:402
#: admin/views/tabs/events.php:110
#: admin/views/tabs/overview.php:504
msgid "Chrome on macOS"
msgstr ""

#: admin/class-admin.php:403
#: admin/views/tabs/events.php:111
#: admin/views/tabs/overview.php:505
msgid "Chrome on Windows"
msgstr ""

#: admin/class-admin.php:404
#: admin/views/tabs/events.php:112
#: admin/views/tabs/overview.php:506
msgid "Chrome on Linux"
msgstr ""

#: admin/class-admin.php:405
#: admin/views/tabs/events.php:113
#: admin/views/tabs/overview.php:507
msgid "Safari on iOS"
msgstr ""

#: admin/class-admin.php:406
#: admin/views/tabs/events.php:114
#: admin/views/tabs/overview.php:508
msgid "Safari on iPadOS"
msgstr ""

#: admin/class-admin.php:407
#: admin/views/tabs/events.php:115
#: admin/views/tabs/overview.php:509
msgid "Safari on macOS"
msgstr ""

#: admin/class-admin.php:408
#: admin/views/tabs/events.php:116
#: admin/views/tabs/overview.php:510
msgid "Firefox"
msgstr ""

#: admin/class-admin.php:409
#: admin/views/tabs/events.php:117
#: admin/views/tabs/overview.php:511
msgid "Edge"
msgstr ""

#: admin/class-admin.php:410
#: admin/views/tabs/events.php:118
#: admin/views/tabs/overview.php:512
msgid "curl"
msgstr ""

#: admin/class-admin.php:411
#: admin/views/tabs/events.php:119
#: admin/views/tabs/overview.php:513
msgid "wget"
msgstr ""

#: admin/class-admin.php:412
#: admin/views/tabs/events.php:120
#: admin/views/tabs/overview.php:514
msgid "python-requests"
msgstr ""

#: admin/class-admin.php:413
#: admin/views/tabs/events.php:121
#: admin/views/tabs/overview.php:515
msgid "Go http-client"
msgstr ""

#: admin/class-admin.php:414
#: admin/views/tabs/events.php:122
#: admin/views/tabs/overview.php:516
msgid "Bot / crawler"
msgstr ""

#: admin/class-admin.php:415
#: admin/views/tabs/events.php:124
#: admin/views/tabs/overview.php:518
msgid "Jetpack (WordPress.com)"
msgstr ""

#: admin/class-admin.php:416
#: admin/views/tabs/events.php:125
#: admin/views/tabs/overview.php:519
msgid "WordPress.com"
msgstr ""

#: admin/class-admin.php:417
#: admin/views/tabs/events.php:126
#: admin/views/tabs/overview.php:520
msgid "WordPress"
msgstr ""

#: admin/class-admin.php:421
msgid "After <strong>%1$d</strong> failed attempts, the IP is locked for <strong>%2$d minutes</strong>. After <strong>%3$d</strong> lockouts within <strong>%4$d hours</strong>, the ban extends to <strong>%5$d hours</strong>. Failed attempts reset after <strong>%6$d hours</strong> of inactivity."
msgstr ""

#: admin/class-admin.php:425
#: admin/views/sections/hide-login.php:95
msgid "Enable Hide Login"
msgstr ""

#: admin/class-admin.php:426
msgid "Pick the secret URL for your login page. Visitors will not be able to discover it."
msgstr ""

#: admin/class-admin.php:427
msgid "Your login slug"
msgstr ""

#: admin/class-admin.php:428
msgid "Lowercase letters, digits, and hyphens. 3 to 64 characters."
msgstr ""

#: admin/class-admin.php:429
#: admin/views/sections/activity-webhook.php:93
#: admin/views/sections/ai-panel.php:103
#: admin/views/sections/hide-login.php:137
msgid "Regenerate"
msgstr ""

#: admin/class-admin.php:430
msgid "Email me this URL (recommended — you will need it to log in)."
msgstr ""

#: admin/class-admin.php:432
msgid "Activate Hide Login"
msgstr ""

#: admin/class-admin.php:433
msgid "This slug cannot be used. Try another or click Regenerate."
msgstr ""

#: admin/class-admin.php:434
msgid "Something went wrong. Try again."
msgstr ""

#: admin/class-admin.php:438
msgid "Secret copied to clipboard."
msgstr ""

#: admin/class-admin.php:439
msgid "Copy failed; select and copy manually."
msgstr ""

#: admin/class-admin.php:440
msgid "Regenerate webhook secret?"
msgstr ""

#: admin/class-admin.php:441
msgid "Regenerate the webhook secret? Your receiver will need to be reconfigured with the new value."
msgstr ""

#: admin/class-admin.php:442
msgid "Secret regenerated. Update your receiver."
msgstr ""

#: admin/class-admin.php:445
msgid "Test event delivered: %s"
msgstr ""

#: admin/class-admin.php:446
msgid "Test failed."
msgstr ""

#: admin/class-admin.php:450
msgid "Verifying…"
msgstr ""

#: admin/class-admin.php:451
msgid "Repairing…"
msgstr ""

#: admin/class-admin.php:452
msgid "Verify failed."
msgstr ""

#: admin/class-admin.php:453
msgid "Repair failed."
msgstr ""

#: admin/class-admin.php:455
msgid "Chain intact: %s rows signed."
msgstr ""

#: admin/class-admin.php:457
msgid "Chain BROKEN at row %d. See panel for details."
msgstr ""

#: admin/class-admin.php:459
msgid "Repaired %d orphan(s)."
msgstr ""

#: admin/class-admin.php:460
msgid "Chain intact"
msgstr ""

#: admin/class-admin.php:461
msgid "Chain BROKEN"
msgstr ""

#: admin/class-admin.php:463
msgid "%s rows signed"
msgstr ""

#. translators: %s: relative time (e.g. "5m ago").
#: admin/class-admin.php:465
#: admin/views/tabs/activity.php:355
msgid "verified %s"
msgstr ""

#: admin/class-admin.php:466
#: admin/views/tabs/activity.php:329
msgid "INTACT"
msgstr ""

#: admin/class-admin.php:467
msgid "BROKEN"
msgstr ""

#: admin/class-admin.php:468
#: admin/views/tabs/activity.php:331
msgid "KEYS CHANGED"
msgstr ""

#: admin/class-admin.php:469
msgid "Re-basing…"
msgstr ""

#: admin/class-admin.php:470
msgid "Re-baseline failed."
msgstr ""

#: admin/class-admin.php:472
msgid "Chain re-based: %s rows re-signed under the current key."
msgstr ""

#: admin/class-admin.php:473
msgid "Security keys changed (migration?). Re-baseline the chain to restore integrity."
msgstr ""

#: admin/class-admin.php:474
#: admin/views/tabs/overview.php:36
msgid "just now"
msgstr ""

#: admin/class-admin.php:491
msgid "Block subnet?"
msgstr ""

#: admin/class-admin.php:493
msgid "Block the /24 subnet containing %s. All IPs in that range will be denied immediately."
msgstr ""

#: admin/class-admin.php:494
#: admin/views/tabs/incidents.php:370
#: admin/views/tabs/incidents.php:483
#: admin/views/tabs/incidents.php:1068
msgid "Block subnet"
msgstr ""

#: admin/class-admin.php:498
msgid "Remove from blocklist?"
msgstr ""

#: admin/class-admin.php:500
msgid "The /24 subnet containing %s will be removed from the manual blocklist. Previously blocked IPs in that range can attempt logins again."
msgstr ""

#: admin/class-admin.php:501
#: admin/views/tabs/incidents.php:489
#: admin/views/tabs/incidents.php:1074
msgid "Remove from blocklist"
msgstr ""

#: admin/class-admin.php:505
msgid "Unblock IP?"
msgstr ""

#: admin/class-admin.php:507
msgid "IP %s will be removed from the blocklist and can attempt logins again immediately."
msgstr ""

#: admin/class-admin.php:508
msgid "Unblock"
msgstr ""

#: admin/class-admin.php:512
msgid "Generate a new Hide Login URL?"
msgstr ""

#: admin/class-admin.php:513
msgid "Your current URL will stop working immediately. Bookmark the new one before closing this tab."
msgstr ""

#: admin/class-admin.php:514
msgid "Generate new URL"
msgstr ""

#: admin/class-admin.php:518
msgid "Reset Hide Login to defaults?"
msgstr ""

#: admin/class-admin.php:519
msgid "This generates a new random URL and switches the redirect to 404."
msgstr ""

#: admin/class-admin.php:520
#: admin/class-admin.php:549
#: admin/views/tabs/activity.php:507
#: admin/views/tabs/events.php:237
#: admin/views/tabs/incidents.php:886
msgid "Reset"
msgstr ""

#: admin/class-admin.php:529
msgid "Disable Hide Login?"
msgstr ""

#: admin/class-admin.php:530
msgid "/wp-login.php will become reachable again at its default location. Your slug is kept so you can re-enable later with one click."
msgstr ""

#: admin/class-admin.php:531
#: admin/class-admin.php:543
#: admin/class-admin.php:555
#: admin/class-admin.php:574
#: admin/class-admin.php:593
#: admin/class-admin.php:599
#: admin/class-admin.php:605
#: admin/class-admin.php:611
#: admin/class-admin.php:627
#: admin/class-admin.php:640
#: admin/class-admin.php:655
#: admin/class-admin.php:667
#: admin/views/sections/activity-settings.php:48
#: admin/views/sections/breach-check.php:55
#: admin/views/sections/detection-logs.php:52
#: admin/views/sections/firewall.php:72
#: admin/views/sections/geoip.php:50
#: admin/views/sections/hide-login.php:54
#: admin/views/sections/limit-login.php:57
#: admin/views/sections/login-headers.php:55
#: admin/views/sections/notifications.php:60
#: admin/views/sections/password-policy.php:51
#: admin/views/sections/session.php:50
#: admin/views/sections/two-factor-settings.php:54
#: admin/views/tabs/settings.php:506
msgid "Disable"
msgstr ""

#: admin/class-admin.php:532
#: admin/class-admin.php:594
#: admin/class-admin.php:600
#: admin/class-admin.php:612
#: admin/class-admin.php:628
#: admin/class-admin.php:641
#: admin/class-admin.php:656
#: admin/class-admin.php:668
msgid "Keep enabled"
msgstr ""

#: admin/class-admin.php:535
msgid "Enable brute force protection?"
msgstr ""

#: admin/class-admin.php:536
msgid "IPs with too many failed logins will be temporarily locked out."
msgstr ""

#: admin/class-admin.php:537
msgid "Enable"
msgstr ""

#: admin/class-admin.php:541
msgid "Disable brute force protection?"
msgstr ""

#: admin/class-admin.php:542
msgid "Your site will no longer rate-limit login attempts."
msgstr ""

#: admin/class-admin.php:547
msgid "Reset brute force settings?"
msgstr ""

#: admin/class-admin.php:548
msgid "All brute force thresholds will return to their default values."
msgstr ""

#: admin/class-admin.php:553
msgid "Disable detection & logging?"
msgstr ""

#: admin/class-admin.php:554
msgid "Login attempts will no longer be recorded."
msgstr ""

#: admin/class-admin.php:559
msgid "Delete old logs?"
msgstr ""

#: admin/class-admin.php:561
msgid "Delete all logs and incidents older than %s days? This cannot be undone."
msgstr ""

#: admin/class-admin.php:562
#: admin/class-admin.php:581
msgid "Delete"
msgstr ""

#: admin/class-admin.php:566
msgid "Reset all detection statistics?"
msgstr ""

#: admin/class-admin.php:567
msgid "This deletes every login event, every brute-force counter, every active and resolved incident. All currently locked-out IPs are immediately released. This cannot be undone."
msgstr ""

#: admin/class-admin.php:568
#: admin/class-admin.php:587
msgid "Reset everything"
msgstr ""

#: admin/class-admin.php:572
msgid "Disable activity logging?"
msgstr ""

#: admin/class-admin.php:573
msgid "Existing logs will be preserved."
msgstr ""

#: admin/class-admin.php:578
msgid "Delete old admin activity logs?"
msgstr ""

#: admin/class-admin.php:580
msgid "Delete every admin-action log (user edits, plugin changes, settings updates, etc.) older than %s days. Login events and incidents are not affected — they have their own retention in Detection & Logs. This cannot be undone."
msgstr ""

#: admin/class-admin.php:585
msgid "Reset the entire admin activity log?"
msgstr ""

#: admin/class-admin.php:586
msgid "This deletes every admin-action row, regardless of age. Login events and incidents are not affected — they have their own reset in Detection & Logs. This cannot be undone."
msgstr ""

#: admin/class-admin.php:591
msgid "Disable two-factor authentication?"
msgstr ""

#: admin/class-admin.php:592
msgid "All users will sign in with their password alone. Per-user secrets, backup codes and trusted devices are preserved and restored when you re-enable."
msgstr ""

#: admin/class-admin.php:597
msgid "Disable notifications?"
msgstr ""

#: admin/class-admin.php:598
msgid "Incidents will no longer trigger alerts. Your channel settings (webhook URL, severity, rate limit) are preserved and restored when you re-enable."
msgstr ""

#: admin/class-admin.php:603
msgid "Disable login page security headers?"
msgstr ""

#: admin/class-admin.php:604
msgid "The login form will no longer be protected against clickjacking and credential theft via injected scripts."
msgstr ""

#: admin/class-admin.php:609
msgid "Disable Breach Check?"
msgstr ""

#: admin/class-admin.php:610
msgid "New logins and profile updates will no longer be checked against public breach corpora. Existing flags on user accounts are kept — they clear automatically when the user changes their password."
msgstr ""

#: admin/class-admin.php:615
msgid "Breach Check enabled."
msgstr ""

#: admin/class-admin.php:616
msgid "Breach Check disabled."
msgstr ""

#: admin/class-admin.php:617
#: admin/class-admin.php:633
#: admin/class-admin.php:646
msgid "Settings saved."
msgstr ""

#: admin/class-admin.php:618
msgid "Could not enable Breach Check."
msgstr ""

#: admin/class-admin.php:619
msgid "Could not disable Breach Check."
msgstr ""

#: admin/class-admin.php:622
msgid "Scanned %1$d administrator emails, %2$d flagged."
msgstr ""

#: admin/class-admin.php:625
msgid "Disable password policy?"
msgstr ""

#: admin/class-admin.php:626
msgid "New and changed passwords will no longer be checked against your rules. Your configured rules are preserved and restored when you re-enable."
msgstr ""

#: admin/class-admin.php:631
msgid "Password policy enabled."
msgstr ""

#: admin/class-admin.php:632
msgid "Password policy disabled."
msgstr ""

#: admin/class-admin.php:634
msgid "Could not enable the password policy."
msgstr ""

#: admin/class-admin.php:635
msgid "Could not disable the password policy."
msgstr ""

#: admin/class-admin.php:638
msgid "Disable session management?"
msgstr ""

#: admin/class-admin.php:639
msgid "Idle timeout, maximum session lifetime, and single-session enforcement will stop applying. Your settings are preserved and restored when you re-enable."
msgstr ""

#: admin/class-admin.php:644
msgid "Session management enabled."
msgstr ""

#: admin/class-admin.php:645
msgid "Session management disabled."
msgstr ""

#: admin/class-admin.php:647
msgid "Could not enable session management."
msgstr ""

#: admin/class-admin.php:648
msgid "Could not disable session management."
msgstr ""

#: admin/class-admin.php:649
msgid "Other devices have been signed out."
msgstr ""

#: admin/class-admin.php:650
msgid "Could not sign out other devices."
msgstr ""

#: admin/class-admin.php:653
msgid "Disable IP geolocation?"
msgstr ""

#: admin/class-admin.php:654
msgid "Attacking IPs will no longer show a country. No further lookups will be sent to the geolocation service."
msgstr ""

#: admin/class-admin.php:659
msgid "IP geolocation enabled."
msgstr ""

#: admin/class-admin.php:660
msgid "IP geolocation disabled."
msgstr ""

#: admin/class-admin.php:661
msgid "Could not enable IP geolocation."
msgstr ""

#: admin/class-admin.php:662
msgid "Could not disable IP geolocation."
msgstr ""

#: admin/class-admin.php:665
msgid "Disable the request firewall?"
msgstr ""

#: admin/class-admin.php:666
msgid "Malicious requests will no longer be inspected or blocked. Your rule selection and allowlists are preserved and restored when you re-enable."
msgstr ""

#: admin/class-admin.php:671
msgid "Request firewall enabled in monitor mode."
msgstr ""

#: admin/class-admin.php:672
msgid "Request firewall disabled."
msgstr ""

#: admin/class-admin.php:673
msgid "Firewall settings saved."
msgstr ""

#: admin/class-admin.php:674
msgid "Could not enable the request firewall."
msgstr ""

#: admin/class-admin.php:675
msgid "Could not disable the request firewall."
msgstr ""

#: admin/class-admin.php:676
msgid "Added your current IP to the allowlist."
msgstr ""

#: admin/class-admin.php:677
msgid "Could not detect your IP."
msgstr ""

#: admin/class-admin.php:680
msgid "Apply the safe baseline?"
msgstr ""

#: admin/class-admin.php:681
msgid "This turns on brute-force protection, attack detection, login-page headers, the activity log and the 7 safest hardening toggles. It never changes Hide Login, Two-Factor or the firewall, and never disables anything."
msgstr ""

#: admin/class-admin.php:682
#: admin/views/sidebar/sponsored-ads.php:115
msgid "Apply"
msgstr ""

#: admin/class-admin.php:684
msgid "Safe baseline applied."
msgstr ""

#: admin/class-admin.php:685
msgid "Could not apply the safe baseline."
msgstr ""

#: admin/class-admin.php:699
msgid "You do not have permission to access this page."
msgstr ""

#. translators: %s: conflicting plugin name
#: admin/class-admin.php:837
msgid "Login Armor Hide Login may conflict with %s. Please deactivate one of them to avoid unexpected behavior."
msgstr ""

#. translators: %s: full path of the .htaccess file we tried to write.
#: admin/class-admin.php:864
msgid "Login Armor could not write to %s. Verify the file permissions, then re-toggle the affected hardening rule."
msgstr ""

#: admin/class-admin.php:934
#: admin/class-admin.php:967
msgid "The AI layer is not available."
msgstr ""

#: admin/class-admin.php:942
msgid "Invalid incident ID."
msgstr ""

#: admin/class-admin.php:948
#: includes/AI/IncidentExplainer.php:46
#: admin/views/tabs/incidents.php:224
msgid "Incident not found."
msgstr ""

#: admin/class-admin.php:1124
msgid "Invalid IP."
msgstr ""

#: admin/class-admin.php:1356
msgid "This slug cannot be used."
msgstr ""

#: admin/class-admin.php:1765
msgid "Select at least one two-factor method: users cannot verify their sign-in without one."
msgstr ""

#: admin/class-admin.php:1822
msgid "Unable to encrypt the TOTP secret. Contact the site administrator."
msgstr ""

#: admin/class-admin.php:1845
msgid "Unable to send the verification code email. Check your site email configuration, then try again."
msgstr ""

#: admin/class-admin.php:1871
msgid "No email address found on your account."
msgstr ""

#. translators: %s: site name
#: admin/class-admin.php:1879
msgid "[%s] Login Armor — Email delivery test"
msgstr ""

#. translators: 1: display name, 2: site name
#: admin/class-admin.php:1884
msgid ""
"Hello %1$s,\n"
"\n"
"This is a test message from Login Armor on %2$s.\n"
"\n"
"If you can read this, your hosting delivers emails correctly. You can safely enable Email two-factor authentication.\n"
"\n"
"If you did not request this test, you can ignore this message."
msgstr ""

#: admin/class-admin.php:1894
#: admin/class-admin.php:2243
msgid "The test email could not be sent. Configure WP Mail SMTP (or contact your host) before enabling Email 2FA, otherwise you will be locked out."
msgstr ""

#: admin/class-admin.php:1902
#: admin/class-admin.php:2242
msgid "Test email sent. Check your inbox (and spam folder) before continuing."
msgstr ""

#: admin/class-admin.php:1941
#: admin/class-admin.php:2274
msgid "Invalid code. Please try again."
msgstr ""

#: admin/class-admin.php:2053
msgid "Restart 2FA grace"
msgstr ""

#: admin/class-admin.php:2070
msgid "You are not allowed to do this."
msgstr ""

#: admin/class-admin.php:2077
msgid "Unknown user."
msgstr ""

#: admin/class-admin.php:2104
msgid "Login Armor: the two-factor setup window has been reopened for this user."
msgstr ""

#: admin/class-admin.php:2235
msgid "Before enabling Email two-factor authentication"
msgstr ""

#: admin/class-admin.php:2236
msgid "If your hosting does not deliver emails, you will be locked out of your site."
msgstr ""

#: admin/class-admin.php:2237
msgid "Test email delivery"
msgstr ""

#: admin/class-admin.php:2238
msgid "A test message will be sent to:"
msgstr ""

#: admin/class-admin.php:2239
msgid "Send test email"
msgstr ""

#: admin/class-admin.php:2240
msgid "Send another test email"
msgstr ""

#: admin/class-admin.php:2241
msgid "Sending…"
msgstr ""

#: admin/class-admin.php:2244
msgid "Open a safety-net session in a different browser"
msgstr ""

#: admin/class-admin.php:2245
msgid "Open a DIFFERENT browser (for example Firefox if you are on Chrome) or a private/incognito window, and stay logged in as administrator there. Tabs of the same browser share cookies, so they are not a real safety net: if you log out to test 2FA, every tab disconnects at once. A different browser keeps a separate session you can use to disable 2FA if email delivery fails."
msgstr ""

#: admin/class-admin.php:2246
msgid "I have a different browser (or a private/incognito window) logged in as administrator."
msgstr ""

#: admin/class-admin.php:2248
msgid "Enable Email 2FA"
msgstr ""

#: admin/class-admin.php:2249
#: admin/class-admin.php:2275
msgid "Network error. Please try again."
msgstr ""

#: admin/class-admin.php:2250
msgid "Missing AJAX configuration."
msgstr ""

#: admin/class-admin.php:2266
#: admin/views/two-factor-verify.php:183
msgid "Use a different method"
msgstr ""

#: admin/class-admin.php:2267
msgid "Hide other methods"
msgstr ""

#: admin/class-admin.php:2268
#: admin/views/two-factor-verify.php:175
msgid "Resend code"
msgstr ""

#: admin/class-admin.php:2270
msgid "Resend in %ds"
msgstr ""

#: admin/class-admin.php:2271
msgid "Copied!"
msgstr ""

#: admin/class-admin.php:2272
#: admin/views/profile/two-factor.php:174
#: admin/views/sections/activity-webhook.php:92
#: admin/views/sections/hide-login.php:130
msgid "Copy"
msgstr ""

#: admin/class-admin.php:2273
msgid "Please enter a 6-digit code."
msgstr ""

#: admin/class-admin.php:2276
msgid "Setup completion failed. Please reload the page and try again."
msgstr ""

#: admin/class-admin.php:2277
msgid "Are you sure you want to disable two-factor authentication?"
msgstr ""

#: admin/class-admin.php:2278
msgid "This will invalidate your current backup codes. Continue?"
msgstr ""

#: admin/class-admin.php:2316
msgid "Webhook URL must start with https://."
msgstr ""

#: admin/class-admin.php:2323
msgid "Webhook URL must not point to a private, reserved or unresolvable address."
msgstr ""

#: admin/class-admin.php:2428
msgid "Report URI must start with https://."
msgstr ""

#: admin/class-admin.php:2765
msgid "Could not load the safe baseline."
msgstr ""

#: admin/class-admin.php:2797
msgid "brute-force protection"
msgstr ""

#: admin/class-admin.php:2798
msgid "firewall"
msgstr ""

#: admin/class-admin.php:2799
msgid "two-factor authentication"
msgstr ""

#: admin/class-admin.php:2800
msgid "login URL hiding"
msgstr ""

#: admin/class-admin.php:2801
msgid "security headers"
msgstr ""

#: admin/class-admin.php:2802
msgid "hardening"
msgstr ""

#: admin/class-admin.php:2803
msgid "login rate-limiting"
msgstr ""

#: admin/class-admin.php:2840
msgid "Login Armor — another security plugin overlaps with this one"
msgstr ""

#: admin/class-admin.php:2842
msgid "Running two plugins for the same protection causes double lockouts, hidden-login clashes and duplicated headers. Enable each protection in only one plugin to avoid locking yourself out."
msgstr ""

#: admin/class-admin.php:2866
msgid "Login Armor — caching plugin detected with Hide Login active"
msgstr ""

#. translators: %s: comma-separated list of cache plugin names.
#: admin/class-admin.php:2870
msgid "We detected: %s. Exclude your hidden login URL from the page cache, or visitors may get a cached 404 instead of the login form."
msgstr ""

#. translators: %s: comma-separated list of front-end login plugin names.
#: admin/class-admin.php:2906
msgid "Login Armor: front-end login plugin detected: %s"
msgstr ""

#: admin/class-admin.php:2910
msgid "This plugin handles sign-in on your own pages, not wp-login.php. Login Armor's Two-Factor and Hide Login work on the WordPress login flow and are not compatible with it: a member could be locked out of the front-end login. Keep Two-Factor and Hide Login turned off while this plugin manages your logins. Brute-force protection, hardening, detection and the firewall are unaffected."
msgstr ""

#: admin/class-admin.php:2924
#: includes/TwoFactor/Recovery.php:304
#: includes/TwoFactor/Recovery.php:345
msgid "Security check failed."
msgstr ""

#: admin/class-admin.php:2928
msgid "Unauthorized access."
msgstr ""

#: admin/class-admin.php:3024
#: admin/class-admin.php:3054
msgid "Unauthorized."
msgstr ""

#: admin/class-admin.php:3032
msgid "Invalid IP address."
msgstr ""

#. translators: %s: IP address that was unblocked.
#: admin/class-admin.php:3040
msgid "IP %s has been unblocked."
msgstr ""

#. translators: %d: Number of log entries deleted.
#: admin/class-admin.php:3068
msgid "%d log entries deleted."
msgstr ""

#: admin/class-admin.php:3146
msgid "Webhook URL is not configured, invalid, or points to a private or reserved address."
msgstr ""

#: admin/class-admin.php:3168
msgid "Failed to build test payload."
msgstr ""

#: admin/class-admin.php:3231
msgid "Webhook URL must be a valid HTTPS URL that does not point to a private or reserved address."
msgstr ""

#: admin/views/onboarding.php:51
msgid "Welcome to Login Armor"
msgstr ""

#: admin/views/onboarding.php:52
msgid "Choose how you want to start. You can change every setting afterwards — nothing here is permanent."
msgstr ""

#: admin/views/onboarding.php:58
msgid "Simple setup"
msgstr ""

#: admin/views/onboarding.php:59
#: admin/views/sections/hardening.php:114
msgid "RECOMMENDED"
msgstr ""

#: admin/views/onboarding.php:61
msgid "Turn on the safe essentials that protect your site without any risk of locking you out or breaking your theme."
msgstr ""

#: admin/views/onboarding.php:63
msgid "Brute-force protection &amp; attack detection"
msgstr ""

#: admin/views/onboarding.php:64
msgid "Login-page security headers"
msgstr ""

#: admin/views/onboarding.php:65
msgid "Activity log (audit trail)"
msgstr ""

#: admin/views/onboarding.php:66
msgid "The 7 safest hardening toggles"
msgstr ""

#: admin/views/onboarding.php:69
msgid "Not touched: Hide Login, Two-Factor and the firewall stay off so you can enable them deliberately."
msgstr ""

#: admin/views/onboarding.php:72
msgid "Use Simple setup"
msgstr ""

#: admin/views/onboarding.php:77
msgid "Advanced setup"
msgstr ""

#: admin/views/onboarding.php:78
msgid "Skip the presets and configure every module yourself, including the sensitive ones like Two-Factor and Hide Login."
msgstr ""

#: admin/views/onboarding.php:80
msgid "Nothing is changed automatically"
msgstr ""

#: admin/views/onboarding.php:81
msgid "Every module visible and unlocked"
msgstr ""

#: admin/views/onboarding.php:82
msgid "Full control from the Settings tab"
msgstr ""

#: admin/views/onboarding.php:85
msgid "I'll configure it myself"
msgstr ""

#: admin/views/onboarding.php:91
msgid "Skip for now"
msgstr ""

#: admin/views/page.php:22
msgid "Overview"
msgstr ""

#: admin/views/page.php:23
#: admin/views/tabs/incidents.php:784
msgid "Incidents"
msgstr ""

#: admin/views/page.php:24
#: admin/views/tabs/events.php:147
msgid "Events"
msgstr ""

#: admin/views/page.php:25
#: admin/views/widget-dashboard.php:200
#: admin/views/sidebar/overview.php:29
#: admin/views/tabs/activity.php:32
#: admin/views/tabs/activity.php:33
#: admin/views/tabs/activity.php:242
#: admin/views/tabs/activity.php:244
#: admin/views/tabs/overview.php:413
msgid "Activity"
msgstr ""

#: admin/views/page.php:49
msgid "Login Armor — go to Overview"
msgstr ""

#: admin/views/page.php:62
msgid "Hide · Block · Watch"
msgstr ""

#: admin/views/page.php:66
msgid "Login Armor sections"
msgstr ""

#: admin/views/profile/two-factor.php:37
msgid "Login Armor — Two-Factor Authentication"
msgstr ""

#: admin/views/profile/two-factor.php:41
#: admin/views/tabs/overview.php:271
msgid "Not configured"
msgstr ""

#: admin/views/profile/two-factor.php:51
msgid "Method"
msgstr ""

#: admin/views/profile/two-factor.php:55
#: admin/views/sidebar/settings.php:55
msgid "Authenticator App"
msgstr ""

#: admin/views/profile/two-factor.php:56
#: admin/views/sections/notifications.php:111
msgid "Email"
msgstr ""

#: admin/views/profile/two-factor.php:57
msgid "Unknown"
msgstr ""

#: admin/views/profile/two-factor.php:64
#: admin/views/sections/two-factor-settings.php:114
#: admin/views/sidebar/settings.php:57
msgid "Backup codes"
msgstr ""

#: admin/views/profile/two-factor.php:66
msgid "%d remaining"
msgstr ""

#: admin/views/profile/two-factor.php:77
msgid "Trusted devices"
msgstr ""

#. translators: %d: number of active trusted devices
#: admin/views/profile/two-factor.php:83
msgid "%d active"
msgid_plural "%d active"
msgstr[0] ""
msgstr[1] ""

#. translators: 1: granted date, 2: expires date
#: admin/views/profile/two-factor.php:104
msgid "granted %1$s · expires %2$s"
msgstr ""

#: admin/views/profile/two-factor.php:113
msgid "Revoke"
msgstr ""

#: admin/views/profile/two-factor.php:120
msgid "Revoke all devices"
msgstr ""

#: admin/views/profile/two-factor.php:132
msgid "Disable 2FA"
msgstr ""

#: admin/views/profile/two-factor.php:135
msgid "Regenerate backup codes"
msgstr ""

#: admin/views/profile/two-factor.php:141
msgid "Reset 2FA for this user"
msgstr ""

#: admin/views/profile/two-factor.php:149
msgid "Protect your account with a second factor. Choose your preferred method:"
msgstr ""

#: admin/views/profile/two-factor.php:155
msgid "Set up Authenticator App"
msgstr ""

#: admin/views/profile/two-factor.php:160
msgid "Set up Email"
msgstr ""

#: admin/views/profile/two-factor.php:170
msgid "Open your authenticator app, tap +, and scan this QR code:"
msgstr ""

#: admin/views/profile/two-factor.php:176
msgid "Or enter this key manually in your app."
msgstr ""

#: admin/views/profile/two-factor.php:178
msgid "Enter the 6-digit code from your app to verify:"
msgstr ""

#: admin/views/profile/two-factor.php:182
#: admin/views/profile/two-factor.php:192
msgid "Verify and continue"
msgstr ""

#: admin/views/profile/two-factor.php:188
msgid "A verification code has been sent to your email. Enter it below:"
msgstr ""

#: admin/views/profile/two-factor.php:198
msgid "Save these backup codes in a safe place. Each can only be used once."
msgstr ""

#: admin/views/profile/two-factor.php:201
msgid "Download codes"
msgstr ""

#: admin/views/profile/two-factor.php:205
msgid "I've saved my backup codes"
msgstr ""

#: admin/views/profile/two-factor.php:208
msgid "Complete setup"
msgstr ""

#: admin/views/sections/activity-settings.php:32
#: admin/views/sections/activity-webhook.php:32
#: admin/views/sections/ai.php:38
#: admin/views/sections/breach-check.php:39
#: admin/views/sections/detection-logs.php:36
#: admin/views/sections/geoip.php:34
#: admin/views/sections/limit-login.php:41
#: admin/views/sections/login-headers.php:39
#: admin/views/sections/password-policy.php:35
#: admin/views/sections/session.php:34
#: admin/views/sections/two-factor-settings.php:38
msgid "ACTIVE"
msgstr ""

#: admin/views/sections/activity-settings.php:34
#: admin/views/sections/activity-webhook.php:34
#: admin/views/sections/breach-check.php:41
#: admin/views/sections/detection-logs.php:38
#: admin/views/sections/firewall.php:62
#: admin/views/sections/geoip.php:36
#: admin/views/sections/hide-login.php:40
#: admin/views/sections/limit-login.php:43
#: admin/views/sections/login-headers.php:41
#: admin/views/sections/notifications.php:46
#: admin/views/sections/password-policy.php:37
#: admin/views/sections/session.php:36
#: admin/views/sections/two-factor-settings.php:40
#: admin/views/tabs/activity.php:185
msgid "DISABLED"
msgstr ""

#: admin/views/sections/activity-settings.php:39
#: admin/views/tabs/settings.php:363
msgid "Tracking admin actions across your site."
msgstr ""

#: admin/views/sections/activity-settings.php:41
msgid "Admin action logging is currently disabled."
msgstr ""

#: admin/views/sections/activity-settings.php:68
msgid "Activity logging is disabled"
msgstr ""

#: admin/views/sections/activity-settings.php:69
msgid "Admin actions are not being recorded. You will have no audit trail of site changes."
msgstr ""

#: admin/views/sections/activity-settings.php:74
msgid "When enabled, key admin actions (user creation, plugin activation, settings changes, etc.) are recorded with the author, timestamp, and context."
msgstr ""

#: admin/views/sections/activity-settings.php:82
msgid "Enable Activity Log"
msgstr ""

#: admin/views/sections/activity-settings.php:95
#: admin/views/sections/detection-logs.php:100
msgid "Log Retention"
msgstr ""

#: admin/views/sections/activity-settings.php:96
msgid "How long to keep activity log records before automatic cleanup."
msgstr ""

#: admin/views/sections/activity-settings.php:99
#: admin/views/sections/detection-logs.php:104
msgid "Keep logs for"
msgstr ""

#: admin/views/sections/activity-settings.php:108
#: admin/views/sections/detection-logs.php:113
msgid "days"
msgstr ""

#: admin/views/sections/activity-settings.php:116
#: admin/views/sections/detection-logs.php:136
msgid "Manual Purge"
msgstr ""

#: admin/views/sections/activity-settings.php:117
msgid "Immediately delete all activity logs older than the retention period."
msgstr ""

#: admin/views/sections/activity-settings.php:120
msgid "Purge old activity logs now"
msgstr ""

#: admin/views/sections/activity-settings.php:128
msgid "Reset activity log"
msgstr ""

#: admin/views/sections/activity-settings.php:129
msgid "Delete every admin-action row regardless of age. Login events and incidents are not affected — they have their own reset in Detection & Logs."
msgstr ""

#: admin/views/sections/activity-settings.php:132
msgid "Reset all activity entries"
msgstr ""

#: admin/views/sections/activity-webhook.php:30
#: admin/views/tabs/settings.php:372
msgid "Activity Webhook Forwarding"
msgstr ""

#: admin/views/sections/activity-webhook.php:38
msgid "Push every admin action (user creation, plugin install, config change, login, etc.) to an external service in real time. Useful for off-site backup of the audit log (so an attacker who tampers with the database cannot also erase their tracks), instant alerts on sensitive events, or centralizing logs from multiple sites. Compatible with Slack, Discord, Datadog, Splunk, any SIEM, or any custom HTTPS receiver."
msgstr ""

#: admin/views/sections/activity-webhook.php:55
msgid "Enable webhook forwarding"
msgstr ""

#: admin/views/sections/activity-webhook.php:57
msgid "Queue stats over the last 7 days."
msgstr ""

#: admin/views/sections/activity-webhook.php:58
msgid "queued"
msgstr ""

#: admin/views/sections/activity-webhook.php:59
msgid "sent"
msgstr ""

#: admin/views/sections/activity-webhook.php:60
msgid "dead"
msgstr ""

#: admin/views/sections/activity-webhook.php:67
#: admin/views/sections/notifications.php:139
msgid "Webhook URL"
msgstr ""

#: admin/views/sections/activity-webhook.php:68
msgid "Must be HTTPS. The receiver verifies signatures via the secret below."
msgstr ""

#: admin/views/sections/activity-webhook.php:82
msgid "Shared Secret"
msgstr ""

#: admin/views/sections/activity-webhook.php:83
msgid "Configure this secret on your receiver to verify HMAC-SHA256 signatures via the X-LoginArmor-Signature header."
msgstr ""

#: admin/views/sections/activity-webhook.php:101
msgid "Send test event"
msgstr ""

#: admin/views/sections/ai-panel.php:50
msgid "AI threat analysis"
msgstr ""

#: admin/views/sections/ai-panel.php:51
msgid "Get a plain-language explanation of this incident and what to do about it."
msgstr ""

#: admin/views/sections/ai-panel.php:52
msgid "Explain with AI"
msgstr ""

#: admin/views/sections/ai-panel.php:56
msgid "AI security briefing"
msgstr ""

#: admin/views/sections/ai-panel.php:57
msgid "A verdict on your site, the IP picture, and prioritised actions from the last 30 days of real activity."
msgstr ""

#: admin/views/sections/ai-panel.php:58
msgid "Analyse my security"
msgstr ""

#: admin/views/sections/ai-panel.php:65
msgid "AI"
msgstr ""

#: admin/views/sections/ai-panel.php:84
msgid "WordPress needs your permission for LoginArmor to use the AI connector you configured."
msgstr ""

#: admin/views/sections/ai-panel.php:86
#: admin/views/sections/ai.php:80
msgid "Authorise LoginArmor"
msgstr ""

#: admin/views/sections/ai-panel.php:102
msgid "Force a fresh analysis (ignore the cache)"
msgstr ""

#: admin/views/sections/ai-panel.php:111
msgid "This analysis is cached for about 3 hours — use Regenerate for a fresh run."
msgstr ""

#: admin/views/sections/ai-panel.php:116
msgid "Deep analysis is ON — real IP addresses and event details are sent to the AI connector configured in your WordPress."
msgstr ""

#: admin/views/sections/ai-panel.php:118
msgid "Sent to the AI connector configured in your WordPress — no IP address or username in clear, only anonymised signals."
msgstr ""

#: admin/views/sections/ai-panel.php:127
msgid "Enable the AI assistant in settings to get a personalised briefing and prioritised advice on top of these facts."
msgstr ""

#: admin/views/sections/ai-panel.php:128
msgid "Enable AI in settings"
msgstr ""

#: admin/views/sections/ai-panel.php:130
msgid "Personalised AI advice needs WordPress 7 with a configured AI connector. The facts above are always available, with or without AI."
msgstr ""

#: admin/views/sections/ai-panel.php:131
#: admin/views/sections/ai.php:70
msgid "Manage AI connectors"
msgstr ""

#: admin/views/sections/ai.php:36
#: admin/views/sidebar/settings.php:126
#: admin/views/tabs/settings.php:402
msgid "AI Assistant"
msgstr ""

#: admin/views/sections/ai.php:40
msgid "OFF"
msgstr ""

#: admin/views/sections/ai.php:42
msgid "NEEDS WP 7"
msgstr ""

#: admin/views/sections/ai.php:46
msgid "On-demand AI analysis through your own WordPress 7 connector — explains incidents and advises on hardening. The plugin works fully without it."
msgstr ""

#: admin/views/sections/ai.php:59
msgid "AI features require WordPress 7 (or the AI Building Blocks feature plugin) with a configured AI connector. They stay hidden until then."
msgstr ""

#: admin/views/sections/ai.php:66
msgid "No usable AI connector"
msgstr ""

#: admin/views/sections/ai.php:68
msgid "WordPress 7 is detected, but no connector can generate text yet. Configure one to unlock the AI analysis."
msgstr ""

#: admin/views/sections/ai.php:78
msgid "Authorisation required"
msgstr ""

#: admin/views/sections/ai.php:79
msgid "A connector is configured but LoginArmor is not yet allowed to use it."
msgstr ""

#: admin/views/sections/ai.php:97
msgid "Enable AI analysis"
msgstr ""

#: admin/views/sections/ai.php:98
msgid "Show the AI panels and allow on-demand analysis."
msgstr ""

#: admin/views/sections/ai.php:111
msgid "Deep analysis"
msgstr ""

#: admin/views/sections/ai.php:112
msgid "Send real IP addresses and events to your connector for named, IP-level recommendations. Off = anonymised signals only."
msgstr ""

#: admin/views/sections/ai.php:116
msgid "Deep mode is on: concrete IP addresses and event details leave your site for your own AI connector. Use it only if your connector and provider agreement are acceptable for that data."
msgstr ""

#. translators: %d: number of AI calls in the last 30 days.
#: admin/views/sections/ai.php:131
msgid "%d AI call in the last 30 days."
msgid_plural "%d AI calls in the last 30 days."
msgstr[0] ""
msgstr[1] ""

#: admin/views/sections/ai.php:136
msgid "Manage connectors"
msgstr ""

#: admin/views/sections/ai.php:145
msgid "Privacy: analysis is opt-in per click. Nothing is sent to WPFormation — the request goes directly to your own AI connector. In default (minimised) mode, no IP address or username is ever sent in clear."
msgstr ""

#: admin/views/sections/breach-check.php:46
msgid "Passwords and email addresses are checked against public data breach corpora on login and profile update."
msgstr ""

#: admin/views/sections/breach-check.php:48
msgid "Detect if your users are logging in with a password or email that appears in public data leaks."
msgstr ""

#: admin/views/sections/breach-check.php:75
msgid "Breach Check is disabled"
msgstr ""

#: admin/views/sections/breach-check.php:76
msgid "The first cause of account takeover today is credential reuse — users logging in with a password that already leaked somewhere else. This module detects that condition passively, without blocking anyone."
msgstr ""

#: admin/views/sections/breach-check.php:81
msgid "When a user logs in, Login Armor checks the password against the public Have I Been Pwned corpus using a privacy-preserving range lookup — only the first 5 characters of a one-way hash ever leave your server. If a match is found, the user gets a friendly warning on their profile page inviting them to change their password. Admins see the count of flagged users on the overview."
msgstr ""

#: admin/views/sections/breach-check.php:84
msgid "Zero dependencies, zero keys, zero data leakage."
msgstr ""

#: admin/views/sections/breach-check.php:85
msgid "The API is free and keyless. Your users' passwords and emails never leave the server in readable form."
msgstr ""

#: admin/views/sections/breach-check.php:94
msgid "Enable Breach Check"
msgstr ""

#: admin/views/sections/breach-check.php:115
msgid "What gets checked, and when"
msgstr ""

#: admin/views/sections/breach-check.php:117
msgid "Email addresses:"
msgstr ""

#: admin/views/sections/breach-check.php:118
msgid "every administrator account is tested against the public breach list the moment you enable the email check. The counters below update straight away."
msgstr ""

#: admin/views/sections/breach-check.php:121
msgid "Passwords:"
msgstr ""

#: admin/views/sections/breach-check.php:122
msgid "existing passwords cannot be tested in bulk. WordPress only keeps a one-way fingerprint of each password, which by design cannot be reversed into the original text. Each password is therefore tested the next time its user logs in, while WordPress briefly handles the plaintext to authenticate them. No login is ever blocked. A flagged user just sees a friendly heads-up on their profile page, inviting them to change the password."
msgstr ""

#: admin/views/sections/breach-check.php:131
msgid "Password check"
msgstr ""

#: admin/views/sections/breach-check.php:133
msgid "On each successful login, check the password against the Have I Been Pwned corpus via its k-anonymity range API. Only the first 5 characters of a SHA-1 hash of the password leave your server — the password itself is never transmitted, not even in hashed form."
msgstr ""

#: admin/views/sections/breach-check.php:145
msgid "Check passwords on login and profile update"
msgstr ""

#: admin/views/sections/breach-check.php:153
msgid "Email check"
msgstr ""

#: admin/views/sections/breach-check.php:155
msgid "When a new user is created or an email is changed, check the address against the XposedOrNot public breach list. The API returns the names of the breaches that contain the address, so users can know which passwords they may have reused."
msgstr ""

#: admin/views/sections/breach-check.php:167
msgid "Check email addresses on user creation and email change"
msgstr ""

#: admin/views/sections/breach-check.php:175
msgid "Force password reset for flagged users"
msgstr ""

#: admin/views/sections/breach-check.php:177
msgid "When on, a user whose password has been flagged as breached is automatically redirected to their profile page on every admin screen until they change the password. The user is not locked out — they can still access their account, they are just nagged until the issue is resolved. Off by default; turn on if you want zero-tolerance enforcement."
msgstr ""

#: admin/views/sections/breach-check.php:189
msgid "Redirect flagged users to their profile until they change their password"
msgstr ""

#: admin/views/sections/breach-check.php:197
msgid "Current status"
msgstr ""

#: admin/views/sections/breach-check.php:201
msgid "users with a flagged password"
msgstr ""

#: admin/views/sections/breach-check.php:205
msgid "users with a flagged email"
msgstr ""

#: admin/views/sections/breach-check.php:215
msgid "Accounts with a password flagged as breached"
msgstr ""

#. translators: %s: localized date when the account was flagged.
#: admin/views/sections/breach-check.php:229
msgid "Flagged %s"
msgstr ""

#: admin/views/sections/breach-check.php:244
msgid "Accounts with an email address in a public data breach"
msgstr ""

#: admin/views/sections/breach-check.php:267
msgid "An account stays flagged until its owner changes the password or email. The counters update as users log in or update their profile. No background scan runs on your site."
msgstr ""

#: admin/views/sections/detection-logs.php:34
#: admin/views/sidebar/settings.php:40
#: admin/views/tabs/settings.php:280
msgid "Detection & Logs"
msgstr ""

#: admin/views/sections/detection-logs.php:43
#: admin/views/tabs/settings.php:281
msgid "Log retention and automatic cleanup."
msgstr ""

#: admin/views/sections/detection-logs.php:45
msgid "Login attempt logging is currently disabled."
msgstr ""

#: admin/views/sections/detection-logs.php:72
msgid "Detection & logging is disabled"
msgstr ""

#: admin/views/sections/detection-logs.php:73
msgid "Login attempts are not being recorded. You will have no audit trail."
msgstr ""

#: admin/views/sections/detection-logs.php:78
msgid "When enabled, all login attempts are recorded and analyzed by the incident detection engine. This powers the Overview dashboard, Events tab, and Incidents tab."
msgstr ""

#: admin/views/sections/detection-logs.php:87
msgid "Enable Detection & Logs"
msgstr ""

#: admin/views/sections/detection-logs.php:101
msgid "How long to keep login attempt logs and incident records."
msgstr ""

#: admin/views/sections/detection-logs.php:121
msgid "Auto-Purge"
msgstr ""

#: admin/views/sections/detection-logs.php:122
msgid "Automatically delete old logs via WP-Cron. Runs daily."
msgstr ""

#: admin/views/sections/detection-logs.php:129
msgid "Logs older than the retention period will be automatically deleted every night at 3:00 AM (server time)."
msgstr ""

#: admin/views/sections/detection-logs.php:137
msgid "Immediately delete all logs older than the retention period."
msgstr ""

#: admin/views/sections/detection-logs.php:140
msgid "Purge old logs now"
msgstr ""

#: admin/views/sections/detection-logs.php:148
msgid "Reset all statistics"
msgstr ""

#: admin/views/sections/detection-logs.php:149
msgid "Delete every event, brute-force counter, and incident regardless of age. All currently locked-out IPs are released. Use this for a fresh start, e.g. after a large attack wave or before a client demo."
msgstr ""

#: admin/views/sections/detection-logs.php:152
msgid "Reset all events & incidents"
msgstr ""

#: admin/views/sections/firewall.php:29
msgid "Bad request methods"
msgstr ""

#: admin/views/sections/firewall.php:30
msgid "Bad query strings"
msgstr ""

#: admin/views/sections/firewall.php:31
msgid "Bad request paths"
msgstr ""

#: admin/views/sections/firewall.php:32
msgid "Aggressive path rules"
msgstr ""

#: admin/views/sections/firewall.php:33
msgid "Bad user agents"
msgstr ""

#: admin/views/sections/firewall.php:34
msgid "Spam referrers"
msgstr ""

#: admin/views/sections/firewall.php:38
#: admin/views/sections/firewall.php:39
msgid "Your server supports .htaccess too, but this PHP filter is portable and every block is logged here."
msgstr ""

#: admin/views/sections/firewall.php:40
msgid "Nginx ignores .htaccess — this PHP-level firewall is the right tool for your stack."
msgstr ""

#: admin/views/sections/firewall.php:41
msgid "On IIS this PHP-level firewall works without any web-server configuration."
msgstr ""

#: admin/views/sections/firewall.php:42
msgid "This firewall runs in PHP, so it works regardless of your web server."
msgstr ""

#: admin/views/sections/firewall.php:58
msgid "ENFORCING"
msgstr ""

#: admin/views/sections/firewall.php:60
msgid "MONITORING"
msgstr ""

#: admin/views/sections/firewall.php:66
msgid "Blocks malicious requests in PHP before WordPress processes them — bad query strings, traversal, SQLi/XSS probes, disallowed HTTP methods. Inspired by the 8G firewall."
msgstr ""

#: admin/views/sections/firewall.php:92
msgid "The request firewall is off"
msgstr ""

#: admin/views/sections/firewall.php:93
msgid "Common automated probes (SQL injection, traversal, scanner tools) reach WordPress unfiltered. Enabling starts in monitor mode — it logs would-be blocks without blocking anything, so you can review before enforcing."
msgstr ""

#: admin/views/sections/firewall.php:102
msgid "Enable Request Firewall (monitor mode)"
msgstr ""

#: admin/views/sections/firewall.php:116
msgid "firewall matches in the last 30 days."
msgstr ""

#: admin/views/sections/firewall.php:118
msgid "(Monitor mode — these were logged, not blocked.)"
msgstr ""

#: admin/views/sections/firewall.php:125
msgid "Mode"
msgstr ""

#: admin/views/sections/firewall.php:127
msgid "Start in Monitor to validate against real traffic. Switch to Enforce only once the monitor log looks clean."
msgstr ""

#: admin/views/sections/firewall.php:133
#: admin/views/sidebar/settings.php:112
#: admin/views/tabs/overview.php:341
msgid "Monitor"
msgstr ""

#: admin/views/sections/firewall.php:134
#: admin/views/sections/hide-login.php:163
#: admin/views/sections/login-headers.php:112
#: admin/views/sections/login-headers.php:153
msgid "Recommended"
msgstr ""

#: admin/views/sections/firewall.php:137
msgid "Logs would-be blocks as incidents without blocking. Zero risk of breaking the site."
msgstr ""

#: admin/views/sections/firewall.php:143
#: admin/views/sidebar/settings.php:113
msgid "Enforce"
msgstr ""

#: admin/views/sections/firewall.php:146
msgid "Actually blocks matching requests with a 403. Logged-in admins are never filtered."
msgstr ""

#: admin/views/sections/firewall.php:156
#: admin/views/sidebar/settings.php:114
msgid "Conservative rules"
msgstr ""

#: admin/views/sections/firewall.php:158
msgid "Very low false-positive risk. Recommended on for everyone."
msgstr ""

#: admin/views/sections/firewall.php:162
msgid "Block SQL injection, code-exec, traversal and XSS markers in the query string."
msgstr ""

#: admin/views/sections/firewall.php:163
msgid "Block traversal, sensitive system files, backups and known web-shell paths."
msgstr ""

#: admin/views/sections/firewall.php:164
msgid "Allow only standard HTTP methods; block CONNECT, TRACE, TRACK, DEBUG and malformed ones."
msgstr ""

#: admin/views/sections/firewall.php:184
#: admin/views/sidebar/settings.php:115
msgid "Aggressive rules"
msgstr ""

#: admin/views/sections/firewall.php:186
msgid "Higher false-positive risk — these can hit legitimate clients (uptime monitors, Jetpack/XML-RPC, author pages). Enable only if you understand the trade-off, and test in Monitor first."
msgstr ""

#: admin/views/sections/firewall.php:190
msgid "Block scanner and generic HTTP-library user agents (curl, wget, python, sqlmap, nikto…)."
msgstr ""

#: admin/views/sections/firewall.php:191
msgid "Block requests from known spam referrer domains (best-effort, list ages quickly)."
msgstr ""

#: admin/views/sections/firewall.php:192
msgid "Block XML-RPC, author enumeration and exposed dev/source files."
msgstr ""

#: admin/views/sections/firewall.php:212
#: admin/views/sidebar/settings.php:116
msgid "Allowlist"
msgstr ""

#: admin/views/sections/firewall.php:214
msgid "Requests from these IPs, or to these paths, are never inspected. One entry per line. IPs accept CIDR ranges (e.g. 203.0.113.0/24). Logged-in administrators are always exempt."
msgstr ""

#: admin/views/sections/firewall.php:219
msgid "Allowed IPs"
msgstr ""

#: admin/views/sections/firewall.php:228
msgid "Use my current IP"
msgstr ""

#: admin/views/sections/firewall.php:233
msgid "Allowed paths"
msgstr ""

#: admin/views/sections/firewall.php:258
msgid "Recent blocks"
msgstr ""

#. translators: %d: number of matched requests
#: admin/views/sections/firewall.php:271
msgid "%d hit"
msgid_plural "%d hits"
msgstr[0] ""
msgstr[1] ""

#: admin/views/sections/firewall.php:273
msgid "monitor"
msgstr ""

#: admin/views/sections/geoip.php:32
#: admin/views/sidebar/settings.php:105
#: admin/views/tabs/overview.php:347
#: admin/views/tabs/settings.php:336
msgid "IP Geolocation"
msgstr ""

#: admin/views/sections/geoip.php:41
msgid "Attacking and login IPs are shown with their country of origin."
msgstr ""

#: admin/views/sections/geoip.php:43
msgid "Show the country of origin next to the IP addresses in your incidents and events."
msgstr ""

#: admin/views/sections/geoip.php:63
msgid "When enabled, the IP addresses Login Armor already shows you (failed logins, lockouts, incidents) are resolved to a country flag, so you can tell at a glance where attacks come from. Lookups happen only when you open an admin screen that lists IPs, and each result is cached for 30 days — there is no impact on your visitors or on the login page."
msgstr ""

#: admin/views/sections/geoip.php:66
#: admin/views/sections/geoip.php:90
msgid "External service:"
msgstr ""

#: admin/views/sections/geoip.php:67
msgid "this feature sends the IP address being displayed to the keyless public geolocation API ipwho.is, which returns the country. No API key or account is required. Private and reserved IP ranges are never sent. Developers can replace the source with an offline database via the login_armor_geoip_lookup filter to make zero external calls. See the External Services section of the plugin readme."
msgstr ""

#: admin/views/sections/geoip.php:76
msgid "Enable IP Geolocation"
msgstr ""

#: admin/views/sections/geoip.php:87
msgid "Geolocation is active. Country flags appear next to IP addresses on the Incidents and Events tabs. Results are cached for 30 days."
msgstr ""

#: admin/views/sections/geoip.php:91
msgid "displayed IPs are sent to the keyless public API ipwho.is to obtain a country. Private/reserved ranges are never sent. Disclosed in the plugin readme under External Services."
msgstr ""

#: admin/views/sections/hardening.php:30
msgid "Surface reduction"
msgstr ""

#: admin/views/sections/hardening.php:31
msgid "Remove entry points attackers probe first."
msgstr ""

#: admin/views/sections/hardening.php:35
msgid "Credential hardening"
msgstr ""

#: admin/views/sections/hardening.php:36
msgid "Stop username enumeration."
msgstr ""

#: admin/views/sections/hardening.php:40
msgid "Request filtering"
msgstr ""

#: admin/views/sections/hardening.php:41
msgid "Block malformed, malicious, or automated requests."
msgstr ""

#: admin/views/sections/hardening.php:45
msgid "Account monitoring"
msgstr ""

#: admin/views/sections/hardening.php:46
msgid "Get alerted when an account gains administrator access."
msgstr ""

#: admin/views/sections/hardening.php:129
msgid "Reserved usernames"
msgstr ""

#: admin/views/sections/hardening.php:130
msgid "One username per line. Case-insensitive. Changes auto-save."
msgstr ""

#: admin/views/sections/hardening.php:143
msgid "usernames blocked"
msgstr ""

#: admin/views/sections/hardening.php:155
msgid "existing user(s) match this blacklist:"
msgstr ""

#: admin/views/sections/hardening.php:158
msgid "These users will continue to log in normally — the blacklist applies only to new login attempts and registrations."
msgstr ""

#: admin/views/sections/hardening.php:169
#: admin/views/sections/limit-login.php:211
msgid "Apply recommended defaults"
msgstr ""

#: admin/views/sections/hide-login.php:38
msgid "PROTECTED"
msgstr ""

#: admin/views/sections/hide-login.php:45
#: admin/views/tabs/settings.php:249
msgid "Your login URL is hidden. Direct access attempts return a 404."
msgstr ""

#: admin/views/sections/hide-login.php:47
#: admin/views/tabs/settings.php:250
msgid "Move your login page to a secret URL. Your /wp-login.php is currently reachable."
msgstr ""

#: admin/views/sections/hide-login.php:74
msgid "Your login page is publicly accessible"
msgstr ""

#: admin/views/sections/hide-login.php:75
msgid "Bots and attackers can find /wp-login.php. Enabling Hide Login is strongly recommended."
msgstr ""

#: admin/views/sections/hide-login.php:80
msgid "When you enable Hide Login, your login page will move to a secret URL. Direct access to /wp-login.php and /wp-admin will return a 404."
msgstr ""

#: admin/views/sections/hide-login.php:83
msgid "Your new login URL will be:"
msgstr ""

#: admin/views/sections/hide-login.php:87
msgid "Bookmark this URL the moment you enable the feature. You can change the slug anytime from the settings."
msgstr ""

#: admin/views/sections/hide-login.php:106
msgid "Secret Login URL"
msgstr ""

#: admin/views/sections/hide-login.php:107
msgid "Edit the slug below to choose your own, or use Regenerate for a random one. Allowed: a-z, 0-9, hyphens."
msgstr ""

#: admin/views/sections/hide-login.php:142
msgid "Your login is at:"
msgstr ""

#: admin/views/sections/hide-login.php:145
#: admin/views/sections/hide-login.php:150
msgid "All other paths — /wp-login.php, /wp-admin — return a 404 to scanners and bots."
msgstr ""

#: admin/views/sections/hide-login.php:146
#: admin/views/sections/hide-login.php:149
msgid "All other paths — /wp-login.php, /wp-admin — redirect to your custom URL."
msgstr ""

#: admin/views/sections/hide-login.php:155
#: admin/views/sections/hide-login.php:156
msgid "Blocked Access Redirect"
msgstr ""

#: admin/views/sections/hide-login.php:157
msgid "What happens when someone tries to access /wp-login.php or /wp-admin directly."
msgstr ""

#: admin/views/sections/hide-login.php:162
msgid "404 Page"
msgstr ""

#: admin/views/sections/hide-login.php:166
msgid "Login page appears to not exist"
msgstr ""

#: admin/views/sections/hide-login.php:172
msgid "Custom URL"
msgstr ""

#: admin/views/sections/hide-login.php:175
msgid "Redirect to any page"
msgstr ""

#: admin/views/sections/hide-login.php:190
msgid "Forgot your login URL?"
msgstr ""

#: admin/views/sections/hide-login.php:195
msgid "If you're locked out, use one of these methods:"
msgstr ""

#: admin/views/sections/hide-login.php:212
msgid "Heads up:"
msgstr ""

#: admin/views/sections/hide-login.php:212
msgid "This disables Login Armor entirely. Use only if methods 1 & 2 fail."
msgstr ""

#: admin/views/sections/hide-login.php:221
msgid "Email me this URL"
msgstr ""

#: admin/views/sections/hide-login.php:224
msgid "Sent to admin email."
msgstr ""

#: admin/views/sections/limit-login.php:39
#: admin/views/tabs/settings.php:270
msgid "Brute Force Protection"
msgstr ""

#: admin/views/sections/limit-login.php:48
#: admin/views/tabs/settings.php:271
msgid "Rate-limit failed login attempts and lock out attacking IPs."
msgstr ""

#: admin/views/sections/limit-login.php:50
msgid "Brute force protection is currently disabled. Enable it to rate-limit login attempts."
msgstr ""

#: admin/views/sections/limit-login.php:77
msgid "Brute force protection is disabled"
msgstr ""

#: admin/views/sections/limit-login.php:78
msgid "Attackers can try unlimited passwords without being locked out."
msgstr ""

#: admin/views/sections/limit-login.php:83
msgid "When enabled, IPs that fail to log in too many times are temporarily locked out. This is your primary defense against password guessing attacks."
msgstr ""

#: admin/views/sections/limit-login.php:92
msgid "Enable Brute Force Protection"
msgstr ""

#: admin/views/sections/limit-login.php:105
msgid "IP Detection Method"
msgstr ""

#: admin/views/sections/limit-login.php:106
msgid "How to detect the visitor IP address. Choose based on your server setup."
msgstr ""

#: admin/views/sections/limit-login.php:111
msgid "Direct connection (default)"
msgstr ""

#: admin/views/sections/limit-login.php:112
msgid "Behind Cloudflare"
msgstr ""

#: admin/views/sections/limit-login.php:113
msgid "Behind a reverse proxy"
msgstr ""

#: admin/views/sections/limit-login.php:114
msgid "Behind Nginx proxy"
msgstr ""

#: admin/views/sections/limit-login.php:118
msgid "Wrong setting? Brute force protection may be bypassed. If unsure, keep \"Direct connection\"."
msgstr ""

#: admin/views/sections/limit-login.php:125
msgid "Lockout Rules"
msgstr ""

#: admin/views/sections/limit-login.php:126
msgid "How failed login attempts trigger temporary IP bans."
msgstr ""

#: admin/views/sections/limit-login.php:132
msgid "Allowed retries"
msgstr ""

#: admin/views/sections/limit-login.php:133
msgid "before lockout"
msgstr ""

#: admin/views/sections/limit-login.php:140
msgid "Minutes lockout"
msgstr ""

#: admin/views/sections/limit-login.php:141
msgid "first lockout duration"
msgstr ""

#: admin/views/sections/limit-login.php:148
#: admin/views/sidebar/settings.php:33
msgid "Max lockouts"
msgstr ""

#: admin/views/sections/limit-login.php:149
msgid "before long ban"
msgstr ""

#: admin/views/sections/limit-login.php:156
msgid "Hours long ban"
msgstr ""

#: admin/views/sections/limit-login.php:157
msgid "extended lockout"
msgstr ""

#: admin/views/sections/limit-login.php:164
msgid "Hours reset period"
msgstr ""

#: admin/views/sections/limit-login.php:165
msgid "failed attempts cleared after this inactivity window"
msgstr ""

#: admin/views/sections/limit-login.php:177
msgid "IP Safelist"
msgstr ""

#: admin/views/sections/limit-login.php:178
msgid "These IPs will never be locked out. One per line. Localhost (127.0.0.1, ::1) is always safe."
msgstr ""

#: admin/views/sections/limit-login.php:184
msgid "Add my current IP"
msgstr ""

#: admin/views/sections/limit-login.php:192
msgid "Email Notifications"
msgstr ""

#: admin/views/sections/limit-login.php:193
msgid "Get notified when an IP triggers repeated lockouts. Set to 0 to disable."
msgstr ""

#: admin/views/sections/limit-login.php:197
msgid "After"
msgstr ""

#: admin/views/sections/limit-login.php:199
msgid "lockouts"
msgstr ""

#: admin/views/sections/limit-login.php:202
msgid "Send to"
msgstr ""

#: admin/views/sections/limit-login.php:203
msgid "default"
msgstr ""

#: admin/views/sections/limit-login.php:214
msgid "Reset defaults"
msgstr ""

#: admin/views/sections/login-headers.php:37
#: admin/views/tabs/settings.php:290
msgid "Login Page Protection Headers"
msgstr ""

#: admin/views/sections/login-headers.php:46
msgid "Security headers scoped to the login request — nothing else on the site is affected."
msgstr ""

#: admin/views/sections/login-headers.php:48
msgid "Send HTTP headers that block clickjacking, MIME sniffing, and credential exfiltration on the login page."
msgstr ""

#: admin/views/sections/login-headers.php:75
msgid "Login headers are disabled"
msgstr ""

#: admin/views/sections/login-headers.php:76
msgid "Your login page can be framed, its referrer leaks, and MIME sniffing is permitted. Enable for a single-click hardening of the most targeted page."
msgstr ""

#: admin/views/sections/login-headers.php:81
msgid "When enabled, LoginArmor adds a curated set of security headers only on wp-login.php and your Hide Login slug. Nothing is applied to front-end pages or the WP admin — so the risk of breaking your theme or admin scripts is zero."
msgstr ""

#: admin/views/sections/login-headers.php:89
msgid "Enable Login Page Protection Headers"
msgstr ""

#: admin/views/sections/login-headers.php:102
msgid "Profile"
msgstr ""

#: admin/views/sections/login-headers.php:104
msgid "Standard keeps WordPress core login scripts working. Strict tightens the CSP for hardened deployments — may break login themes that inject third-party assets."
msgstr ""

#: admin/views/sections/login-headers.php:111
#: admin/views/sidebar/settings.php:67
msgid "Standard"
msgstr ""

#: admin/views/sections/login-headers.php:115
msgid "frame-ancestors none + form-action self + MIME + Referrer + Permissions-Policy. Safe for 99% of sites."
msgstr ""

#: admin/views/sections/login-headers.php:121
#: admin/views/sidebar/settings.php:68
msgid "Strict"
msgstr ""

#: admin/views/sections/login-headers.php:124
msgid "Standard + default-src self, full CSP lockdown. Test before enabling on sites with custom login themes."
msgstr ""

#: admin/views/sections/login-headers.php:134
msgid "HTTP Strict Transport Security (HSTS)"
msgstr ""

#: admin/views/sections/login-headers.php:136
msgid "Pin TLS for the login surface. The browser will refuse to connect over plain HTTP for the configured duration. Only emitted on HTTPS requests."
msgstr ""

#: admin/views/sections/login-headers.php:146
msgid "Do not emit HSTS. Pick this if the site is still being migrated to HTTPS."
msgstr ""

#: admin/views/sections/login-headers.php:152
msgid "180 days"
msgstr ""

#: admin/views/sections/login-headers.php:156
msgid "max-age=15552000. Safe default — six-month TLS commitment, no subdomain impact."
msgstr ""

#: admin/views/sections/login-headers.php:162
msgid "1 year + subdomains"
msgstr ""

#: admin/views/sections/login-headers.php:165
msgid "max-age=31536000; includeSubDomains. Verify every subdomain serves valid HTTPS first — recovery is hard."
msgstr ""

#: admin/views/sections/login-headers.php:175
msgid "CSP Report Endpoint (optional)"
msgstr ""

#: admin/views/sections/login-headers.php:177
msgid "HTTPS endpoint to receive CSP violation reports. Useful for monitoring attempted injections. Leave blank to skip."
msgstr ""

#: admin/views/sections/login-headers.php:193
msgid "Apply baseline headers site-wide"
msgstr ""

#: admin/views/sections/login-headers.php:195
msgid "Also emit the non-CSP security headers (X-Content-Type-Options, Referrer-Policy, Permissions-Policy, X-Frame-Options: SAMEORIGIN, and HSTS if configured) on every front-end page, not just the login. The Content-Security-Policy is intentionally NOT applied site-wide, because a strict CSP commonly breaks themes and page builders."
msgstr ""

#: admin/views/sections/login-headers.php:202
msgid "Send baseline security headers on the whole front-end"
msgstr ""

#: admin/views/sections/login-headers.php:210
msgid "Headers Sent on Login"
msgstr ""

#: admin/views/sections/login-headers.php:212
msgid "Live preview of what LoginArmor will emit. Update settings to see the output change."
msgstr ""

#: admin/views/sections/notifications.php:42
#: admin/views/sidebar/settings.php:121
#: admin/views/tabs/settings.php:392
msgid "Notifications"
msgstr ""

#: admin/views/sections/notifications.php:51
msgid "Receive alerts when security incidents are detected."
msgstr ""

#: admin/views/sections/notifications.php:53
msgid "Security alerts are silent. Critical incidents will not reach you."
msgstr ""

#: admin/views/sections/notifications.php:80
msgid "Notifications are disabled"
msgstr ""

#: admin/views/sections/notifications.php:81
msgid "Brute force attacks, lockouts, and detected incidents trigger no alert. You only find out when you open the dashboard."
msgstr ""

#: admin/views/sections/notifications.php:86
msgid "When enabled, LoginArmor sends an alert to the channel of your choice — email, Slack, Discord, or a generic JSON webhook — as soon as an incident crosses your severity threshold."
msgstr ""

#: admin/views/sections/notifications.php:95
msgid "Enable Notifications"
msgstr ""

#: admin/views/sections/notifications.php:108
msgid "Notification Channel"
msgstr ""

#: admin/views/sections/notifications.php:109
msgid "Where incident alerts should be delivered."
msgstr ""

#: admin/views/sections/notifications.php:114
msgid "Generic JSON"
msgstr ""

#: admin/views/sections/notifications.php:122
msgid "Recipient Email"
msgstr ""

#. translators: %s: admin email address
#: admin/views/sections/notifications.php:127
msgid "Leave empty to use the site admin email (%s)."
msgstr ""

#: admin/views/sections/notifications.php:140
msgid "Paste your Slack, Discord, or custom webhook URL."
msgstr ""

#: admin/views/sections/notifications.php:150
msgid "Minimum Severity"
msgstr ""

#: admin/views/sections/notifications.php:151
msgid "Only incidents at this severity or higher will trigger a notification."
msgstr ""

#: admin/views/sections/notifications.php:153
#: admin/views/sidebar/incidents.php:27
#: admin/views/tabs/incidents.php:97
#: admin/views/tabs/incidents.php:870
msgid "Low"
msgstr ""

#: admin/views/sections/notifications.php:154
#: admin/views/sidebar/incidents.php:26
#: admin/views/tabs/incidents.php:95
#: admin/views/tabs/incidents.php:869
msgid "Medium"
msgstr ""

#: admin/views/sections/notifications.php:155
#: admin/views/sidebar/incidents.php:25
#: admin/views/tabs/incidents.php:92
#: admin/views/tabs/incidents.php:868
msgid "High"
msgstr ""

#: admin/views/sections/notifications.php:156
#: admin/views/sidebar/incidents.php:24
#: admin/views/tabs/incidents.php:89
#: admin/views/tabs/incidents.php:867
msgid "Critical"
msgstr ""

#: admin/views/sections/notifications.php:164
msgid "Rate Limit"
msgstr ""

#: admin/views/sections/notifications.php:165
msgid "Maximum notifications per hour. Set to 0 for unlimited."
msgstr ""

#: admin/views/sections/notifications.php:170
msgid "per hour"
msgstr ""

#: admin/views/sections/notifications.php:179
msgid "Send test notification"
msgstr ""

#. translators: 1: Error message, 2: Human-readable time diff.
#: admin/views/sections/notifications.php:193
msgid "Last error: %1$s (%2$s ago)"
msgstr ""

#: admin/views/sections/password-policy.php:42
msgid "New and changed passwords must meet your rules before they are accepted."
msgstr ""

#: admin/views/sections/password-policy.php:44
msgid "Require strong, unique passwords at registration, profile update, and password reset."
msgstr ""

#: admin/views/sections/password-policy.php:71
msgid "Password policy is disabled"
msgstr ""

#: admin/views/sections/password-policy.php:72
msgid "WordPress accepts any password by default — including ones already exposed in public breaches. A policy stops weak and reused passwords at the door."
msgstr ""

#: admin/views/sections/password-policy.php:77
msgid "When enabled, Login Armor validates every password as it is set — at registration, on the profile screen, and during a lost-password reset. You choose the minimum length and character requirements, and can reject passwords found in public data breaches using the same privacy-preserving Have I Been Pwned lookup as Breach Check."
msgstr ""

#: admin/views/sections/password-policy.php:86
msgid "Enable Password Policy"
msgstr ""

#: admin/views/sections/password-policy.php:99
#: admin/views/sidebar/settings.php:86
msgid "Minimum length"
msgstr ""

#: admin/views/sections/password-policy.php:101
msgid "Reject any password shorter than this many characters. NIST recommends at least 12."
msgstr ""

#: admin/views/sections/password-policy.php:112
msgid "characters"
msgstr ""

#: admin/views/sections/password-policy.php:120
msgid "Character requirements"
msgstr ""

#: admin/views/sections/password-policy.php:122
msgid "Require a mix of character classes. Each enabled rule must be satisfied by the password."
msgstr ""

#: admin/views/sections/password-policy.php:130
msgid "At least one lowercase letter"
msgstr ""

#: admin/views/sections/password-policy.php:137
msgid "At least one uppercase letter"
msgstr ""

#: admin/views/sections/password-policy.php:144
msgid "At least one number"
msgstr ""

#: admin/views/sections/password-policy.php:151
msgid "At least one symbol"
msgstr ""

#: admin/views/sections/password-policy.php:158
msgid "Must not contain the username"
msgstr ""

#: admin/views/sections/password-policy.php:166
msgid "Block compromised passwords"
msgstr ""

#: admin/views/sections/password-policy.php:168
msgid "Reject passwords that appear in the public Have I Been Pwned corpus. Only the first 5 characters of a one-way hash ever leave your server. If the service is unreachable, the password is allowed (fail-soft) so a reset is never blocked by a third-party outage."
msgstr ""

#: admin/views/sections/password-policy.php:175
msgid "Reject passwords found in public data breaches"
msgstr ""

#: admin/views/sections/password-policy.php:183
msgid "Password expiration"
msgstr ""

#: admin/views/sections/password-policy.php:185
msgid "Nag users to change their password after this many days. Set to 0 to never expire. Users are redirected to their profile until they change it — they are never locked out. Existing accounts are measured from their next login, never retro-expired."
msgstr ""

#: admin/views/sections/password-policy.php:196
msgid "days (0 = never)"
msgstr ""

#: admin/views/sections/session.php:41
msgid "Idle accounts are logged out and session lifetime is capped."
msgstr ""

#: admin/views/sections/session.php:43
msgid "Log out idle accounts, cap how long a login lasts, and limit logins to one device."
msgstr ""

#: admin/views/sections/session.php:70
msgid "Session management is disabled"
msgstr ""

#: admin/views/sections/session.php:71
msgid "By default a WordPress login stays valid for up to 14 days on any number of devices, even if the computer is left unattended. Session management closes that window."
msgstr ""

#: admin/views/sections/session.php:76
msgid "When enabled, you can automatically log out accounts that have been idle for a set time, cap the maximum lifetime of any login, and optionally restrict each account to a single active device — logging in elsewhere ends the previous session."
msgstr ""

#: admin/views/sections/session.php:85
msgid "Enable Session Management"
msgstr ""

#: admin/views/sections/session.php:98
#: admin/views/sidebar/settings.php:97
msgid "Idle timeout"
msgstr ""

#: admin/views/sections/session.php:100
msgid "Log an account out after this many minutes of inactivity. Inactivity is measured on real page loads — background heartbeat traffic does not keep a session alive. Set to 0 to disable."
msgstr ""

#: admin/views/sections/session.php:111
msgid "minutes (0 = off)"
msgstr ""

#: admin/views/sections/session.php:119
msgid "Maximum session lifetime"
msgstr ""

#: admin/views/sections/session.php:121
msgid "Cap how long any login cookie stays valid, regardless of \"remember me\". WordPress allows up to 14 days by default. Set to 0 to leave the WordPress default unchanged."
msgstr ""

#: admin/views/sections/session.php:132
msgid "hours (0 = WordPress default)"
msgstr ""

#: admin/views/sections/session.php:140
msgid "Single active session"
msgstr ""

#: admin/views/sections/session.php:142
msgid "Restrict each account to one device at a time. Logging in from a new device ends every other session for that account. Useful for shared admin accounts and to limit credential sharing."
msgstr ""

#: admin/views/sections/session.php:149
msgid "Allow only one active session per account"
msgstr ""

#: admin/views/sections/session.php:157
msgid "Your active sessions"
msgstr ""

#. translators: %d: number of active sessions for the current administrator account.
#: admin/views/sections/session.php:163
msgid "Your account currently has %d active session."
msgid_plural "Your account currently has %d active sessions."
msgstr[0] ""
msgstr[1] ""

#: admin/views/sections/session.php:175
msgid "Sign out all other devices"
msgstr ""

#: admin/views/sections/two-factor-settings.php:36
#: admin/views/sidebar/settings.php:53
#: admin/views/tabs/incidents.php:348
#: admin/views/tabs/settings.php:382
msgid "Two-Factor Authentication"
msgstr ""

#: admin/views/sections/two-factor-settings.php:45
msgid "Require a second factor for admin logins."
msgstr ""

#: admin/views/sections/two-factor-settings.php:47
msgid "Add authenticator app or email verification to logins."
msgstr ""

#: admin/views/sections/two-factor-settings.php:73
msgid "Two-factor authentication is disabled"
msgstr ""

#: admin/views/sections/two-factor-settings.php:74
msgid "Accounts are protected by passwords only. Compromised credentials allow immediate access."
msgstr ""

#: admin/views/sections/two-factor-settings.php:79
msgid "When enabled, users can set up an authenticator app (TOTP), email verification codes, or backup codes as a second factor. You can enforce 2FA for specific roles."
msgstr ""

#: admin/views/sections/two-factor-settings.php:87
#: admin/views/tabs/incidents.php:339
msgid "Enable Two-Factor Authentication"
msgstr ""

#: admin/views/sections/two-factor-settings.php:100
msgid "Allowed Methods"
msgstr ""

#: admin/views/sections/two-factor-settings.php:101
msgid "Choose which authentication methods users can use."
msgstr ""

#: admin/views/sections/two-factor-settings.php:106
msgid "Authenticator App (TOTP)"
msgstr ""

#: admin/views/sections/two-factor-settings.php:123
#: admin/views/sidebar/settings.php:58
msgid "Enforcement"
msgstr ""

#: admin/views/sections/two-factor-settings.php:124
msgid "Select roles that must use 2FA. Leave empty for voluntary-only."
msgstr ""

#: admin/views/sections/two-factor-settings.php:140
msgid "Grace Period"
msgstr ""

#: admin/views/sections/two-factor-settings.php:141
msgid "How long users in enforced roles have to set up 2FA after it becomes required."
msgstr ""

#. translators: %d: number of days
#: admin/views/sections/two-factor-settings.php:151
#: admin/views/sections/two-factor-settings.php:189
msgid "%d day"
msgid_plural "%d days"
msgstr[0] ""
msgstr[1] ""

#: admin/views/sections/two-factor-settings.php:171
msgid "Trusted Devices"
msgstr ""

#: admin/views/sections/two-factor-settings.php:172
msgid "Let users trust their browser for N days after a successful 2FA verification. Disable for strict compliance (every login requires a second factor)."
msgstr ""

#: admin/views/sections/two-factor-settings.php:177
msgid "Allow trusted devices"
msgstr ""

#: admin/views/sections/two-factor-settings.php:183
msgid "Duration"
msgstr ""

#: admin/views/sections/two-factor-settings.php:207
msgid "2FA Recovery"
msgstr ""

#: admin/views/sections/two-factor-settings.php:208
msgid "Allow users who have lost every 2FA method to request a reset. The request is emailed to the first site administrator, who must authorize it. Disable for strict compliance."
msgstr ""

#: admin/views/sections/two-factor-settings.php:213
msgid "Allow account recovery when 2FA is lost"
msgstr ""

#: admin/views/sections/two-factor-settings.php:223
msgid "Enrollment Status"
msgstr ""

#. translators: 1: enrolled count, 2: total count, 3: role name
#: admin/views/sections/two-factor-settings.php:229
msgid "%1$d of %2$d %3$s users have 2FA active"
msgstr ""

#: admin/views/sections/two-factor-settings.php:247
msgid "Your Account"
msgstr ""

#: admin/views/sections/two-factor-settings.php:249
msgid "Two-factor authentication is active on your account."
msgstr ""

#: admin/views/sections/two-factor-settings.php:251
msgid "Manage your 2FA"
msgstr ""

#: admin/views/sections/two-factor-settings.php:254
msgid "You have not set up two-factor authentication yet."
msgstr ""

#: admin/views/sections/two-factor-settings.php:256
msgid "Set up your 2FA"
msgstr ""

#: admin/views/sidebar/activity.php:14
msgid "Activity Log Guide"
msgstr ""

#: admin/views/sidebar/activity.php:17
#: admin/views/sidebar/events.php:17
msgid "What gets logged"
msgstr ""

#: admin/views/sidebar/activity.php:19
msgid "creation, deletion, role and email changes, password resets."
msgstr ""

#: admin/views/sidebar/activity.php:20
msgid "Posts & Pages"
msgstr ""

#: admin/views/sidebar/activity.php:20
msgid "created, edited, trashed, restored, permanently deleted."
msgstr ""

#: admin/views/sidebar/activity.php:21
msgid "uploads, edits, deletions."
msgstr ""

#: admin/views/sidebar/activity.php:22
msgid "Plugins & Themes"
msgstr ""

#: admin/views/sidebar/activity.php:22
msgid "installed, activated, deactivated, updated, deleted."
msgstr ""

#: admin/views/sidebar/activity.php:23
msgid "Critical Options"
msgstr ""

#: admin/views/sidebar/activity.php:23
msgid "site URL, admin email, registration, roles, permalink changes."
msgstr ""

#: admin/views/sidebar/activity.php:28
msgid "Reading the log"
msgstr ""

#: admin/views/sidebar/activity.php:30
msgid "new content or resource."
msgstr ""

#: admin/views/sidebar/activity.php:31
msgid "content or settings modified."
msgstr ""

#: admin/views/sidebar/activity.php:32
msgid "plugin/theme activated or restored."
msgstr ""

#: admin/views/sidebar/activity.php:33
msgid "permanently removed."
msgstr ""

#: admin/views/sidebar/activity.php:38
msgid "When to worry"
msgstr ""

#: admin/views/sidebar/activity.php:40
msgid "Mass deletions in a short timeframe."
msgstr ""

#: admin/views/sidebar/activity.php:41
msgid "Role escalations (subscriber to admin)."
msgstr ""

#: admin/views/sidebar/activity.php:42
msgid "Plugin installs or theme changes at unusual hours."
msgstr ""

#: admin/views/sidebar/activity.php:43
msgid "Changes to site URL, admin email, or registration settings."
msgstr ""

#: admin/views/sidebar/events.php:14
msgid "Event Log Guide"
msgstr ""

#: admin/views/sidebar/events.php:18
msgid "Every login attempt is recorded with its outcome, IP address, and timestamp."
msgstr ""

#: admin/views/sidebar/events.php:22
msgid "Status Codes"
msgstr ""

#: admin/views/sidebar/events.php:24
msgid "successful login."
msgstr ""

#: admin/views/sidebar/events.php:25
msgid "wrong username or password."
msgstr ""

#: admin/views/sidebar/events.php:26
msgid "Auth blocked after too many failures."
msgstr ""

#: admin/views/sidebar/events.php:31
msgid "Filtering & Export"
msgstr ""

#: admin/views/sidebar/events.php:32
msgid "Use the filters to narrow results by status, IP, or username. The export button downloads matching events as CSV."
msgstr ""

#: admin/views/sidebar/events.php:36
msgid "Retention"
msgstr ""

#: admin/views/sidebar/events.php:37
msgid "Log retention and auto-purge settings can be configured in Settings > Detection & Logs."
msgstr ""

#: admin/views/sidebar/incidents.php:14
msgid "Understanding Incidents"
msgstr ""

#: admin/views/sidebar/incidents.php:17
msgid "How it works"
msgstr ""

#: admin/views/sidebar/incidents.php:18
msgid "Login Armor automatically groups suspicious login attempts into incidents using pattern detection."
msgstr ""

#: admin/views/sidebar/incidents.php:22
msgid "Severity Levels"
msgstr ""

#: admin/views/sidebar/incidents.php:24
msgid "active attack, immediate attention."
msgstr ""

#: admin/views/sidebar/incidents.php:25
msgid "significant threat, review recommended."
msgstr ""

#: admin/views/sidebar/incidents.php:26
msgid "moderate activity worth monitoring."
msgstr ""

#: admin/views/sidebar/incidents.php:27
msgid "minor or isolated event."
msgstr ""

#: admin/views/sidebar/incidents.php:32
#: admin/views/tabs/activity.php:274
msgid "Actions"
msgstr ""

#: admin/views/sidebar/incidents.php:34
msgid "Resolve"
msgstr ""

#: admin/views/sidebar/incidents.php:34
msgid "mark as handled."
msgstr ""

#: admin/views/sidebar/incidents.php:35
#: admin/views/tabs/incidents.php:900
#: admin/views/tabs/incidents.php:1090
msgid "Ignore"
msgstr ""

#: admin/views/sidebar/incidents.php:35
msgid "dismiss as false positive."
msgstr ""

#: admin/views/sidebar/incidents.php:36
msgid "Block Subnet"
msgstr ""

#: admin/views/sidebar/incidents.php:36
msgid "block the entire /24 subnet."
msgstr ""

#: admin/views/sidebar/incidents.php:41
msgid "Tip"
msgstr ""

#: admin/views/sidebar/incidents.php:42
msgid "Click any incident row to see the full timeline, correlated events, and user agents involved."
msgstr ""

#: admin/views/sidebar/overview.php:14
msgid "About this view"
msgstr ""

#: admin/views/sidebar/overview.php:17
msgid "Attacks Neutralized"
msgstr ""

#: admin/views/sidebar/overview.php:18
msgid "Total number of login attempts blocked by brute force protection or IP lockouts."
msgstr ""

#: admin/views/sidebar/overview.php:22
msgid "Health Cards"
msgstr ""

#: admin/views/sidebar/overview.php:23
msgid "Each card represents a security module. Click any card to jump to its settings."
msgstr ""

#: admin/views/sidebar/overview.php:25
msgid "conceals wp-login.php behind a secret URL."
msgstr ""

#: admin/views/sidebar/overview.php:26
msgid "locks out IPs after repeated failures."
msgstr ""

#: admin/views/sidebar/overview.php:27
msgid "one-click security toggles."
msgstr ""

#: admin/views/sidebar/overview.php:28
msgid "identifies attack patterns automatically."
msgstr ""

#: admin/views/sidebar/overview.php:29
msgid "tracks admin actions across users, posts, plugins, and options."
msgstr ""

#: admin/views/sidebar/overview.php:30
msgid "adds a second factor (TOTP, email, backup codes) to the login flow."
msgstr ""

#: admin/views/sidebar/overview.php:31
msgid "HTTP security headers scoped to the login page (CSP, X-Frame-Options)."
msgstr ""

#: admin/views/sidebar/overview.php:32
msgid "detects user passwords and emails that appear in public data leaks, using privacy-preserving lookups (k-anonymity)."
msgstr ""

#: admin/views/sidebar/overview.php:33
msgid "enforces strong, unique passwords and blocks breached ones."
msgstr ""

#: admin/views/sidebar/overview.php:34
msgid "idle timeout, maximum session lifetime, single-device login."
msgstr ""

#: admin/views/sidebar/overview.php:39
msgid "Activity Chart"
msgstr ""

#: admin/views/sidebar/overview.php:40
msgid "Login activity over the past 7 days. Spikes may indicate ongoing attacks."
msgstr ""

#: admin/views/sidebar/overview.php:44
msgid "Live Events"
msgstr ""

#: admin/views/sidebar/overview.php:45
msgid "Most recent login attempts in real time. Red entries are failed or locked-out attempts."
msgstr ""

#: admin/views/sidebar/settings.php:16
msgid "Settings Guide"
msgstr ""

#: admin/views/sidebar/settings.php:20
msgid "Replaces wp-login.php with a custom secret URL. Anyone visiting the old URL gets a 404."
msgstr ""

#: admin/views/sidebar/settings.php:25
msgid "One-click security toggles. Each toggle hardens a specific attack surface. Per-category counts show how many toggles are enabled in each group."
msgstr ""

#: admin/views/sidebar/settings.php:31
msgid "Lockout duration"
msgstr ""

#: admin/views/sidebar/settings.php:31
msgid "how long an IP is locked. Default: 20 min."
msgstr ""

#: admin/views/sidebar/settings.php:32
msgid "Reset period"
msgstr ""

#: admin/views/sidebar/settings.php:32
msgid "failures forgotten after this time. Default: 24h."
msgstr ""

#: admin/views/sidebar/settings.php:33
msgid "triggers a long ban. Default: 4."
msgstr ""

#: admin/views/sidebar/settings.php:34
msgid "Long ban"
msgstr ""

#: admin/views/sidebar/settings.php:34
msgid "extended ban for repeat offenders. Default: 24h."
msgstr ""

#: admin/views/sidebar/settings.php:35
msgid "IP safelist"
msgstr ""

#: admin/views/sidebar/settings.php:35
msgid "IPs never locked out. Add yours."
msgstr ""

#: admin/views/sidebar/settings.php:42
msgid "Log retention"
msgstr ""

#: admin/views/sidebar/settings.php:42
msgid "how long logs are kept."
msgstr ""

#: admin/views/sidebar/settings.php:43
msgid "Auto-purge"
msgstr ""

#: admin/views/sidebar/settings.php:43
msgid "auto-deletes old logs daily."
msgstr ""

#: admin/views/sidebar/settings.php:49
msgid "Tracks admin actions (post edits, plugin changes, user modifications) to detect compromised accounts. Opt-in — zero overhead when disabled."
msgstr ""

#: admin/views/sidebar/settings.php:55
msgid "works with Google Authenticator, Authy, 1Password, Bitwarden. Most secure option."
msgstr ""

#: admin/views/sidebar/settings.php:56
msgid "6-digit code sent to user email. Good fallback but depends on email delivery."
msgstr ""

#: admin/views/sidebar/settings.php:57
msgid "single-use recovery codes. Always enabled alongside the primary method."
msgstr ""

#: admin/views/sidebar/settings.php:58
msgid "require 2FA for specific roles. Users get a grace period to set up."
msgstr ""

#: admin/views/sidebar/settings.php:59
msgid "Setup"
msgstr ""

#: admin/views/sidebar/settings.php:59
msgid "each user sets up 2FA in their Profile page."
msgstr ""

#: admin/views/sidebar/settings.php:60
msgid "Recovery"
msgstr ""

#: admin/views/sidebar/settings.php:60
msgid "use a backup code, or ask an admin to reset your 2FA via WP-CLI."
msgstr ""

#: admin/views/sidebar/settings.php:65
msgid "Login Page Headers"
msgstr ""

#: admin/views/sidebar/settings.php:67
msgid "safe defaults. Blocks clickjacking and credential exfiltration without breaking WP login."
msgstr ""

#: admin/views/sidebar/settings.php:68
msgid "full CSP lockdown. Test if you use custom login themes or third-party login plugins."
msgstr ""

#: admin/views/sidebar/settings.php:69
#: admin/views/sidebar/settings.php:90
msgid "Scope"
msgstr ""

#: admin/views/sidebar/settings.php:69
msgid "headers are applied only on the login page, never on the front-end or WP admin."
msgstr ""

#: admin/views/sidebar/settings.php:76
msgid "What"
msgstr ""

#: admin/views/sidebar/settings.php:76
msgid "detects if a user password or email address appears in publicly disclosed data breaches."
msgstr ""

#: admin/views/sidebar/settings.php:77
msgid "Privacy"
msgstr ""

#: admin/views/sidebar/settings.php:77
msgid "the password itself never leaves your server. Only the first 5 characters of a SHA-1 hash are sent to the public Have I Been Pwned API (k-anonymity lookup); your server compares the rest locally."
msgstr ""

#: admin/views/sidebar/settings.php:78
msgid "Effect"
msgstr ""

#: admin/views/sidebar/settings.php:78
msgid "flagged users get a friendly notice on their profile page. No one is locked out unless you turn on \"force password reset\"."
msgstr ""

#: admin/views/sidebar/settings.php:79
msgid "Cost"
msgstr ""

#: admin/views/sidebar/settings.php:79
msgid "free. No API key, no account. Cached 24 h per password prefix so the API is not hit on every login."
msgstr ""

#: admin/views/sidebar/settings.php:86
msgid "enforce a minimum character count on new and changed passwords."
msgstr ""

#: admin/views/sidebar/settings.php:87
msgid "Complexity"
msgstr ""

#: admin/views/sidebar/settings.php:87
msgid "require lower/upper case, a number, and optionally a symbol."
msgstr ""

#: admin/views/sidebar/settings.php:88
msgid "Block compromised"
msgstr ""

#: admin/views/sidebar/settings.php:88
msgid "reject passwords found in public breaches. The password never leaves your server (Have I Been Pwned k-anonymity)."
msgstr ""

#: admin/views/sidebar/settings.php:89
msgid "Expiration"
msgstr ""

#: admin/views/sidebar/settings.php:89
msgid "optionally force a reset after N days. 0 = never expires."
msgstr ""

#: admin/views/sidebar/settings.php:90
msgid "applies at registration, profile update and password reset. Fails soft if the breach API is unreachable."
msgstr ""

#: admin/views/sidebar/settings.php:97
msgid "sign out accounts after a period of inactivity. 0 = off."
msgstr ""

#: admin/views/sidebar/settings.php:98
msgid "Max lifetime"
msgstr ""

#: admin/views/sidebar/settings.php:98
msgid "cap how long a session stays valid regardless of activity."
msgstr ""

#: admin/views/sidebar/settings.php:99
msgid "Single session"
msgstr ""

#: admin/views/sidebar/settings.php:99
msgid "one active device per account; logging in elsewhere ends the older session."
msgstr ""

#: admin/views/sidebar/settings.php:100
msgid "Sign out others"
msgstr ""

#: admin/views/sidebar/settings.php:100
msgid "end every other session for your own account from your profile."
msgstr ""

#: admin/views/sidebar/settings.php:106
msgid "Shows the country of origin next to IP addresses in Incidents and Events. Lookups use the keyless ipwho.is service, are cached, and never affect the security score. Purely informational."
msgstr ""

#: admin/views/sidebar/settings.php:112
msgid "logs would-be blocks as incidents without blocking. Always start here."
msgstr ""

#: admin/views/sidebar/settings.php:113
msgid "actually blocks matching requests with a 403. Switch once the monitor log looks clean."
msgstr ""

#: admin/views/sidebar/settings.php:114
msgid "bad query strings, paths and HTTP methods. Very low false-positive risk; on by default."
msgstr ""

#: admin/views/sidebar/settings.php:115
msgid "user-agent and referrer filtering, XML-RPC and author probes. Higher false-positive risk; opt-in."
msgstr ""

#: admin/views/sidebar/settings.php:116
msgid "IPs (incl. CIDR) and paths never inspected. Logged-in administrators are always exempt."
msgstr ""

#: admin/views/sidebar/settings.php:122
msgid "Get alerted via Slack, Discord, or a custom webhook when attacks reach a threshold. Use the Test button to verify your URL."
msgstr ""

#: admin/views/sidebar/settings.php:127
msgid "Optional analysis layer on the WordPress 7 native AI client. Explains incidents in plain language and advises on hardening. Minimized by default — only deterministic, local facts are shared and no API key is stored. Needs a WordPress 7 AI connector to activate."
msgstr ""

#: admin/views/sidebar/sponsored-ads.php:18
msgid "Sponsored: WPFormation"
msgstr ""

#: admin/views/sidebar/sponsored-ads.php:20
msgid "Sponsored"
msgstr ""

#: admin/views/sidebar/sponsored-ads.php:21
msgid "Ad"
msgstr ""

#: admin/views/sidebar/sponsored-ads.php:28
msgid "OGEEAT — Generative Engine Optimization"
msgstr ""

#: admin/views/sidebar/sponsored-ads.php:35
msgid "Free plugin"
msgstr ""

#: admin/views/sidebar/sponsored-ads.php:36
msgid "Get cited by ChatGPT, Perplexity &amp; Gemini"
msgstr ""

#: admin/views/sidebar/sponsored-ads.php:37
msgid "OGEEAT adds E-E-A-T schemas, GEO scoring and an llms.txt generator so AI engines actually understand your site."
msgstr ""

#: admin/views/sidebar/sponsored-ads.php:43
msgid "<b>%s modules</b> · WordPress.org"
msgstr ""

#: admin/views/sidebar/sponsored-ads.php:48
msgid "Install"
msgstr ""

#: admin/views/sidebar/sponsored-ads.php:79
msgid "Zero complacency"
msgstr ""

#. translators: <em> highlights the offer — keep the <em> tag.
#: admin/views/sidebar/sponsored-ads.php:84
msgid "Get a <em>deep-dive review</em> on WPFormation"
msgstr ""

#. translators: <b> is the target audience — keep the <b> tag.
#: admin/views/sidebar/sponsored-ads.php:93
msgid "<b>For plugin, theme &amp; SaaS editors.</b> Real-world test, published article, social blast, trust badge."
msgstr ""

#: admin/views/sidebar/sponsored-ads.php:99
msgid "Submit"
msgstr ""

#: admin/views/sidebar/sponsored-ads.php:102
msgid "Service for editors"
msgstr ""

#: admin/views/sidebar/sponsored-ads.php:103
msgid "Crash-Test — A published review worth citing"
msgstr ""

#: admin/views/sidebar/sponsored-ads.php:104
msgid "2,000–3,000-word deep dive, dedicated test site, video option. SEO-optimized to rank for years. Delivered in 5–10 business days."
msgstr ""

#. translators: <b> highlights the format — keep the <b> tag.
#: admin/views/sidebar/sponsored-ads.php:110
msgid "<b>Deep-dive</b> · By Fabrice Ducarme"
msgstr ""

#: admin/views/tabs/activity.php:34
msgid "Admin actions across your site — plugin installs, user edits, option changes."
msgstr ""

#: admin/views/tabs/activity.php:38
msgid "Activity logging is disabled. Enable it in Settings to start tracking admin actions."
msgstr ""

#: admin/views/tabs/activity.php:40
msgid "Go to Settings"
msgstr ""

#: admin/views/tabs/activity.php:158
#: admin/views/tabs/events.php:94
#: admin/views/tabs/incidents.php:170
msgid "%dw ago"
msgstr ""

#: admin/views/tabs/activity.php:162
#: admin/views/tabs/events.php:98
#: admin/views/tabs/incidents.php:174
msgid "%dmo ago"
msgstr ""

#: admin/views/tabs/activity.php:165
#: admin/views/tabs/events.php:101
#: admin/views/tabs/incidents.php:177
msgid "%dy ago"
msgstr ""

#: admin/views/tabs/activity.php:179
msgid "CREATED"
msgstr ""

#: admin/views/tabs/activity.php:180
msgid "UPDATED"
msgstr ""

#: admin/views/tabs/activity.php:181
msgid "DELETED"
msgstr ""

#: admin/views/tabs/activity.php:182
msgid "CHANGED"
msgstr ""

#: admin/views/tabs/activity.php:183
msgid "ROTATED"
msgstr ""

#: admin/views/tabs/activity.php:184
msgid "ENABLED"
msgstr ""

#: admin/views/tabs/activity.php:186
msgid "UPLOADED"
msgstr ""

#: admin/views/tabs/activity.php:187
msgid "INSTALLED"
msgstr ""

#: admin/views/tabs/activity.php:188
msgid "ACTIVATED"
msgstr ""

#: admin/views/tabs/activity.php:189
msgid "DEACTIVATED"
msgstr ""

#: admin/views/tabs/activity.php:190
msgid "TRASHED"
msgstr ""

#: admin/views/tabs/activity.php:191
msgid "RESTORED"
msgstr ""

#: admin/views/tabs/activity.php:192
msgid "ENFORCED"
msgstr ""

#: admin/views/tabs/activity.php:193
msgid "VERIFIED"
msgstr ""

#: admin/views/tabs/activity.php:194
msgid "FAILED"
msgstr ""

#: admin/views/tabs/activity.php:195
msgid "INITIALIZED"
msgstr ""

#: admin/views/tabs/activity.php:196
msgid "USED"
msgstr ""

#: admin/views/tabs/activity.php:197
msgid "TRUSTED"
msgstr ""

#: admin/views/tabs/activity.php:198
msgid "REVOKED"
msgstr ""

#: admin/views/tabs/activity.php:199
msgid "RECOVERY"
msgstr ""

#: admin/views/tabs/activity.php:200
msgid "REQUESTED"
msgstr ""

#: admin/views/tabs/activity.php:201
msgid "RESET"
msgstr ""

#: admin/views/tabs/activity.php:203
msgid "REGISTERED"
msgstr ""

#: admin/views/tabs/activity.php:204
msgid "LOCKED"
msgstr ""

#: admin/views/tabs/activity.php:205
msgid "UNLOCKED"
msgstr ""

#: admin/views/tabs/activity.php:206
msgid "PURGED"
msgstr ""

#: admin/views/tabs/activity.php:221
msgid "USER"
msgstr ""

#: admin/views/tabs/activity.php:222
msgid "POST"
msgstr ""

#: admin/views/tabs/activity.php:223
msgid "PAGE"
msgstr ""

#: admin/views/tabs/activity.php:224
msgid "CONFIG"
msgstr ""

#: admin/views/tabs/activity.php:225
msgid "PLUGIN"
msgstr ""

#: admin/views/tabs/activity.php:226
msgid "MEDIA"
msgstr ""

#: admin/views/tabs/activity.php:227
msgid "THEME"
msgstr ""

#: admin/views/tabs/activity.php:228
msgid "OPTION"
msgstr ""

#: admin/views/tabs/activity.php:229
msgid "COMMENT"
msgstr ""

#: admin/views/tabs/activity.php:230
msgid "MENU"
msgstr ""

#: admin/views/tabs/activity.php:231
msgid "ROLE"
msgstr ""

#: admin/views/tabs/activity.php:232
msgid "DEVICE"
msgstr ""

#. translators: %s: actions in last 7 days (wrapped in <b>).
#: admin/views/tabs/activity.php:250
msgid "%s actions in the last 7 days"
msgstr ""

#: admin/views/tabs/activity.php:257
msgid "Track what changed and who changed it. Plugin installs, config edits, user role changes — all captured with IP and timestamp."
msgstr ""

#: admin/views/tabs/activity.php:266
#: admin/views/tabs/events.php:171
msgid "Export CSV"
msgstr ""

#: admin/views/tabs/activity.php:282
msgid "Plugin changes"
msgstr ""

#: admin/views/tabs/activity.php:286
msgid "Config rotations"
msgstr ""

#: admin/views/tabs/activity.php:322
msgid "Each row of the activity log is cryptographically signed and chained. Direct database edits, malicious plugins, or attackers tampering with the table break the chain and surface here."
msgstr ""

#: admin/views/tabs/activity.php:327
msgid "Activity Log Integrity"
msgstr ""

#: admin/views/tabs/activity.php:333
msgid "TAMPERED"
msgstr ""

#: admin/views/tabs/activity.php:335
msgid "UNVERIFIED"
msgstr ""

#. translators: %s: row count formatted (e.g. "1 234").
#: admin/views/tabs/activity.php:343
msgid "%s row signed"
msgid_plural "%s rows signed"
msgstr[0] ""
msgstr[1] ""

#: admin/views/tabs/activity.php:364
msgid "Security keys changed since the last baseline"
msgstr ""

#. translators: %d: row id
#: admin/views/tabs/activity.php:370
msgid "first break at row %d"
msgstr ""

#: admin/views/tabs/activity.php:375
msgid "Run a check to verify the chain."
msgstr ""

#: admin/views/tabs/activity.php:380
msgid "Verify now"
msgstr ""

#. translators: 1: number of rows before chain start, 2: chain start row id
#: admin/views/tabs/activity.php:403
msgid "%1$s row before the integrity chain (id < %2$s) is not covered by Verify. These legacy rows can be modified without detection."
msgid_plural "%1$s rows before the integrity chain (id < %2$s) are not covered by Verify. These legacy rows can be modified without detection."
msgstr[0] ""
msgstr[1] ""

#: admin/views/tabs/activity.php:421
msgid "Security keys changed — not tampering."
msgstr ""

#: admin/views/tabs/activity.php:422
msgid "The activity log is signed with your site security keys (wp_salt). Those keys changed since the chain was last sealed — typically after a site migration, a restored backup, or a manual wp-config.php key change. Rows recorded before the change can no longer be verified, but they have not been altered. Re-baseline the chain to trust the current log and restore the integrity guarantee going forward."
msgstr ""

#: admin/views/tabs/activity.php:425
msgid "Re-sign every activity row under the current security key and trust the log as it stands now? Only do this after a key change you expected."
msgstr ""

#: admin/views/tabs/activity.php:426
msgid "Re-baseline chain"
msgstr ""

#: admin/views/tabs/activity.php:435
msgid "Tampering detected."
msgstr ""

#. translators: %d: row id where the chain first breaks.
#: admin/views/tabs/activity.php:441
msgid "The chain breaks at row %d. Inspect that row and the rows immediately before and after it for signs of unauthorized modification."
msgstr ""

#. translators: %d: orphan count
#: admin/views/tabs/activity.php:454
msgid "Repair %d orphan(s)"
msgstr ""

#: admin/views/tabs/activity.php:471
msgid "Type"
msgstr ""

#: admin/views/tabs/activity.php:473
#: admin/views/tabs/activity.php:486
#: admin/views/tabs/events.php:208
#: admin/views/tabs/incidents.php:840
#: admin/views/tabs/incidents.php:850
#: admin/views/tabs/incidents.php:866
msgid "All"
msgstr ""

#: admin/views/tabs/activity.php:479
msgid "Options"
msgstr ""

#: admin/views/tabs/activity.php:496
#: admin/views/tabs/events.php:226
#: admin/views/tabs/incidents.php:875
msgid "Period"
msgstr ""

#: admin/views/tabs/activity.php:498
#: admin/views/tabs/events.php:228
#: admin/views/tabs/incidents.php:877
msgid "All time"
msgstr ""

#: admin/views/tabs/activity.php:500
#: admin/views/tabs/events.php:230
#: admin/views/tabs/incidents.php:879
msgid "Last 7 days"
msgstr ""

#: admin/views/tabs/activity.php:501
#: admin/views/tabs/events.php:231
#: admin/views/tabs/incidents.php:880
msgid "Last 30 days"
msgstr ""

#: admin/views/tabs/activity.php:506
#: admin/views/tabs/events.php:236
#: admin/views/tabs/incidents.php:885
#: admin/views/tabs/overview.php:550
msgid "Filter"
msgstr ""

#: admin/views/tabs/activity.php:512
msgid "No admin activity recorded yet. Actions like user edits, plugin changes and settings updates will appear here as they happen."
msgstr ""

#: admin/views/tabs/activity.php:514
msgid "No activity matches the current filters."
msgstr ""

#: admin/views/tabs/activity.php:519
#: admin/views/tabs/events.php:249
#: admin/views/tabs/overview.php:556
msgid "Time"
msgstr ""

#: admin/views/tabs/activity.php:521
msgid "Action"
msgstr ""

#: admin/views/tabs/activity.php:522
msgid "Object"
msgstr ""

#: admin/views/tabs/activity.php:523
#: admin/views/tabs/events.php:216
msgid "IP"
msgstr ""

#. translators: 1: current page, 2: total pages, 3: total entries.
#: admin/views/tabs/activity.php:589
msgid "Page %1$d of %2$d · %3$d entries"
msgstr ""

#: admin/views/tabs/events.php:145
msgid "Audit"
msgstr ""

#. translators: %s: total events in last 7 days (strong-wrapped).
#: admin/views/tabs/events.php:153
msgid "%s events in the last 7 days"
msgstr ""

#: admin/views/tabs/events.php:160
msgid "A complete audit log — successful logins, failures, session refreshes. Filter, search, export for your records."
msgstr ""

#: admin/views/tabs/events.php:163
#: admin/views/tabs/overview.php:541
msgid "streaming"
msgstr ""

#: admin/views/tabs/events.php:175
msgid "Live view"
msgstr ""

#: admin/views/tabs/events.php:183
msgid "Total (7d)"
msgstr ""

#: admin/views/tabs/events.php:187
msgid "Successful"
msgstr ""

#: admin/views/tabs/events.php:191
msgid "Failed"
msgstr ""

#: admin/views/tabs/events.php:206
#: admin/views/tabs/events.php:250
#: admin/views/tabs/incidents.php:838
#: admin/views/tabs/overview.php:557
msgid "Status"
msgstr ""

#: admin/views/tabs/events.php:209
msgid "Success"
msgstr ""

#: admin/views/tabs/events.php:210
msgid "Failure"
msgstr ""

#: admin/views/tabs/events.php:211
msgid "Blocked"
msgstr ""

#: admin/views/tabs/events.php:221
msgid "Username"
msgstr ""

#: admin/views/tabs/events.php:222
msgid "e.g. admin"
msgstr ""

#: admin/views/tabs/events.php:229
#: admin/views/tabs/incidents.php:878
msgid "Last 24h"
msgstr ""

#: admin/views/tabs/events.php:242
msgid "No events recorded yet. Login attempts (successes, failures, lockouts) will appear here as they happen."
msgstr ""

#: admin/views/tabs/events.php:244
msgid "No events match the current filters."
msgstr ""

#: admin/views/tabs/events.php:252
#: admin/views/tabs/overview.php:559
msgid "User · action"
msgstr ""

#: admin/views/tabs/events.php:253
msgid "User agent"
msgstr ""

#: admin/views/tabs/events.php:254
#: admin/views/tabs/overview.php:560
msgid "When"
msgstr ""

#: admin/views/tabs/events.php:262
#: admin/views/tabs/incidents.php:617
#: admin/views/tabs/overview.php:579
msgid "Wrong password"
msgstr ""

#: admin/views/tabs/events.php:271
#: admin/views/tabs/overview.php:239
msgid "Rate-limited"
msgstr ""

#: admin/views/tabs/events.php:273
msgid "Unknown user"
msgstr ""

#. translators: 1: window start, 2: window end, 3: total.
#: admin/views/tabs/events.php:346
msgid "Showing %1$s of %2$s"
msgstr ""

#: admin/views/tabs/events.php:355
msgid "Previous page"
msgstr ""

#: admin/views/tabs/events.php:367
msgid "Next page"
msgstr ""

#. translators: %s: total events.
#: admin/views/tabs/events.php:380
msgid "Showing all %s events"
msgstr ""

#: admin/views/tabs/incidents.php:32
#: admin/views/tabs/incidents.php:851
msgid "Brute force"
msgstr ""

#: admin/views/tabs/incidents.php:33
#: admin/views/tabs/incidents.php:262
#: admin/views/tabs/incidents.php:852
msgid "Credential stuffing"
msgstr ""

#: admin/views/tabs/incidents.php:34
#: admin/views/tabs/incidents.php:267
msgid "Username enumeration"
msgstr ""

#: admin/views/tabs/incidents.php:35
#: admin/views/tabs/incidents.php:272
msgid "Distributed attack"
msgstr ""

#: admin/views/tabs/incidents.php:36
#: admin/views/tabs/incidents.php:277
msgid "Post-compromise activity"
msgstr ""

#: admin/views/tabs/incidents.php:37
msgid "Reserved-username probe"
msgstr ""

#: admin/views/tabs/incidents.php:38
msgid "Bot caught (honeypot)"
msgstr ""

#: admin/views/tabs/incidents.php:39
#: admin/views/tabs/incidents.php:297
#: admin/views/tabs/incidents.php:858
msgid "2FA recovery requested"
msgstr ""

#: admin/views/tabs/incidents.php:40
#: admin/views/tabs/incidents.php:302
#: admin/views/tabs/incidents.php:859
msgid "Request firewall"
msgstr ""

#: admin/views/tabs/incidents.php:53
msgid "Many password guesses against a single account."
msgstr ""

#: admin/views/tabs/incidents.php:54
msgid "Leaked username/password pairs replayed in bulk."
msgstr ""

#: admin/views/tabs/incidents.php:55
msgid "Probing to discover which usernames exist."
msgstr ""

#: admin/views/tabs/incidents.php:56
msgid "The same attack spread across many IPs to slip under per-IP lockout."
msgstr ""

#: admin/views/tabs/incidents.php:57
msgid "Suspicious activity right after a successful login."
msgstr ""

#: admin/views/tabs/incidents.php:58
msgid "Login attempts on default/reserved accounts (admin, administrator…)."
msgstr ""

#: admin/views/tabs/incidents.php:59
msgid "An automated bot filled the hidden honeypot field."
msgstr ""

#: admin/views/tabs/incidents.php:60
msgid "A two-factor recovery or bypass was requested."
msgstr ""

#: admin/views/tabs/incidents.php:61
msgid "A request matched a firewall rule (bad query string, path, method, agent or referrer)."
msgstr ""

#: admin/views/tabs/incidents.php:257
msgid "Brute force attack"
msgstr ""

#: admin/views/tabs/incidents.php:258
msgid "Same IP hammering one username with different passwords. Automated tools cycle through common passwords trying to guess yours."
msgstr ""

#: admin/views/tabs/incidents.php:259
msgid "Change the targeted account's password immediately. Consider enabling Hide Login to conceal your login URL."
msgstr ""

#: admin/views/tabs/incidents.php:263
msgid "Same IP trying many different usernames — likely using a leaked database of email/password pairs from other breached sites."
msgstr ""

#: admin/views/tabs/incidents.php:264
msgid "Force a password reset for targeted users. Enable two-factor authentication when available."
msgstr ""

#: admin/views/tabs/incidents.php:268
msgid "Probing for valid usernames before attempting passwords. Attackers confirm which accounts exist to target them later."
msgstr ""

#: admin/views/tabs/incidents.php:269
msgid "Ensure \"Mask login errors\" and \"Prevent author enumeration\" are enabled in Hardening settings."
msgstr ""

#: admin/views/tabs/incidents.php:273
msgid "Multiple IPs targeting the same username — coordinated botnet or proxy network. Harder to block by IP alone."
msgstr ""

#: admin/views/tabs/incidents.php:274
msgid "Block the subnet. Consider Cloudflare or CDN-level protection for additional filtering."
msgstr ""

#: admin/views/tabs/incidents.php:278
msgid "Successful login after many failures — possible compromised account. The attacker may have found valid credentials."
msgstr ""

#: admin/views/tabs/incidents.php:279
msgid "Immediately reset the password. Check for unauthorized changes and review recent admin activity."
msgstr ""

#: admin/views/tabs/incidents.php:282
msgid "Targeted attack"
msgstr ""

#: admin/views/tabs/incidents.php:283
msgid "Focused attack on a high-privilege account (editor, admin). Attackers specifically chose this account for its permissions."
msgstr ""

#: admin/views/tabs/incidents.php:284
msgid "Reset the password. Limit the number of admin accounts and use strong, unique passwords."
msgstr ""

#: admin/views/tabs/incidents.php:287
#: admin/views/tabs/incidents.php:856
msgid "Reserved username probe"
msgstr ""

#: admin/views/tabs/incidents.php:288
msgid "Login attempts using a username on the configured reserved-name blacklist. Often signals automated scanning for default accounts."
msgstr ""

#: admin/views/tabs/incidents.php:289
msgid "Keep the Username Blacklist toggle enabled; review entries to match your deployment."
msgstr ""

#: admin/views/tabs/incidents.php:292
#: admin/views/tabs/incidents.php:857
msgid "Bot honeypot"
msgstr ""

#: admin/views/tabs/incidents.php:293
msgid "Automated bot detected via the login honeypot trap. Banned for 24 hours on first hit."
msgstr ""

#: admin/views/tabs/incidents.php:294
msgid "No action required — the IP is already banned. Review source IPs if repeats occur."
msgstr ""

#: admin/views/tabs/incidents.php:298
msgid "A user requested a 2FA reset via the recovery flow. Informational — not a security incident per se, but surfaces coordinated abuse when multiple requests target the same account."
msgstr ""

#: admin/views/tabs/incidents.php:299
msgid "Review recurring requests from the same IP. Confirm the admin only authorizes legitimate resets."
msgstr ""

#: admin/views/tabs/incidents.php:303
msgid "A request matched the 8G-inspired request firewall — a malicious query string, path, HTTP method, user agent or referrer. Repeated hits from one IP are aggregated into this single incident."
msgstr ""

#: admin/views/tabs/incidents.php:304
msgid "In monitor mode this was logged, not blocked — review the matches, then switch the firewall to enforce. If a legitimate request was matched, add its IP or path to the firewall allowlist."
msgstr ""

#: admin/views/tabs/incidents.php:326
msgid "Reset password"
msgstr ""

#: admin/views/tabs/incidents.php:328
msgid "Force \"%s\" to pick a new password."
msgstr ""

#: admin/views/tabs/incidents.php:331
msgid "Reset password →"
msgstr ""

#: admin/views/tabs/incidents.php:340
msgid "Biggest single lift against credential attacks."
msgstr ""

#: admin/views/tabs/incidents.php:343
msgid "Enable 2FA →"
msgstr ""

#: admin/views/tabs/incidents.php:349
msgid "Already enabled on this site."
msgstr ""

#: admin/views/tabs/incidents.php:358
msgid "Hide your login URL"
msgstr ""

#: admin/views/tabs/incidents.php:359
msgid "Most brute-force tools target /wp-login.php."
msgstr ""

#: admin/views/tabs/incidents.php:362
msgid "Enable →"
msgstr ""

#: admin/views/tabs/incidents.php:372
msgid "Blacklist %s and all siblings."
msgstr ""

#: admin/views/tabs/incidents.php:377
msgid "Block %s"
msgstr ""

#: admin/views/tabs/incidents.php:384
msgid "Back to incidents"
msgstr ""

#: admin/views/tabs/incidents.php:394
#: admin/views/tabs/incidents.php:842
#: admin/views/tabs/incidents.php:926
msgid "Resolved"
msgstr ""

#: admin/views/tabs/incidents.php:396
#: admin/views/tabs/incidents.php:843
#: admin/views/tabs/incidents.php:929
msgid "Ignored"
msgstr ""

#: admin/views/tabs/incidents.php:398
#: admin/views/tabs/incidents.php:815
#: admin/views/tabs/incidents.php:841
#: admin/views/tabs/incidents.php:923
msgid "Open"
msgstr ""

#: admin/views/tabs/incidents.php:404
msgid "Attempts"
msgstr ""

#: admin/views/tabs/incidents.php:412
msgid "Usernames"
msgstr ""

#: admin/views/tabs/incidents.php:416
#: admin/views/tabs/incidents.php:995
msgid "Window"
msgstr ""

#: admin/views/tabs/incidents.php:436
#: admin/views/tabs/incidents.php:1015
msgid "Blacklist 24h"
msgstr ""

#. translators: %d: minutes remaining in the current IP lockout.
#: admin/views/tabs/incidents.php:444
#: admin/views/tabs/incidents.php:1023
msgid "%d min"
msgid_plural "%d min"
msgstr[0] ""
msgstr[1] ""

#: admin/views/tabs/incidents.php:449
#: admin/views/tabs/incidents.php:612
#: admin/views/tabs/incidents.php:1028
msgid "Auth blocked"
msgstr ""

#: admin/views/tabs/incidents.php:455
#: admin/views/tabs/incidents.php:1034
msgid "Subnet blocked"
msgstr ""

#: admin/views/tabs/incidents.php:463
msgid "Target user"
msgstr ""

#: admin/views/tabs/incidents.php:467
#: admin/views/tabs/incidents.php:1049
msgid "First seen"
msgstr ""

#: admin/views/tabs/incidents.php:471
#: admin/views/tabs/incidents.php:1053
msgid "Last seen"
msgstr ""

#: admin/views/tabs/incidents.php:494
#: admin/views/tabs/incidents.php:1082
msgid "Unblock IP"
msgstr ""

#: admin/views/tabs/incidents.php:500
#: admin/views/tabs/incidents.php:899
#: admin/views/tabs/incidents.php:1087
msgid "Mark resolved"
msgstr ""

#: admin/views/tabs/incidents.php:524
msgid "What happened: %s"
msgstr ""

#: admin/views/tabs/incidents.php:528
msgid "What to do:"
msgstr ""

#: admin/views/tabs/incidents.php:551
msgid "Timeline"
msgstr ""

#. translators: 1: matched count, 2: related count
#: admin/views/tabs/incidents.php:558
msgid "%1$d matched · %2$d related"
msgstr ""

#. translators: %d: event count
#: admin/views/tabs/incidents.php:571
msgid "%d event"
msgid_plural "%d events"
msgstr[0] ""
msgstr[1] ""

#: admin/views/tabs/incidents.php:582
msgid "Matched events triggered this incident's pattern. Related events come from the same IP but are shown for context — they did not trigger the pattern."
msgstr ""

#: admin/views/tabs/incidents.php:642
msgid "Correlated by IP; did not trigger the pattern."
msgstr ""

#: admin/views/tabs/incidents.php:642
msgid "This event triggered the incident's pattern."
msgstr ""

#: admin/views/tabs/incidents.php:643
msgid "MATCH"
msgstr ""

#: admin/views/tabs/incidents.php:643
msgid "RELATED"
msgstr ""

#: admin/views/tabs/incidents.php:657
msgid "%1$d/%2$d attempt"
msgstr ""

#: admin/views/tabs/incidents.php:664
msgid "No correlated events found."
msgstr ""

#: admin/views/tabs/incidents.php:671
msgid "User agents observed"
msgstr ""

#. translators: %d: UA count
#: admin/views/tabs/incidents.php:677
msgid "%d UA"
msgid_plural "%d UAs"
msgstr[0] ""
msgstr[1] ""

#: admin/views/tabs/incidents.php:696
msgid "BOT"
msgstr ""

#: admin/views/tabs/incidents.php:702
msgid "%d request"
msgid_plural "%d requests"
msgstr[0] ""
msgstr[1] ""

#: admin/views/tabs/incidents.php:712
msgid "Suggested actions"
msgstr ""

#: admin/views/tabs/incidents.php:727
msgid "Done"
msgstr ""

#: admin/views/tabs/incidents.php:786
msgid "Patterns worth your attention"
msgstr ""

#. translators: %s: number of incidents in the last 30 days.
#: admin/views/tabs/incidents.php:792
msgid "%s in the last 30 days"
msgstr ""

#: admin/views/tabs/incidents.php:799
msgid "Grouped signals — multiple failed attempts, suspicious IPs, repeated brute-force. One row per pattern, not per event."
msgstr ""

#: admin/views/tabs/incidents.php:807
msgid "Export"
msgstr ""

#: admin/views/tabs/incidents.php:819
msgid "Resolved (30d)"
msgstr ""

#: admin/views/tabs/incidents.php:827
msgid "Escalated"
msgstr ""

#: admin/views/tabs/incidents.php:853
msgid "Enumeration"
msgstr ""

#: admin/views/tabs/incidents.php:854
msgid "Distributed"
msgstr ""

#: admin/views/tabs/incidents.php:855
msgid "Post compromise"
msgstr ""

#: admin/views/tabs/incidents.php:890
msgid "No incidents match the current filters."
msgstr ""

#: admin/views/tabs/incidents.php:895
msgid "Select all"
msgstr ""

#: admin/views/tabs/incidents.php:897
msgid "selected"
msgstr ""

#: admin/views/tabs/incidents.php:950
msgid "login form"
msgstr ""

#: admin/views/tabs/incidents.php:959
msgid "Select this incident for bulk actions"
msgstr ""

#: admin/views/tabs/incidents.php:963
msgid "Attack entry point — bypasses the hidden login URL"
msgstr ""

#: admin/views/tabs/incidents.php:966
msgid "via %s"
msgstr ""

#: admin/views/tabs/incidents.php:979
msgid "attempts"
msgstr ""

#: admin/views/tabs/incidents.php:982
msgid "username"
msgid_plural "usernames"
msgstr[0] ""
msgstr[1] ""

#: admin/views/tabs/incidents.php:986
#: admin/views/tabs/overview.php:420
msgid "IP"
msgid_plural "IPs"
msgstr[0] ""
msgstr[1] ""

#: admin/views/tabs/incidents.php:1061
msgid "Investigate"
msgstr ""

#: admin/views/tabs/incidents.php:1100
msgid "No other incidents in the selected period."
msgstr ""

#: admin/views/tabs/incidents.php:1102
msgid "Adjust filters"
msgstr ""

#: admin/views/tabs/incidents.php:1104
msgid "to see more history."
msgstr ""

#. translators: 1: current page, 2: total pages, 3: total rows.
#: admin/views/tabs/incidents.php:1115
msgid "Page %1$d of %2$d · %3$d incidents"
msgstr ""

#: admin/views/tabs/overview.php:61
msgid "All core defenses operational"
msgstr ""

#: admin/views/tabs/overview.php:62
msgid "Elevated threat — review incidents"
msgstr ""

#: admin/views/tabs/overview.php:63
msgid "Active attack in progress"
msgstr ""

#: admin/views/tabs/overview.php:68
msgid "Active attack in progress."
msgstr ""

#: admin/views/tabs/overview.php:70
msgid "Elevated threat — review incidents."
msgstr ""

#: admin/views/tabs/overview.php:72
msgid "Your site is fully defended."
msgstr ""

#: admin/views/tabs/overview.php:84
msgid "%d more than the previous 24 hours"
msgstr ""

#: admin/views/tabs/overview.php:86
msgid "%d fewer than the previous 24 hours"
msgstr ""

#: admin/views/tabs/overview.php:94
msgid "vs prev 24h"
msgstr ""

#: admin/views/tabs/overview.php:101
msgid "Login attempts · last 24 h"
msgstr ""

#: admin/views/tabs/overview.php:102
msgid "Live"
msgstr ""

#: admin/views/tabs/overview.php:102
msgid "live"
msgstr ""

#: admin/views/tabs/overview.php:112
msgid "No login events recorded yet. All core defenses are operational."
msgstr ""

#: admin/views/tabs/overview.php:114
msgid "No login events recorded yet. Review active incidents below."
msgstr ""

#. translators: %s: relative time string like "4 minutes ago".
#: admin/views/tabs/overview.php:120
msgid "System last checked %s. All core defenses are operational and no active incidents require attention."
msgstr ""

#. translators: %s: relative time string like "4 minutes ago".
#: admin/views/tabs/overview.php:128
msgid "System last checked %s. Review active incidents below."
msgstr ""

#: admin/views/tabs/overview.php:144
msgid "Login attempts"
msgstr ""

#: admin/views/tabs/overview.php:148
msgid "Unique IP"
msgid_plural "Unique IPs"
msgstr[0] ""
msgstr[1] ""

#: admin/views/tabs/overview.php:152
msgid "Lockout"
msgid_plural "Lockouts"
msgstr[0] ""
msgstr[1] ""

#: admin/views/tabs/overview.php:157
msgid "Data breach"
msgid_plural "Data breaches"
msgstr[0] ""
msgstr[1] ""

#: admin/views/tabs/overview.php:174
msgid "Hide Login is on, but XML-RPC is still open."
msgstr ""

#. translators: %d: number of XML-RPC attack incidents in the last 30 days.
#: admin/views/tabs/overview.php:180
msgid "Your login URL is hidden, yet %d attack in the last 30 days reached your site through xmlrpc.php — a separate login endpoint that bypasses Hide Login. Disable XML-RPC to close it (keep it on only if you use Jetpack or the WordPress mobile app)."
msgid_plural "Your login URL is hidden, yet %d attacks in the last 30 days reached your site through xmlrpc.php — a separate login endpoint that bypasses Hide Login. Disable XML-RPC to close it (keep it on only if you use Jetpack or the WordPress mobile app)."
msgstr[0] ""
msgstr[1] ""

#: admin/views/tabs/overview.php:194
msgid "Disable XML-RPC →"
msgstr ""

#: admin/views/tabs/overview.php:231
msgid "URL camouflaged"
msgstr ""

#. translators: 1: active toggles, 2: total toggles
#: admin/views/tabs/overview.php:247
msgid "%1$d of %2$d toggles"
msgstr ""

#: admin/views/tabs/overview.php:255
msgid "30-day retention"
msgstr ""

#: admin/views/tabs/overview.php:263
msgid "Admin actions"
msgstr ""

#: admin/views/tabs/overview.php:271
msgid "Enabled"
msgstr ""

#: admin/views/tabs/overview.php:279
msgid "HTTP protection"
msgstr ""

#. translators: %d: number of users with a flagged password or email.
#: admin/views/tabs/overview.php:291
msgid "%d account flagged"
msgid_plural "%d accounts flagged"
msgstr[0] ""
msgstr[1] ""

#: admin/views/tabs/overview.php:294
msgid "No flagged accounts"
msgstr ""

#: admin/views/tabs/overview.php:296
msgid "Password and email leaks"
msgstr ""

#: admin/views/tabs/overview.php:320
msgid "Password strength rules"
msgstr ""

#: admin/views/tabs/overview.php:320
msgid "Strong passwords enforced"
msgstr ""

#: admin/views/tabs/overview.php:327
msgid "Sessions"
msgstr ""

#: admin/views/tabs/overview.php:328
msgid "Idle timeout & device limits"
msgstr ""

#: admin/views/tabs/overview.php:328
msgid "Timeout & device limits"
msgstr ""

#: admin/views/tabs/overview.php:337
msgid "Blocking bad requests"
msgstr ""

#: admin/views/tabs/overview.php:337
msgid "Monitoring (not blocking)"
msgstr ""

#: admin/views/tabs/overview.php:338
msgid "Blocks malicious requests"
msgstr ""

#: admin/views/tabs/overview.php:341
#: admin/views/tabs/settings.php:354
msgid "Enforcing"
msgstr ""

#: admin/views/tabs/overview.php:348
msgid "Country of origin on IPs"
msgstr ""

#: admin/views/tabs/overview.php:348
msgid "Country shown on IPs"
msgstr ""

#: admin/views/tabs/overview.php:380
#: admin/views/tabs/settings.php:141
msgid "Protection modules"
msgstr ""

#. translators: 1: active module count, 2: total module count.
#: admin/views/tabs/overview.php:385
msgid "%1$d of %2$d modules active"
msgstr ""

#: admin/views/tabs/overview.php:392
msgid "Manage all →"
msgstr ""

#: admin/views/tabs/overview.php:414
msgid "24 H"
msgstr ""

#: admin/views/tabs/overview.php:418
msgid "event"
msgid_plural "events"
msgstr[0] ""
msgstr[1] ""

#: admin/views/tabs/overview.php:424
msgid "24-hour activity chart"
msgstr ""

#: admin/views/tabs/overview.php:444
msgid "24h ago"
msgstr ""

#: admin/views/tabs/overview.php:452
msgid "%d fail blocked"
msgid_plural "%d fails blocked"
msgstr[0] ""
msgstr[1] ""

#: admin/views/tabs/overview.php:459
msgid "all clean"
msgstr ""

#: admin/views/tabs/overview.php:463
msgid "no activity"
msgstr ""

#: admin/views/tabs/overview.php:466
msgid "now"
msgstr ""

#: admin/views/tabs/overview.php:540
msgid "Live events"
msgstr ""

#: admin/views/tabs/overview.php:546
msgid "Pause"
msgstr ""

#: admin/views/tabs/overview.php:566
msgid "No events recorded yet — your site is quiet."
msgstr ""

#: admin/views/tabs/overview.php:614
msgid "One quick win: enable Two-Factor Auth."
msgstr ""

#: admin/views/tabs/overview.php:615
msgid "Biggest single lift to your security score. Takes about 2 minutes per user."
msgstr ""

#: admin/views/tabs/overview.php:617
msgid "Set up 2FA →"
msgstr ""

#: admin/views/tabs/overview.php:639
msgid "Skip this advice"
msgstr ""

#: admin/views/tabs/settings.php:140
msgid "SETTINGS"
msgstr ""

#: admin/views/tabs/settings.php:142
msgid "Each module is one click. Enable what applies, skip what doesn't."
msgstr ""

#: admin/views/tabs/settings.php:156
msgid "SECURITY SCORE"
msgstr ""

#: admin/views/tabs/settings.php:170
msgid "New here? Start with the safe essentials"
msgstr ""

#: admin/views/tabs/settings.php:171
msgid "One click turns on the protections that can’t lock you out or break your theme. Hide Login, Two-Factor and the firewall stay untouched."
msgstr ""

#: admin/views/tabs/settings.php:175
msgid "Enable recommended protections"
msgstr ""

#: admin/views/tabs/settings.php:178
msgid "Review the setup assistant"
msgstr ""

#: admin/views/tabs/settings.php:240
msgid "Available"
msgstr ""

#: admin/views/tabs/settings.php:240
msgid "Needs WP 7"
msgstr ""

#: admin/views/tabs/settings.php:252
#: admin/views/tabs/settings.php:273
#: admin/views/tabs/settings.php:283
#: admin/views/tabs/settings.php:293
#: admin/views/tabs/settings.php:303
#: admin/views/tabs/settings.php:319
#: admin/views/tabs/settings.php:329
#: admin/views/tabs/settings.php:339
#: admin/views/tabs/settings.php:355
#: admin/views/tabs/settings.php:365
#: admin/views/tabs/settings.php:375
#: admin/views/tabs/settings.php:385
#: admin/views/tabs/settings.php:395
msgid "Disabled"
msgstr ""

#: admin/views/tabs/settings.php:260
msgid "Quick security wins. Each toggle hardens one attack surface."
msgstr ""

#: admin/views/tabs/settings.php:263
msgid "%1$d of %2$d"
msgstr ""

#: admin/views/tabs/settings.php:291
msgid "Block clickjacking, MIME sniffing, and credential exfiltration on the login page."
msgstr ""

#: admin/views/tabs/settings.php:301
msgid "Detect passwords and emails that appear in public data breach corpora."
msgstr ""

#: admin/views/tabs/settings.php:317
msgid "Enforce strong, unique passwords and block ones found in public breaches."
msgstr ""

#: admin/views/tabs/settings.php:327
msgid "Log out idle accounts, cap session lifetime, and limit logins to one device."
msgstr ""

#: admin/views/tabs/settings.php:337
msgid "Show the country of origin next to IP addresses in incidents and events."
msgstr ""

#: admin/views/tabs/settings.php:349
msgid "Blocking malicious requests before WordPress processes them."
msgstr ""

#: admin/views/tabs/settings.php:350
msgid "Monitoring malicious requests — not blocking yet. Review, then enforce."
msgstr ""

#: admin/views/tabs/settings.php:351
msgid "Block malicious requests (bad query strings, paths, methods) before WordPress runs."
msgstr ""

#: admin/views/tabs/settings.php:354
msgid "Monitoring"
msgstr ""

#: admin/views/tabs/settings.php:373
msgid "Forward each activity event as a signed POST to a SIEM, Slack, or any HTTPS endpoint."
msgstr ""

#: admin/views/tabs/settings.php:383
msgid "Require a second code after password. Biggest single lift to your score."
msgstr ""

#: admin/views/tabs/settings.php:393
msgid "Email alerts on incidents, lockouts, and configuration changes."
msgstr ""

#: admin/views/tabs/settings.php:403
msgid "Optional AI analysis via your WordPress 7 connector — explains incidents and advises on hardening."
msgstr ""

#: admin/views/tabs/settings.php:429
msgid "Access & login"
msgstr ""

#: admin/views/tabs/settings.php:430
msgid "Detection & logs"
msgstr ""

#: admin/views/tabs/settings.php:431
msgid "Accounts & passwords"
msgstr ""

#: admin/views/tabs/settings.php:432
msgid "Firewall & hardening"
msgstr ""

#: admin/views/tabs/settings.php:433
msgid "Alerts & AI"
msgstr ""

#. translators: 1: active modules in this category, 2: total modules in this category.
#: admin/views/tabs/settings.php:459
msgid "%1$d/%2$d on"
msgstr ""

#: admin/views/tabs/settings.php:544
msgid "Unsaved changes"
msgstr ""

#: admin/views/tabs/settings.php:546
msgid "Discard"
msgstr ""

#: admin/views/tabs/settings.php:547
msgid "Save all changes"
msgstr ""

#: admin/views/two-factor-recovery-confirm.php:25
msgid "2FA reset complete"
msgstr ""

#: admin/views/two-factor-recovery-confirm.php:33
msgid "2FA has been reset"
msgstr ""

#: admin/views/two-factor-recovery-confirm.php:34
msgid "The target user is back to the pre-2FA state and must reconfigure it before their next sensitive action. Every active session of that user has been destroyed."
msgstr ""

#: admin/views/two-factor-recovery-confirm.php:35
msgid "← Back to dashboard"
msgstr ""

#: admin/views/two-factor-recovery-confirm.php:50
#: admin/views/two-factor-recovery-confirm.php:62
msgid "Authorize 2FA reset"
msgstr ""

#: admin/views/two-factor-recovery-confirm.php:63
msgid "A 2FA reset was requested for the account below. Authorizing this action will remove every 2FA credential, revoke every trusted device, and destroy every active session of that user."
msgstr ""

#: admin/views/two-factor-recovery-confirm.php:66
#: admin/views/tabs/activity.php:484
#: admin/views/tabs/activity.php:520
msgid "User"
msgstr ""

#: admin/views/two-factor-recovery-confirm.php:69
msgid "Requester IP"
msgstr ""

#: admin/views/two-factor-recovery-confirm.php:72
msgid "Requester User-Agent"
msgstr ""

#: admin/views/two-factor-recovery-confirm.php:77
msgid "Authorize reset"
msgstr ""

#: admin/views/two-factor-recovery-request.php:19
#: admin/views/two-factor-recovery-sent.php:11
msgid "2FA recovery"
msgstr ""

#: admin/views/two-factor-recovery-request.php:32
msgid "Request 2FA reset"
msgstr ""

#: admin/views/two-factor-recovery-request.php:33
msgid "If you lost access to every second factor, request a reset. A site administrator will be emailed and must authorize the operation. Every request is recorded in the activity log."
msgstr ""

#: admin/views/two-factor-recovery-request.php:36
msgid "Your username or email"
msgstr ""

#: admin/views/two-factor-recovery-request.php:39
msgid "Your account email (must match)"
msgstr ""

#: admin/views/two-factor-recovery-request.php:42
msgid "Request reset"
msgstr ""

#: admin/views/two-factor-recovery-request.php:43
#: admin/views/two-factor-recovery-sent.php:22
msgid "← Back to login"
msgstr ""

#: admin/views/two-factor-recovery-sent.php:20
msgid "Request received"
msgstr ""

#: admin/views/two-factor-recovery-sent.php:21
msgid "If the account exists and 2FA is enabled, a site administrator has been emailed. The link expires in one hour."
msgstr ""

#: admin/views/two-factor-verify.php:54
#: admin/views/profile/two-factor.php:189
#: admin/views/sections/two-factor-settings.php:110
msgid "Email verification code"
msgstr ""

#: admin/views/two-factor-verify.php:55
#: admin/views/two-factor-verify.php:196
msgid "Backup code"
msgstr ""

#: admin/views/two-factor-verify.php:56
#: admin/views/profile/two-factor.php:179
msgid "Authenticator verification code"
msgstr ""

#: admin/views/two-factor-verify.php:66
msgid "Verify Your Identity — %s"
msgstr ""

#: admin/views/two-factor-verify.php:86
msgid "Verify your identity"
msgstr ""

#: admin/views/two-factor-verify.php:93
msgid "We could not send the verification code by email. Your site may have a mail-delivery issue. Click “Resend code” below to try again, or contact the site administrator."
msgstr ""

#: admin/views/two-factor-verify.php:95
msgid "A new code has been sent to your email."
msgstr ""

#: admin/views/two-factor-verify.php:101
msgid "Enter the 6-digit code sent to your email address."
msgstr ""

#: admin/views/two-factor-verify.php:102
msgid "Enter one of your backup codes."
msgstr ""

#: admin/views/two-factor-verify.php:103
msgid "Enter the 6-digit code from your authenticator app."
msgstr ""

#. translators: %d: trust duration in days
#: admin/views/two-factor-verify.php:164
msgid "Trust this device for %d days"
msgstr ""

#: admin/views/two-factor-verify.php:171
msgid "Verify"
msgstr ""

#: admin/views/two-factor-verify.php:194
msgid "Authenticator app"
msgstr ""

#: admin/views/two-factor-verify.php:195
#: admin/views/sidebar/settings.php:56
msgid "Email code"
msgstr ""

#: admin/views/two-factor-verify.php:212
msgid "Lost your device? Use a backup code"
msgstr ""

#: admin/views/two-factor-verify.php:223
msgid "Lost access? Request 2FA reset"
msgstr ""

#: admin/views/two-factor-verify.php:230
msgid "Back to login"
msgstr ""

#: admin/views/widget-dashboard.php:143
#: admin/views/widget-dashboard.php:158
#: admin/views/sections/login-headers.php:143
#: admin/views/tabs/overview.php:233
#: admin/views/tabs/overview.php:241
#: admin/views/tabs/overview.php:257
#: admin/views/tabs/overview.php:265
#: admin/views/tabs/overview.php:273
#: admin/views/tabs/overview.php:281
#: admin/views/tabs/overview.php:314
#: admin/views/tabs/overview.php:322
#: admin/views/tabs/overview.php:330
#: admin/views/tabs/overview.php:342
#: admin/views/tabs/overview.php:350
msgid "Off"
msgstr ""

#: admin/views/widget-dashboard.php:144
msgid "All on"
msgstr ""

#: admin/views/widget-dashboard.php:157
#: admin/views/profile/two-factor.php:39
#: admin/views/tabs/overview.php:233
#: admin/views/tabs/overview.php:241
#: admin/views/tabs/overview.php:257
#: admin/views/tabs/overview.php:265
#: admin/views/tabs/overview.php:273
#: admin/views/tabs/overview.php:281
#: admin/views/tabs/overview.php:312
#: admin/views/tabs/overview.php:322
#: admin/views/tabs/overview.php:330
#: admin/views/tabs/overview.php:350
#: admin/views/tabs/settings.php:273
#: admin/views/tabs/settings.php:283
#: admin/views/tabs/settings.php:293
#: admin/views/tabs/settings.php:303
#: admin/views/tabs/settings.php:319
#: admin/views/tabs/settings.php:329
#: admin/views/tabs/settings.php:339
#: admin/views/tabs/settings.php:365
#: admin/views/tabs/settings.php:375
#: admin/views/tabs/settings.php:385
#: admin/views/tabs/settings.php:395
msgid "Active"
msgstr ""

#: admin/views/widget-dashboard.php:166
#: admin/views/tabs/overview.php:49
msgid "Firewall: off"
msgstr ""

#: admin/views/widget-dashboard.php:169
#: admin/views/tabs/overview.php:52
msgid "Firewall: blocking"
msgstr ""

#: admin/views/widget-dashboard.php:172
#: admin/views/tabs/overview.php:55
msgid "Firewall: monitoring"
msgstr ""

#: admin/views/widget-dashboard.php:177
#: admin/views/widget-dashboard.php:211
#: admin/views/sidebar/overview.php:26
#: admin/views/sidebar/settings.php:29
#: admin/views/tabs/overview.php:238
msgid "Brute Force"
msgstr ""

#: admin/views/widget-dashboard.php:178
#: admin/views/sidebar/overview.php:27
#: admin/views/sidebar/settings.php:24
#: admin/views/tabs/overview.php:246
#: admin/views/tabs/settings.php:259
msgid "Hardening"
msgstr ""

#: admin/views/widget-dashboard.php:179
#: admin/views/widget-dashboard.php:213
#: admin/views/sidebar/overview.php:28
#: admin/views/tabs/overview.php:254
msgid "Detection"
msgstr ""

#: admin/views/widget-dashboard.php:180
msgid "Headers"
msgstr ""

#. translators: %d: total number of accounts with a flagged password or email.
#: admin/views/widget-dashboard.php:191
#: admin/views/tabs/overview.php:309
#: admin/views/tabs/settings.php:489
msgid "%d flagged"
msgid_plural "%d flagged"
msgstr[0] ""
msgstr[1] ""

#: admin/views/widget-dashboard.php:214
#: admin/views/sections/activity-settings.php:30
#: admin/views/sidebar/settings.php:48
#: admin/views/tabs/overview.php:262
#: admin/views/tabs/settings.php:362
msgid "Activity Log"
msgstr ""

#: admin/views/widget-dashboard.php:249
#: admin/views/tabs/settings.php:252
msgid "Protected"
msgstr ""

#: admin/views/widget-dashboard.php:259
msgid "Last event %s"
msgstr ""

#: admin/views/widget-dashboard.php:267
msgid "%d attacks blocked in the last 7 days"
msgstr ""

#: admin/views/widget-dashboard.php:271
msgid "attacks blocked"
msgstr ""

#: admin/views/widget-dashboard.php:274
msgid "Past 7 days"
msgstr ""

#: admin/views/widget-dashboard.php:278
msgid "— flat"
msgstr ""

#: admin/views/widget-dashboard.php:282
msgid "%d%% vs prev"
msgstr ""

#: admin/views/widget-dashboard.php:291
msgid "fewer"
msgstr ""

#: admin/views/widget-dashboard.php:291
msgid "more"
msgstr ""

#. translators: 1: absolute percent difference, 2: "fewer" or "more" word.
#: admin/views/widget-dashboard.php:294
msgid "Trend: %1$d%% %2$s attacks than previous week"
msgstr ""

#: admin/views/widget-dashboard.php:313
msgid "Peak this week: %d"
msgstr ""

#: admin/views/widget-dashboard.php:319
msgid "Today: %d"
msgstr ""

#: admin/views/widget-dashboard.php:330
#: admin/views/tabs/activity.php:499
msgid "Today"
msgstr ""

#: admin/views/widget-dashboard.php:362
msgid "Quick win: enable %s"
msgstr ""

#: admin/views/widget-dashboard.php:364
msgid "Closes the biggest remaining gap. +%d points to your security score."
msgstr ""

#: admin/views/widget-dashboard.php:369
msgid "Set up"
msgstr ""

#: admin/views/widget-dashboard.php:379
msgid "All defenses active."
msgstr ""

#: admin/views/widget-dashboard.php:380
msgid "Keep Login Armor up to date."
msgstr ""

#: admin/views/widget-dashboard.php:392
msgid "View events"
msgstr ""

#: admin/views/widget-dashboard.php:395
msgid "Open Login Armor"
msgstr ""

#: includes/AI/Client.php:329
msgid "The AI layer is disabled."
msgstr ""

#: includes/AI/Client.php:332
msgid "No native AI connector available. Switch to WordPress 7 and configure an AI connector."
msgstr ""

#: includes/AI/Client.php:392
msgid "No native AI connector. Switch to WordPress 7 and configure an AI connector."
msgstr ""

#: includes/AI/Client.php:400
msgid "No AI connector supports text generation. Configure one under Settings → AI Connectors."
msgstr ""

#: includes/AI/Client.php:410
msgid "Your AI connector must authorise LoginArmor. Click \"Authorise LoginArmor\" in the settings."
msgstr ""

#: includes/AI/IncidentExplainer.php:72
#: includes/AI/PostureAdvisor.php:81
msgid "The AI response was empty. Try again."
msgstr ""

#: includes/AI/PostureAdvisor.php:131
#: includes/AI/PostureAdvisor.php:143
msgid "Login activity"
msgstr ""

#: includes/AI/PostureAdvisor.php:131
msgid "No attempts in the last 30 days — all quiet."
msgstr ""

#. translators: 1: number of failed attempts, 2: number of successful logins (last 7 days). Label form avoids gender/number agreement.
#: includes/AI/PostureAdvisor.php:135
msgid "Failures: %1$d · Successes: %2$d (7 days)."
msgstr ""

#: includes/AI/PostureAdvisor.php:141
msgid "Last attempt %s ago."
msgstr ""

#: includes/AI/PostureAdvisor.php:150
msgid "Legitimate sign-ins"
msgstr ""

#. translators: 1: admins, 2: editors/authors, 3: other roles, 4: total successful sign-ins (30 days).
#: includes/AI/PostureAdvisor.php:153
msgid "Admins: %1$d · Authors: %2$d · Others: %3$d — %4$d sign-ins (30 days)."
msgstr ""

#: includes/AI/PostureAdvisor.php:167
msgid "Incidents (30 days)"
msgstr ""

#. translators: 1: total incidents, 2: critical incidents. Label form avoids agreement issues.
#: includes/AI/PostureAdvisor.php:171
msgid "Total: %1$d · Critical: %2$d."
msgstr ""

#: includes/AI/PostureAdvisor.php:175
msgid "None."
msgstr ""

#: includes/AI/PostureAdvisor.php:180
msgid "Not whitelisted — risk of locking yourself out."
msgstr ""

#: includes/AI/PostureAdvisor.php:180
msgid "Your admin IP"
msgstr ""

#: includes/AI/PostureAdvisor.php:193
msgid "Security score"
msgstr ""

#. translators: %d: security score out of 100.
#: includes/AI/PostureAdvisor.php:196
msgid "%d / 100"
msgstr ""

#: includes/AI/PostureAdvisor.php:205
msgid "Activity log disabled — enable it to track content and plugin changes."
msgstr ""

#: includes/AI/PostureAdvisor.php:205
msgid "Admin changes"
msgstr ""

#: includes/AI/PostureAdvisor.php:207
#: includes/AI/PostureAdvisor.php:227
msgid "Admin changes (30 days)"
msgstr ""

#: includes/AI/PostureAdvisor.php:207
msgid "No content or plugin changes."
msgstr ""

#: includes/AI/PostureAdvisor.php:211
#: admin/views/tabs/activity.php:474
msgid "Posts"
msgstr ""

#: includes/AI/PostureAdvisor.php:212
#: includes/AI/PostureAdvisor.php:255
#: admin/views/tabs/activity.php:477
msgid "Plugins"
msgstr ""

#: includes/AI/PostureAdvisor.php:213
#: admin/views/tabs/activity.php:478
msgid "Themes"
msgstr ""

#: includes/AI/PostureAdvisor.php:214
#: admin/views/sidebar/activity.php:19
#: admin/views/tabs/activity.php:278
#: admin/views/tabs/activity.php:476
msgid "Users"
msgstr ""

#: includes/AI/PostureAdvisor.php:216
#: admin/views/sidebar/activity.php:21
#: admin/views/tabs/activity.php:475
msgid "Media"
msgstr ""

#: includes/AI/PostureAdvisor.php:240
msgid "Environment"
msgstr ""

#. translators: %d: plugins to update.
#: includes/AI/PostureAdvisor.php:254
msgid "%d plugin to update"
msgid_plural "%d plugins to update"
msgstr[0] ""
msgstr[1] ""

#. translators: %d: themes to update.
#: includes/AI/PostureAdvisor.php:257
msgid "%d theme to update"
msgid_plural "%d themes to update"
msgstr[0] ""
msgstr[1] ""

#: includes/AI/PostureAdvisor.php:258
msgid "Theme"
msgstr ""

#: includes/AI/PostureAdvisor.php:261
msgid "Updates"
msgstr ""

#: includes/AI/PostureAdvisor.php:269
msgid "core auto-updates off"
msgstr ""

#: includes/AI/PostureAdvisor.php:272
msgid "default database prefix"
msgstr ""

#: includes/AI/PostureAdvisor.php:275
msgid "HTTPS not in use"
msgstr ""

#: includes/AI/PostureAdvisor.php:278
msgid "debug exposed in production"
msgstr ""

#: includes/AI/PostureAdvisor.php:281
msgid "To harden"
msgstr ""

#. translators: %s: missing column name
#: includes/ActivityLog/ActivityLog.php:495
msgid "Missing canonical column in HMAC payload: %s"
msgstr ""

#. translators: %d: count of dead webhook events
#: includes/ActivityLog/WebhookDispatcher.php:428
msgid "%d webhook event(s) marked dead after retries. Check the queue stats in Activity -> Webhook."
msgstr ""

#: includes/Firewall/Firewall.php:316
msgid "Your request was blocked for security reasons."
msgstr ""

#: includes/Hardening/Honeypot.php:52
msgid "Leave this field empty"
msgstr ""

#: includes/Hardening/Honeypot.php:210
msgid "Authentication failed."
msgstr ""

#: includes/Hardening/UsernameBlacklist.php:238
#: includes/Hardening/UsernameBlacklist.php:258
#: includes/Hardening/UsernameBlacklist.php:282
msgid "This username is reserved and cannot be used."
msgstr ""

#: includes/Lockout/LockoutPage.php:204
#: includes/Lockout/LockoutPage.php:247
msgid "IP blacklisted"
msgstr ""

#: includes/Lockout/LockoutPage.php:204
#: includes/Lockout/LockoutPage.php:250
msgid "Too many failed attempts"
msgstr ""

#: includes/Lockout/LockoutPage.php:248
msgid "Your IP has been blacklisted. Please contact the administrator of this site."
msgstr ""

#: includes/Lockout/LockoutPage.php:251
msgid "You are blocked for 20 minutes. Please come back later."
msgstr ""

#: includes/Notifications/Channels/EmailChannel.php:67
msgid "This is a test notification from Login Armor."
msgstr ""

#. translators: %s: site name
#: includes/Notifications/Channels/EmailChannel.php:70
msgid "Login Armor detected a security incident on %s."
msgstr ""

#: includes/Notifications/Channels/EmailChannel.php:74
#: admin/views/tabs/incidents.php:848
msgid "Pattern"
msgstr ""

#: includes/Notifications/Channels/EmailChannel.php:75
#: admin/views/tabs/incidents.php:864
msgid "Severity"
msgstr ""

#: includes/Notifications/Channels/EmailChannel.php:76
#: admin/views/tabs/events.php:251
#: admin/views/tabs/incidents.php:423
#: admin/views/tabs/incidents.php:1002
#: admin/views/tabs/overview.php:558
msgid "Source IP"
msgstr ""

#: includes/Notifications/Channels/EmailChannel.php:77
#: admin/views/tabs/incidents.php:1044
msgid "Target"
msgstr ""

#: includes/Notifications/Channels/EmailChannel.php:78
msgid "Failed attempts"
msgstr ""

#: includes/Notifications/Channels/EmailChannel.php:79
#: admin/views/tabs/events.php:195
#: admin/views/tabs/incidents.php:408
#: admin/views/tabs/incidents.php:823
msgid "Unique IPs"
msgstr ""

#: includes/Notifications/Channels/EmailChannel.php:83
msgid "View details:"
msgstr ""

#. translators: %s: site name
#: includes/TwoFactor/BackupCodes.php:120
msgid "Login Armor Backup Codes — %s"
msgstr ""

#: includes/TwoFactor/BackupCodes.php:131
msgid "Each code can only be used once."
msgstr ""

#: includes/TwoFactor/BackupCodes.php:132
msgid "Keep these codes in a safe place."
msgstr ""

#. translators: %s: date
#: includes/TwoFactor/BackupCodes.php:135
msgid "Generated: %s"
msgstr ""

#. translators: %s: site name
#: includes/TwoFactor/EmailOTP.php:70
msgid "[%s] Your login verification code"
msgstr ""

#. translators: 1: display name, 2: verification code, 3: minutes
#: includes/TwoFactor/EmailOTP.php:76
msgid ""
"Hello %1$s,\n"
"\n"
"Your verification code is: %2$s\n"
"\n"
"This code is valid for %3$d minutes.\n"
"\n"
"If you did not request this code, you can safely ignore this email."
msgstr ""

#. translators: %s: site name
#: includes/TwoFactor/Recovery.php:216
msgid "[%s] 2FA reset request"
msgstr ""

#. translators: 1: user login, 2: user email, 3: requester IP, 4: UA, 5: confirmation URL
#: includes/TwoFactor/Recovery.php:221
msgid ""
"A two-factor reset was requested for user %1$s (%2$s).\n"
"\n"
"IP: %3$s\n"
"User-Agent: %4$s\n"
"\n"
"If you authorize this reset, click the link below. It expires in 1 hour and can only be used once.\n"
"\n"
"%5$s\n"
"\n"
"If you did not expect this request, ignore this email - no action will be taken."
msgstr ""

#: includes/TwoFactor/Recovery.php:286
msgid "2FA recovery is disabled on this site."
msgstr ""

#: includes/TwoFactor/Recovery.php:289
msgid "You must be logged in as an administrator to authorize a 2FA reset."
msgstr ""

#: includes/TwoFactor/Recovery.php:294
msgid "This 2FA reset link is invalid or has expired."
msgstr ""

#: includes/TwoFactor/Recovery.php:298
msgid "Target user no longer exists."
msgstr ""

#: includes/TwoFactor/Recovery.php:307
msgid "This reset link has already been used."
msgstr ""

#: includes/TwoFactor/TrustedDevices.php:165
msgid "Unknown device"
msgstr ""

#: includes/TwoFactor/TwoFactor.php:605
msgid "Two-factor authentication is required for your account and the setup deadline has passed. Please contact a site administrator to regain access."
msgstr ""

#: includes/TwoFactor/TwoFactor.php:615
msgid "Too many failed verification attempts. Please try again in 15 minutes."
msgstr ""

#: includes/TwoFactor/TwoFactor.php:623
msgid "Too many failed verification attempts from your network. Please try again later."
msgstr ""

#: includes/TwoFactor/TwoFactor.php:781
msgid "Too many incorrect verification codes. For your security, verification is locked for a few minutes — please wait, then sign in again."
msgstr ""

#: includes/TwoFactor/TwoFactor.php:782
msgid "Your verification session expired or could not be found. Please sign in again to receive a new code."
msgstr ""

#: includes/TwoFactor/TwoFactor.php:1024
msgid "Invalid verification code. Please try again."
msgstr ""

#. translators: %s: deadline date
#: includes/TwoFactor/TwoFactor.php:1059
msgid "Two-factor authentication will be required for your account before %s."
msgstr ""

#: includes/TwoFactor/TwoFactor.php:1063
msgid "Set up now"
msgstr ""

#: includes/class-breach-check.php:508
msgid "Login Armor — password breach notice"
msgstr ""

#. translators: %s: formatted number of appearances of the current password in public breach corpora.
#: includes/class-breach-check.php:513
msgid "The password you are currently using appears in a public data breach corpus (seen %s time). This does not mean your account has been compromised, but it does mean attackers already know this password. We recommend changing it below."
msgid_plural "The password you are currently using appears in a public data breach corpus (seen %s times). This does not mean your account has been compromised, but it does mean attackers already know this password. We recommend changing it below."
msgstr[0] ""
msgstr[1] ""

#: includes/class-breach-check.php:523
msgid "The password you are currently using appears in a public data breach corpus. We recommend changing it below."
msgstr ""

#: includes/class-breach-check.php:530
msgid "Login Armor — email breach notice"
msgstr ""

#. translators: %d: number of data breaches in which the user's email address appears.
#: includes/class-breach-check.php:534
msgid "Your email address appears in %d publicly disclosed data breach. Passwords you may have reused elsewhere could be exposed — make sure this site uses a unique password."
msgid_plural "Your email address appears in %d publicly disclosed data breaches. Passwords you may have reused elsewhere could be exposed — make sure this site uses a unique password."
msgstr[0] ""
msgstr[1] ""

#: includes/class-breach-check.php:544
msgid "Breach sources:"
msgstr ""

#: includes/class-hardening.php:175
msgid "Disable XML-RPC"
msgstr ""

#: includes/class-hardening.php:176
msgid "Block XML-RPC requests (keep off if using Jetpack or WP mobile app)."
msgstr ""

#: includes/class-hardening.php:180
msgid "Disable file editor"
msgstr ""

#: includes/class-hardening.php:181
msgid "Block theme/plugin file editing from dashboard."
msgstr ""

#: includes/class-hardening.php:185
msgid "Hide WordPress version"
msgstr ""

#: includes/class-hardening.php:186
msgid "Strip version from page source and feeds."
msgstr ""

#: includes/class-hardening.php:190
msgid "Mask login errors"
msgstr ""

#: includes/class-hardening.php:191
msgid "Generic error message to prevent user enumeration."
msgstr ""

#: includes/class-hardening.php:195
msgid "Disable application passwords"
msgstr ""

#: includes/class-hardening.php:196
msgid "Remove REST API app password feature."
msgstr ""

#: includes/class-hardening.php:200
msgid "Block PHP in uploads"
msgstr ""

#: includes/class-hardening.php:201
msgid "Prevent PHP execution in wp-content/uploads/. Apache/LiteSpeed only."
msgstr ""

#: includes/class-hardening.php:205
msgid "Prevent author enumeration"
msgstr ""

#: includes/class-hardening.php:206
msgid "Block ?author=N requests that reveal usernames."
msgstr ""

#: includes/class-hardening.php:210
msgid "Obfuscate author slugs"
msgstr ""

#: includes/class-hardening.php:211
msgid "Replace /author/username/ with an opaque token that cannot be reversed to a login."
msgstr ""

#: includes/class-hardening.php:215
msgid "Restrict REST API"
msgstr ""

#: includes/class-hardening.php:216
msgid "Require authentication for REST API requests."
msgstr ""

#: includes/class-hardening.php:220
msgid "Block reserved usernames"
msgstr ""

#: includes/class-hardening.php:221
msgid "Reject login and registration attempts for admin, root, test, and other well-known usernames."
msgstr ""

#: includes/class-hardening.php:225
msgid "Anti-bot honeypot"
msgstr ""

#: includes/class-hardening.php:226
msgid "Invisible trap on login, register, and lost-password forms. Bots that auto-fill every field are banned for 24 hours."
msgstr ""

#: includes/class-hardening.php:230
msgid "Protect system files"
msgstr ""

#: includes/class-hardening.php:231
msgid "Block access to readme.html, license.txt, wp-config-sample.php."
msgstr ""

#: includes/class-hardening.php:235
msgid "Disable directory listing"
msgstr ""

#: includes/class-hardening.php:236
msgid "Prevent browsing directory contents. Apache/LiteSpeed only."
msgstr ""

#: includes/class-hardening.php:240
msgid "Disable pingbacks"
msgstr ""

#: includes/class-hardening.php:241
msgid "Neutralize XML-RPC pingbacks (a DDoS amplification vector) and remove the X-Pingback header, even if XML-RPC stays on for other uses."
msgstr ""

#: includes/class-hardening.php:245
msgid "Alert on new administrator"
msgstr ""

#: includes/class-hardening.php:246
msgid "Log an activity entry and fire a notification whenever an account is created with, or promoted to, the administrator role — a common sign of compromise."
msgstr ""

#: includes/class-hardening.php:406
msgid "The login information is incorrect."
msgstr ""

#: includes/class-hardening.php:946
msgid "REST API access restricted to authenticated users."
msgstr ""

#. translators: %s: site name.
#: includes/class-hardening.php:1244
msgid "[%s] New administrator account detected"
msgstr ""

#. translators: 1: user login, 2: user email.
#: includes/class-hardening.php:1251
msgid "The account \"%1$s\" (%2$s) was just promoted to the administrator role."
msgstr ""

#. translators: 1: user login, 2: user email.
#: includes/class-hardening.php:1258
msgid "A new account \"%1$s\" (%2$s) was just created with the administrator role."
msgstr ""

#: includes/class-hardening.php:1264
msgid "If this was expected, no action is needed. If not, review the account immediately — unexpected administrator accounts are a common sign of compromise."
msgstr ""

#: includes/class-hide-login.php:127
msgid "This feature is not enabled."
msgstr ""

#: includes/class-hide-login.php:128
#: includes/Firewall/Firewall.php:317
msgid "Forbidden"
msgstr ""

#: includes/class-hide-login.php:786
msgid "Dashboard"
msgstr ""

#: includes/class-hide-login.php:813
msgid "This slug cannot be used. Try Regenerate for a safe random slug."
msgstr ""

#: includes/class-hide-login.php:961
msgid "Method 1 — WP-CLI (recommended)"
msgstr ""

#: includes/class-hide-login.php:962
msgid "Run from your server shell. A fresh slug is generated on the next admin page load."
msgstr ""

#: includes/class-hide-login.php:966
msgid "Method 2 — Database (phpMyAdmin, Adminer)"
msgstr ""

#. translators: %s: database table prefix.
#: includes/class-hide-login.php:969
msgid "Run this SQL query. Replace %s with your own prefix if different."
msgstr ""

#: includes/class-hide-login.php:978
msgid "Method 3 — FTP last resort"
msgstr ""

#: includes/class-hide-login.php:979
msgid "Rename the plugin folder via FTP. WordPress auto-deactivates on the next admin load."
msgstr ""

#: includes/class-hide-login.php:997
msgid "[%s] LoginArmor: your login URL was regenerated"
msgstr ""

#: includes/class-hide-login.php:999
msgid "[%s] LoginArmor: your login URL"
msgstr ""

#: includes/class-hide-login.php:1003
msgid "Your LoginArmor login URL was just regenerated."
msgstr ""

#: includes/class-hide-login.php:1004
msgid "Here is your current LoginArmor login URL."
msgstr ""

#: includes/class-hide-login.php:1006
msgid "Login URL:"
msgstr ""

#: includes/class-hide-login.php:1009
msgid "Bookmark this URL now. If you lose it, use one of these recovery methods:"
msgstr ""

#: includes/class-hide-login.php:1019
msgid "-- LoginArmor"
msgstr ""

#. translators: %d: Number of minutes remaining in lockout period.
#: includes/class-limit-login.php:129
msgid "<strong>Error:</strong> Too many failed login attempts. Please try again in %d minutes."
msgstr ""

#: includes/class-limit-login.php:140
msgid "<strong>Access denied.</strong> Your network has been blocked by the site administrator."
msgstr ""

#. translators: %d: Number of login attempts remaining before lockout.
#: includes/class-limit-login.php:283
msgid "<strong>%d attempt(s) remaining</strong> before your IP is temporarily locked."
msgstr ""

#. translators: %s: Site name.
#: includes/class-limit-login.php:380
msgid "[%s] LoginArmor: Multiple lockouts detected"
msgstr ""

#. translators: 1: IP address, 2: Lockout count, 3: Site name.
#: includes/class-limit-login.php:386
msgid ""
"The IP address %1$s has been locked out %2$d times on %3$s.\n"
"\n"
"This may indicate a brute force attack. You can whitelist this IP or take further action from the LoginArmor settings page:\n"
"%4$s"
msgstr ""

#: includes/class-limit-login.php:930
msgid "<strong>Error:</strong> Too many failed attempts from your IP. Password recovery is temporarily disabled."
msgstr ""

#: includes/class-limit-login.php:1009
msgid "<strong>Error:</strong> Registration is temporarily disabled for your IP due to suspicious activity."
msgstr ""

#: includes/class-limit-login.php:1119
msgid "Access to this endpoint is temporarily restricted due to suspicious activity from your IP."
msgstr ""

#: includes/class-login-armor.php:217
msgid "LoginArmor every 5 minutes"
msgstr ""

#: includes/class-login-armor.php:220
msgid "LoginArmor every minute"
msgstr ""

#: includes/class-login-armor.php:223
msgid "LoginArmor hourly"
msgstr ""

#: includes/class-login-armor.php:755
#: includes/AI/PostureAdvisor.php:215
#: admin/views/page.php:26
msgid "Settings"
msgstr ""

#: includes/class-overview.php:74
msgid "No login attempts in the last 24 hours."
msgstr ""

#. translators: 1: event count, 2: IP count.
#: includes/class-overview.php:81
msgid "%1$d login attempt from %2$d IP"
msgid_plural "%1$d login attempts from %2$d IPs"
msgstr[0] ""
msgstr[1] ""

#. translators: %d: number of active incidents.
#: includes/class-overview.php:94
msgid "%d active incident requires attention"
msgid_plural "%d active incidents require attention"
msgstr[0] ""
msgstr[1] ""

#: includes/class-overview.php:103
msgid "no active incidents"
msgstr ""

#: includes/class-overview.php:124
msgid "UNDER ATTACK"
msgstr ""

#: includes/class-overview.php:127
msgid "ELEVATED"
msgstr ""

#: includes/class-overview.php:130
msgid "NORMAL"
msgstr ""

#: includes/class-overview.php:249
msgid "Turn on two-factor authentication"
msgstr ""

#: includes/class-overview.php:250
msgid "Stop credential-stuffing attacks even when passwords leak. LoginArmor includes TOTP apps, email codes and backup codes — no external service."
msgstr ""

#: includes/class-overview.php:252
msgid "Set up 2FA"
msgstr ""

#: includes/class-overview.php:259
msgid "Hide your login page"
msgstr ""

#: includes/class-overview.php:260
msgid "Move /wp-login.php to a private URL. Bots that scan for the default path get a 404 and move on."
msgstr ""

#: includes/class-overview.php:262
msgid "Configure Hide Login"
msgstr ""

#: includes/class-overview.php:269
msgid "Detect leaked passwords automatically"
msgstr ""

#: includes/class-overview.php:270
msgid "Quietly check each login password against the Have I Been Pwned corpus using a privacy-preserving lookup. Flagged users get a friendly warning on their profile — no one is locked out."
msgstr ""

#: includes/class-overview.php:272
msgid "Configure Breach Check"
msgstr ""

#: includes/class-overview.php:280
msgid "Get notified when something happens"
msgstr ""

#: includes/class-overview.php:281
msgid "Pipe LoginArmor events to email, Slack, Discord or a custom webhook. Never miss a brute-force attempt."
msgstr ""

#: includes/class-overview.php:283
msgid "Set up notifications"
msgstr ""

#: includes/class-overview.php:457
#: admin/views/widget-dashboard.php:68
#: admin/views/tabs/activity.php:142
#: admin/views/tabs/events.php:78
#: admin/views/tabs/incidents.php:154
msgid "%ds ago"
msgstr ""

#: includes/class-overview.php:461
#: admin/views/widget-dashboard.php:71
#: admin/views/tabs/activity.php:146
#: admin/views/tabs/events.php:82
#: admin/views/tabs/incidents.php:158
msgid "%dm ago"
msgstr ""

#: includes/class-overview.php:465
#: admin/views/widget-dashboard.php:74
#: admin/views/tabs/activity.php:150
#: admin/views/tabs/events.php:86
#: admin/views/tabs/incidents.php:162
msgid "%dh ago"
msgstr ""

#: includes/class-overview.php:468
#: admin/views/widget-dashboard.php:77
#: admin/views/widget-dashboard.php:327
#: admin/views/tabs/activity.php:154
#: admin/views/tabs/events.php:90
#: admin/views/tabs/incidents.php:166
msgid "%dd ago"
msgstr ""

#. translators: %d: minimum number of characters required in a password.
#: includes/class-password-policy.php:168
msgid "Password must be at least %d character long."
msgid_plural "Password must be at least %d characters long."
msgstr[0] ""
msgstr[1] ""

#: includes/class-password-policy.php:179
msgid "Password must contain at least one lowercase letter."
msgstr ""

#: includes/class-password-policy.php:182
msgid "Password must contain at least one uppercase letter."
msgstr ""

#: includes/class-password-policy.php:185
msgid "Password must contain at least one number."
msgstr ""

#: includes/class-password-policy.php:188
msgid "Password must contain at least one symbol."
msgstr ""

#: includes/class-password-policy.php:192
msgid "Password must not contain your username."
msgstr ""

#: includes/class-password-policy.php:201
msgid "This password appears in public data breach records and is unsafe. Please choose a different one."
msgstr ""

#. translators: %d: minimum number of characters required in a password.
#: includes/class-password-policy.php:432
msgid "At least %d character"
msgid_plural "At least %d characters"
msgstr[0] ""
msgstr[1] ""

#: includes/class-password-policy.php:436
msgid "One lowercase letter"
msgstr ""

#: includes/class-password-policy.php:439
msgid "One uppercase letter"
msgstr ""

#: includes/class-password-policy.php:442
msgid "One number"
msgstr ""

#: includes/class-password-policy.php:445
msgid "One symbol"
msgstr ""

#: includes/class-password-policy.php:448
msgid "Not found in known data breaches"
msgstr ""

#: includes/class-security-score.php:136
#: admin/views/widget-dashboard.php:201
#: admin/views/widget-dashboard.php:209
#: admin/views/sidebar/overview.php:30
#: admin/views/tabs/overview.php:270
msgid "2FA"
msgstr ""

#: includes/class-security-score.php:137
#: admin/views/widget-dashboard.php:176
#: admin/views/widget-dashboard.php:210
#: admin/views/sections/hide-login.php:36
#: admin/views/sidebar/overview.php:25
#: admin/views/sidebar/settings.php:19
#: admin/views/tabs/overview.php:230
#: admin/views/tabs/settings.php:247
msgid "Hide Login"
msgstr ""

#: includes/class-security-score.php:138
#: admin/views/sections/password-policy.php:33
#: admin/views/sidebar/overview.php:33
#: admin/views/sidebar/settings.php:84
#: admin/views/tabs/overview.php:319
#: admin/views/tabs/settings.php:316
msgid "Password Policy"
msgstr ""

#: includes/class-security-score.php:139
#: admin/views/widget-dashboard.php:182
#: admin/views/widget-dashboard.php:215
#: admin/views/sections/breach-check.php:37
#: admin/views/sidebar/overview.php:32
#: admin/views/sidebar/settings.php:74
#: admin/views/tabs/overview.php:286
#: admin/views/tabs/settings.php:300
msgid "Breach Check"
msgstr ""

#: includes/class-security-score.php:140
#: admin/views/widget-dashboard.php:212
#: admin/views/sidebar/overview.php:31
#: admin/views/tabs/overview.php:278
msgid "Login Headers"
msgstr ""

#: includes/class-security-score.php:141
#: admin/views/sections/session.php:32
#: admin/views/sidebar/overview.php:34
#: admin/views/sidebar/settings.php:95
#: admin/views/tabs/settings.php:326
msgid "Session Management"
msgstr ""

#: includes/class-security-score.php:144
#: admin/views/sections/firewall.php:56
#: admin/views/sidebar/settings.php:110
#: admin/views/tabs/overview.php:335
#: admin/views/tabs/settings.php:346
msgid "Request Firewall"
msgstr ""

#: includes/class-security-score.php:171
msgid "Observability — IP Geolocation, Notifications, the AI assistant — is not scored."
msgstr ""

#: includes/class-security-score.php:175
msgid "Your defenses are solid."
msgstr ""

#. translators: 1: active scored-protection count, 2: total scored protections.
#: includes/class-security-score.php:178
msgid "%1$d of %2$d scored protections are active. Fine-tune details below."
msgstr ""

#: includes/class-security-score.php:183
msgid "Review settings"
msgstr ""

#. translators: 1: active scored-protection count, 2: total scored protections, 3: first module name, 4: second module name, 5: target score.
#: includes/class-security-score.php:195
msgid "%1$d of %2$d scored protections are active. Enabling %3$s and %4$s would raise your score to %5$d."
msgstr ""

#. translators: 1: active scored-protection count, 2: total scored protections, 3: first module name, 4: target score.
#: includes/class-security-score.php:204
msgid "%1$d of %2$d scored protections are active. Enabling %3$s would raise your score to %4$d."
msgstr ""

#: includes/class-security-score.php:212
msgid "Good, but Two-Factor would close the gap."
msgstr ""

#. translators: %s: module name.
#: includes/class-security-score.php:215
msgid "Good — %s is your next quick win."
msgstr ""

#. translators: %s: module name.
#: includes/class-security-score.php:225
msgid "Enable %s →"
msgstr ""
