# Copyright (C) 2026 Kodezen # This file is distributed under the GPL-3.0+. msgid "" msgstr "" "Project-Id-Version: GemSecurity 1.2.2\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/gemsecurity\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "POT-Creation-Date: 2026-11-05T15:20:02+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.12.0\n" "X-Domain: gemsecurity\n" #. Plugin Name of the plugin #: gemsecurity.php #: includes/admin/menu.php:142 #: includes/security/site-guard.php:582 #: assets/build/backend.1.2.2.js:19 #: assets/build/backend.1.2.2.js:43 msgid "GemSecurity" msgstr "" #. Plugin URI of the plugin #: gemsecurity.php msgid "https://github.com/imrantushar/gemsecurity" msgstr "" #. Description of the plugin #: gemsecurity.php msgid "All-in-one WordPress security dashboard — firewall, login protection, malware scanner, and activity logs." msgstr "" #. Author of the plugin #: gemsecurity.php msgid "Kodezen" msgstr "" #. Author URI of the plugin #: gemsecurity.php msgid "https://kodezen.com/" msgstr "" #: includes/admin/menu.php:42 #: assets/build/backend.1.2.2.js:19 #: assets/build/setup.1.2.2.js:14 msgid "PRO" msgstr "" #: includes/admin/setup.php:40 #: includes/admin/setup.php:41 #: includes/admin/views/setup.php:11 msgid "GemSecurity Setup" msgstr "" #: includes/api.php:43 msgid "This feature requires GemSecurity Pro." msgstr "" #: includes/api.php:128 msgid "Report sent." msgstr "" #: includes/api.php:129 msgid "WordPress could not send the email — check the site’s mail setup." msgstr "" #: includes/helper.php:199 msgid "Malware Scan" msgstr "" #: includes/helper.php:200 msgid "Signature malware scan, database injection scan, quarantine/restore and plugin integrity verification." msgstr "" #: includes/installer.php:65 msgid "unknown — not a logged-in user" msgstr "" #: includes/installer.php:84 msgid "DANGER: GemSecurity was deactivated — this site is no longer protected" msgstr "" #: includes/installer.php:89 msgid "The firewall, login protection, scanning and monitoring on this site have all stopped. If you did not do this yourself, treat it as an active intrusion — disabling security is usually the first step, not the last." msgstr "" #: includes/installer.php:93 msgid "What happened" msgstr "" #: includes/installer.php:95 msgid "Action" msgstr "" #: includes/installer.php:95 msgid "GemSecurity deactivated" msgstr "" #: includes/installer.php:96 msgid "By" msgstr "" #: includes/installer.php:97 #: includes/mailer.php:181 #: includes/modules/admin-guard.php:855 #: includes/modules/alerts.php:80 #: includes/modules/login-security.php:209 msgid "IP address" msgstr "" #: includes/installer.php:98 #: includes/modules/alerts.php:75 #: includes/modules/login-security.php:208 #: includes/security/plugin-guard.php:1000 #: assets/build/backend.1.2.2.js:23 msgid "Time" msgstr "" #: includes/installer.php:103 msgid "If this was not you" msgstr "" #: includes/installer.php:105 msgid "Reactivate GemSecurity immediately." msgstr "" #: includes/installer.php:106 msgid "Change every administrator password and log all sessions out." msgstr "" #: includes/installer.php:107 msgid "Run a full malware scan, and check the administrator list for accounts you do not recognise." msgstr "" #: includes/installer.php:108 msgid "Review the activity log — it survives deactivation and records what led up to this." msgstr "" #: includes/installer.php:114 msgid "Reactivate GemSecurity" msgstr "" #. translators: 1: site name, 2: who, 3: ip #: includes/installer.php:124 #, php-format msgid "[%1$s] CRITICAL: GemSecurity was deactivated by %2$s from %3$s. The site is no longer protected." msgstr "" #: includes/mailer.php:193 msgid "Request origin" msgstr "" #. translators: %s: site name. #: includes/mailer.php:215 #, php-format msgid "Sent by GemSecurity on %s. You are receiving this because you are listed as a security contact." msgstr "" #: includes/mailer.php:322 #: includes/mailer.php:393 msgid "Nothing to report." msgstr "" #: includes/modules/admin-guard.php:133 #: includes/modules/registry.php:464 #: assets/build/backend.1.2.2.js:51 msgid "Admin Guard" msgstr "" #: includes/modules/admin-guard.php:136 msgid "Approved administrator — this account is on the Admin Guard whitelist." msgstr "" #: includes/modules/admin-guard.php:138 msgid "Only an already-approved administrator can authorize a new one. Without approval, an administrator account is removed automatically." msgstr "" #: includes/modules/admin-guard.php:144 msgid "Authorize this administrator" msgstr "" #: includes/modules/admin-guard.php:145 msgid "Admin Guard removes any administrator whose email is not on its whitelist. Tick this to add this email to the whitelist so the account is kept." msgstr "" #: includes/modules/admin-guard.php:190 msgid "You cannot authorize administrators: only an already-approved administrator can." msgstr "" #. translators: %s: username. #: includes/modules/admin-guard.php:223 #, php-format msgid "%s was authorized as an administrator and added to the Admin Guard whitelist." msgstr "" #: includes/modules/admin-guard.php:225 msgid "The whitelist was empty, so the current administrators were approved too." msgstr "" #: includes/modules/admin-guard.php:317 msgid "Admin Guard:" msgstr "" #: includes/modules/admin-guard.php:337 msgid "To keep an administrator, tick “Authorize this administrator” on the user form, or add their email to the Admin Guard whitelist first." msgstr "" #. translators: %s: username. #: includes/modules/admin-guard.php:344 #, php-format msgid "The administrator account “%s” was removed because its email is not on the whitelist." msgstr "" #. translators: 1: username, 2: role. #: includes/modules/admin-guard.php:354 #, php-format msgid "“%1$s” was not made an administrator — its email is not on the whitelist — and was set to %2$s." msgstr "" #: includes/modules/admin-guard.php:541 msgid "Sign-in blocked. This administrator account is not on the approved list." msgstr "" #: includes/modules/admin-guard.php:831 #: assets/build/backend.1.2.2.js:48 #: assets/build/backend.1.2.2.js:49 msgid "deleted" msgstr "" #: includes/modules/admin-guard.php:831 #: assets/build/backend.1.2.2.js:48 #: assets/build/backend.1.2.2.js:49 msgid "demoted" msgstr "" #: includes/modules/admin-guard.php:836 msgid "Unapproved administrator blocked" msgstr "" #. translators: 1: username, 2: deleted|demoted #: includes/modules/admin-guard.php:843 #, php-format msgid "The administrator account %1$s was not on the approved list and has been %2$s." msgstr "" #: includes/modules/admin-guard.php:850 msgid "Account" msgstr "" #: includes/modules/admin-guard.php:852 #: assets/build/backend.1.2.2.js:44 msgid "Username" msgstr "" #: includes/modules/admin-guard.php:853 #: includes/modules/daily-report.php:367 #: assets/build/backend.1.2.2.js:44 msgid "Email" msgstr "" #: includes/modules/admin-guard.php:854 msgid "Trigger" msgstr "" #: includes/modules/admin-guard.php:860 msgid "If this administrator was legitimate, add their email to the whitelist and recreate the account." msgstr "" #: includes/modules/admin-guard.php:865 msgid "Review Admin Guard" msgstr "" #: includes/modules/alerts.php:73 #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:51 msgid "Event" msgstr "" #: includes/modules/alerts.php:74 #: assets/build/backend.1.2.2.js:32 #: assets/build/backend.1.2.2.js:35 #: assets/build/backend.1.2.2.js:37 #: assets/build/backend.1.2.2.js:39 #: assets/build/backend.1.2.2.js:51 msgid "Severity" msgstr "" #. translators: %s: severity, e.g. Critical. #: includes/modules/alerts.php:88 #, php-format msgid "%s security alert" msgstr "" #: includes/modules/alerts.php:99 #: assets/build/backend.1.2.2.js:51 msgid "Details" msgstr "" #: includes/modules/alerts.php:105 #: includes/modules/alerts.php:211 msgid "Open the activity log" msgstr "" #. translators: %s: site name. #: includes/modules/alerts.php:171 #, php-format msgid "GemSecurity weekly report for %s" msgstr "" #. translators: %d: number of critical events in the past week. #: includes/modules/alerts.php:174 #, php-format msgid "Critical events: %d" msgstr "" #. translators: %d: number of warning events in the past week. #: includes/modules/alerts.php:176 #, php-format msgid "Warnings: %d" msgstr "" #. translators: %d: number of notice events in the past week. #: includes/modules/alerts.php:178 #, php-format msgid "Notices: %d" msgstr "" #. translators: %d: number of currently-active IP bans. #: includes/modules/alerts.php:180 #, php-format msgid "Active IP bans: %d" msgstr "" #. translators: %d: number of known vulnerabilities across installed plugins and themes. #: includes/modules/alerts.php:185 #, php-format msgid "Known vulnerabilities: %d" msgstr "" #: includes/modules/alerts.php:192 msgid "Weekly security report" msgstr "" #: includes/modules/alerts.php:197 #: includes/modules/daily-report.php:294 #: assets/build/backend.1.2.2.js:51 msgid "Critical" msgstr "" #: includes/modules/alerts.php:198 #: includes/modules/daily-report.php:295 msgid "Warnings" msgstr "" #: includes/modules/alerts.php:199 msgid "Notices" msgstr "" #: includes/modules/alerts.php:200 msgid "IP bans" msgstr "" #: includes/modules/alerts.php:205 msgid "The last 7 days" msgstr "" #: includes/modules/alerts.php:214 msgid "A summary of everything GemSecurity recorded over the last seven days." msgstr "" #: includes/modules/anti-spam.php:78 msgid "Your comment was blocked as spam." msgstr "" #: includes/modules/anti-spam.php:79 #: includes/modules/captcha.php:209 msgid "Comment blocked" msgstr "" #: includes/modules/anti-spam.php:92 msgid "Registration blocked. Please try again." msgstr "" #. translators: 1: application password label, 2: user id. #: includes/modules/api-hardening.php:77 #, php-format msgid "Application password \"%1$s\" was created for user #%2$d." msgstr "" #: includes/modules/api-hardening.php:94 msgid "New application password created" msgstr "" #. translators: 1: password label, 2: username. #: includes/modules/api-hardening.php:100 #, php-format msgid "An application password %1$s was just created for %2$s. Application passwords bypass the login form, two-factor and CAPTCHA." msgstr "" #: includes/modules/api-hardening.php:107 msgid "If this was not expected, revoke it now." msgstr "" #: includes/modules/api-hardening.php:112 msgid "Review application passwords" msgstr "" #. translators: 1: label, 2: user id, 3: age in days. #: includes/modules/api-hardening.php:141 #, php-format msgid "Expired application password \"%1$s\" for user #%2$d (older than %3$d days)." msgstr "" #: includes/modules/api-hardening.php:182 #: includes/modules/waf.php:105 #: includes/modules/waf.php:157 msgid "Too many requests. Please slow down." msgstr "" #: includes/modules/captcha.php:174 #: includes/modules/captcha.php:182 #: includes/modules/captcha.php:190 msgid "Error: Please complete the CAPTCHA challenge." msgstr "" #: includes/modules/captcha.php:208 msgid "Please complete the CAPTCHA challenge to post your comment." msgstr "" #: includes/modules/custom-login.php:192 msgid "This page does not exist." msgstr "" #: includes/modules/daily-report.php:122 msgid "Morning report — changes since yesterday" msgstr "" #: includes/modules/daily-report.php:123 msgid "Morning report — no changes" msgstr "" #. translators: %s: formatted date. #: includes/modules/daily-report.php:128 #, php-format msgid "Administrators, active plugins and anything that changed on your site as of %s." msgstr "" #: includes/modules/daily-report.php:292 msgid "Admins" msgstr "" #: includes/modules/daily-report.php:293 #: assets/build/backend.1.2.2.js:43 msgid "Plugins" msgstr "" #: includes/modules/daily-report.php:303 msgid "This is the first report, so there is nothing to compare against yet. From tomorrow it will list what changed." msgstr "" #. translators: %s: plugin names. #: includes/modules/daily-report.php:314 #, php-format msgid "Newly activated: %s. If you did not do this, treat it as an intrusion." msgstr "" #. translators: %s: usernames. #: includes/modules/daily-report.php:325 #, php-format msgid "New administrator account(s): %s." msgstr "" #. translators: %s: plugin names. #: includes/modules/daily-report.php:335 #, php-format msgid "Plugins deactivated: %s" msgstr "" #. translators: %s: usernames. #: includes/modules/daily-report.php:342 #, php-format msgid "Administrators removed: %s" msgstr "" #: includes/modules/daily-report.php:358 #: includes/modules/daily-report.php:375 msgid "(new)" msgstr "" #: includes/modules/daily-report.php:360 msgid "(not on whitelist)" msgstr "" #: includes/modules/daily-report.php:366 msgid "Administrators" msgstr "" #: includes/modules/daily-report.php:367 #: includes/modules/login-security.php:207 #: includes/security/plugin-guard.php:982 #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:44 msgid "User" msgstr "" #: includes/modules/daily-report.php:381 msgid "Active plugins" msgstr "" #: includes/modules/daily-report.php:382 #: assets/build/backend.1.2.2.js:32 #: assets/build/backend.1.2.2.js:43 msgid "Plugin" msgstr "" #: includes/modules/daily-report.php:382 #: assets/build/backend.1.2.2.js:32 msgid "Version" msgstr "" #: includes/modules/daily-report.php:389 msgid "Open the security dashboard" msgstr "" #: includes/modules/docs.php:45 msgid "Your security overview: the current protection status, activity from the last 7 days, recent events and the result of the most recent scan." msgstr "" #: includes/modules/docs.php:47 msgid "Summarises which protections are on and which are still off." msgstr "" #: includes/modules/docs.php:48 msgid "Charts blocked requests, failed logins and bans over the last 7 days." msgstr "" #: includes/modules/docs.php:49 msgid "Lists the newest activity-log events so problems surface early." msgstr "" #: includes/modules/docs.php:50 msgid "Shows when the site was last scanned and what the scan found." msgstr "" #: includes/modules/docs.php:53 msgid "Open Modules and turn on the feature areas this site needs — everything else stays dormant." msgstr "" #: includes/modules/docs.php:54 msgid "Work through Firewall, Login Security and Scanner first; they cover the most common attacks." msgstr "" #: includes/modules/docs.php:55 msgid "Set an alert address in Settings → Alerts & notifications so you hear about incidents without logging in." msgstr "" #: includes/modules/docs.php:56 msgid "Run a first scan from the Scanner page to get a clean baseline to compare against later." msgstr "" #: includes/modules/docs.php:59 msgid "Counters only cover events recorded while the relevant module was active." msgstr "" #: includes/modules/docs.php:60 msgid "A quiet dashboard is not proof of safety — check the Scanner and Logs pages periodically." msgstr "" #: includes/modules/docs.php:65 msgid "Turn feature areas on or off. A module that is off loads no code, registers no REST routes and shows no menu entry, so unused features cost nothing." msgstr "" #: includes/modules/docs.php:67 msgid "Activation is the coarse gate; the individual settings inside a module stay as fine-grained switches." msgstr "" #: includes/modules/docs.php:68 msgid "Turning a module off immediately removes its page from both the plugin nav and the WordPress menu." msgstr "" #: includes/modules/docs.php:69 msgid "Core modules (Dashboard, Modules, Logs, Settings) are always on and cannot be turned off." msgstr "" #: includes/modules/docs.php:70 msgid "Pro modules show as locked until the Pro add-on is active; then they toggle like any other module." msgstr "" #: includes/modules/docs.php:73 msgid "Switch on a module to reveal its page, then open that page and configure it." msgstr "" #: includes/modules/docs.php:74 msgid "Leave modules you do not use switched off — it keeps the menu short and skips their code entirely." msgstr "" #: includes/modules/docs.php:77 msgid "Turning a module off does not erase its settings; switching it back on restores them exactly as they were." msgstr "" #: includes/modules/docs.php:78 msgid "On upgrade, activation was derived from your existing settings, so a module whose features were all off may start hidden." msgstr "" #: includes/modules/docs.php:83 msgid "A tamper-evident audit trail of everything that matters: logins, user and role changes, plugin and theme activity, settings changes, blocks and bans." msgstr "" #: includes/modules/docs.php:85 msgid "Records security-relevant events with actor, IP, severity and timestamp." msgstr "" #: includes/modules/docs.php:86 msgid "Lets you choose which activity is recorded — user accounts, plugins and themes, settings changes, content — while security events are always logged." msgstr "" #: includes/modules/docs.php:87 msgid "Filters by severity, event type, user or IP, and exports the result as CSV." msgstr "" #: includes/modules/docs.php:88 msgid "Sends real-time alerts for events above the severity you choose." msgstr "" #: includes/modules/docs.php:89 msgid "Pro: hash-chains each entry so deleted or edited rows can be detected, and can forward events to a SIEM or syslog collector." msgstr "" #: includes/modules/docs.php:92 msgid "Set how long entries are kept in Settings → General (log retention, in days)." msgstr "" #: includes/modules/docs.php:93 msgid "Use \"What gets logged\" at the top of this page to switch off any source you do not need — content is the noisiest on an active site." msgstr "" #: includes/modules/docs.php:94 msgid "Choose an alert channel and minimum severity on the Notifications page." msgstr "" #: includes/modules/docs.php:95 msgid "Pro: enable the hash chain in Settings → Compliance & SIEM, then use Verify to prove the log is intact." msgstr "" #: includes/modules/docs.php:98 msgid "Retention trims old rows on a schedule — set it long enough to cover an investigation, short enough to keep the table small." msgstr "" #: includes/modules/docs.php:99 msgid "Log verification only proves the chain from the point you enabled it, not events recorded before." msgstr "" #: includes/modules/docs.php:104 msgid "Where alerts go, what raises one, and the mail that arrives on a schedule. Every module feeds into this page." msgstr "" #: includes/modules/docs.php:106 msgid "Delivery: one security email address and one set of channels — Slack, Telegram or a generic webhook — used by every alert, report and failure notice the plugin sends, with a minimum-severity filter." msgstr "" #: includes/modules/docs.php:107 msgid "Triggers: every event a module can alert on, in one list — administrator sign-ins, new devices, rogue and hidden administrators, and application passwords." msgstr "" #: includes/modules/docs.php:108 msgid "Scheduled: a morning report listing every administrator and active plugin with anything that changed since yesterday, a weekly digest, and the daily security scan that finds most of it." msgstr "" #: includes/modules/docs.php:111 msgid "Set the security email once — monitoring warnings, admin alerts and the daily report all use it. Then set the minimum severity so routine noise stays out of your inbox." msgstr "" #: includes/modules/docs.php:112 msgid "Work down \"What you get told about\" and switch off anything you do not want to hear. A trigger whose module is switched off is not listed at all." msgstr "" #: includes/modules/docs.php:113 msgid "Turn on the daily report to get a morning inventory of administrators and active plugins, with new ones called out — then use \"Send a report now\" to see what it looks like." msgstr "" #: includes/modules/docs.php:116 msgid "Alerts are only as reliable as your site mail. If WordPress email is unreliable here, use Slack, Telegram or a webhook instead — use \"Send a test email\" to find out before an incident does." msgstr "" #: includes/modules/docs.php:117 msgid "Each trigger also appears on the page of the module that raises it. Both write the same setting, so the two views can never disagree." msgstr "" #: includes/modules/docs.php:118 msgid "Turning a trigger off does not stop the event being recorded — it is still in the activity log on the Logs page, you just are not mailed about it." msgstr "" #: includes/modules/docs.php:119 msgid "Deactivating GemSecurity emails the alert address with a critical warning naming who did it, and pushes the same message to Slack, Telegram or your webhook — switching security off is the first move in most intrusions." msgstr "" #: includes/modules/docs.php:120 msgid "Every email names the site and its domain in the subject, after an emoji for the event type — so alerts from several installs stay apart in one inbox." msgstr "" #: includes/modules/docs.php:121 msgid "The first daily report has no baseline, so it lists the inventory without claiming everything is new. Comparisons start the next morning." msgstr "" #: includes/modules/docs.php:126 msgid "Plugin-wide preferences: log retention, compliance and SIEM forwarding, maintenance lockdown, and settings import/export." msgstr "" #: includes/modules/docs.php:128 msgid "Compliance: log hash-chaining, SIEM/syslog forwarding and a severity floor for what gets shipped." msgstr "" #: includes/modules/docs.php:129 msgid "Maintenance: site lockdown with a custom message, and (with the GemBackup plugin) taking a backup before plugin or theme updates." msgstr "" #: includes/modules/docs.php:130 msgid "Settings import/export (Pro): move a whole configuration, including which modules are on, between sites." msgstr "" #: includes/modules/docs.php:133 msgid "Set log retention to suit the site — a busy install fills the log quickly, and 0 keeps entries forever." msgstr "" #: includes/modules/docs.php:134 msgid "Use lockdown while you investigate an incident: visitors see your message, administrators keep full access." msgstr "" #: includes/modules/docs.php:137 msgid "Alerts, the daily report and the weekly digest are configured on the Notifications page, not here." msgstr "" #: includes/modules/docs.php:138 msgid "What gets written to the activity log is configured on the Logs page, not here." msgstr "" #: includes/modules/docs.php:139 msgid "Lockdown blocks the front end for visitors — remember to switch it back off." msgstr "" #: includes/modules/docs.php:148 msgid "The front door: an IP blocklist, the request firewall and its rules, rate limiting, bot control, the classic WordPress hardening switches, browser security headers and a security.txt file." msgstr "" #: includes/modules/docs.php:150 msgid "Blocks individual IPs and CIDR ranges before WordPress does any real work." msgstr "" #: includes/modules/docs.php:151 msgid "Inspects requests for SQL injection, XSS, path traversal and remote code execution, and can also inspect POST bodies." msgstr "" #: includes/modules/docs.php:152 msgid "Rate limits front-end requests per IP and throttles 404 floods from vulnerability scanners." msgstr "" #: includes/modules/docs.php:153 msgid "Hardening: disable XML-RPC, disable the theme/plugin file editor, hide the WordPress version." msgstr "" #: includes/modules/docs.php:154 msgid "Username enumeration: block ?author=N scans, hide the REST users endpoint and return one generic login error." msgstr "" #: includes/modules/docs.php:155 msgid "Sends security headers — X-Frame-Options, nosniff, Referrer-Policy, Permissions-Policy, HSTS and CSP — and collects CSP violation reports." msgstr "" #: includes/modules/docs.php:156 msgid "Bot control: block known-bad scanners and empty user agents, block AI crawlers, and verify self-declared search engines by reverse DNS so fake Googlebots are turned away." msgstr "" #: includes/modules/docs.php:157 msgid "Publishes /.well-known/security.txt and audits file permissions for world-writable paths." msgstr "" #: includes/modules/docs.php:158 msgid "With Pro, the hardening pack adds an admin IP allowlist, sensitive-file blocking, no PHP execution in uploads and forced HTTPS." msgstr "" #: includes/modules/docs.php:161 msgid "Turn the firewall on, then enable the hardening switches one at a time and check the site still works after each." msgstr "" #: includes/modules/docs.php:162 msgid "Turn the WAF on and leave the four rule families enabled; add POST body inspection only if you can watch for false positives on your own forms." msgstr "" #: includes/modules/docs.php:163 msgid "Only enable the admin IP allowlist if your address is static, and add it before saving." msgstr "" #: includes/modules/docs.php:164 msgid "If the site sits behind Cloudflare or another proxy, enable the matching option under Real visitor IP detection — otherwise every visitor looks like the proxy and blocks or rate limits hit everyone at once." msgstr "" #: includes/modules/docs.php:165 msgid "Enable security headers, leave CSP in report-only mode, then read Recent CSP violations for a few days before enforcing it." msgstr "" #: includes/modules/docs.php:166 msgid "Fill in a contact address under security.txt so researchers know where to report problems." msgstr "" #: includes/modules/docs.php:169 msgid "Disabling XML-RPC breaks the classic WordPress mobile app, Jetpack-style remote publishing and some pingback workflows." msgstr "" #: includes/modules/docs.php:170 msgid "HSTS tells browsers to refuse plain HTTP for the max-age you set — only enable it once HTTPS works on every subdomain you include, and treat preload as permanent." msgstr "" #: includes/modules/docs.php:171 msgid "A CSP that is enforced too early will silently break embeds, analytics and page builders. Report-only first." msgstr "" #: includes/modules/docs.php:172 msgid "Never trust proxy headers unless the site really is behind that proxy — spoofed headers would let an attacker rotate their apparent IP at will." msgstr "" #: includes/modules/docs.php:173 msgid "A dynamic home IP plus an admin IP allowlist means locking yourself out the next time your router reconnects." msgstr "" #: includes/modules/docs.php:174 msgid "Comment controls live on the Anti-Spam page, and application passwords on API & Access." msgstr "" #: includes/modules/docs.php:179 msgid "Every comment and registration control in one place: close comments entirely, or stop spam with invisible bot checks, an optional CAPTCHA and a heuristic score for anything that gets through." msgstr "" #: includes/modules/docs.php:181 msgid "Closes comments and pingbacks site-wide if the site does not use them." msgstr "" #: includes/modules/docs.php:182 msgid "Adds a hidden honeypot field and a minimum time-to-submit, both invisible to real visitors." msgstr "" #: includes/modules/docs.php:183 msgid "Optionally adds the CAPTCHA configured on the CAPTCHA page to the comment form as well." msgstr "" #: includes/modules/docs.php:184 msgid "Scores comments on link count and keyword matches, holding or rejecting the worst." msgstr "" #: includes/modules/docs.php:187 msgid "If the site does not take comments, disable them entirely — nothing else on this page then matters." msgstr "" #: includes/modules/docs.php:188 msgid "Otherwise turn on silent bot protection — no keys or accounts needed." msgstr "" #: includes/modules/docs.php:189 msgid "Leave the minimum submit time at a few seconds; raise it only if spam still gets through." msgstr "" #: includes/modules/docs.php:190 msgid "Enable heuristic filtering, set the maximum number of links you consider normal, and add keywords you keep seeing in spam." msgstr "" #: includes/modules/docs.php:193 msgid "Aggressive keyword lists cause false positives — check the held queue for a while after adding new terms." msgstr "" #: includes/modules/docs.php:194 msgid "Heavily cached sites can serve a stale form timestamp; if legitimate comments are refused, lower the minimum submit time." msgstr "" #: includes/modules/docs.php:195 msgid "The silent checks stop nearly all automated spam on their own. Add the comment CAPTCHA only if they are not enough — it costs every real visitor a puzzle." msgstr "" #: includes/modules/docs.php:200 msgid "Active defence: a request firewall that inspects traffic for attack patterns, rate limits and 404 throttling, escalating auto-bans, and live traffic visibility." msgstr "" #: includes/modules/docs.php:202 msgid "Inspects requests for SQL injection, XSS, local file inclusion and remote code execution patterns, optionally including the request body." msgstr "" #: includes/modules/docs.php:203 msgid "Rate limits requests and throttles 404 floods — the usual signature of a vulnerability scanner." msgstr "" #: includes/modules/docs.php:204 msgid "Blocks known-bad bots, empty user agents and your own custom patterns." msgstr "" #: includes/modules/docs.php:205 msgid "Escalates repeat offenders from strikes to a temporary ban and then a permanent one, all in a ban ledger you can edit." msgstr "" #: includes/modules/docs.php:206 msgid "Detects request anomalies and credential-stuffing bursts, and shows requests as they arrive in Live traffic." msgstr "" #: includes/modules/docs.php:209 msgid "Enable the firewall and leave all four attack classes on unless a legitimate integration trips one." msgstr "" #: includes/modules/docs.php:210 msgid "Enable the early-load loader so banned requests are rejected before other plugins run." msgstr "" #: includes/modules/docs.php:211 msgid "Set the auto-ban threshold, window and duration to match your traffic — start lenient and tighten later." msgstr "" #: includes/modules/docs.php:212 msgid "Turn on Live traffic while tuning, then turn it off again; it records every request and adds write load." msgstr "" #: includes/modules/docs.php:215 msgid "Body inspection reads POST payloads, which costs a little performance on write-heavy sites." msgstr "" #: includes/modules/docs.php:216 msgid "Rate limits apply per IP — verify the proxy settings on the Firewall page first, or all traffic will share one bucket." msgstr "" #: includes/modules/docs.php:217 msgid "The early loader fails open: if it cannot run, requests are allowed rather than the site going down." msgstr "" #: includes/modules/docs.php:218 msgid "The early loader doubles as a watchdog: it is removed on a normal deactivation, so finding it still installed while GemSecurity is inactive means the plugin was disabled outside WordPress — the database edited, or the folder renamed — and it emails a warning about exactly that." msgstr "" #: includes/modules/docs.php:219 msgid "Whitelist your own address before tightening thresholds so a testing burst cannot lock you out." msgstr "" #: includes/modules/docs.php:224 msgid "An allowlist for code: only plugins verified against WordPress.org or approved by you can run or be installed." msgstr "" #: includes/modules/docs.php:226 msgid "Checks every installed plugin against the official WordPress.org checksums for its version — a lookalike with a familiar folder name but edited or extra PHP files fails." msgstr "" #: includes/modules/docs.php:227 msgid "Shows which plugins and themes are on WordPress.org and which come from somewhere else." msgstr "" #: includes/modules/docs.php:228 msgid "With enforcement on, an untrusted plugin switched on through the database is stopped before it loads, deactivated, logged and reported by a DANGER email." msgstr "" #: includes/modules/docs.php:229 msgid "Unknown or edited must-use plugins are moved to quarantine before WordPress runs them." msgstr "" #: includes/modules/docs.php:230 msgid "Installing a plugin or theme that is not from WordPress.org is refused until you pre-approve its folder slug." msgstr "" #: includes/modules/docs.php:233 msgid "Open Plugin Guard and press Re-check to verify everything." msgstr "" #: includes/modules/docs.php:234 msgid "Turn on enforcement, tick the premium/custom plugins and must-use plugins you recognise, and confirm. Untick anything you do not recognise." msgstr "" #: includes/modules/docs.php:235 msgid "Before uploading a new premium plugin, add its folder slug under Pre-approve." msgstr "" #: includes/modules/docs.php:238 msgid "Plugins are trusted by folder slug, so a premium plugin keeps its trust across updates. Must-use plugins are trusted by content hash, so any edit removes their trust." msgstr "" #: includes/modules/docs.php:239 msgid "Themes are matched by name only — WordPress.org publishes no theme checksums." msgstr "" #: includes/modules/docs.php:240 msgid "Emergency off switch: add define( 'GEMSECURITY_PLUGIN_GUARD_OFF', true ); to wp-config.php." msgstr "" #: includes/modules/docs.php:241 msgid "Plugins activated from WP-CLI are still checked on the next page load." msgstr "" #: includes/modules/docs.php:246 msgid "Blocks exploitation of known plugin and theme vulnerabilities at the request level, so you are covered in the gap between a disclosure and the vendor’s fix." msgstr "" #: includes/modules/docs.php:248 msgid "Matches mitigation rules against the plugins and versions actually installed here." msgstr "" #: includes/modules/docs.php:249 msgid "Applies only the relevant rules, so an unrelated vulnerability costs nothing." msgstr "" #: includes/modules/docs.php:250 msgid "Lists every mitigation that is switched on and blocking attacks right now." msgstr "" #: includes/modules/docs.php:253 msgid "Turn virtual patching on; matching rules apply immediately, with no configuration per vulnerability." msgstr "" #: includes/modules/docs.php:254 msgid "Review Active mitigations after each plugin update — a mitigation disappearing usually means you updated past the vulnerable version." msgstr "" #: includes/modules/docs.php:257 msgid "A virtual patch buys time; it is not a substitute for updating the vulnerable plugin." msgstr "" #: includes/modules/docs.php:258 msgid "The list is what is protecting you, not what is wrong. Two generic rules — SQL injection and path traversal — apply to every request on every site and are always present; a severity of \"critical\" describes the attack they block, not a problem found here." msgstr "" #: includes/modules/docs.php:259 msgid "Developers can add site-specific rules through the gemsecurity/vpatch_rules filter." msgstr "" #: includes/modules/docs.php:268 msgid "Everything around the login form: brute-force lockouts, password rules, session limits, a renamed login URL and admin login alerts." msgstr "" #: includes/modules/docs.php:270 msgid "Locks out an IP after a number of failed attempts, for a duration you set." msgstr "" #: includes/modules/docs.php:271 msgid "Emails you when an administrator signs in, and ends administrator sessions after a set number of hours." msgstr "" #: includes/modules/docs.php:272 msgid "Enforces a password policy: minimum length, complexity, a breached-password check and optional expiry." msgstr "" #: includes/modules/docs.php:273 msgid "Moves wp-login.php to a URL of your choosing and 404s the old one, and logs idle users out." msgstr "" #: includes/modules/docs.php:274 msgid "Pro: remembers trusted devices and offers magic-link recovery." msgstr "" #: includes/modules/docs.php:277 msgid "Start with brute-force protection — a limit of 5 attempts and a 15–30 minute lockout suits most sites." msgstr "" #: includes/modules/docs.php:278 msgid "If you enable a custom login URL, save the new address somewhere safe before logging out." msgstr "" #: includes/modules/docs.php:279 msgid "Set the password policy before onboarding new users; existing passwords are only checked at the next change." msgstr "" #: includes/modules/docs.php:280 msgid "Add a bot challenge on the CAPTCHA page as well — lockouts stop repeat guesses, a CAPTCHA stops the automation making them." msgstr "" #: includes/modules/docs.php:283 msgid "A custom login URL is obscurity, not authentication — keep brute-force protection and two-factor on as well." msgstr "" #: includes/modules/docs.php:284 msgid "Short idle timeouts on a site with long editing sessions will cost people their unsaved work." msgstr "" #: includes/modules/docs.php:285 msgid "Lockouts are per IP, so several users behind one office connection share a bucket." msgstr "" #: includes/modules/docs.php:290 msgid "A bot challenge in front of the forms strangers can submit: login, registration, lost password and comments. Supports Google reCAPTCHA v2 and v3, hCaptcha and Cloudflare Turnstile." msgstr "" #: includes/modules/docs.php:292 msgid "Renders the provider widget on each form you select and verifies the token server-side before the submission is accepted." msgstr "" #: includes/modules/docs.php:293 msgid "Scores rather than challenges when reCAPTCHA v3 is selected, rejecting anything below the threshold you set." msgstr "" #: includes/modules/docs.php:294 msgid "Records every failed challenge in the activity log." msgstr "" #: includes/modules/docs.php:297 msgid "Pick a provider, then follow the steps shown for it to create a site key and secret key." msgstr "" #: includes/modules/docs.php:298 msgid "Paste both keys in and use Test CAPTCHA keys — it renders the real widget and verifies a real token, which is the only way to prove the pair before it reaches the login form." msgstr "" #: includes/modules/docs.php:299 msgid "Choose which forms the challenge guards. Login and registration are the ones bots actually hammer." msgstr "" #: includes/modules/docs.php:300 msgid "For the comment form, turn the CAPTCHA on under Anti-Spam, where the rest of the comment controls live." msgstr "" #: includes/modules/docs.php:303 msgid "The key pairs are not interchangeable between providers, or between reCAPTCHA v2 and v3 — switching provider means new keys." msgstr "" #: includes/modules/docs.php:304 msgid "reCAPTCHA v3 scores rather than challenges: lower the threshold if real users get rejected." msgstr "" #: includes/modules/docs.php:305 msgid "If the provider rejects the secret key outright, verification is skipped and a critical entry is written to the log rather than locking every user — administrators included — out of a form nobody can pass." msgstr "" #: includes/modules/docs.php:306 msgid "A CAPTCHA costs every real visitor a puzzle. On the comment form, the silent checks under Anti-Spam usually suffice on their own." msgstr "" #: includes/modules/docs.php:311 msgid "A second factor at login: app-based one-time codes with an email fallback, one-time backup codes, and enforcement per role." msgstr "" #: includes/modules/docs.php:313 msgid "Supports authenticator apps (TOTP) and email one-time codes." msgstr "" #: includes/modules/docs.php:314 msgid "Issues single-use backup codes for when the phone is not to hand." msgstr "" #: includes/modules/docs.php:315 msgid "Requires two-factor for the roles you select, falling back to email codes so nobody is locked out." msgstr "" #: includes/modules/docs.php:318 msgid "Enable the two-factor system, then set up your own account first under My two-factor." msgstr "" #: includes/modules/docs.php:319 msgid "Scan the QR code with an authenticator app and confirm one generated code to finish enrolment." msgstr "" #: includes/modules/docs.php:320 msgid "Download the backup codes and store them outside the site." msgstr "" #: includes/modules/docs.php:321 msgid "Only once your own login works, require two-factor for administrators and any other roles." msgstr "" #: includes/modules/docs.php:324 msgid "TOTP depends on a correct server clock; a badly drifted clock rejects every valid code." msgstr "" #: includes/modules/docs.php:325 msgid "Emailed codes last 10 minutes and allow five guesses; after that the code is discarded and a new one must be requested. The message says which of those happened rather than always reporting an invalid code." msgstr "" #: includes/modules/docs.php:326 msgid "Email fallback is only as secure as the mailbox — use the app method for administrators." msgstr "" #: includes/modules/docs.php:331 msgid "Lets people sign in with Google, Facebook, GitHub or X instead of a password, with optional account creation." msgstr "" #: includes/modules/docs.php:333 msgid "Adds provider buttons to the login form using OAuth 2.0." msgstr "" #: includes/modules/docs.php:334 msgid "Links a social account to an existing user by email address, or creates one with a default role." msgstr "" #: includes/modules/docs.php:335 msgid "Fires the normal WordPress login hooks, so two-factor and login alerts still apply." msgstr "" #: includes/modules/docs.php:338 msgid "Create an OAuth app with the provider and copy its client ID and secret." msgstr "" #: includes/modules/docs.php:339 msgid "Paste the redirect URI shown on this page into the provider’s allowed-callback list exactly as displayed." msgstr "" #: includes/modules/docs.php:340 msgid "Enable the provider, then decide whether new visitors may register and which role they receive." msgstr "" #: includes/modules/docs.php:341 msgid "Test in a private window before announcing it." msgstr "" #: includes/modules/docs.php:344 msgid "Linking by email trusts the provider’s email — only enable it for providers that verify addresses." msgstr "" #: includes/modules/docs.php:345 msgid "If sign-in fails, the message now names the cause: \"the provider refused\" with its own error (redirect_uri_mismatch means the URI above is not registered exactly, invalid_client means the secret is wrong), while \"expired or already used\" means the attempt took too long or the browser dropped the cookie. Every failure is also written to the activity log." msgstr "" #: includes/modules/docs.php:346 msgid "Never grant a role above Subscriber by default to self-registered accounts." msgstr "" #: includes/modules/docs.php:351 msgid "Lets people sign in without a password by opening a one-time link sent to their email address." msgstr "" #: includes/modules/docs.php:353 msgid "Adds an \"Email me a sign-in link\" option to the login form." msgstr "" #: includes/modules/docs.php:354 msgid "Emails a single-use link that expires after the time you set; only a hash of it is stored." msgstr "" #: includes/modules/docs.php:355 msgid "Asks for confirmation before signing in, so email scanners that open links cannot use them up." msgstr "" #: includes/modules/docs.php:356 msgid "Always answers the same way, so it cannot be used to find out which accounts exist, and limits requests per account and per address." msgstr "" #: includes/modules/docs.php:359 msgid "Turn magic login on and choose how long a link stays valid." msgstr "" #: includes/modules/docs.php:360 msgid "Optionally limit it to certain roles. Administrator-level accounts are excluded unless you allow them." msgstr "" #: includes/modules/docs.php:361 msgid "Leave \"Require two-factor\" on so users with two-factor still get the second prompt." msgstr "" #: includes/modules/docs.php:362 msgid "Check that your site sends email reliably before relying on it." msgstr "" #: includes/modules/docs.php:365 msgid "Anyone who can read a user’s mailbox can sign in as them — keep administrators off unless their email is protected by two-factor." msgstr "" #: includes/modules/docs.php:366 msgid "The two-factor requirement only applies while the Two-Factor system is switched on." msgstr "" #: includes/modules/docs.php:371 msgid "Gives an existing user a role for a limited time and takes it back by itself, so nobody keeps access they no longer need." msgstr "" #: includes/modules/docs.php:373 msgid "Changes the role of a user you pick until the time you choose; their previous roles are stored and put back when it ends." msgstr "" #: includes/modules/docs.php:374 msgid "Ends access at the expiry time on every request, not just on a schedule, and ends the user’s sessions when access expires or is revoked." msgstr "" #: includes/modules/docs.php:375 msgid "Never creates accounts and never signs anyone in: the user already exists and signs in the normal way, with every login protection you have turned on." msgstr "" #: includes/modules/docs.php:376 msgid "Records grants, extensions, expiry and revocation in each user’s history and in the Logs." msgstr "" #: includes/modules/docs.php:379 msgid "Add the person under Users → Add New first, with a role that has no special access." msgstr "" #: includes/modules/docs.php:380 msgid "Open Temporary Access, choose Grant access, then search for the user and pick a role and duration." msgstr "" #: includes/modules/docs.php:381 msgid "Pick the least-privileged role that gets the job done; roles that can change the site need an explicit confirmation." msgstr "" #: includes/modules/docs.php:382 msgid "Choose which events email the security notification address." msgstr "" #: includes/modules/docs.php:385 msgid "Users who already have full administrator access cannot be given temporary access." msgstr "" #: includes/modules/docs.php:386 msgid "While access is active the user cannot create, promote or delete users or switch GemSecurity off." msgstr "" #: includes/modules/docs.php:387 msgid "Ended grants are kept for the audit trail." msgstr "" #: includes/modules/docs.php:392 msgid "Country-level access control: allow logins only from countries you expect, optionally block the whole site, and pin individual users to their own countries." msgstr "" #: includes/modules/docs.php:394 msgid "Resolves visitor country from CDN headers, falling back to a lookup API with a 24-hour cache." msgstr "" #: includes/modules/docs.php:395 msgid "Applies your country list as a login gate, a whole-site block, or both." msgstr "" #: includes/modules/docs.php:396 msgid "Locks chosen users to specific countries and can email-verify a login from a new one." msgstr "" #: includes/modules/docs.php:399 msgid "Add the countries your team and customers actually log in from — include your own, and any you travel to." msgstr "" #: includes/modules/docs.php:400 msgid "Start with the login gate only. Blocking the whole site also blocks customers and search engines." msgstr "" #: includes/modules/docs.php:401 msgid "Decide what happens to unknown locations; blocking them is safe for a login gate, risky site-wide." msgstr "" #: includes/modules/docs.php:404 msgid "Lookups fail open: if the country cannot be resolved, the visitor is allowed rather than locked out." msgstr "" #: includes/modules/docs.php:405 msgid "VPNs and mobile networks routinely resolve to another country — expect occasional surprises." msgstr "" #: includes/modules/docs.php:406 msgid "The GEMSEC_GEO_DISABLE constant is the emergency exit if you lock yourself out." msgstr "" #: includes/modules/docs.php:411 msgid "Watches the administrator role itself: only approved accounts stay administrators, and hidden administrators are surfaced." msgstr "" #: includes/modules/docs.php:413 msgid "Keeps an approved-administrator list and demotes or deletes any account that appears outside it." msgstr "" #: includes/modules/docs.php:414 msgid "Refuses the sign-in of an administrator who is not on the list, and ends an existing session belonging to one — so an account added straight to the database, or created while this module was off, still cannot get in." msgstr "" #: includes/modules/docs.php:415 msgid "Sweeps the administrators that already exist — hourly and whenever you change the whitelist — so an unapproved account is removed even if it never signs in." msgstr "" #: includes/modules/docs.php:416 msgid "Detects administrators hidden from the users list — a classic backdoor left behind after a breach." msgstr "" #: includes/modules/docs.php:417 msgid "Emails you when either fires." msgstr "" #: includes/modules/docs.php:420 msgid "Review the approved list and confirm every account on it is one you recognise." msgstr "" #: includes/modules/docs.php:421 msgid "Choose what happens to a rogue administrator: demote is the safe default, delete is irreversible." msgstr "" #: includes/modules/docs.php:422 msgid "Use \"Check for unapproved admins\" before relying on it: the preview lists exactly who would be removed, which is worth seeing while the action is set to delete." msgstr "" #: includes/modules/docs.php:423 msgid "Enable both notifications so you hear about it even if you are not logged in." msgstr "" #: includes/modules/docs.php:426 msgid "Add legitimate new administrators to the list before creating them, or they will be demoted straight away." msgstr "" #: includes/modules/docs.php:427 msgid "Some membership and staffing plugins create elevated accounts on purpose — check before switching to delete." msgstr "" #: includes/modules/docs.php:428 msgid "Login enforcement needs a non-empty list: while the list is empty every administrator would count as unapproved, so the check stays off rather than locking you out." msgstr "" #: includes/modules/docs.php:429 msgid "User ID 1, the site-owner address and multisite super admins are never blocked, whatever the list says." msgstr "" #: includes/modules/docs.php:434 msgid "Closes the paths that bypass the login form: REST API rate limiting and application-password governance." msgstr "" #: includes/modules/docs.php:436 msgid "Rate limits REST requests per IP within a window you choose. Front-end request rate limiting is on the Firewall page." msgstr "" #: includes/modules/docs.php:437 msgid "Lists every existing application password, can disable them entirely, alerts when a new one is created, and flags ones older than your maximum age." msgstr "" #: includes/modules/docs.php:440 msgid "Review the existing application passwords and revoke any you do not recognise." msgstr "" #: includes/modules/docs.php:441 msgid "If nothing here uses application passwords, disable them outright." msgstr "" #: includes/modules/docs.php:442 msgid "Turn on REST rate limiting, then confirm your site builder, mobile app or headless front end still works." msgstr "" #: includes/modules/docs.php:445 msgid "Application passwords are how most external integrations authenticate — check before disabling them." msgstr "" #: includes/modules/docs.php:446 msgid "REST limits apply to logged-in editors too, so keep the ceiling above what your own admin work generates." msgstr "" #: includes/modules/docs.php:455 msgid "Finds what should not be there: modified core files, foreign or suspicious files, changed files, risky outbound links, known vulnerabilities and auto-executed code — plus, with Pro, the malware suite and auto-update enforcement." msgstr "" #: includes/modules/docs.php:457 msgid "Verifies core files against the official WordPress.org checksums and lists unexpected or modified ones." msgstr "" #: includes/modules/docs.php:458 msgid "Keeps one file-change baseline over the active theme, must-use plugins and drop-ins, and flags anything added, edited or removed. Pro widens the same baseline to core, all plugins and all themes." msgstr "" #: includes/modules/docs.php:459 msgid "With Pro, auto-updates plugins and themes — either only the ones the vulnerability scan flagged, or everything." msgstr "" #: includes/modules/docs.php:460 msgid "Scans content for outbound links to known-bad destinations." msgstr "" #: includes/modules/docs.php:461 msgid "Checks installed plugins and themes against known vulnerabilities and against what WordPress.org actually ships." msgstr "" #: includes/modules/docs.php:462 msgid "Inspects mu-plugins and drop-ins — code that runs on every request without appearing on the Plugins screen." msgstr "" #: includes/modules/docs.php:463 msgid "Pro: full malware scanning with quarantine and a recovery toolkit." msgstr "" #: includes/modules/docs.php:464 msgid "The malware scan covers the whole install — the web root, wp-includes, wp-admin and wp-content — and reads PHP, JavaScript and .htaccess, not PHP alone." msgstr "" #: includes/modules/docs.php:467 msgid "Run a full scan now to establish a clean baseline." msgstr "" #: includes/modules/docs.php:468 msgid "Enable automatic scanning so it repeats on a schedule instead of when you remember." msgstr "" #: includes/modules/docs.php:469 msgid "Turn on the file-change watcher and the vulnerability check." msgstr "" #: includes/modules/docs.php:470 msgid "Work through the findings, then rescan so the list reflects the fixed state." msgstr "" #: includes/modules/docs.php:473 msgid "Scans read every file and are I/O heavy — schedule them for a quiet hour on large sites." msgstr "" #: includes/modules/docs.php:474 msgid "Premium plugins are not on WordPress.org, so integrity checks cannot confirm them; that is expected, not a finding." msgstr "" #: includes/modules/docs.php:475 msgid "Caching and backup plugins legitimately write files constantly; expect noise from them in the change watcher." msgstr "" #: includes/modules/docs.php:476 msgid "Take a backup before deleting or quarantining anything a scan flags." msgstr "" #: includes/modules/docs.php:477 msgid "An index.php holding only \"// Silence is golden.\" is skipped automatically — it has no executable code, and reporting it would only teach you to ignore the list. Anything else you have checked yourself can be marked safe from the findings table." msgstr "" #: includes/modules/docs.php:478 msgid "A safe mark covers the exact contents you reviewed. If that file is later modified it is reported again, so marking something can never become a permanent blind spot." msgstr "" #: includes/modules/docs.php:483 msgid "Watches the scripts on your checkout pages so a skimmer injected into payment forms is caught, as PCI DSS 4.0 requires." msgstr "" #: includes/modules/docs.php:485 msgid "Builds an inventory of every script loaded on the pages you nominate." msgstr "" #: includes/modules/docs.php:486 msgid "Compares each page load against that authorised baseline and reports anything new." msgstr "" #: includes/modules/docs.php:487 msgid "Flags unauthorised scripts so you can review them before customers are affected." msgstr "" #: includes/modules/docs.php:490 msgid "Enable the monitor and select your checkout and payment pages." msgstr "" #: includes/modules/docs.php:491 msgid "Visit those pages so the inventory populates, including any scripts that only load at checkout." msgstr "" #: includes/modules/docs.php:492 msgid "Review the inventory and authorise each script you recognise; anything left over is worth investigating." msgstr "" #: includes/modules/docs.php:493 msgid "Re-check after adding an analytics, chat or A/B testing tool — they add scripts by design." msgstr "" #: includes/modules/docs.php:496 msgid "Tag managers load scripts dynamically, so expect entries you did not add by hand." msgstr "" #: includes/modules/docs.php:497 msgid "This detects and reports; it does not block. Treat an unexpected script as an incident." msgstr "" #: includes/modules/docs.php:502 msgid "The page for the worst day: a forensic timeline of what happened, file quarantine, and the recovery actions that stop an attack in progress." msgstr "" #: includes/modules/docs.php:504 msgid "Builds a timeline from the audit log so you can see the sequence of an intrusion." msgstr "" #: includes/modules/docs.php:505 msgid "Quarantines suspicious files out of the web root instead of deleting them, so they can be restored or examined." msgstr "" #: includes/modules/docs.php:506 msgid "Logs every user out at once, which invalidates stolen session cookies." msgstr "" #: includes/modules/docs.php:507 msgid "Regenerates the wp-config.php keys and salts, so every auth cookie on the site stops working at once." msgstr "" #: includes/modules/docs.php:508 msgid "Rolls the site back to the most recent completed backup (needs the GemBackup plugin)." msgstr "" #: includes/modules/docs.php:509 msgid "Shows the whole site’s quarantine, including anything the malware scanner moved, so nothing is stranded in a list you cannot see." msgstr "" #: includes/modules/docs.php:512 msgid "Nothing to configure in advance — but do make sure logging and alerts are on, because the timeline is built from them." msgstr "" #: includes/modules/docs.php:513 msgid "During an incident: log everyone out, regenerate the keys and salts, quarantine what the scanner flagged, then read the timeline from the earliest suspicious event." msgstr "" #: includes/modules/docs.php:514 msgid "Reset passwords and revoke application passwords once you know how they got in." msgstr "" #: includes/modules/docs.php:517 msgid "Logging everyone out includes you; keep your credentials to hand." msgstr "" #: includes/modules/docs.php:518 msgid "Quarantined files stay on disk in a protected folder — keep them until the investigation is finished." msgstr "" #: includes/modules/docs.php:519 msgid "The timeline can only show what was recorded, which is why retention matters before an incident, not after." msgstr "" #: includes/modules/docs.php:529 msgid "Watches the things that break quietly: uptime, TLS certificate expiry, DNS changes and SPF/DMARC email authentication." msgstr "" #: includes/modules/docs.php:531 msgid "Checks the site is reachable and reports when it is not." msgstr "" #: includes/modules/docs.php:532 msgid "Warns before the TLS certificate expires rather than after." msgstr "" #: includes/modules/docs.php:533 msgid "Notices DNS record changes, which often precede or follow a domain hijack." msgstr "" #: includes/modules/docs.php:534 msgid "Verifies SPF and DMARC records so your mail keeps arriving and is harder to spoof." msgstr "" #: includes/modules/docs.php:537 msgid "Enable monitoring. Warnings go to the security email on the Notifications page." msgstr "" #: includes/modules/docs.php:538 msgid "Review the Status panel after the first daily run and fix anything already flagged." msgstr "" #: includes/modules/docs.php:541 msgid "Checks run on a daily schedule, so this is early warning rather than second-by-second uptime monitoring." msgstr "" #: includes/modules/docs.php:542 msgid "Set the security email to an address on a different domain, so a mail problem on this site does not swallow its own alert." msgstr "" #: includes/modules/docs.php:583 msgid "How to get a Google client ID and secret" msgstr "" #: includes/modules/docs.php:584 msgid "Google Cloud console → Credentials" msgstr "" #: includes/modules/docs.php:586 msgid "Open the Google Cloud console and select an existing project, or create one for this site." msgstr "" #: includes/modules/docs.php:587 msgid "Go to APIs & Services → OAuth consent screen, choose External, and fill in the app name, support email and developer contact." msgstr "" #: includes/modules/docs.php:588 msgid "Go to APIs & Services → Credentials → Create credentials → OAuth client ID, and choose Web application." msgstr "" #: includes/modules/docs.php:589 msgid "Under Authorised redirect URIs, add the redirect URI shown at the top of this page — exactly, including https and any trailing path." msgstr "" #: includes/modules/docs.php:590 msgid "Create the client, then copy the Client ID and Client secret into the fields here and save." msgstr "" #: includes/modules/docs.php:591 #: includes/modules/docs.php:606 #: includes/modules/docs.php:622 #: includes/modules/docs.php:637 msgid "Use Test credentials below to confirm the pair before saving — a wrong secret only shows up when a real person tries to sign in." msgstr "" #: includes/modules/docs.php:594 msgid "While the consent screen is in Testing, only the test users you list can sign in. Publish it before going live." msgstr "" #: includes/modules/docs.php:599 msgid "How to get a Facebook app ID and secret" msgstr "" #: includes/modules/docs.php:600 msgid "Meta for Developers → My Apps" msgstr "" #: includes/modules/docs.php:602 msgid "Open Meta for Developers → My Apps → Create App, and pick the Consumer (or Other → Consumer) type." msgstr "" #: includes/modules/docs.php:603 msgid "Add the Facebook Login product to the app and choose the Web platform, entering your site URL." msgstr "" #: includes/modules/docs.php:604 msgid "In Facebook Login → Settings, paste the redirect URI from the top of this page into Valid OAuth Redirect URIs." msgstr "" #: includes/modules/docs.php:605 msgid "Open App settings → Basic and copy the App ID into Client ID, and the App secret into Client secret." msgstr "" #: includes/modules/docs.php:609 msgid "Facebook only returns an email address if the user granted the email permission — accounts without one cannot be linked by email." msgstr "" #: includes/modules/docs.php:610 msgid "The app must be switched from Development to Live before anyone outside your app roles can sign in." msgstr "" #: includes/modules/docs.php:615 msgid "How to get a GitHub client ID and secret" msgstr "" #: includes/modules/docs.php:616 msgid "GitHub → Developer settings → OAuth Apps" msgstr "" #: includes/modules/docs.php:618 msgid "Open GitHub → Settings → Developer settings → OAuth Apps → New OAuth App." msgstr "" #: includes/modules/docs.php:619 msgid "Set Homepage URL to your site, and Authorization callback URL to the redirect URI shown at the top of this page." msgstr "" #: includes/modules/docs.php:620 msgid "Register the application, then copy the Client ID." msgstr "" #: includes/modules/docs.php:621 msgid "Choose Generate a new client secret and copy it immediately — GitHub shows it only once." msgstr "" #: includes/modules/docs.php:625 msgid "A GitHub account can hide its email address; those users are created with the account they signed in as rather than linked by email." msgstr "" #: includes/modules/docs.php:630 msgid "How to get X (Twitter) OAuth 2.0 credentials" msgstr "" #: includes/modules/docs.php:631 msgid "X Developer Portal" msgstr "" #: includes/modules/docs.php:633 msgid "Open the X Developer Portal and create a project and an app inside it." msgstr "" #: includes/modules/docs.php:634 msgid "In the app’s User authentication settings, enable OAuth 2.0 and set App type to Web App." msgstr "" #: includes/modules/docs.php:635 msgid "Set the Callback URI to the redirect URI shown at the top of this page, and fill in a website URL." msgstr "" #: includes/modules/docs.php:636 msgid "Save, then copy the OAuth 2.0 Client ID and Client Secret into the fields here." msgstr "" #: includes/modules/docs.php:640 msgid "Use the OAuth 2.0 client credentials, not the older API key and API secret — they are different values on the same screen." msgstr "" #: includes/modules/docs.php:641 msgid "X rarely returns an email address, so new accounts get a placeholder you can change later." msgstr "" #: includes/modules/docs.php:648 msgid "How to get reCAPTCHA v2 keys" msgstr "" #: includes/modules/docs.php:649 #: includes/modules/docs.php:664 msgid "Google reCAPTCHA admin console" msgstr "" #: includes/modules/docs.php:651 #: includes/modules/docs.php:666 msgid "Open the reCAPTCHA admin console and register a new site." msgstr "" #: includes/modules/docs.php:652 msgid "Choose reCAPTCHA v2 → \"I'm not a robot\" Checkbox." msgstr "" #: includes/modules/docs.php:653 msgid "Add your domain — without https:// and without a trailing slash. Add localhost too if you test locally." msgstr "" #: includes/modules/docs.php:654 msgid "Submit, then copy the Site key and Secret key into the fields here." msgstr "" #: includes/modules/docs.php:655 #: includes/modules/docs.php:670 #: includes/modules/docs.php:685 #: includes/modules/docs.php:698 msgid "Then use Test CAPTCHA keys below: it renders the real widget and verifies the token, which is the only way to prove both keys before they reach the login form." msgstr "" #: includes/modules/docs.php:658 msgid "The two keys are not interchangeable: the site key is public and rendered in the page, the secret key is never sent to the browser." msgstr "" #: includes/modules/docs.php:663 msgid "How to get reCAPTCHA v3 keys" msgstr "" #: includes/modules/docs.php:667 msgid "Choose reCAPTCHA v3 — v2 keys will not work here, and vice versa." msgstr "" #: includes/modules/docs.php:668 msgid "Add your domain, submit, and copy the Site key and Secret key into the fields here." msgstr "" #: includes/modules/docs.php:669 msgid "Leave the score threshold at the default, then watch the admin console’s score distribution before changing it." msgstr "" #: includes/modules/docs.php:673 msgid "v3 never shows a challenge: it scores each request from 0.0 (bot) to 1.0 (human). A threshold that is too high rejects real people silently." msgstr "" #: includes/modules/docs.php:678 msgid "How to get hCaptcha keys" msgstr "" #: includes/modules/docs.php:679 msgid "hCaptcha dashboard → Sites" msgstr "" #: includes/modules/docs.php:681 msgid "Create an hCaptcha account and open the dashboard." msgstr "" #: includes/modules/docs.php:682 msgid "Add a new site and enter your domain as the hostname." msgstr "" #: includes/modules/docs.php:683 msgid "Copy the Sitekey into Site key here." msgstr "" #: includes/modules/docs.php:684 msgid "Open Settings and copy your account Secret key into Secret key here — it is account-wide, not per site." msgstr "" #: includes/modules/docs.php:690 msgid "How to get Cloudflare Turnstile keys" msgstr "" #: includes/modules/docs.php:693 msgid "Cloudflare dashboard → Turnstile" msgstr "" #: includes/modules/docs.php:695 msgid "Open the Cloudflare dashboard → Turnstile → Add site." msgstr "" #: includes/modules/docs.php:696 msgid "Enter your domain and choose the Managed widget unless you have a reason not to." msgstr "" #: includes/modules/docs.php:697 msgid "Copy the Site Key and Secret Key into the fields here." msgstr "" #: includes/modules/docs.php:701 msgid "Your domain does not have to use Cloudflare’s DNS or proxy for Turnstile to work." msgstr "" #: includes/modules/docs.php:708 msgid "How to get a Slack incoming webhook URL" msgstr "" #: includes/modules/docs.php:709 msgid "Slack API → Your Apps" msgstr "" #: includes/modules/docs.php:711 msgid "Open Slack API → Your Apps → Create New App → From scratch, and pick the workspace to post into." msgstr "" #: includes/modules/docs.php:712 msgid "Open Incoming Webhooks and turn the feature on." msgstr "" #: includes/modules/docs.php:713 msgid "Choose Add New Webhook to Workspace and select the channel that should receive alerts." msgstr "" #: includes/modules/docs.php:714 msgid "Copy the generated URL (it starts with https://hooks.slack.com/services/) into the field here." msgstr "" #: includes/modules/docs.php:717 msgid "The webhook URL is a credential — anyone holding it can post to that channel. Do not commit it anywhere public." msgstr "" #: includes/modules/docs.php:722 msgid "How to get a Telegram bot token and chat ID" msgstr "" #: includes/modules/docs.php:723 msgid "Telegram → BotFather" msgstr "" #: includes/modules/docs.php:725 msgid "Message @BotFather on Telegram and send /newbot, then follow the prompts to name the bot." msgstr "" #: includes/modules/docs.php:726 msgid "Copy the token BotFather returns into Bot token here." msgstr "" #: includes/modules/docs.php:727 msgid "Send your new bot a message (or add it to the group that should receive alerts, and post there)." msgstr "" #: includes/modules/docs.php:728 msgid "Open https://api.telegram.org/bot/getUpdates in a browser and copy the chat id from the response into Chat ID." msgstr "" #: includes/modules/docs.php:731 msgid "A bot cannot start a conversation. If nobody has messaged it, getUpdates comes back empty and alerts will not deliver." msgstr "" #: includes/modules/docs.php:732 msgid "Group chat IDs are negative numbers — include the minus sign." msgstr "" #: includes/modules/docs.php:737 msgid "How the generic webhook works" msgstr "" #: includes/modules/docs.php:739 msgid "Point this at any URL that accepts an HTTP POST — an automation platform, a chat bridge, or your own endpoint." msgstr "" #: includes/modules/docs.php:740 msgid "GemSecurity posts a JSON body describing the event: type, severity, message, IP, user and timestamp." msgstr "" #: includes/modules/docs.php:741 msgid "Set the minimum severity above so routine events do not flood the receiver." msgstr "" #: includes/modules/docs.php:744 msgid "Delivery is fire-and-forget: a receiver that is down loses those alerts rather than queueing them." msgstr "" #: includes/modules/docs.php:749 msgid "How to forward logs to a SIEM" msgstr "" #: includes/modules/docs.php:751 msgid "Create an HTTP collector (HEC or equivalent) in your SIEM and copy its ingest URL here." msgstr "" #: includes/modules/docs.php:752 msgid "Alternatively enable syslog output to ship to a local collector instead of over HTTP." msgstr "" #: includes/modules/docs.php:753 msgid "Set the minimum severity to control the volume — everything at or above it is forwarded." msgstr "" #: includes/modules/docs.php:754 msgid "Trigger a test event (a failed login will do) and confirm it arrives before relying on it." msgstr "" #: includes/modules/docs.php:757 msgid "Forwarding is in addition to the local log, not instead of it; retention here still applies." msgstr "" #. translators: 1 reason tag, 2 file count #: includes/modules/file-watcher.php:186 #, php-format msgid "File baseline rebuilt (reason: %1$s, %2$d file(s) hashed)." msgstr "" #: includes/modules/file-watcher.php:759 #: includes/modules/file-watcher.php:837 msgid "Hidden off-screen block linking to external sites — the signature of SEO spam / link injection." msgstr "" #: includes/modules/file-watcher.php:774 msgid "Obfuscated code loader (e.g. eval on decoded/inflated data) — a common malware pattern." msgstr "" #: includes/modules/finder.php:51 #: assets/build/backend.1.2.2.js:31 msgid "Enter at least 2 characters to search." msgstr "" #: includes/modules/finder.php:55 msgid "That search is too long." msgstr "" #: includes/modules/finder.php:64 msgid "That regular expression is not valid." msgstr "" #: includes/modules/firewall.php:65 msgid "XML-RPC services are disabled on this site." msgstr "" #: includes/modules/firewall.php:66 #: assets/build/backend.1.2.2.js:44 msgid "Disabled" msgstr "" #: includes/modules/firewall.php:114 msgid "Your access to this site has been blocked." msgstr "" #: includes/modules/firewall.php:115 msgid "Access denied" msgstr "" #: includes/modules/firewall.php:215 msgid "The username or password you entered is incorrect." msgstr "" #: includes/modules/hidden-admin.php:88 msgid "No hidden administrator accounts remain — the concealment is gone." msgstr "" #. translators: 1: count, 2: comma-separated account list. #: includes/modules/hidden-admin.php:220 #, php-format msgid "%1$d hidden administrator account detected: %2$s. It exists in the database but is concealed from the Users screen — a strong indicator the site is compromised." msgid_plural "%1$d hidden administrator accounts detected: %2$s. They exist in the database but are concealed from the Users screen — a strong indicator the site is compromised." msgstr[0] "" msgstr[1] "" #: includes/modules/hidden-admin.php:256 msgid "Hidden administrator account detected" msgstr "" #. translators: %d: number of hidden accounts. #: includes/modules/hidden-admin.php:263 #, php-format msgid "%d administrator account is hidden from the WordPress Users screen. A hidden administrator almost always means the site has been compromised." msgid_plural "%d administrator accounts are hidden from the WordPress Users screen. A hidden administrator almost always means the site has been compromised." msgstr[0] "" msgstr[1] "" #: includes/modules/hidden-admin.php:274 msgid "What was found" msgstr "" #: includes/modules/hidden-admin.php:276 msgid "Hidden account(s)" msgstr "" #: includes/modules/hidden-admin.php:277 msgid "Admins in the database" msgstr "" #: includes/modules/hidden-admin.php:278 msgid "Admins visible in wp-admin" msgstr "" #: includes/modules/hidden-admin.php:283 msgid "Review and remove the account, then run a full malware scan and rotate every administrator password." msgstr "" #: includes/modules/hidden-admin.php:288 msgid "Open Admin Guard" msgstr "" #: includes/modules/link-scanner.php:161 msgid "On your link blocklist." msgstr "" #: includes/modules/link-scanner.php:164 msgid "Linked from a hidden / off-screen element — the signature of an SEO-spam link cloak." msgstr "" #. translators: %s: comma-separated spam categories. #: includes/modules/link-scanner.php:171 #, php-format msgid "Domain or link text matches a common spam category: %s." msgstr "" #: includes/modules/lockdown.php:39 msgid "This site is temporarily unavailable for scheduled maintenance. Please check back soon." msgstr "" #: includes/modules/lockdown.php:44 msgid "Temporarily unavailable" msgstr "" #: includes/modules/login-extras.php:37 msgid "Leave this field empty" msgstr "" #: includes/modules/login-extras.php:55 #: includes/modules/waf.php:68 #: includes/modules/waf.php:194 msgid "Access denied." msgstr "" #. translators: %d: lockout duration in minutes. #: includes/modules/login-security.php:72 #, php-format msgid "Access temporarily blocked. Too many failed login attempts. Please try again in %d minutes." msgstr "" #. translators: %s: username. #: includes/modules/login-security.php:199 #, php-format msgid "An administrator account, %s, just signed in." msgstr "" #: includes/modules/login-security.php:205 msgid "Sign-in details" msgstr "" #: includes/modules/login-security.php:210 #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:43 msgid "Browser" msgstr "" #: includes/modules/login-security.php:215 msgid "If this was not expected, secure the account immediately and review the activity log." msgstr "" #: includes/modules/login-security.php:230 msgid "Administrator signed in" msgstr "" #: includes/modules/magic-login.php:220 #: includes/modules/magic-login.php:322 msgid "This sign-in link is invalid, has expired, or was already used. Request a new one below." msgstr "" #: includes/modules/magic-login.php:244 msgid "The page expired. Please try again." msgstr "" #: includes/modules/magic-login.php:250 msgid "Too many requests. Please wait a few minutes and try again." msgstr "" #: includes/modules/magic-login.php:263 msgid "If that account can sign in this way, a sign-in link is on its way to the email address on file. It works once and expires soon." msgstr "" #. translators: %s: site name. #: includes/modules/magic-login.php:286 #, php-format msgid "Your sign-in link for %s" msgstr "" #. translators: %d: minutes the link is valid. #: includes/modules/magic-login.php:292 #, php-format msgid "Use the button below to sign in. The link works once and expires in %d minutes." msgstr "" #: includes/modules/magic-login.php:299 #: includes/modules/magic-login.php:415 msgid "Sign in" msgstr "" #: includes/modules/magic-login.php:303 msgid "If you did not ask for this link, ignore this email — nobody can sign in without it." msgstr "" #: includes/modules/magic-login.php:362 #: includes/modules/magic-login.php:378 #: includes/modules/magic-login.php:429 msgid "Email me a sign-in link" msgstr "" #: includes/modules/magic-login.php:370 #: assets/build/backend.1.2.2.js:44 msgid "Username or Email Address" msgstr "" #: includes/modules/magic-login.php:383 #: includes/modules/two-factor.php:855 msgid "← Back to login" msgstr "" #: includes/modules/magic-login.php:390 msgid "Confirm sign-in" msgstr "" #. translators: %s: user display name. #: includes/modules/magic-login.php:398 #, php-format msgid "Sign in as %s?" msgstr "" #: includes/modules/magic-login.php:412 msgid "Remember Me" msgstr "" #. translators: %d: minimum password length. #: includes/modules/password-policy.php:99 #, php-format msgid "Error: Password must be at least %d characters." msgstr "" #: includes/modules/password-policy.php:104 msgid "a lowercase letter" msgstr "" #: includes/modules/password-policy.php:105 msgid "an uppercase letter" msgstr "" #: includes/modules/password-policy.php:106 msgid "a number" msgstr "" #: includes/modules/password-policy.php:107 msgid "a symbol" msgstr "" #. translators: %s: comma-separated list of missing character classes (e.g. "a number, a symbol"). #: includes/modules/password-policy.php:110 #, php-format msgid "Error: Password must include %s." msgstr "" #: includes/modules/password-policy.php:115 msgid "Error: This password has appeared in a known data breach. Please choose a different one." msgstr "" #: includes/modules/password-policy.php:178 msgid "Your password has expired under the site security policy." msgstr "" #: includes/modules/password-policy.php:180 msgid "Change it now" msgstr "" #. translators: %s: lost-password URL. #: includes/modules/password-rotation.php:82 #, php-format msgid "Password reset required. Your password must be changed before you can sign in. Set a new password — a link was emailed to you." msgstr "" #: includes/modules/password-rotation.php:214 msgid "Your password has reached the age limit set by this site’s security policy." msgstr "" #: includes/modules/password-rotation.php:215 msgid "An administrator has required every affected account to choose a new password." msgstr "" #: includes/modules/password-rotation.php:220 msgid "Choose a new password to continue" msgstr "" #: includes/modules/password-rotation.php:225 msgid "Your current password no longer works and any signed-in sessions have been ended. Use the button below to set a new one." msgstr "" #: includes/modules/password-rotation.php:227 msgid "Set a new password" msgstr "" #: includes/modules/password-rotation.php:231 msgid "If the link has expired, use “Lost your password?” on the sign-in page — it works the same way." msgstr "" #: includes/modules/registry.php:341 #: includes/modules/registry.php:412 #: assets/build/backend.1.2.2.js:23 msgid "Dashboard" msgstr "" #: includes/modules/registry.php:342 #: includes/modules/registry.php:420 #: includes/security/security-score.php:140 #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:51 msgid "Firewall" msgstr "" #: includes/modules/registry.php:343 msgid "Login & Access" msgstr "" #: includes/modules/registry.php:344 #: assets/build/backend.1.2.2.js:23 msgid "Scanning" msgstr "" #: includes/modules/registry.php:345 #: includes/modules/registry.php:488 msgid "Logs" msgstr "" #: includes/modules/registry.php:346 #: includes/modules/registry.php:500 #: assets/build/backend.1.2.2.js:51 msgid "Settings" msgstr "" #: includes/modules/registry.php:413 msgid "Security overview and at-a-glance status." msgstr "" #: includes/modules/registry.php:416 msgid "Addons" msgstr "" #: includes/modules/registry.php:417 msgid "Turn security modules on or off. Activate only what this site needs." msgstr "" #: includes/modules/registry.php:421 msgid "Request firewall and WAF rules, rate limiting, bot control, hardening switches and security headers." msgstr "" #: includes/modules/registry.php:424 msgid "Anti-Spam" msgstr "" #: includes/modules/registry.php:425 msgid "Every comment and registration control in one place: silent bot checks, CAPTCHA on comments, heuristic filtering and the comment kill switch." msgstr "" #: includes/modules/registry.php:428 msgid "Threat Defense" msgstr "" #: includes/modules/registry.php:429 msgid "Live traffic, the ban ledger, escalating auto-bans, the early-load request firewall and behavioural detection." msgstr "" #: includes/modules/registry.php:432 msgid "Virtual Patch" msgstr "" #: includes/modules/registry.php:433 msgid "Mitigate known plugin/theme vulnerabilities in place — even before a fix ships." msgstr "" #: includes/modules/registry.php:436 msgid "Login Security" msgstr "" #: includes/modules/registry.php:437 msgid "Brute-force lockouts, session limits, password policy and custom login URL." msgstr "" #: includes/modules/registry.php:440 #: assets/build/backend.1.2.2.js:44 msgid "CAPTCHA" msgstr "" #: includes/modules/registry.php:441 msgid "A bot challenge — reCAPTCHA, hCaptcha or Turnstile — on the login, registration, lost-password and comment forms." msgstr "" #: includes/modules/registry.php:444 msgid "Two-Factor" msgstr "" #: includes/modules/registry.php:445 msgid "Time-based OTP / email two-factor, backup codes and per-role enforcement." msgstr "" #: includes/modules/registry.php:448 msgid "Social Login" msgstr "" #: includes/modules/registry.php:449 msgid "Let users sign in with Google, Facebook, GitHub or X." msgstr "" #: includes/modules/registry.php:452 msgid "Magic Login" msgstr "" #: includes/modules/registry.php:453 msgid "Passwordless sign-in with a one-time link sent by email." msgstr "" #: includes/modules/registry.php:456 msgid "Temporary Access" msgstr "" #: includes/modules/registry.php:457 msgid "Give an existing user a role for a limited time; it is taken back automatically." msgstr "" #: includes/modules/registry.php:460 #: assets/build/backend.1.2.2.js:51 msgid "Geolocation" msgstr "" #: includes/modules/registry.php:461 msgid "Country access control and per-user location lock." msgstr "" #: includes/modules/registry.php:465 msgid "Rogue-admin protection and hidden-administrator detection." msgstr "" #: includes/modules/registry.php:468 msgid "API & Access" msgstr "" #: includes/modules/registry.php:469 msgid "REST API rate limiting and application-password governance." msgstr "" #: includes/modules/registry.php:472 #: assets/build/backend.1.2.2.js:43 msgid "Plugin Guard" msgstr "" #: includes/modules/registry.php:473 msgid "See which plugins and themes are verified on WordPress.org, trust your premium ones, and stop anything else — including hidden must-use plugins — from running or being installed." msgstr "" #: includes/modules/registry.php:476 #: assets/build/backend.1.2.2.js:51 msgid "Scanner" msgstr "" #: includes/modules/registry.php:477 msgid "Integrity, file-change, link and vulnerability scanning, auto-update enforcement and the Pro malware suite." msgstr "" #: includes/modules/registry.php:480 msgid "Payment Integrity" msgstr "" #: includes/modules/registry.php:481 msgid "Monitor checkout-page scripts for Magecart-style tampering (PCI-DSS 4.0 §6.4.3 / §11.6.1)." msgstr "" #: includes/modules/registry.php:484 msgid "Incident Response" msgstr "" #: includes/modules/registry.php:485 msgid "Forensic timeline, file quarantine and one-click recovery for after a breach." msgstr "" #: includes/modules/registry.php:489 msgid "Activity audit log and what gets recorded in it." msgstr "" #: includes/modules/registry.php:492 #: assets/build/backend.1.2.2.js:51 msgid "Monitoring" msgstr "" #: includes/modules/registry.php:493 msgid "Uptime, TLS-certificate expiry, DNS-change and email-authentication (SPF/DMARC) monitoring." msgstr "" #: includes/modules/registry.php:496 msgid "Notifications" msgstr "" #: includes/modules/registry.php:497 msgid "Where alerts go, what raises one, and the reports sent on a schedule." msgstr "" #: includes/modules/registry.php:501 msgid "Plugin-wide preferences: compliance/SIEM, lockdown, log retention and import/export." msgstr "" #: includes/modules/registry.php:725 msgid "Unknown module." msgstr "" #: includes/modules/registry.php:730 msgid "Core modules cannot be turned off." msgstr "" #: includes/modules/registry.php:733 msgid "This module requires GemSecurity Pro." msgstr "" #: includes/modules/scanner.php:278 msgid "Executable file inside a WordPress core directory that is not part of the official release — a disguised implant hides here." msgstr "" #: includes/modules/scanner.php:296 msgid "Unexpected PHP file in the WordPress root — not part of the official release." msgstr "" #: includes/modules/scanner.php:335 msgid "Active plugin that does not appear on the Plugins screen — an auto-loaded file concealing itself (classic malware behaviour)." msgstr "" #: includes/modules/scanner.php:361 msgid "Loose PHP file in the plugins folder that is not a registered plugin — review it; disguised droppers live here." msgstr "" #: includes/modules/scanner.php:431 msgid "Code that filters administrators out of the Users list — the signature of a hidden-admin back-door." msgstr "" #: includes/modules/scanner.php:546 msgid "\"Silence is golden\" index.php with code added to it." msgstr "" #. translators: %s: name of the matched code pattern. #: includes/modules/scanner.php:551 #, php-format msgid "index.php contains %s." msgstr "" #: includes/modules/scanner.php:679 msgid "Executable PHP file inside the uploads directory." msgstr "" #. translators: %s: comma-separated list of suspicious code patterns detected. #: includes/modules/scanner.php:715 #, php-format msgid "Suspicious code patterns: %s" msgstr "" #. translators: %s: provider name. #: includes/modules/social-login.php:300 #, php-format msgid "%s social login was switched off" msgstr "" #. translators: 1: provider name, 2: the provider's error. #: includes/modules/social-login.php:307 #, php-format msgid "%1$s stopped accepting this site’s client ID / secret (%2$s), so its sign-in button has been removed from the login form. Passwords and other sign-in methods are not affected." msgstr "" #: includes/modules/social-login.php:315 msgid "Fix the credentials" msgstr "" #. translators: 1: site name, 2: provider name, 3: reason. #: includes/modules/social-login.php:324 #, php-format msgid "[%1$s] %2$s social login was switched off: the provider rejected its credentials (%3$s)." msgstr "" #. translators: %s: provider name. #: includes/modules/social-login.php:369 #, php-format msgid "%s social login was switched off." msgstr "" #: includes/modules/social-login.php:372 msgid "The provider no longer accepts the saved client ID / secret, so its button was removed from the login form." msgstr "" #: includes/modules/social-login.php:374 msgid "Update the credentials and verify again." msgstr "" #: includes/modules/social-login.php:427 #: includes/modules/social-login.php:615 msgid "This sign-in method is not available." msgstr "" #: includes/modules/social-login.php:565 msgid "Sign-in was cancelled." msgstr "" #. translators: 1: provider error code, 2: provider description. #: includes/modules/social-login.php:570 #, php-format msgid "The provider refused the sign-in: %1$s. %2$s" msgstr "" #: includes/modules/social-login.php:578 msgid "Sign-in could not be verified: the provider did not return a security token." msgstr "" #: includes/modules/social-login.php:600 msgid "Sign-in could not be verified — the attempt expired or was already used. Please try again, and make sure your browser accepts cookies for this site." msgstr "" #: includes/modules/social-login.php:605 msgid "Sign-in could not be completed: the provider did not return an authorization code." msgstr "" #. translators: %s: the provider's error message. #: includes/modules/social-login.php:643 #, php-format msgid "Could not complete sign-in with the provider: %s" msgstr "" #: includes/modules/social-login.php:646 msgid "Could not complete sign-in with the provider." msgstr "" #: includes/modules/social-login.php:655 msgid "Could not read your profile from the provider." msgstr "" #: includes/modules/social-login.php:847 msgid "No account is linked to this profile and registration is disabled." msgstr "" #: includes/modules/social-login.php:1077 msgid "or sign in with" msgstr "" #. translators: %s: social-login provider name (e.g. Google, Facebook). #: includes/modules/social-login.php:1088 #, php-format msgid "Continue with %s" msgstr "" #: includes/modules/social-login.php:1140 msgid "Sign-in error" msgstr "" #: includes/modules/supply-chain.php:64 msgid "Not found in the WordPress.org directory — it may have been removed or is premium/custom. If it was a .org plugin, a removal often signals a security takedown." msgstr "" #. translators: %s date #: includes/modules/supply-chain.php:69 #, php-format msgid "No update since %s — likely abandoned." msgstr "" #. translators: %s version #: includes/modules/supply-chain.php:72 #, php-format msgid "Update available (%s)." msgstr "" #: includes/modules/supply-chain.php:121 msgid "Auto-loaded must-use plugin" msgstr "" #: includes/modules/supply-chain.php:128 msgid "Content drop-in (runs very early)" msgstr "" #. translators: %s token #: includes/modules/supply-chain.php:147 #, php-format msgid "Contains %s" msgstr "" #: includes/modules/supply-chain.php:161 msgid "Suspicious cron hook name" msgstr "" #: includes/modules/temp-access.php:183 msgid "Access expired; the previous role was restored." msgstr "" #: includes/modules/temp-access.php:280 msgid "A user with temporary access cannot delete GemSecurity." msgstr "" #: includes/modules/temp-access.php:361 msgid "Choose how long access should last." msgstr "" #: includes/modules/temp-access.php:372 msgid "The expiry must be at least 5 minutes from now." msgstr "" #. translators: %d: days. #: includes/modules/temp-access.php:376 #, php-format msgid "Temporary access can last at most %d days." msgstr "" #: includes/modules/temp-access.php:390 msgid "Choose a role to grant." msgstr "" #: includes/modules/temp-access.php:393 msgid "This role can change the site. A user with temporary access cannot create users or switch GemSecurity off, but installing or editing plugins and themes runs code that can outlive the access. Confirm that you want to grant it." msgstr "" #: includes/modules/temp-access.php:406 msgid "That user does not exist." msgstr "" #: includes/modules/temp-access.php:409 msgid "You cannot change your own access." msgstr "" #: includes/modules/temp-access.php:412 msgid "Network administrators cannot be given temporary access." msgstr "" #: includes/modules/temp-access.php:415 msgid "This user already has full access. Temporary access is for users who do not." msgstr "" #: includes/modules/temp-access.php:418 msgid "You are not allowed to change this user’s role." msgstr "" #: includes/modules/temp-access.php:440 msgid "This user already has temporary access. Extend or revoke it instead." msgstr "" #: includes/modules/temp-access.php:460 msgid "Too many grants were made in the last hour. Try again later." msgstr "" #. translators: 1: email, 2: role, 3: expiry date. #: includes/modules/temp-access.php:482 #, php-format msgid "Temporary access granted to %1$s with role \"%2$s\", ending %3$s." msgstr "" #: includes/modules/temp-access.php:492 msgid "Temporary access granted" msgstr "" #. translators: 1: email, 2: role, 3: expiry date. #: includes/modules/temp-access.php:495 #, php-format msgid "%1$s was given temporary access with the \"%2$s\" role until %3$s." msgstr "" #: includes/modules/temp-access.php:519 msgid "Revoked access cannot be extended. Grant it again instead." msgstr "" #: includes/modules/temp-access.php:538 msgid "The role for this grant no longer exists." msgstr "" #. translators: %s: date. #: includes/modules/temp-access.php:551 #, php-format msgid "Access extended to %s." msgstr "" #: includes/modules/temp-access.php:564 msgid "This access was already revoked." msgstr "" #: includes/modules/temp-access.php:569 msgid "Access revoked; the previous role was restored and sessions ended." msgstr "" #: includes/modules/temp-access.php:574 msgid "Temporary access revoked" msgstr "" #. translators: %s: email. #: includes/modules/temp-access.php:576 #, php-format msgid "Temporary access for %s was revoked and its sessions were ended." msgstr "" #: includes/modules/temp-access.php:584 msgid "That user has no temporary access." msgstr "" #. translators: %s: login URL. #: includes/modules/two-factor.php:226 #, php-format msgid "This account uses two-factor authentication. Please sign in at %s. Apps and integrations should use an application password." msgstr "" #: includes/modules/two-factor.php:331 #: includes/modules/two-factor.php:824 msgid "Two-Factor Authentication" msgstr "" #: includes/modules/two-factor.php:333 msgid "That sign-in attempt expired before the code was entered. Please sign in again." msgstr "" #: includes/modules/two-factor.php:335 msgid "Back to sign in" msgstr "" #: includes/modules/two-factor.php:361 msgid "Too many codes have been sent. Use the last one, or wait 15 minutes and sign in again." msgstr "" #: includes/modules/two-factor.php:364 msgid "A new code has been sent to your email." msgstr "" #: includes/modules/two-factor.php:374 msgid "Invalid code. Please try again." msgstr "" #: includes/modules/two-factor.php:376 msgid "That code has expired. Use “Resend code” to get a new one." msgstr "" #: includes/modules/two-factor.php:378 msgid "Too many incorrect codes. Request a new one and try again." msgstr "" #: includes/modules/two-factor.php:380 msgid "Too many incorrect codes. Wait 15 minutes, then sign in again." msgstr "" #: includes/modules/two-factor.php:533 msgid "Incorrect verification code." msgstr "" #: includes/modules/two-factor.php:663 msgid "Your login verification code" msgstr "" #. translators: %s: 6-digit code. #: includes/modules/two-factor.php:670 #, php-format msgid "Your verification code is %s" msgstr "" #: includes/modules/two-factor.php:676 msgid "It expires in 10 minutes. If you did not try to sign in, change your password immediately." msgstr "" #: includes/modules/two-factor.php:834 msgid "Enter the 6-digit code we just emailed you." msgstr "" #: includes/modules/two-factor.php:835 msgid "Open your authenticator app and enter the current 6-digit code. You can also use a backup code." msgstr "" #: includes/modules/two-factor.php:840 msgid "Authentication code" msgstr "" #: includes/modules/two-factor.php:846 #: assets/build/backend.1.2.2.js:31 msgid "Verify" msgstr "" #: includes/modules/two-factor.php:850 msgid "Resend code" msgstr "" #: includes/modules/waf.php:47 msgid "Your access has been temporarily blocked." msgstr "" #: includes/modules/waf.php:124 msgid "Your request was blocked for security reasons." msgstr "" #: includes/modules/waf.php:207 msgid "Automated access is not permitted." msgstr "" #: includes/modules/waf.php:512 #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:43 msgid "Blocked" msgstr "" #: includes/rest/app-passwords.php:58 msgid "Application passwords are not available." msgstr "" #: includes/rest/app-passwords.php:74 msgid "A user and password id are required." msgstr "" #: includes/rest/credentials.php:80 msgid "Unknown credential test." msgstr "" #: includes/rest/credentials.php:124 msgid "Unknown CAPTCHA provider." msgstr "" #: includes/rest/credentials.php:127 #: assets/build/backend.1.2.2.js:26 msgid "Enter both the site key and the secret key first." msgstr "" #: includes/rest/credentials.php:142 #: includes/rest/credentials.php:638 msgid "Could not reach the provider." msgstr "" #: includes/rest/credentials.php:154 msgid "Verified — both keys work on this site." msgstr "" #: includes/rest/credentials.php:163 msgid "The secret key was rejected by the provider." msgstr "" #: includes/rest/credentials.php:171 #: assets/build/backend.1.2.2.js:26 msgid "Solve the challenge to finish the test." msgstr "" #: includes/rest/credentials.php:172 msgid "This provider cannot confirm a secret key on its own — the widget token is what proves the pair." msgstr "" #: includes/rest/credentials.php:177 msgid "The provider rejected this attempt." msgstr "" #: includes/rest/credentials.php:180 msgid "The token may have expired — solve the challenge again." msgstr "" #: includes/rest/credentials.php:199 msgid "Enter a webhook URL first." msgstr "" #: includes/rest/credentials.php:202 #: includes/rest/credentials.php:324 msgid "That does not look like a valid URL." msgstr "" #. translators: %s: site name. #: includes/rest/credentials.php:211 #: includes/rest/credentials.php:282 #, php-format msgid "GemSecurity test alert from %s — if you can read this, alerts are working." msgstr "" #: includes/rest/credentials.php:219 msgid "Could not reach Slack." msgstr "" #: includes/rest/credentials.php:226 msgid "Test message delivered — check the channel." msgstr "" #: includes/rest/credentials.php:230 msgid "Slack rejected the webhook." msgstr "" #. translators: 1: HTTP status, 2: response body. #: includes/rest/credentials.php:232 #, php-format msgid "HTTP %1$d: %2$s" msgstr "" #: includes/rest/credentials.php:249 msgid "Enter the bot token first." msgstr "" #: includes/rest/credentials.php:254 #: includes/rest/credentials.php:289 msgid "Could not reach Telegram." msgstr "" #: includes/rest/credentials.php:260 msgid "That bot token is not valid." msgstr "" #. translators: %s: bot username. #: includes/rest/credentials.php:271 #, php-format msgid "Bot token valid (@%s)." msgstr "" #: includes/rest/credentials.php:272 msgid "Add the chat ID and test again to confirm delivery." msgstr "" #. translators: %s: bot username. #: includes/rest/credentials.php:297 #, php-format msgid "Test message delivered by @%s." msgstr "" #. translators: %s: bot username. #: includes/rest/credentials.php:303 #, php-format msgid "Token is valid (@%s) but the message could not be delivered." msgstr "" #: includes/rest/credentials.php:306 msgid "Check the chat ID, and make sure someone has messaged the bot first." msgstr "" #: includes/rest/credentials.php:321 msgid "Enter a URL first." msgstr "" #: includes/rest/credentials.php:341 msgid "Could not reach that URL." msgstr "" #. translators: %d: HTTP status code. #: includes/rest/credentials.php:347 #, php-format msgid "Test event accepted (HTTP %d)." msgstr "" #: includes/rest/credentials.php:351 msgid "The receiver rejected the test event." msgstr "" #. translators: %d: HTTP status code. #: includes/rest/credentials.php:353 #, php-format msgid "HTTP %d" msgstr "" #: includes/rest/credentials.php:381 msgid "That is not a valid email address." msgstr "" #. translators: %s: site name. #: includes/rest/credentials.php:396 #, php-format msgid "[%s] GemSecurity test email" msgstr "" #: includes/rest/credentials.php:399 msgid "This is a GemSecurity test email. If you can read this, security alerts will reach you at this address." msgstr "" #. translators: %s: email address. #: includes/rest/credentials.php:408 #, php-format msgid "Test email sent to %s." msgstr "" #: includes/rest/credentials.php:409 msgid "If it does not arrive, check spam and your site’s mail setup — WordPress reported no error." msgstr "" #: includes/rest/credentials.php:414 msgid "WordPress could not send the email." msgstr "" #: includes/rest/credentials.php:417 msgid "No reason was reported — an SMTP plugin is usually the fix." msgstr "" #. translators: %s: two-letter country code. #: includes/rest/credentials.php:448 #, php-format msgid "Country lookup works (test address resolved to %s)." msgstr "" #: includes/rest/credentials.php:452 msgid "Country lookup failed from this server." msgstr "" #: includes/rest/credentials.php:453 msgid "Geolocation fails open, so nobody is blocked — but country rules will not apply until outbound HTTP works." msgstr "" #: includes/rest/credentials.php:461 msgid "Breached-password check is reachable." msgstr "" #: includes/rest/credentials.php:462 msgid "Could not reach the breached-password service." msgstr "" #: includes/rest/credentials.php:463 msgid "Passwords are never sent — only a 5-character hash prefix." msgstr "" #: includes/rest/credentials.php:475 msgid "Could not reach the vulnerability feed." msgstr "" #: includes/rest/credentials.php:485 msgid "Vulnerability feed is reachable." msgstr "" #: includes/rest/credentials.php:486 msgid "Scans query it per plugin and theme, and cache the answers." msgstr "" #: includes/rest/credentials.php:490 msgid "The vulnerability feed is not answering normally." msgstr "" #. translators: %d: HTTP status code. #: includes/rest/credentials.php:492 #, php-format msgid "It replied HTTP %d — scans still run, they just cannot report known vulnerabilities." msgstr "" #. translators: %d: number of files. #: includes/rest/credentials.php:503 #, php-format msgid "WordPress.org reachable — %d core checksums received." msgstr "" #: includes/rest/credentials.php:507 msgid "Could not fetch core checksums from WordPress.org." msgstr "" #: includes/rest/credentials.php:508 msgid "Core integrity and plugin-integrity scanning need this endpoint." msgstr "" #: includes/rest/credentials.php:512 msgid "Unknown service." msgstr "" #. translators: %d: HTTP status code. #: includes/rest/credentials.php:535 #, php-format msgid "The service replied HTTP %d." msgstr "" #: includes/rest/credentials.php:560 msgid "Enter both the client ID and the client secret first." msgstr "" #: includes/rest/credentials.php:566 msgid "The provider does not recognise this client ID / secret pair." msgstr "" #: includes/rest/credentials.php:569 msgid "Client ID and secret accepted by the provider." msgstr "" #: includes/rest/credentials.php:570 msgid "The redirect URI is only checked during a real sign-in — use “Verify with a sign-in” to confirm it too." msgstr "" #: includes/rest/credentials.php:634 msgid "Unknown provider." msgstr "" #: includes/rest/credentials.php:686 msgid "Could not confirm these credentials from this test alone." msgstr "" #: includes/rest/credentials.php:687 msgid "X answered \"invalid_request\", which it also returns for the placeholder authorization code this test sends, not only for a bad client pair. Save and try an actual sign-in to confirm." msgstr "" #: includes/rest/credentials.php:696 msgid "Could not confirm these credentials." msgstr "" #. translators: 1: HTTP status, 2: provider error code. #: includes/rest/credentials.php:698 #, php-format msgid "Provider replied HTTP %1$d (%2$s)." msgstr "" #: includes/rest/firewall.php:114 msgid "Anyone on the server can write to this." msgstr "" #: includes/rest/firewall.php:117 msgid "Every account on the server can read the database password." msgstr "" #: includes/rest/firewall.php:120 msgid "The group can change your configuration." msgstr "" #: includes/rest/modules.php:41 msgid "A module id is required." msgstr "" #: includes/rest/modules.php:50 msgid "GemSecurity is locked. Unlock it on the Firewall page (password and emailed code) to turn a module off." msgstr "" #: includes/rest/plugin-guard.php:54 msgid "Unknown lock mode." msgstr "" #: includes/rest/plugin-guard.php:101 msgid "Enter a plugin or theme folder slug, e.g. my-pro-plugin." msgstr "" #: includes/rest/plugin-guard.php:104 msgid "That must-use plugin file was not found." msgstr "" #: includes/rest/sessions.php:44 msgid "Unknown user." msgstr "" #. translators: %s: the administrator's IP address. #: includes/rest/settings.php:338 #, php-format msgid "%s is your own IP address, so it was not added to the blocklist. Blocking it would lock you out." msgstr "" #. translators: %s: the administrator's country code. #: includes/rest/settings.php:359 #, php-format msgid "Your own country (%s) was added to the administrator country list. Without it you could not sign in again." msgstr "" #: includes/rest/settings.php:369 msgid "GemSecurity is locked, so some security settings were not changed. Unlock it on the Firewall page (password and emailed code) first." msgstr "" #: includes/rest/settings.php:456 msgid "one-click fix" msgstr "" #: includes/rest/settings.php:457 msgid "undo of a one-click fix" msgstr "" #: includes/rest/settings.php:458 msgid "instant switch" msgstr "" #: includes/rest/settings.php:459 msgid "settings save" msgstr "" #: includes/rest/settings.php:460 msgid "settings import" msgstr "" #. translators: 1: how it was changed, 2: changed setting keys #: includes/rest/settings.php:468 #, php-format msgid "Settings changed via %1$s: %2$s" msgstr "" #: includes/rest/two-factor.php:67 msgid "Start setup first." msgstr "" #: includes/rest/two-factor.php:70 msgid "That code is incorrect. Check your authenticator app and try again." msgstr "" #: includes/rest/two-factor.php:116 msgid "Enable two-factor first." msgstr "" #: includes/security/admin-audit.php:169 msgid "e-mail uses a non-routable / placeholder domain" msgstr "" #: includes/security/admin-audit.php:171 msgid "administrator has no valid e-mail address" msgstr "" #: includes/security/admin-audit.php:329 msgid "That user is not an administrator." msgstr "" #: includes/security/admin-audit.php:332 msgid "That administrator is protected and cannot be auto-removed." msgstr "" #: includes/security/core-file.php:34 msgid "That is not a WordPress core file." msgstr "" #: includes/security/core-file.php:38 msgid "That file is not part of this WordPress release." msgstr "" #: includes/security/core-file.php:72 msgid "This file is too large to show here." msgstr "" #: includes/security/core-file.php:104 msgid "Could not download the original file from WordPress.org." msgstr "" #: includes/security/core-file.php:108 msgid "The downloaded file did not match the official checksum, so it was discarded." msgstr "" #: includes/security/htaccess-scan.php:114 msgid "Loads a PHP file into every request (auto_prepend_file / auto_append_file) — the classic persistent back-door." msgstr "" #: includes/security/htaccess-scan.php:120 msgid "Re-enables PHP execution for files in this directory — an uploaded image can then be run as code." msgstr "" #: includes/security/htaccess-scan.php:126 msgid "Turns on CGI or server-side-include execution for this directory." msgstr "" #: includes/security/htaccess-scan.php:132 msgid "Changes PHP security settings from inside the site directory (allow_url_include, disable_functions and similar)." msgstr "" #: includes/security/htaccess-scan.php:138 msgid "Redirects visitors to another site based on their referrer or browser — the signature of SEO-spam cloaking." msgstr "" #: includes/security/htaccess-scan.php:144 msgid "Sends error pages to an external URL." msgstr "" #: includes/security/htaccess-scan.php:200 msgid "This is the site’s main .htaccess and carries the WordPress permalink rules. Remove only the offending lines by hand — moving the whole file would break every URL." msgstr "" #. translators: %s: drop-in filename (e.g. advanced-cache.php). #: includes/security/mu-plugins.php:135 #, php-format msgid "Drop-in (%s)" msgstr "" #: includes/security/mu-plugins.php:144 msgid "auto-executed drop-in — safe if you (or a caching/debug plugin) installed it" msgstr "" #: includes/security/mu-plugins.php:222 msgid "Nested mu-plugin payload" msgstr "" #: includes/security/mu-plugins.php:288 msgid "auto-loaded file with no plugin header — review it" msgstr "" #: includes/security/mu-plugins.php:315 msgid "contains code that filters the administrator list (hidden-admin back-door)" msgstr "" #: includes/security/mu-plugins.php:319 msgid "contains an obfuscated script-injection payload" msgstr "" #: includes/security/mu-plugins.php:328 msgid "executes an obfuscated / encoded payload" msgstr "" #: includes/security/plugin-guard.php:224 #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:26 #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:53 #: assets/build/setup.1.2.2.js:17 msgid "Off" msgstr "" #: includes/security/plugin-guard.php:227 msgid "Block plugin & theme uploads" msgstr "" #: includes/security/plugin-guard.php:228 msgid "Block all new installs (updates still work)" msgstr "" #: includes/security/plugin-guard.php:229 msgid "Freeze: no installs, updates or deletes" msgstr "" #. translators: %d: minutes. #: includes/security/plugin-guard.php:297 #, php-format msgid "Install Lock lifted for %d minutes" msgstr "" #: includes/security/plugin-guard.php:312 msgid "GemSecurity Install Lock:" msgstr "" #: includes/security/plugin-guard.php:315 msgid "Unlock temporarily" msgstr "" #: includes/security/plugin-guard.php:463 msgid "Activation blocked by GemSecurity" msgstr "" #. translators: %s: plugin list. #: includes/security/plugin-guard.php:466 #, php-format msgid "Plugin Guard only allows plugins verified against WordPress.org or marked trusted by an administrator. Not trusted: %s" msgstr "" #: includes/security/plugin-guard.php:469 msgid "Review it in GemSecurity → Plugin Guard" msgstr "" #: includes/security/plugin-guard.php:470 #: assets/build/backend.1.2.2.js:43 msgid "Activation blocked" msgstr "" #: includes/security/plugin-guard.php:508 msgid "GemSecurity Plugin Guard: this plugin is not verified on WordPress.org and has not been marked trusted." msgstr "" #. translators: %s: theme slug. #: includes/security/plugin-guard.php:590 #, php-format msgid "GemSecurity Plugin Guard blocked this install: the theme \"%s\" is not on WordPress.org and has not been pre-approved. Add it as trusted under GemSecurity → Plugin Guard, then upload it again." msgstr "" #. translators: 1: plugin slug, 2: reason. #: includes/security/plugin-guard.php:605 #, php-format msgid "GemSecurity Plugin Guard blocked this install: \"%1$s\" could not be verified against WordPress.org (%2$s). If it is a premium or custom plugin you trust, add it as trusted under GemSecurity → Plugin Guard, then upload it again." msgstr "" #: includes/security/plugin-guard.php:626 msgid "Plugin file not found." msgstr "" #: includes/security/plugin-guard.php:633 msgid "Single-file plugin — cannot be checksum-verified." msgstr "" #: includes/security/plugin-guard.php:688 msgid "No version header." msgstr "" #: includes/security/plugin-guard.php:693 msgid "WordPress.org could not be reached." msgstr "" #. translators: %s: version. #: includes/security/plugin-guard.php:701 #, php-format msgid "The slug is on WordPress.org but version %s was never released there — possibly a lookalike." msgstr "" #: includes/security/plugin-guard.php:705 msgid "Not in the WordPress.org directory (premium, custom or unknown)." msgstr "" #: includes/security/plugin-guard.php:708 msgid "WordPress.org returned an error." msgstr "" #: includes/security/plugin-guard.php:712 msgid "Unexpected checksum response." msgstr "" #. translators: %s: file list. #: includes/security/plugin-guard.php:753 #, php-format msgid "changed: %s" msgstr "" #. translators: %s: file list. #: includes/security/plugin-guard.php:757 #, php-format msgid "added PHP: %s" msgstr "" #: includes/security/plugin-guard.php:759 msgid "Files differ from WordPress.org" msgstr "" #: includes/security/plugin-guard.php:761 msgid "Matches the official WordPress.org release." msgstr "" #: includes/security/plugin-guard.php:954 msgid "Untrusted plugin was active — force-deactivated" msgstr "" #: includes/security/plugin-guard.php:955 msgid "Untrusted plugin activation blocked" msgstr "" #: includes/security/plugin-guard.php:956 msgid "Unknown must-use plugin detected" msgstr "" #: includes/security/plugin-guard.php:957 msgid "Untrusted plugin/theme install blocked" msgstr "" #: includes/security/plugin-guard.php:958 msgid "Executable file upload blocked" msgstr "" #: includes/security/plugin-guard.php:959 msgid "Install Lock was temporarily lifted" msgstr "" #. translators: %s: event. #: includes/security/plugin-guard.php:971 #, php-format msgid "DANGER: %s" msgstr "" #: includes/security/plugin-guard.php:973 msgid "A plugin that is neither verified on WordPress.org nor marked trusted was switched on — most likely written straight into the database. GemSecurity stopped it from loading and deactivated it." msgstr "" #: includes/security/plugin-guard.php:974 msgid "Someone tried to activate a plugin that is neither verified on WordPress.org nor marked trusted. The activation was refused before its code ran." msgstr "" #: includes/security/plugin-guard.php:975 msgid "A must-use plugin you never approved appeared (or a trusted one was edited). Must-use plugins run on every request with no on/off switch, which makes them a favourite backdoor. GemSecurity moved it into quarantine before it could run." msgstr "" #: includes/security/plugin-guard.php:976 msgid "Someone tried to install a plugin or theme that is not from WordPress.org and was not pre-approved. The install was refused." msgstr "" #: includes/security/plugin-guard.php:977 msgid "Someone uploaded a file that can run code on the server (for example a .php file, or an image with PHP hidden inside). Upload Shield refused it before any plugin could save it. This is a typical first step of planting a backdoor." msgstr "" #: includes/security/plugin-guard.php:978 msgid "An administrator lifted the Install Lock, so plugins and themes can be uploaded or installed for a few minutes. It re-engages automatically." msgstr "" #: includes/security/plugin-guard.php:981 #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:51 msgid "Item" msgid_plural "Items" msgstr[0] "" msgstr[1] "" #: includes/security/plugin-guard.php:982 msgid "not logged in" msgstr "" #: includes/security/plugin-guard.php:983 #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:51 msgid "IP" msgstr "" #: includes/security/plugin-guard.php:987 #: assets/build/backend.1.2.2.js:37 msgid "Location" msgstr "" #: includes/security/plugin-guard.php:987 msgid "unknown (private or unresolvable IP)" msgstr "" #: includes/security/plugin-guard.php:992 msgid "Action taken" msgstr "" #. translators: %d: hours. #: includes/security/plugin-guard.php:995 #, php-format msgid "IP blocked for %d hours" msgstr "" #. translators: %d: hours. #: includes/security/plugin-guard.php:995 msgid "IP blocked permanently" msgstr "" #: includes/security/plugin-guard.php:996 msgid "IP not blocked (administrator, exempt, or auto-block off)" msgstr "" #: includes/security/plugin-guard.php:1003 msgid "If you did this yourself, open Plugin Guard and mark the item trusted." msgstr "" #: includes/security/plugin-guard.php:1004 msgid "If you did not: treat the site as compromised — change every administrator password, end all sessions, and run a full malware scan." msgstr "" #: includes/security/plugin-guard.php:1005 msgid "Check the administrator list for accounts you do not recognise." msgstr "" #: includes/security/plugin-guard.php:1012 msgid "What to do now" msgstr "" #: includes/security/plugin-guard.php:1013 msgid "Open Plugin Guard" msgstr "" #: includes/security/plugin-guard.php:1062 msgid "GemSecurity Plugin Guard is on." msgstr "" #. translators: %d: count. #: includes/security/plugin-guard.php:1065 #, php-format msgid "%d installed plugin is not verified or trusted and cannot be activated." msgid_plural "%d installed plugins are not verified or trusted and cannot be activated." msgstr[0] "" msgstr[1] "" #: includes/security/plugin-guard.php:1069 msgid "Review in Plugin Guard" msgstr "" #: includes/security/quarantine.php:183 msgid "That file is outside the WordPress installation." msgstr "" #. translators: %s: file name. #: includes/security/quarantine.php:193 #, php-format msgid "%s is required to run WordPress. Replace it with a clean copy instead of quarantining it." msgstr "" #: includes/security/quarantine.php:201 msgid "File no longer exists." msgstr "" #: includes/security/quarantine.php:205 msgid "That file is too large to quarantine. Delete it or replace it with a clean copy." msgstr "" #: includes/security/quarantine.php:211 #: assets/build/backend.1.2.2.js:31 msgid "Could not quarantine the file." msgstr "" #: includes/security/quarantine.php:216 msgid "Could not remove the file." msgstr "" #: includes/security/quarantine.php:247 #: includes/security/quarantine.php:252 msgid "Could not keep a copy of the current file." msgstr "" #: includes/security/quarantine.php:309 msgid "Quarantine entry not found." msgstr "" #: includes/security/quarantine.php:312 msgid "That entry is a database snapshot, not a file." msgstr "" #: includes/security/quarantine.php:316 msgid "GemSecurity only restores non-executable files to the uploads folder. Re-install the plugin, theme or WordPress core file from its original source instead." msgstr "" #: includes/security/quarantine.php:324 msgid "Could not restore the file." msgstr "" #: includes/security/safe-files.php:159 msgid "That file is outside this WordPress installation." msgstr "" #: includes/security/safe-files.php:162 msgid "That file no longer exists." msgstr "" #: includes/security/security-score.php:140 msgid "Turn on the firewall to block common attack traffic." msgstr "" #: includes/security/security-score.php:141 #: assets/build/backend.1.2.2.js:43 msgid "Brute-force protection" msgstr "" #: includes/security/security-score.php:141 msgid "Limit login attempts to stop password-guessing." msgstr "" #: includes/security/security-score.php:142 msgid "Two-factor authentication" msgstr "" #: includes/security/security-score.php:142 msgid "Require a second factor so a stolen password is not enough." msgstr "" #: includes/security/security-score.php:143 msgid "Daily malware scan" msgstr "" #: includes/security/security-score.php:143 msgid "Enable the daily scan so new infections are caught automatically." msgstr "" #: includes/security/security-score.php:144 msgid "Vulnerability scanning" msgstr "" #: includes/security/security-score.php:144 msgid "Check installed plugins and themes against known vulnerabilities." msgstr "" #: includes/security/security-score.php:145 #: assets/build/backend.1.2.2.js:35 msgid "File change watcher" msgstr "" #: includes/security/security-score.php:145 msgid "Baseline your theme, mu-plugins and drop-ins to detect tampering." msgstr "" #: includes/security/security-score.php:146 #: assets/build/backend.1.2.2.js:43 msgid "Security headers" msgstr "" #: includes/security/security-score.php:146 msgid "Send hardening headers (HSTS, X-Frame-Options, CSP, …)." msgstr "" #: includes/security/security-score.php:147 msgid "Theme/plugin file editor disabled" msgstr "" #: includes/security/security-score.php:147 msgid "Disable the built-in file editor so a stolen login cannot inject code." msgstr "" #: includes/security/security-score.php:148 msgid "Strong-password policy" msgstr "" #: includes/security/security-score.php:148 msgid "Enforce length, complexity and breached-password checks." msgstr "" #: includes/security/security-score.php:149 msgid "Admin whitelist guard" msgstr "" #: includes/security/security-score.php:149 msgid "Auto-revoke administrator accounts you did not authorise." msgstr "" #: includes/security/security-score.php:150 msgid "Malicious-link detection" msgstr "" #: includes/security/security-score.php:150 msgid "Flag spam/malware domains your content links to." msgstr "" #: includes/security/security-score.php:151 msgid "Author enumeration blocked" msgstr "" #: includes/security/security-score.php:151 msgid "Stop attackers from harvesting usernames." msgstr "" #: includes/security/security-score.php:152 msgid "REST user enumeration blocked" msgstr "" #: includes/security/security-score.php:152 msgid "Hide the user list from the public REST API." msgstr "" #: includes/security/security-score.php:153 msgid "Admin login alerts" msgstr "" #: includes/security/security-score.php:153 msgid "Get notified whenever an administrator signs in." msgstr "" #: includes/security/security-score.php:154 msgid "XML-RPC disabled" msgstr "" #: includes/security/security-score.php:154 msgid "Disable XML-RPC if you do not use it — it is a brute-force vector." msgstr "" #: includes/security/security-score.php:155 msgid "WordPress version hidden" msgstr "" #: includes/security/security-score.php:155 msgid "Stop advertising your exact WordPress version." msgstr "" #: includes/security/security-score.php:156 msgid "wp-config.php and error logs protected" msgstr "" #: includes/security/security-score.php:156 msgid "Block web access to wp-config.php, debug.log and wp-admin/includes (Apache / LiteSpeed)." msgstr "" #: includes/security/security-score.php:176 msgid "Plugin lock" msgstr "" #: includes/security/security-score.php:179 msgid "Lock GemSecurity with an unlock password so a stolen administrator login cannot switch it off." msgstr "" #: includes/security/security-score.php:190 msgid "Recent backup" msgstr "" #: includes/security/security-score.php:193 msgid "Take a backup in GemBackup — you cannot recover from a hack without one." msgstr "" #: includes/security/security-score.php:196 msgid "Open GemBackup" msgstr "" #: includes/security/security-score.php:240 msgid "No administrator named \"admin\"" msgstr "" #. translators: %s: the guessable login name(s). #: includes/security/security-score.php:243 #, php-format msgid "Create a new administrator with an uncommon username, move content to it, then delete \"%s\"." msgstr "" #: includes/security/security-score.php:244 msgid "Administrator usernames are not the first ones attackers try." msgstr "" #: includes/security/security-score.php:245 msgid "Open Users" msgstr "" #: includes/security/security-score.php:262 msgid "No unused plugins or themes installed" msgstr "" #. translators: 1: inactive plugins, 2: extra inactive themes. #: includes/security/security-score.php:265 #, php-format msgid "Delete what you do not use: %1$d inactive plugin(s), %2$d extra inactive theme(s)." msgstr "" #: includes/security/security-score.php:266 msgid "Only code you use is installed." msgstr "" #: includes/security/security-score.php:267 #: includes/security/security-score.php:292 msgid "Open Plugins" msgstr "" #: includes/security/security-score.php:287 msgid "No plugins that run PHP from the database" msgstr "" #. translators: %s: plugin folder names. #: includes/security/security-score.php:290 #, php-format msgid "Move these snippets into a child theme or a small custom plugin, then remove: %s." msgstr "" #: includes/security/security-score.php:291 msgid "No plugin stores PHP in the database." msgstr "" #: includes/security/security-score.php:301 msgid "PHP errors are not shown to visitors" msgstr "" #: includes/security/security-score.php:303 msgid "Add define( 'WP_DEBUG_DISPLAY', false ); to wp-config.php, or turn WP_DEBUG off on a live site." msgstr "" #: includes/security/security-score.php:304 msgid "Errors are kept out of the page." msgstr "" #: includes/security/security-score.php:318 msgid "Error log is not publicly readable" msgstr "" #: includes/security/security-score.php:320 msgid "debug.log is inside the web root. Protect it, or point WP_DEBUG_LOG at a path outside the site." msgstr "" #: includes/security/security-score.php:321 msgid "The error log cannot be downloaded from the web." msgstr "" #: includes/security/security-score.php:332 msgid "Database table prefix is not the default" msgstr "" #: includes/security/security-score.php:334 msgid "Tables use the default wp_ prefix. Use a custom prefix on new installs; changing it on a live site needs a full backup first." msgstr "" #: includes/security/security-score.php:335 msgid "Tables use a custom prefix." msgstr "" #: includes/security/security-score.php:373 msgid "No malware scan has run yet" msgstr "" #: includes/security/security-score.php:376 msgid "Run a scan from the Scanner page." msgstr "" #. translators: %s: WordPress version the last scan ran against. #: includes/security/security-score.php:390 #, php-format msgid "Last scan predates a WordPress update (ran against %s)" msgstr "" #: includes/security/security-score.php:395 msgid "Re-run the scan so core files are checked against the version this site is actually running." msgstr "" #. translators: %d: number of modified or missing core files. #: includes/security/security-score.php:408 #, php-format msgid "%d modified or missing core file" msgid_plural "%d modified or missing core files" msgstr[0] "" msgstr[1] "" #. translators: %d: number of modified or missing core files. #: includes/security/security-score.php:408 msgid "Reinstall WordPress core to restore the official files." msgstr "" #. translators: %d: number of unexpected / foreign files. #: includes/security/security-score.php:412 #, php-format msgid "%d unexpected / foreign file" msgid_plural "%d unexpected / foreign files" msgstr[0] "" msgstr[1] "" #. translators: %d: number of unexpected / foreign files. #: includes/security/security-score.php:412 msgid "Review and remove them in Scanner → Integrity & files." msgstr "" #. translators: %d: number of code / spam-link injections. #: includes/security/security-score.php:416 #, php-format msgid "%d code / spam-link injection" msgid_plural "%d code / spam-link injections" msgstr[0] "" msgstr[1] "" #. translators: %d: number of code / spam-link injections. #: includes/security/security-score.php:416 msgid "Clean the injected files/records shown by the file-change watcher." msgstr "" #. translators: %d: number of suspicious auto-loaded files. #: includes/security/security-score.php:420 #, php-format msgid "%d suspicious auto-loaded file" msgid_plural "%d suspicious auto-loaded files" msgstr[0] "" msgstr[1] "" #. translators: %d: number of suspicious auto-loaded files. #: includes/security/security-score.php:420 msgid "Inspect the flagged mu-plugins / drop-ins." msgstr "" #. translators: %d: number of .htaccess files. #: includes/security/security-score.php:433 #, php-format msgid "%d .htaccess file grants execution or redirects traffic" msgid_plural "%d .htaccess files grant execution or redirect traffic" msgstr[0] "" msgstr[1] "" #: includes/security/security-score.php:438 msgid "Review them in Scanner → .htaccess. A rule that loads a PHP file into every request, or re-enables PHP in uploads, is a back-door." msgstr "" #. translators: %d: number of suspicious files. #: includes/security/security-score.php:444 #, php-format msgid "%d suspicious file" msgid_plural "%d suspicious files" msgstr[0] "" msgstr[1] "" #. translators: %d: number of suspicious files. #: includes/security/security-score.php:444 msgid "Review the flagged files in the last scan." msgstr "" #. translators: %d: number of flagged outbound-link domains. #: includes/security/security-score.php:448 #, php-format msgid "%d flagged outbound-link domain" msgid_plural "%d flagged outbound-link domains" msgstr[0] "" msgstr[1] "" #. translators: %d: number of flagged outbound-link domains. #: includes/security/security-score.php:448 msgid "Check the flagged domains in Scanner → Linked sites." msgstr "" #. translators: %d: number of known vulnerabilities. #: includes/security/security-score.php:456 #, php-format msgid "%d known vulnerability" msgid_plural "%d known vulnerabilities" msgstr[0] "" msgstr[1] "" #. translators: %d: number of known vulnerabilities. #: includes/security/security-score.php:456 msgid "Update the affected plugins/themes to a fixed version." msgstr "" #. translators: %d: number of hidden administrator accounts. #: includes/security/security-score.php:463 #, php-format msgid "%d hidden administrator account" msgid_plural "%d hidden administrator accounts" msgstr[0] "" msgstr[1] "" #. translators: %d: number of hidden administrator accounts. #: includes/security/security-score.php:463 msgid "A concealed admin is a back-door — investigate and remove it immediately." msgstr "" #: includes/security/security-score.php:516 msgid "Turn the module on" msgstr "" #: includes/security/site-guard.php:262 msgid "GemSecurity is locked. Unlock it on the Firewall page before deleting it." msgstr "" #: includes/security/site-guard.php:300 msgid "Blocked an attempt to deactivate GemSecurity (plugin lock)." msgstr "" #: includes/security/site-guard.php:393 msgid "The lock is already on." msgstr "" #: includes/security/site-guard.php:397 msgid "Your account has no valid email address. Unlock codes are sent by email, so add one to your profile first." msgstr "" #: includes/security/site-guard.php:401 msgid "Use at least 8 characters for the unlock password." msgstr "" #: includes/security/site-guard.php:409 msgid "GemSecurity plugin lock turned on." msgstr "" #: includes/security/site-guard.php:423 msgid "No lock is set." msgstr "" #: includes/security/site-guard.php:426 msgid "This lock has no email address on file. Remove it with the wp-config recovery line and set it up again." msgstr "" #: includes/security/site-guard.php:433 msgid "Too many wrong passwords. Try again in 15 minutes." msgstr "" #: includes/security/site-guard.php:438 msgid "Wrong GemSecurity unlock password entered." msgstr "" #: includes/security/site-guard.php:439 msgid "Wrong password." msgstr "" #: includes/security/site-guard.php:447 msgid "Too many codes requested. Try again in 15 minutes." msgstr "" #: includes/security/site-guard.php:454 msgid "Your GemSecurity unlock code" msgstr "" #: includes/security/site-guard.php:456 msgid "Someone entered the unlock password to open the GemSecurity plugin lock. Use this code to finish:" msgstr "" #: includes/security/site-guard.php:457 msgid "Unlock code" msgstr "" #: includes/security/site-guard.php:458 msgid "The code works for 10 minutes. If this was not you, someone knows your unlock password. Do not share the code." msgstr "" #: includes/security/site-guard.php:462 msgid "The email with the code could not be sent. Check that your site can send email." msgstr "" #: includes/security/site-guard.php:467 msgid "GemSecurity unlock code emailed." msgstr "" #: includes/security/site-guard.php:476 msgid "No code is waiting, or it expired. Enter the password again to get a new one." msgstr "" #: includes/security/site-guard.php:480 msgid "Too many wrong codes. Enter the password again to get a new one." msgstr "" #: includes/security/site-guard.php:487 msgid "Wrong GemSecurity unlock code entered." msgstr "" #: includes/security/site-guard.php:488 msgid "Wrong code." msgstr "" #: includes/security/site-guard.php:493 msgid "GemSecurity plugin lock opened for 10 minutes." msgstr "" #: includes/security/site-guard.php:517 msgid "Enter the unlock password first." msgstr "" #: includes/security/site-guard.php:523 msgid "GemSecurity plugin lock turned off." msgstr "" #: includes/security/site-guard.php:544 msgid "File uploads are turned off on this site." msgstr "" #. translators: 1: numeric score 0-100, 2: letter grade A-F. #: includes/security/site-guard.php:591 #, php-format msgid "Security score %1$d, grade %2$s" msgstr "" #. translators: 1: score, 2: grade. #: includes/security/site-guard.php:592 #, php-format msgid "Security score %1$d/100 — grade %2$s" msgstr "" #. translators: %d: number of active hardening switches. #: includes/security/site-guard.php:599 #, php-format msgid "%d hardening switch on" msgid_plural "%d hardening switches on" msgstr[0] "" msgstr[1] "" #. translators: %d: number of active protections. #: includes/security/site-guard.php:600 #, php-format msgid "%d protection active" msgid_plural "%d protections active" msgstr[0] "" msgstr[1] "" #: includes/security/site-guard.php:621 #: assets/build/backend.1.2.2.js:20 #: assets/build/backend.1.2.2.js:23 msgid "Security score" msgstr "" #: includes/security/site-guard.php:637 msgid "Active protections" msgstr "" #: includes/security/site-guard.php:653 msgid "Quick actions" msgstr "" #: includes/security/site-guard.php:664 msgid "File uploads: blocked" msgstr "" #: includes/security/site-guard.php:665 msgid "File uploads: allowed" msgstr "" #: includes/security/site-guard.php:667 msgid "Allow" msgstr "" #: includes/security/site-guard.php:667 #: assets/build/backend.1.2.2.js:43 msgid "Block" msgstr "" #: includes/security/site-guard.php:675 msgid "Open GemSecurity dashboard" msgstr "" #: includes/security/site-guard.php:697 msgid "File editor off" msgstr "" #: includes/security/site-guard.php:703 msgid "XML-RPC off" msgstr "" #: includes/security/site-guard.php:709 msgid "Plugin lock on" msgstr "" #: includes/security/site-guard.php:715 msgid "User registration off" msgstr "" #: includes/security/site-guard.php:756 msgid "Looking great." msgstr "" #: includes/security/site-guard.php:759 msgid "A few switches away from an A." msgstr "" #: includes/security/site-guard.php:762 msgid "Review your to-do list." msgstr "" #: includes/security/site-guard.php:765 msgid "At risk — fix the warnings." msgstr "" #: includes/security/site-guard.php:767 msgid "Open the dashboard and start with the critical items." msgstr "" #: includes/security/site-guard.php:821 msgid "You are not allowed to do this." msgstr "" #: includes/security/site-guard.php:827 msgid "GemSecurity is locked. Unlock it on the Firewall page (password and emailed code) before changing this." msgstr "" #. translators: %s: reason. #: includes/security/upload-shield.php:262 #, php-format msgid "GemSecurity Upload Shield refused this file (%s)." msgstr "" #: includes/security/upload-shield.php:443 msgid "Deny rules are installed in .htaccess and this server reads .htaccess, so PHP files in uploads will not run." msgstr "" #: includes/security/upload-shield.php:445 msgid "This server reads .htaccess but the deny rules are not installed yet. Turn on Upload Shield to install them." msgstr "" #: includes/security/upload-shield.php:447 msgid "This server does not read .htaccess, so it cannot be verified from here. Ask your host to add the rule shown below." msgstr "" #: includes/security/vulnerability.php:40 #: assets/build/backend.1.2.2.js:31 msgid "WordPress core" msgstr "" #: includes/security/vulnerability.php:239 msgid "Known vulnerability" msgstr "" #. translators: %d: number of settings #: assets/build/backend.1.2.2.js:15 #, js-format msgid "%d setting turned on." msgid_plural "%d settings turned on." msgstr[0] "" msgstr[1] "" #: assets/build/backend.1.2.2.js:15 msgid "Undo" msgstr "" #: assets/build/backend.1.2.2.js:15 msgid "Could not save. Open the setting's page and try again." msgstr "" #: assets/build/backend.1.2.2.js:15 msgid "Score suggestions for this page" msgstr "" #. translators: 1 points gain, 2 current score #: assets/build/backend.1.2.2.js:16 #, js-format msgid "Boost your score by +%1$d points (currently %2$d)" msgstr "" #. translators: %d: points gain #: assets/build/backend.1.2.2.js:17 #, js-format msgid "Boost your score by +%d points" msgstr "" #. translators: %d: number of settings #: assets/build/backend.1.2.2.js:18 #, js-format msgid "Enable %d setting below to raise your security grade." msgid_plural "Enable %d settings below to raise your security grade." msgstr[0] "" msgstr[1] "" #. translators: %d: number of settings #: assets/build/backend.1.2.2.js:19 #: assets/build/backend.1.2.2.js:22 #, js-format msgid "Fix all %d" msgstr "" #: assets/build/backend.1.2.2.js:19 msgid "Hide suggestions" msgstr "" #: assets/build/backend.1.2.2.js:19 msgid "Hide for now — they come back on reload once anything changes." msgstr "" #. translators: %d: weight #: assets/build/backend.1.2.2.js:19 #: assets/build/backend.1.2.2.js:22 #, js-format msgid "+%d" msgstr "" #: assets/build/backend.1.2.2.js:19 #: assets/build/backend.1.2.2.js:22 #: assets/build/backend.1.2.2.js:23 msgid "Fixing…" msgstr "" #: assets/build/backend.1.2.2.js:19 #: assets/build/backend.1.2.2.js:22 #: assets/build/backend.1.2.2.js:23 msgid "Fix" msgstr "" #: assets/build/backend.1.2.2.js:19 msgid "More" msgstr "" #: assets/build/backend.1.2.2.js:19 msgid "Something went wrong on this page" msgstr "" #: assets/build/backend.1.2.2.js:19 msgid "This page hit an unexpected error. Other sections still work — pick another item from the menu, or reload to try again." msgstr "" #: assets/build/backend.1.2.2.js:19 msgid "Reload" msgstr "" #. translators: 1 score, 2 grade #: assets/build/backend.1.2.2.js:20 #, js-format msgid "Security score %1$d (grade %2$s). Click to see what needs attention." msgstr "" #. translators: %d: score #: assets/build/backend.1.2.2.js:20 #, js-format msgid "Score %d" msgstr "" #. translators: 1 points to gain, 2 count of items #: assets/build/backend.1.2.2.js:21 #, js-format msgid "+%1$d points available across %2$d check" msgid_plural "+%1$d points available across %2$d checks" msgstr[0] "" msgstr[1] "" #: assets/build/backend.1.2.2.js:21 msgid "Every posture check is passing." msgstr "" #: assets/build/backend.1.2.2.js:21 #: assets/build/backend.1.2.2.js:31 msgid "Close" msgstr "" #: assets/build/backend.1.2.2.js:21 msgid "Active issues" msgstr "" #: assets/build/backend.1.2.2.js:21 #: assets/build/backend.1.2.2.js:22 msgid "Open" msgstr "" #: assets/build/backend.1.2.2.js:21 msgid "To fix" msgstr "" #: assets/build/backend.1.2.2.js:22 msgid "Turn this setting on now" msgstr "" #: assets/build/backend.1.2.2.js:22 msgid "You're all set — every check is passing." msgstr "" #: assets/build/backend.1.2.2.js:22 #: assets/build/backend.1.2.2.js:23 msgid "Good" msgstr "" #: assets/build/backend.1.2.2.js:22 #: assets/build/backend.1.2.2.js:23 msgid "Fair" msgstr "" #: assets/build/backend.1.2.2.js:22 msgid "At risk" msgstr "" #: assets/build/backend.1.2.2.js:22 #: assets/build/backend.1.2.2.js:43 msgid "Unsaved changes" msgstr "" #. translators: %d: number of sections #: assets/build/backend.1.2.2.js:23 #, js-format msgid "Unsaved changes in %d section" msgid_plural "Unsaved changes in %d sections" msgstr[0] "" msgstr[1] "" #: assets/build/backend.1.2.2.js:23 msgid "You have unsaved changes" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Discard" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Save changes" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "If you leave this page now, the changes you made will be lost. Save them first?" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Stay on page" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Discard & leave" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Save & leave" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "of 100" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:26 msgid "Failed to load." msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:43 msgid "Needs attention" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Access" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Logins" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Failed logins" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Lockouts" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Threats" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Rogue admins" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:51 msgid "Vulnerabilities" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/setup.1.2.2.js:14 msgid "Now" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Critical events" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Blocked requests" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Bots blocked" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Banned IPs" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Total" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Today" msgstr "" #. translators: 1: grade letter, 2: status #: assets/build/backend.1.2.2.js:23 #, js-format msgid "Grade %1$s · %2$s" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Protections active" msgstr "" #. translators: 1: active, 2: total #. translators: 1: done, 2: total #. translators: 1: on, 2: total #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:44 #: assets/build/setup.1.2.2.js:17 #, js-format msgid "%1$d of %2$d" msgstr "" #. translators: %d: number of issues #: assets/build/backend.1.2.2.js:23 #, js-format msgid "Fix %d issues" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "What needs your attention" msgstr "" #. translators: %d: count #: assets/build/backend.1.2.2.js:23 #, js-format msgid "%d open" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Sorted by risk" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Show less" msgstr "" #. translators: %d: count #: assets/build/backend.1.2.2.js:23 #, js-format msgid "View all %d" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "No active threats and every recommended protection is on. Nicely done." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "High" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Medium" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Low" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Enabling…" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Enable" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:29 msgid "Run scan" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:42 msgid "Review" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "All quiet" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:43 msgid "Activity" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Security events, last 7 days" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Events" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Recent events" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "What changed on your site" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "That’s everything from the last 7 days." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Logins (24h)" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Failed logins (24h)" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Lockouts (7d)" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Blocked requests (7d)" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Bots blocked (24h)" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Rogue admins stopped (7d)" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:39 msgid "Known vulnerabilities" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Critical events (7d)" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:53 msgid "Core" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Firewall & threats" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Login & access" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Logging" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Maintenance" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:43 msgid "Always on" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Upgrade" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Active · Core" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:53 msgid "Active" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Configure" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Restored your unsaved changes from before the page reloaded." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Could not save settings." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Settings saved." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Turned on and saved." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Turned off and saved." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "File permissions" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Over-permissive files let a compromised process rewrite your site. World-writable paths are flagged." msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:35 msgid "Path" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Current" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:26 #: assets/build/backend.1.2.2.js:43 #: assets/build/setup.1.2.2.js:14 msgid "Recommended" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:32 #: assets/build/backend.1.2.2.js:42 #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:44 #: assets/build/backend.1.2.2.js:51 msgid "Status" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Actions" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:42 #: assets/build/backend.1.2.2.js:43 msgid "OK" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Permissions updated." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Could not change the mode." msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:42 msgid "Checking…" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Recent CSP violations" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Directive" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:51 msgid "When" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:51 msgid "Loading…" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Disable theme & plugin file editor" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Stops attackers editing PHP from wp-admin (DISALLOW_FILE_EDIT)." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Disable XML-RPC" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Closes a common brute-force and DDoS vector." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Hide WordPress version" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Removes the generator meta tag and version from feeds." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Protect wp-config.php, error logs and wp-admin/includes" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Adds server rules to .htaccess so these cannot be opened from the web (Apache / LiteSpeed; on nginx add them to the server config)." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Block author enumeration" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Prevents ?author=N scans that reveal usernames." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Block REST user enumeration" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Hides /wp/v2/users from anonymous requests." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Generic login error messages" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Replaces “unknown username” / “incorrect password” with one message, so a failed login never confirms an account exists." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "We emailed you a code." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Something went wrong." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Lock GemSecurity (prevent deactivation)" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Nobody can deactivate or delete GemSecurity, or turn this lock off, without the unlock password — not even the administrator who set it. To open it you need the password and a code emailed to the address on your account today. Keep the password safe: it is not stored anywhere you can read it." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Choose an unlock password (8+ characters)" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Lock is on." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Turn lock on" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:43 msgid "Locked" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Step 1 of 2: enter the unlock password. We will email you a code." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Unlock password" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Send me a code" msgstr "" #. translators: %s: masked email address. #: assets/build/backend.1.2.2.js:23 #, js-format msgid "Step 2 of 2: enter the 6-digit code we sent to %s. It works for 10 minutes." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "6-digit code" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Unlocked for 10 minutes." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Unlock for 10 minutes" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Start over" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Unlocked for 10 minutes" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "You can deactivate the plugin now." msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:43 msgid "Locked again." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Lock again now" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Lock removed." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Remove the lock" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Locked out? Add define( 'GEMSEC_PLUGIN_LOCK_DISABLE', true ); to wp-config.php. That needs access to the server, not just to wp-admin." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Live traffic" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Recent front-end requests (refreshes every 5s). Enable “Live traffic” above to populate." msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:26 msgid "Method" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "URI" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "No traffic captured yet." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Banned IP addresses" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Auto-banned and manually banned IPs. Permanent unless an expiry is shown." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Reason (optional)" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Ban length in minutes — leave empty to ban permanently" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Minutes (empty = forever)" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "IP banned." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Could not ban IP." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Ban IP" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "No banned IPs" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Offending IPs will appear here automatically." msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:32 #: assets/build/backend.1.2.2.js:35 #: assets/build/backend.1.2.2.js:37 #: assets/build/backend.1.2.2.js:39 msgid "Reason" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Strikes" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:44 msgid "Expires" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "permanent" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Removed." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Unban" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Bot activity (last 7 days)" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Blocked (24h)" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Blocked (7d)" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Top triggered patterns (7d)" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Pattern" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Hits" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Custom bot patterns" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Block additional user agents beyond the built-in bad-bot list. Use * as a wildcard — bot* blocks any UA starting with \"bot\", *crawler* blocks any UA containing \"crawler\". No wildcard = substring match anywhere in the UA. Turn on “Block malicious bots & scanners” on the Firewall page for these to apply." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "e.g. *crawler* or badbot*" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Add pattern" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "No custom patterns" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Add a pattern above to block additional user agents." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Pattern (* = wildcard)" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:31 #: assets/build/backend.1.2.2.js:35 msgid "Remove" msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:26 msgid "The test could not be run." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Test credentials" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "username or email" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Login link emailed." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Could not send." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Send login link" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Your active sessions" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Other sessions ended." msgstr "" #: assets/build/backend.1.2.2.js:23 #: assets/build/backend.1.2.2.js:51 msgid "Failed." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Log out other sessions" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Signed in" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Password rotation" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Force users to choose a new password. Sessions are ended and the old password stops working immediately — the standard response after a breach." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Apply to roles" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Leave empty to apply to every user." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Every user" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Email each user a reset link" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Without this they must use “Lost your password?” themselves. Passwords are never generated or emailed." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Include my own account" msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Off by default so a site-wide reset cannot lock you out in the middle of an incident." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Could not check who this would affect." msgstr "" #: assets/build/backend.1.2.2.js:23 msgid "Check who this affects" msgstr "" #. translators: 1: users reset, 2: emails sent. #: assets/build/backend.1.2.2.js:24 #, js-format msgid "Reset forced for %1$d user(s); %2$d reset link(s) emailed." msgstr "" #: assets/build/backend.1.2.2.js:24 msgid "Could not force the reset." msgstr "" #. translators: %d: number of users. #: assets/build/backend.1.2.2.js:25 #, js-format msgid "Force a reset for %d user(s)" msgstr "" #. translators: %d: users. #: assets/build/backend.1.2.2.js:25 #, js-format msgid "Cleared the reset requirement for %d user(s)." msgstr "" #: assets/build/backend.1.2.2.js:25 msgid "Could not clear it." msgstr "" #. translators: %d: users. #: assets/build/backend.1.2.2.js:25 #, js-format msgid "Cancel for %d waiting user(s)" msgstr "" #. translators: 1: affected users, 2: users already waiting. #: assets/build/backend.1.2.2.js:26 #, js-format msgid "%1$d user(s) would be signed out and required to set a new password. %2$d are already waiting to do so." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Rotate passwords automatically" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Runs daily and forces a reset for anyone in the selected roles whose password is older than the age below." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Maximum password age" msgstr "" #: assets/build/backend.1.2.2.js:26 #: assets/build/backend.1.2.2.js:51 msgid "days" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Open provider console" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "The provider’s script could not be loaded — check the network and any content blockers." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "The provider’s script did not initialise." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "The provider rejected this site key." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "The provider rejected this site key for this domain." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "The challenge expired — run the test again." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Verify keys" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Checks both keys with a real test token." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Requesting a token from the provider…" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "“I’m not a robot” checkbox" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "reCAPTCHA admin console" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Invisible, score based" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Checkbox, image puzzle when unsure" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "hCaptcha dashboard" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Usually no click needed" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Cloudflare dashboard" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Login form" msgstr "" #: assets/build/backend.1.2.2.js:26 #: assets/build/backend.1.2.2.js:44 msgid "Login" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Registration form" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "New account sign-ups" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "registration" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Lost-password form" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Stops bots spamming reset emails." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "lost-password" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Save these one-time backup codes now. Each works once if you lose access to your device. They will not be shown again." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Download" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "I have saved them" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "My two-factor" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Your backup codes" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Two-factor is active on your account." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Authenticator app" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Email code" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Backup codes left" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Could not regenerate." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Regenerate backup codes" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Disable two-factor for your account?" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Two-factor disabled." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Disable" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Two-factor is required for your role and cannot be disabled." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Protect your account with a second step at login." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Two-factor is required for your role. Until you set up an app, a code will be emailed to you at each login." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Scan this QR code with Google Authenticator, Authy or 1Password." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Or enter this key manually" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Enter the 6-digit code from your app" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Authenticator app enabled." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Invalid code." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Verify & enable" msgstr "" #: assets/build/backend.1.2.2.js:26 #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:43 msgid "Cancel" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Could not start setup." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Set up authenticator app" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Email verification enabled." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Could not enable." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Use email codes instead" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Two-factor system" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Site-wide two-factor settings (administrators only)." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Enable two-factor authentication" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Turns the feature on for the whole site. Users still choose to enroll unless required below." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Require two-factor by role" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Selected roles must pass a second step at login. Users without an app get an emailed code automatically." msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Required for" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Leave empty to require it of nobody — users can still enroll themselves." msgstr "" #: assets/build/backend.1.2.2.js:26 #: assets/build/backend.1.2.2.js:44 msgid "All roles" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "No role is required to use it" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Verified" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Not verified" msgstr "" #: assets/build/backend.1.2.2.js:26 msgid "Switched off" msgstr "" #. translators: %s: provider name. #: assets/build/backend.1.2.2.js:27 #, js-format msgid "%s was switched off automatically." msgstr "" #: assets/build/backend.1.2.2.js:27 msgid "The provider stopped accepting these credentials, so its button was removed from the login form." msgstr "" #: assets/build/backend.1.2.2.js:27 msgid "Enter new credentials, turn it back on and verify them again." msgstr "" #: assets/build/backend.1.2.2.js:27 msgid "Client ID" msgstr "" #: assets/build/backend.1.2.2.js:27 msgid "Client secret" msgstr "" #: assets/build/backend.1.2.2.js:27 msgid "Verify with a sign-in" msgstr "" #: assets/build/backend.1.2.2.js:27 msgid "Runs a real sign-in against the saved keys and also checks the redirect URI." msgstr "" #: assets/build/backend.1.2.2.js:27 msgid "Turn on social login and save your keys first." msgstr "" #: assets/build/backend.1.2.2.js:27 msgid "This provider’s button stays hidden from the login form until its credentials are verified." msgstr "" #: assets/build/backend.1.2.2.js:27 msgid "Verified — save your changes to show the button on the login form." msgstr "" #: assets/build/backend.1.2.2.js:27 msgid "Twitter rarely returns an email — accounts are created with a placeholder address you can change later." msgstr "" #. translators: %d: minutes. #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:51 msgid "minutes" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "1 hour" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "6 hours" msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:43 msgid "24 hours" msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:43 msgid "7 days" msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:43 msgid "30 days" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Expired" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Revoked" msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:44 msgid "Granted" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Extended" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Custom date and time…" msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:37 #: assets/build/setup.1.2.2.js:17 msgid "Change" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Search by name, username or email…" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Choose" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "No matching users. Add the person under Users → Add New first." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Grant temporary access" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Pick a user who already has an account. They get the role you choose until the time is up, then their previous role is restored. Nothing is created and no sign-in link is sent." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Role" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Grant the least access that gets the job done." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Choose a role…" msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:44 msgid "full control" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "This role can change the site." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "It can install code, edit users and change settings. Only grant it to someone you trust completely, and keep the access short." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "I understand and want to grant this role" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Access lasts" msgstr "" #. translators: %d: days. #: assets/build/backend.1.2.2.js:29 #, js-format msgid "At most %d days." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Temporary access granted." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Could not grant access." msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:44 msgid "Grant access" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "No activity yet." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Access extended." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Could not extend access." msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:44 msgid "Extend" msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:44 msgid "Reopen" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Search a user by name or email…" msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:31 #: assets/build/backend.1.2.2.js:42 msgid "Search" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Showing users with assigned countries; search to add countries to any user. A user with no assigned countries is not location-locked." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "No matching users." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Allowed countries…" msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:43 msgid "Saved." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Could not save." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Save" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Application password revoked." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Could not revoke." msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:51 msgid "Application passwords" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Application passwords are not available on this site." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Existing application passwords" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Application passwords authenticate the REST API and bypass two-factor. Review and revoke any you don’t recognise." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Revoke ALL application passwords for every user?" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Revoke all" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "No application passwords" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "No user has created an application password yet." msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:42 msgid "Name" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Created" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Last used" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Last IP" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "never" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Revoke this application password?" msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:44 msgid "Revoke" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Malware scanner" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Signature scan of wp-content plus a database injection scan." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "threat(s) found." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "No threats found." msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:35 msgid "Scan failed." msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Daily automatic scan" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Last scan:" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "threat(s)" msgstr "" #: assets/build/backend.1.2.2.js:29 #: assets/build/backend.1.2.2.js:31 msgid "Clean" msgstr "" #: assets/build/backend.1.2.2.js:29 msgid "Infected files" msgstr "" #. translators: %d: number of files. #: assets/build/backend.1.2.2.js:30 #, js-format msgid "Move %d flagged file(s) out of the site into quarantine? Nothing is deleted — each one can be restored from the list below." msgstr "" #. translators: 1: moved, 2: failed. #: assets/build/backend.1.2.2.js:31 #, js-format msgid "%1$d file(s) quarantined, %2$d could not be moved." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Could not quarantine the files." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Quarantine all" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "No flagged files." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Run a scan to check the filesystem." msgstr "" #: assets/build/backend.1.2.2.js:31 #: assets/build/backend.1.2.2.js:32 #: assets/build/backend.1.2.2.js:35 #: assets/build/backend.1.2.2.js:37 #: assets/build/backend.1.2.2.js:42 #: assets/build/backend.1.2.2.js:43 msgid "File" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Signature" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Quarantined" msgstr "" #: assets/build/backend.1.2.2.js:31 #: assets/build/backend.1.2.2.js:51 msgid "File quarantined." msgstr "" #: assets/build/backend.1.2.2.js:31 #: assets/build/backend.1.2.2.js:32 #: assets/build/backend.1.2.2.js:51 msgid "Quarantine" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Database findings" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Injected payloads in post content or auto-loaded options. Removing one strips the malicious block and snapshots the original to quarantine so it can be undone." msgstr "" #: assets/build/backend.1.2.2.js:31 #: assets/build/backend.1.2.2.js:43 msgid "Source" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Reference" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Match" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Review manually" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Remove the injected payload from this database entry? The original is snapshotted to quarantine so you can undo it." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Injected payload removed." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Could not clean the entry." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Quarantined files and cleaned database entries are held here and can be restored." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "DB" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Original restored." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Could not restore." msgstr "" #: assets/build/backend.1.2.2.js:31 #: assets/build/backend.1.2.2.js:51 msgid "Restore" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Plugin integrity (WordPress.org)" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Compare installed plugins against their official package to catch modified or injected files." msgstr "" #. translators: %d: number of plugins #: assets/build/backend.1.2.2.js:31 #, js-format msgid "%d plugin(s) could not be verified." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "All plugins checked." msgstr "" #. translators: 1: done, 2: total #: assets/build/backend.1.2.2.js:31 #, js-format msgid "Verifying %1$d / %2$d…" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Verify all" msgstr "" #. translators: %d: number of plugins #: assets/build/backend.1.2.2.js:31 #, js-format msgid "Filter %d plugins…" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Not on WP.org" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Verified clean" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "modified" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "extra" msgstr "" #: assets/build/backend.1.2.2.js:31 #: assets/build/backend.1.2.2.js:51 msgid "Verification failed." msgstr "" #. translators: %d: number of plugins #: assets/build/backend.1.2.2.js:31 #, js-format msgid "Show %d more" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Search failed." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Pick at least one place to search." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Search files & database" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Grep your whole site from here — find where a string lives across all wp-content files and the database (options, posts, meta, comments). Handy for tracking down an injected domain, base64_decode, eval, and the like. Read-only; nothing is changed." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "e.g. chickenroad.de or base64_decode" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Files (wp-content)" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Database" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Regular expression" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "match(es)" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "No matches" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "in files" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "in database" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "files scanned" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Results were capped. Must-use plugins, the active theme and drop-ins are always searched first, so injected code is still surfaced — narrow the term for the rest." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "File matches" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Line" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Database matches" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Table" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Row" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Nothing in your files or database matched that term." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Could not load this file." msgstr "" #. translators: %d: unchanged lines. #: assets/build/backend.1.2.2.js:31 #, js-format msgid "… %d unchanged lines …" msgstr "" #: assets/build/backend.1.2.2.js:31 #: assets/build/backend.1.2.2.js:43 msgid "Missing" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "This core file is not on your site." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "This file now matches the official copy." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Red (+) lines are in your file but not in the official copy; green (−) lines are in the official copy but missing from yours." msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "All plugins" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "All themes" msgstr "" #. translators: %d: number of findings. #: assets/build/backend.1.2.2.js:31 #, js-format msgid "%d issue(s)" msgstr "" #: assets/build/backend.1.2.2.js:31 msgid "Show fewer" msgstr "" #. translators: %d: total rows. #: assets/build/backend.1.2.2.js:31 #, js-format msgid "Show all %d" msgstr "" #. translators: 1: rows shown, 2: rows in total. #: assets/build/backend.1.2.2.js:32 #, js-format msgid "Showing %1$d of %2$d" msgstr "" #: assets/build/backend.1.2.2.js:32 msgid "What it does" msgstr "" #. translators: %s: file path. #: assets/build/backend.1.2.2.js:32 #, js-format msgid "Move %s into quarantine? It can be restored from Incident Response." msgstr "" #: assets/build/backend.1.2.2.js:32 msgid "Moved into quarantine." msgstr "" #: assets/build/backend.1.2.2.js:32 msgid "Could not move that file." msgstr "" #: assets/build/backend.1.2.2.js:32 msgid "Edit by hand" msgstr "" #: assets/build/backend.1.2.2.js:32 msgid "No .htaccess file grants execution or redirects traffic." msgstr "" #: assets/build/backend.1.2.2.js:32 msgid "Every installed plugin is current and present in the directory." msgstr "" #: assets/build/backend.1.2.2.js:32 msgid "Note" msgstr "" #: assets/build/backend.1.2.2.js:32 msgid "No must-use plugins, drop-ins, obfuscated code or suspicious cron found." msgstr "" #: assets/build/backend.1.2.2.js:32 #: assets/build/backend.1.2.2.js:51 msgid "Type" msgstr "" #: assets/build/backend.1.2.2.js:32 msgid "Path / hook" msgstr "" #: assets/build/backend.1.2.2.js:32 msgid "WordPress.org did not return checksums for this version." msgstr "" #: assets/build/backend.1.2.2.js:32 msgid "Could not check core files." msgstr "" #: assets/build/backend.1.2.2.js:32 msgid "Check core files" msgstr "" #: assets/build/backend.1.2.2.js:32 msgid "Also quarantine files core does not ship" msgstr "" #. translators: 1: core files, 2: foreign files. #: assets/build/backend.1.2.2.js:33 #, js-format msgid "Replace %1$d core file(s) with clean copies from WordPress.org and quarantine %2$d file(s) core does not ship? The current version of each is saved to quarantine first, and wp-content is not touched." msgstr "" #. translators: 1: restored, 2: quarantined, 3: failed. #: assets/build/backend.1.2.2.js:34 #, js-format msgid "%1$d core file(s) restored, %2$d quarantined, %3$d failed." msgstr "" #: assets/build/backend.1.2.2.js:34 msgid "Core repair failed." msgstr "" #. translators: %d: number of files. #: assets/build/backend.1.2.2.js:35 #, js-format msgid "Repair %d file(s)" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Core matches WordPress.org" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Why" msgstr "" #. translators: %s: file path. #: assets/build/backend.1.2.2.js:35 #, js-format msgid "%s marked as safe." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Could not mark that file." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Mark as safe" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Marked" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "changed since review" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "no longer exists" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "That file will be reported again." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Could not remove the mark." msgstr "" #: assets/build/backend.1.2.2.js:35 #: assets/build/backend.1.2.2.js:51 msgid "Run a scan automatically every day" msgstr "" #: assets/build/backend.1.2.2.js:35 #: assets/build/backend.1.2.2.js:51 msgid "Check core, plugins & themes for known vulnerabilities" msgstr "" #: assets/build/backend.1.2.2.js:35 #: assets/build/backend.1.2.2.js:51 msgid "Compares installed versions against the public WPVulnerability database (wpvulnerability.net) during the daily scan. Sends the slug and version of each installed plugin and theme, and your WordPress version, to that service. Off by default." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Test vulnerability feed" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Test WordPress.org connection" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Watch theme, must-use plugins & drop-ins for file changes" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Baselines these files and reports any that are added, modified or removed. Also scans files and the database for hidden spam-link injections that core checksums cannot see." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Also baseline" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Widen the same baseline to more of the install. Bigger trees make each scan slower, so add only what this site needs watched." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Detect links to malicious or spam sites" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Lists every external site your content links to and flags blocklisted, hidden/cloaked, or spam-category (gambling, pharma, adult…) domains — catching injected backlink spam." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Link blocklist" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "One domain per line. Any content that links to these (or their subdomains) is flagged." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Link allowlist" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "One domain per line. Trusted external sites to never flag. Your own domain is always allowed." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Auto-update enforcement" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Close the gap between a vulnerability being disclosed and this site being patched." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Auto-update vulnerable plugins & themes" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Automatically update anything the vulnerability scan above has flagged." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Auto-update all plugins" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Auto-update all themes" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Scan complete." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Clean baseline saved. Future scans compare against it." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Could not save the baseline." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Core file integrity" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "All core files match the official checksums." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Issue" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "View & fix" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Unexpected / foreign files" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Files that are not part of WordPress core and belong to no installed plugin — code hidden in wp-admin / wp-includes, loose files in the plugins folder, and plugins that run but never show on the Plugins screen." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "No unexpected files in core directories or the plugins folder." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Suspicious files" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Heuristic pattern check over uploads and must-use plugins." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "No suspicious files detected." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid ".htaccess rules" msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Rules that grant execution or send traffic elsewhere. Directory lock-downs written by plugins are not listed — only directives that hand something out." msgstr "" #: assets/build/backend.1.2.2.js:35 msgid "Baseline integrity of your active theme, must-use plugins and drop-ins — plus hidden spam-link injection checks across those files and the database." msgstr "" #. translators: 1: changed file count, 2: injection count. #: assets/build/backend.1.2.2.js:36 #, js-format msgid "%1$d changed · %2$d injection(s)" msgstr "" #: assets/build/backend.1.2.2.js:36 msgid "Set current files as clean baseline" msgstr "" #. translators: 1: number of baselined files, 2: date/time. #: assets/build/backend.1.2.2.js:37 #, js-format msgid "Baseline: %1$d files · %2$s" msgstr "" #: assets/build/backend.1.2.2.js:37 msgid "No baseline captured yet" msgstr "" #: assets/build/backend.1.2.2.js:37 msgid "Baseline captured for the first time — later scans will flag any added, modified or deleted file. Anything already present is still checked by the injection scan below." msgstr "" #: assets/build/backend.1.2.2.js:37 msgid "Injected code / hidden spam links" msgstr "" #: assets/build/backend.1.2.2.js:37 msgid "Changed files since baseline" msgstr "" #: assets/build/backend.1.2.2.js:37 msgid "No file changes or code injections detected." msgstr "" #: assets/build/backend.1.2.2.js:37 msgid "Linked sites (outbound links)" msgstr "" #. translators: 1: external domain count, 2: total link count. #: assets/build/backend.1.2.2.js:38 #, js-format msgid "Your content links to %1$d external domain(s) across %2$d link(s). Flagged rows are blocklisted, hidden/cloaked, or match a spam category." msgstr "" #. translators: %d: number of external domains. #: assets/build/backend.1.2.2.js:39 #, js-format msgid "%d domain(s) · clean" msgstr "" #: assets/build/backend.1.2.2.js:39 msgid "No links to blocklisted, hidden or spam-category sites." msgstr "" #: assets/build/backend.1.2.2.js:39 msgid "Domain" msgstr "" #: assets/build/backend.1.2.2.js:39 msgid "Links" msgstr "" #: assets/build/backend.1.2.2.js:39 msgid "Scanned" msgstr "" #: assets/build/backend.1.2.2.js:39 msgid "No known vulnerabilities in your installed core, plugins or themes." msgstr "" #: assets/build/backend.1.2.2.js:39 msgid "Component" msgstr "" #: assets/build/backend.1.2.2.js:39 msgid "Vulnerability" msgstr "" #: assets/build/backend.1.2.2.js:39 msgid "Fixed in" msgstr "" #: assets/build/backend.1.2.2.js:39 msgid "Auto-executed code (mu-plugins & drop-ins)" msgstr "" #: assets/build/backend.1.2.2.js:39 msgid "Every PHP file WordPress auto-runs from wp-content/mu-plugins, plus drop-ins like db.php and object-cache.php. None appear on the Plugins screen — review anything you did not install, especially a headerless file or an unexpected drop-in." msgstr "" #. translators: %d: number of auto-executed files. #: assets/build/backend.1.2.2.js:40 #, js-format msgid "%d file(s) · clean" msgstr "" #. translators: %s: mu-plugins directory path. #: assets/build/backend.1.2.2.js:41 #, js-format msgid "The must-use plugins directory has been relocated to %s via WPMU_PLUGIN_DIR. If you did not set this, treat it as a compromise." msgstr "" #: assets/build/backend.1.2.2.js:41 msgid "A must-use plugin loads PHP from a subfolder. That is a legitimate pattern, but also how malware hides its payload one level down — review any nested files flagged below." msgstr "" #. translators: %d: number of flagged files. #: assets/build/backend.1.2.2.js:42 #, js-format msgid "%d auto-loaded file(s) look suspicious. A hidden back-door often lives here — review the flagged rows below." msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "Modified" msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "drop-in" msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "nested" msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "Malicious" msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "Placeholder" msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "No must-use plugins or drop-ins are installed." msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "Supply chain" msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "Installed plugins cross-checked against the WordPress.org directory — removed (possible takedown), abandoned, or outdated." msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "Re-check" msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "Persistence checks" msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "Places attackers hide to survive a cleanup: must-use plugins, drop-ins, obfuscated code and suspicious cron." msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "Files marked as safe" msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "Reviewed by you and skipped by every scan. A mark covers the exact contents that were reviewed — if the file changes, it is reported again." msgstr "" #. translators: %d: number of files. #: assets/build/backend.1.2.2.js:42 #, js-format msgid "%d file(s)" msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "Collapse all" msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "Expand all" msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "Integrity & files" msgstr "" #: assets/build/backend.1.2.2.js:42 msgid "Malware & recovery" msgstr "" #. translators: %d: number of findings. #: assets/build/backend.1.2.2.js:43 #, js-format msgid "%d issue(s) need attention" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "No issues found" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "No scan yet" msgstr "" #. translators: %s: WordPress version. #: assets/build/backend.1.2.2.js:43 #, js-format msgid "WordPress %s" msgstr "" #. translators: %s: date and time. #: assets/build/backend.1.2.2.js:43 #, js-format msgid "Last scan %s" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Daily scan on" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Daily scan off" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "No file scan has run yet — start one to also check core files, uploads and outbound links." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Run scan now" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Scan settings" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "What each scan looks at, and what happens automatically." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Other checks" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Checks" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Verified · WordPress.org" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Not on WordPress.org" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Modified — differs from .org" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Could not check" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Not checked yet" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "On WordPress.org" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Trusted" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Edited since trusted" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Not trusted" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Force-deactivated" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Must-use plugin quarantined" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Install blocked" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Executable upload blocked" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Install Lock lifted" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Anyone with the right role can upload and install plugins and themes as usual." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Recommended. Nobody — administrators included — can upload a plugin or theme .zip. Installing from the WordPress.org directory and updating still work. Zip uploads are how custom backdoors usually get in." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "No new plugins or themes at all, from uploads or the directory. Updates of what is installed still work." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "The site is frozen: no installs, updates (including automatic and translation updates), deletes or code editing. Use for sites that should never change; remember to unlock for maintenance." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "User accounts" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Registrations, role changes, deletions and profile edits." msgstr "" #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:51 msgid "Plugins & themes" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Activation, deactivation, installation, updates and deletion." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Settings changes" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Edits to WordPress options, including by other plugins." msgstr "" #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:51 msgid "Content" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Posts and pages created, edited, published or deleted. The noisiest source on an active site." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "What gets logged" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Choose which activity is recorded. Security events — logins, firewall blocks, scans, bans — are always logged and are not affected by these." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Record activity in the audit log" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Turning this off stops all of the below. Anything already logged is kept." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Pattern added to blocklist." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Could not add pattern." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "(removed)" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "New outbound links:" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Via" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Login session" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Compare / restore revision" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "History of this post" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Attention" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "An administrator signs in" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Someone signs in from an unrecognised device" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Device tracking is off, so no device is ever unrecognised." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "A rogue administrator is blocked" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "An administrator hidden from the users list is found" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Hidden-administrator detection is off, so nothing looks for one." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "An application password is created" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Application passwords are switched off site-wide, so none can be created." msgstr "" #: assets/build/backend.1.2.2.js:43 #, js-format msgid "%s activated — its menu is now available." msgstr "" #: assets/build/backend.1.2.2.js:43 #, js-format msgid "%s deactivated — removed from the menu." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Could not update the module. Please try again." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Loading modules…" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Security modules" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Turn features on or off. Inactive modules don’t load their pages, settings or background code — keep only what this site needs." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Search modules" msgstr "" #. translators: 1: active, 2: total #: assets/build/backend.1.2.2.js:43 #, js-format msgid "%1$d of %2$d on" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Master switch for request-level protections and the IP blocklist." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Enable firewall" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "IP blocklist" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "One IP address or CIDR range per line. Your own IP address cannot be added, and safelisted addresses are never blocked." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "IP safelist" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Addresses that are never blocked, banned or rate-limited, even when logged out. Add your office or home IP so you can always reach the login page." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Your current IP:" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Add to safelist" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Site protection" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Stop a compromised or careless admin account from switching protection off or uploading files." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Turn off all file uploads" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Blocks uploads everywhere: Media Library, REST API, XML-RPC and plugin/theme zip uploads. Also available from the GemSecurity menu in the admin bar." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Real visitor IP detection" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Every ban, rate-limit and geolocation rule relies on knowing the visitor’s real IP. Forwarding headers (X-Forwarded-For, CF-Connecting-IP) can be sent by anyone, so they’re only trusted from a proxy you name here — everyone else always resolves to the raw connection IP." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "This site is behind Cloudflare" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Trusts CF-Connecting-IP, but only for requests actually arriving from Cloudflare’s published IP ranges." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Other trusted proxies" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "For a custom load balancer, Varnish, or a CDN other than Cloudflare. One IP or CIDR range per line — only requests arriving from these addresses get their X-Forwarded-For / X-Real-IP header trusted. Leave empty if the site isn’t behind a proxy; an overly broad range (e.g. 0.0.0.0/0) defeats this protection entirely." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Hardening" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Recommended switches that close common WordPress attack surfaces." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Web Application Firewall" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Inspect incoming requests and block common attack patterns. Administrators are always exempt." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Enable request inspection (WAF)" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Block SQL injection" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Block cross-site scripting (XSS)" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Block path traversal / file inclusion" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Block remote code execution patterns" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Also inspect POST request bodies" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Stronger, but can false-positive on legitimate form content." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Rate limiting & throttling" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Cap how hard a single IP can hit the front end. REST API requests are limited separately on the API & Access page." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Limit request rate per IP" msgstr "" #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:51 msgid "Max requests" msgstr "" #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:51 msgid "Per window" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Throttle 404 floods (vulnerability scanners)" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Max 404s" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Username enumeration" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Stop the site handing out valid usernames before an attacker even tries a password." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Send hardening response headers on the front-end, admin and login pages." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Enable security headers" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "X-Frame-Options" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Clickjacking protection." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Referrer-Policy" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "X-Content-Type-Options: nosniff" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Permissions-Policy" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "HSTS (Strict-Transport-Security)" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Only sent over HTTPS. Be careful: forces HTTPS for the max-age duration." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Max-age" msgstr "" #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:51 msgid "seconds" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Include subdomains" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Preload" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Content-Security-Policy" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Advanced — a wrong policy can break your site. Start in report-only mode." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "CSP directives" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Report-only (do not enforce)" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Log violations without blocking. Turn off to enforce the policy." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Collect violation reports" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Send browser CSP violations to GemSecurity and list them below." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Bot control" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Govern automated traffic in one place: known-bad scanners, AI scrapers and crawlers that impersonate search engines. Custom user-agent patterns and bot analytics are on the Threat Defense page." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Block malicious bots & scanners" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Blocks known-bad user agents such as sqlmap, nikto and nuclei." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Also block empty / missing user agents" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Requests that send no User-Agent header at all are almost always bots or scanners." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Block AI crawlers & scrapers" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Deny GPTBot, ClaudeBot, CCBot, PerplexityBot, Bytespider and other AI/scraper user-agents." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Verify search-engine bots" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Confirm Googlebot / Bingbot / YandexBot / Applebot via reverse DNS and block spoofed impostors (a common way to bypass firewalls)." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Hardening pack" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Extra request-level protections: restrict wp-admin by IP, deny sensitive files, stop PHP running in uploads and force HTTPS." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Restrict wp-admin by IP" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Only the IPs below may reach wp-admin. An empty list never locks anyone out." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Allowed IPs" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "One IP or CIDR range per line. This is a network allowlist for wp-admin — the approved-administrator list on the Admin Guard page is about accounts, not addresses." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Block sensitive files" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Denies readme.html, license.txt, *.sql, *.bak, debug.log, dotfiles and similar." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Block PHP execution in /uploads" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Adds a server rule to uploads/.htaccess so uploaded PHP shells cannot run (Apache / LiteSpeed). On nginx, Upload Shield's live test shows whether PHP there still executes." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Force HTTPS" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Redirect HTTP to HTTPS and upgrade insecure requests." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "security.txt" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Publish /.well-known/security.txt (RFC 9116) so researchers know how to report vulnerabilities." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Serve security.txt" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Contact" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Email or URL. Defaults to the admin email." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "ISO 8601 date. Defaults to one year out." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Policy URL (optional)" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Escalating auto-ban" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Automatically ban IPs that keep tripping the firewall, WAF, rate limits or login lockouts." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Enable auto-ban" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Strikes before ban" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Strike window" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Ban duration" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "minutes (0 = forever)" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Extended protection (run firewall before other plugins)" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Installs a must-use plugin so banned IPs and obvious attacks are blocked earlier, before WordPress fully loads." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Advanced detection" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Behavioral scoring and credential-stuffing detection catch attacks that fixed rules and volumetric bans miss." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Behavioral anomaly detection" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Score each request for suspicious shape (bad UA, huge payloads, encoded exploits) and log anomalies." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Anomaly score threshold" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Credential-stuffing detection" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Ban an IP that tries many different usernames in a short window." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Distinct usernames before ban" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Live traffic monitor" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Record recent front-end requests for real-time triage (adds a small write per request)." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Virtual patching" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Blocks exploit attempts against known vulnerabilities in your installed plugins and themes — even when no update exists yet. Only rules that match this site’s software are enforced." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "protections active" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Enable virtual patching" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Shields currently active" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Each row is a protection that is switched on and blocking attacks right now. Nothing here is a problem with your site, and there is nothing to fix — the severity shown is how dangerous the attack would be if it were not blocked." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Nothing to mitigate right now" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "No installed plugin or theme matches a known-vulnerability rule. New rules arrive automatically with the Pro feed." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "CVE / Rule" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Blocks" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Applies to" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Attack severity" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "every request (always on)" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Blocking" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Could not load Plugin Guard." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Request failed." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "must-use" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Trust removed." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Remove trust" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Marked trusted." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Trust" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Only plugins verified against WordPress.org, or marked trusted by you, can run or be installed. Anything else — including a must-use plugin dropped in by an attacker — is stopped, and you get a DANGER email." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Enforcing" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Report only" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "GEMSECURITY_PLUGIN_GUARD_OFF is defined in wp-config.php, so enforcement is disabled." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "The optional early loader (provided by GemSecurity Pro) is not active. Untrusted plugins are still blocked from activating, but one switched on directly in the database can run once before it is deactivated." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Verified on WordPress.org" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Trusted by you" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Modified from the .org release" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Blocked (not verified or trusted)" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Would be blocked" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Re-checked against WordPress.org." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Re-check against WordPress.org" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Turn enforcement off? Untrusted plugins will be able to run again." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Enforcement off." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Turn enforcement off" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Turn on enforcement…" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Choose what to trust" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "These are not verified on WordPress.org. Ticked items are trusted and keep running; unticked ones are deactivated (plugins) or quarantined (must-use plugins) as soon as you confirm. Untick anything you do not recognise." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Everything is verified" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Nothing will be blocked." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Looks tampered" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "inactive" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Plugin Guard is now enforcing." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Trust selected & turn on" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Install Lock" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "off" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "on" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Upload Shield" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Must-use" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Themes" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Pre-approve" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Installed plugins" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "active" msgstr "" #. translators: %s user #: assets/build/backend.1.2.2.js:43 #, js-format msgid "Trusted by %s" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Takes away the ability to add plugins and themes — for every account, administrators included — so a stolen admin password cannot be used to upload a backdoor. Unlock for a few minutes when you need to install something." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Temporarily unlocked" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "DISALLOW_FILE_MODS is already set in wp-config.php, which blocks all installs and updates regardless of this setting." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Freeze mode also stops security updates. Continue?" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Install Lock updated." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Unlocked — re-locks in" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Lock now" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Unlocked for 15 minutes." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Unlock for 15 minutes" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Unlocking is logged and sends an alert email. WP-CLI and direct file access (FTP/SSH) are not affected — Plugin Guard enforcement still stops untrusted code they add from running." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Refuses any uploaded file that can run code on the server — on every upload path: the media library, forms, page builders, file-manager plugins and the REST API. It checks every part of the file name (so \"shell.php.jpg\" is caught) and the file content (so a picture with PHP hidden inside is caught too)." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "On" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Block executable uploads" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Recommended. A .php (or similar) file is never a legitimate upload." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Upload Shield on." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Upload Shield off." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Also block SVG, HTML and JavaScript files" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "These can carry script that runs in visitors’ browsers. Leave off if you upload SVG logos — SVGs containing script are refused either way." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Block the uploader’s IP address" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Bans the IP behind a refused upload and adds its location (country, city, network) to the alert. Administrators are never banned." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Ban length" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Permanent" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Blocked extensions:" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Can PHP run where it should not?" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Last line of defence: even if a file reaches uploads, wp-includes, languages or upgrade some other way (an exploited plugin, FTP), it must not be able to run. The test places a harmless PHP file in uploads, requests it, and deletes it." msgstr "" #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:47 msgid "Protected" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "PHP executes!" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Unknown" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Deny rules are installed in .htaccess (used by Apache and LiteSpeed) for:" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Deny rules are not (fully) installed for:" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "This server ignores .htaccess. Ask your host to add this to the site’s nginx config:" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Test finished." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Run test" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Must-use plugins" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Must-use plugins run on every request and cannot be switched off from wp-admin. They are trusted by exact content — if a trusted file is edited, it loses its trust and is quarantined." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "No must-use plugins" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Trusted at its current content." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Trust new version" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Quarantined by Plugin Guard" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Moved out of mu-plugins before they could run. Restore only a file you recognise — it is trusted on restore." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Nothing quarantined" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Installed themes" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "WordPress.org publishes no theme checksums, so themes are matched by name. Installing a theme that is not on WordPress.org needs it to be trusted first." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Theme" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Pre-approve an upload" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Before uploading a premium or custom plugin/theme zip, add its folder name here. Uploads that are not on WordPress.org and not listed here are refused." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Enter only the folder name — e.g. \"academy\", not \"academy/academy.php\"." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "It is the top-level folder inside the zip, which can differ from the zip file name: \"academy-pro-2.1.0.zip\" usually contains \"academy-pro\"." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Allowed characters: lowercase letters, numbers, dot, dash and underscore." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Trust is by folder name, so it also covers future updates of that plugin or theme." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Pre-approved. You can upload it now." msgstr "" #. translators: 1 user 2 date #: assets/build/backend.1.2.2.js:43 #, js-format msgid "by %1$s on %2$s · not installed yet" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Blocked activity" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Each of these also sent a DANGER email (at most once per item every 12 hours)." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Nothing blocked yet" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "What" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "User / IP" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Limit failed login attempts and lock out offending IP addresses." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Limit login attempts" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Block further attempts from an IP once the limit is reached." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Max attempts" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Lockout duration" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Administrator login alerts" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Send an email notification whenever an administrator signs in." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Email me when an administrator logs in" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "The alert — user, time, IP and browser — goes to the security email on the Notifications page, along with every other notification the plugin sends." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Administrator session timeout" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Force administrators to be logged out automatically after a fixed period — even with “remember me”." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Auto-logout administrators" msgstr "" #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:44 msgid "Log out after" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "hours" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Default is 24 hours. Applies from the moment the administrator signed in." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Password policy" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Enforce strong passwords on every account and reject leaked ones." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Enforce password policy" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Minimum length" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "characters" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Expire passwords after" msgstr "" #: assets/build/backend.1.2.2.js:43 #: assets/build/backend.1.2.2.js:51 msgid "days (0 = never)" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Require mixed case, number & symbol" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Reject passwords found in data breaches" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Checks Have I Been Pwned using k-anonymity (the password is never sent)." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Test connection" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Custom login URL" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Hide wp-login.php behind a secret address to stop automated login attacks." msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Enable custom login URL" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Login slug" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Your login page will be:" msgstr "" #: assets/build/backend.1.2.2.js:43 msgid "Lowercase letters, numbers and hyphens. Anything else is converted, and addresses WordPress already owns (wp-admin, login, admin…) cannot be used." msgstr "" #. translators: 1: typed slug, 2: slug that will be saved. #: assets/build/backend.1.2.2.js:44 #, js-format msgid "“%1$s” will be saved as “%2$s” — that is the address to bookmark." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "That slug cannot be used, so the custom login URL will stay switched off and wp-login.php will remain reachable. Pick another." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Bookmark the new URL before you save. wp-admin will stop redirecting to the login page — that redirect is what would otherwise give the address away — so visiting it while logged out sends you to the front page instead." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "If you ever get locked out, add this line to wp-config.php:" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Public login links go to" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Plugins and themes print “Log in” links on public pages. For visitors who are not signed in, those links point here instead of the secret address, so no page gives it away. Pick your members’ login page (for example your course dashboard) or leave it on the homepage. Signed-in users and the login screen itself still use the real address." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Homepage" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Idle session timeout" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Automatically log users out after a period of inactivity." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Enable idle timeout" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "minutes idle" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Login honeypot" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "A hidden field bots fill in but humans never see — an instant, frictionless bot trap that feeds the ban ledger." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Enable login honeypot" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Trusted devices & recovery" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "New-device sign-in alerts and one-time magic-link recovery." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Trusted devices" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Fingerprint each successful login and alert on unrecognised devices." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Track devices & detect new ones" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Email the user on a new-device sign-in" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Magic-link recovery" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Email a legitimate user a one-time, 15-minute login link — even if their IP is locked out." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Enable magic-link recovery" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Provider chosen" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Shown on a form" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Turn on at least one form" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Keys look valid" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Site key is an email address" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Both keys entered" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Enter both keys" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Keys verified" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "The test token passed" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "The last test failed" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Run “Verify keys” after fixing" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Protecting your forms" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Not protecting yet — keys need fixing" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "A bot check on your login, registration and reset forms." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Enabled" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Choose a provider" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "All three are free." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Use reCAPTCHA v3 (invisible) instead" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Add your keys" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Register your site in the" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "then paste both keys here." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Site key" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "public" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "This looks like an email, not a site key. Your browser may have autofilled it." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Secret key" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "stays on your server" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Show or hide the secret key" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Stays on your server. Use the eye to check it." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "v3 score threshold" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "0.0–1.0; requests scoring below this are blocked (0.5 recommended)." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Where to show it" msgstr "" #. translators: 1: on, 2: total #: assets/build/backend.1.2.2.js:44 #, js-format msgid "Shown on %1$d of %2$d forms." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Comment form" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Lives with the other comment controls" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Set up in Anti-Spam" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Live preview" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Register" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Reset" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Password" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Protected by" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "I’m not a robot" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Log In" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Get New Password" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Preview only — the real widget appears after keys are verified." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Ready to protect?" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Sign-in worked — credentials verified." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Social login" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Let users sign in with their existing accounts." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Enable social login" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Shows the buttons of providers whose credentials are verified on the WordPress login form." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Authorized redirect URI" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Paste this exact URL into each provider’s OAuth app settings." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Redirect URI copied." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Copy" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Account behavior" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Allow new account registration" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Create a WordPress account when someone signs in with a provider for the first time." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Link to existing accounts by email" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "If the provider email matches an existing user, link the accounts instead of creating a new one." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Default role for new accounts" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Magic login" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Let users sign in without a password using a one-time link sent to their email." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Enable magic login" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Adds an “Email me a sign-in link” option to the login form." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Link validity" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "A link works once and stops working after this long." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Who can use it" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Allow administrators" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Off by default. Anyone who can read an administrator’s mailbox could sign in as them." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Limit to these roles" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Leave empty to allow every role (administrators still need the switch above)." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Two-factor" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Require two-factor after the link" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Users who have two-factor (or whose role requires it) are asked for their code after opening the link. Only applies while the Two-Factor system is on." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Could not load temporary access." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Temporary access" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Give an existing user a role for a limited time. It is taken back automatically — on expiry, or when you revoke it — and their sessions end at once." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Grants" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "No temporary access" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Grant a role to an existing user for a limited time." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Role granted" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Latest activity" msgstr "" #. translators: %s: role names. #: assets/build/backend.1.2.2.js:44 #, js-format msgid "was: %s" msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Hide" msgstr "" #: assets/build/backend.1.2.2.js:44 #: assets/build/setup.1.2.2.js:17 msgid "View" msgstr "" #. translators: %s: email. #: assets/build/backend.1.2.2.js:44 #, js-format msgid "Revoke access for %s now? Their previous role is restored and their sessions end immediately." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "Access revoked." msgstr "" #: assets/build/backend.1.2.2.js:44 msgid "That did not work." msgstr "" #. translators: 1: username, 2: who granted it. #: assets/build/backend.1.2.2.js:45 #, js-format msgid "Username %1$s · granted by %2$s" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Email me when…" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Notices go to the security notification address." msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Access is granted" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Access is revoked" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Geolocation access control" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Allow or block sign-ins based on the visitor’s country." msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Enable geolocation" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Master switch for every rule below." msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Test country lookup" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Your current detected location:" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "unknown" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Locked out by a rule? Add define( 'GEMSEC_GEO_DISABLE', true ); to wp-config.php to disable all geolocation gating." msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Visitor countries" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Choose which countries may reach your site. Include only the countries you list, or exclude the ones you list." msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Mode" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Include — only the selected countries are allowed" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Exclude — the selected countries are blocked" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Blocked countries" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Allowed countries" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Visitors from these countries get a 403. Leave empty to block nobody." msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Leave empty to allow all." msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Select countries…" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Block sign-in from other countries" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Reject logins from outside the allowed list." msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Block entire site from other countries" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Return a 403 for all visitors outside the allowed list (logged-in admins are exempt)." msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Block when the country is unknown" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "By default unknown/local IPs are allowed so you are never locked out. Turn on only if you are sure." msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Also apply the login block to administrators" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Off by default so an admin can always recover. Enabling this can lock out admins who travel." msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Administrator sign-in location" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Administrators can only sign in from the countries you choose. Outside them, or when the country cannot be worked out, the login is refused." msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Restrict administrator sign-in to selected countries" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Include your own country and any you travel to, or you will lock yourself out. Recovery: add define( 'GEMSEC_GEO_DISABLE', true ); to wp-config.php." msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Countries administrators can sign in from" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Your current country is not in this list." msgstr "" #: assets/build/backend.1.2.2.js:45 #: assets/build/backend.1.2.2.js:51 msgid "Add" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Per-user location lock" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Restrict individual users to their own approved countries." msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Enable per-user location lock" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "When a user signs in from a new country" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Email a verification code (recommended)" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "Block the login" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "delete" msgstr "" #: assets/build/backend.1.2.2.js:45 msgid "demote" msgstr "" #. translators: 1: action verb, 2: username. #: assets/build/backend.1.2.2.js:46 #, js-format msgid "Are you sure you want to %1$s the administrator \"%2$s\"? This cannot be undone." msgstr "" #: assets/build/backend.1.2.2.js:46 msgid "Could not remove that administrator." msgstr "" #: assets/build/backend.1.2.2.js:46 msgid "Protected account" msgstr "" #: assets/build/backend.1.2.2.js:46 msgid "Demote" msgstr "" #: assets/build/backend.1.2.2.js:46 #: assets/build/backend.1.2.2.js:51 msgid "Delete" msgstr "" #: assets/build/backend.1.2.2.js:46 msgid "Hidden administrator detected" msgstr "" #. translators: 1: database admin count, 2: count visible in wp-admin. #: assets/build/backend.1.2.2.js:47 #, js-format msgid "Your database contains %1$d administrator account(s) but only %2$d are visible on the WordPress Users screen. An account that is present but hidden from the list is a strong sign the site has been compromised — malicious code is filtering it out so it cannot be removed the normal way." msgstr "" #: assets/build/backend.1.2.2.js:47 #: assets/build/backend.1.2.2.js:51 msgid "Hidden" msgstr "" #: assets/build/backend.1.2.2.js:47 #, js-format msgid "ID %d" msgstr "" #: assets/build/backend.1.2.2.js:47 #, js-format msgid "registered %s" msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "After removing the account, run a full malware scan (Malware Scan detects the code that hides admins) and rotate every administrator password — the entry point that created this account is likely still present." msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "Suspicious administrator account" msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "These administrator accounts have hallmarks of an injected back-door (for example a non-routable e-mail address). Review each one — if you do not recognise it, remove it and run a malware scan." msgstr "" #: assets/build/backend.1.2.2.js:47 #: assets/build/backend.1.2.2.js:51 msgid "Suspicious" msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "How the Admin Guard works" msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "When enabled, any administrator account whose email is not on the whitelist is automatically removed. A brand-new account that registers as an administrator is deleted; an existing user promoted to administrator is reverted (or deleted) per your chosen action. Your own account, user ID 1, the site-owner email and multisite super admins are always protected." msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "Whitelist guard" msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "Enforce the administrator whitelist" msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "Auto-remove unapproved administrators." msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "Your own administrator account is not on the whitelist. Add it below before saving, or you risk losing admin access." msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "Action for promoted users" msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "What to do when an existing user is escalated to administrator without approval." msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "Demote to previous role (safer)" msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "Delete the account" msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "Email the site owner when a rogue admin is blocked" msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "Existing administrators" msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "The whitelist is swept hourly, and whenever you change it, so unapproved accounts that never sign in are removed too. Check what that would affect here." msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "Check for unapproved admins" msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "Delete them now" msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "Demote them now" msgstr "" #: assets/build/backend.1.2.2.js:47 msgid "The sweep does not run while the whitelist is empty or the guard is off — otherwise every administrator would count as unapproved." msgstr "" #. translators: 1: count, 2: demoted|deleted #: assets/build/backend.1.2.2.js:48 #, js-format msgid "%1$d unapproved administrator(s) %2$s." msgstr "" #. translators: 1: checked, 2: count, 3: delete|demote #: assets/build/backend.1.2.2.js:49 #, js-format msgid "Checked %1$d administrator(s): %2$d not on the whitelist and would be %3$s." msgstr "" #. translators: %s: comma-separated usernames #: assets/build/backend.1.2.2.js:50 #, js-format msgid "Protected, never removed: %s" msgstr "" #: assets/build/backend.1.2.2.js:50 msgid "Hidden administrator detection" msgstr "" #: assets/build/backend.1.2.2.js:50 msgid "Reconciles the real administrator list in the database against what the Users screen shows, exposing back-door accounts that malware hides with a query filter." msgstr "" #: assets/build/backend.1.2.2.js:50 msgid "Detect hidden administrators" msgstr "" #: assets/build/backend.1.2.2.js:50 msgid "Runs on the daily scan, when the Users screen is opened, and whenever this page is loaded." msgstr "" #: assets/build/backend.1.2.2.js:50 msgid "Email the site owner when a hidden admin is detected" msgstr "" #. translators: %d: administrator count. #: assets/build/backend.1.2.2.js:51 #, js-format msgid "All %d administrator account(s) are accounted for — none are hidden or suspicious." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Approved administrators" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Check every administrator that should be allowed to keep their role. Unapproved accounts you do not recognise can be removed directly." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "You" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Approved" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Not approved" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Other approved emails" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Pre-approve an email address…" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "REST API" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "The REST API is a common unauthenticated attack and recon surface. Rate-limit it for anonymous callers (logged-in administrators are never throttled)." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Rate-limit the REST API" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Throttle anonymous REST requests per IP." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Application passwords grant long-lived REST access and bypass two-factor. Govern them here." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Disable application passwords site-wide" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Turn the feature off entirely (also hides it from user profiles)." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Email an alert when a new one is created" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Auto-expire after" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Application passwords older than this are deleted on the daily scan." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Comments" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Comments are a common spam and malicious-content vector. If the site does not use them, closing them entirely removes the surface." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Disable comments entirely" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Closes comments and pingbacks everywhere, hides existing ones and removes the comment UI. The rest of this page has no effect while this is on." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Silent bot protection" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "A hidden honeypot plus a minimum time-on-page check stops automated comment and registration spam — with no puzzle for real visitors." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Enable silent anti-spam" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Applies to comment and registration forms." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Minimum time before submit" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Submissions faster than this are treated as bots." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Also show a CAPTCHA on the comment form" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "A visible challenge on top of the silent checks. Configure the provider on the CAPTCHA page; without one this does nothing." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Heuristic comment filtering" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Score comment content and auto-flag spam." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Comment heuristics" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Auto-flag spammy comments" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Max links before spam" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Spam keywords" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "One per line. A comment containing any of these is flagged. Your link blocklist is also checked." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Payment-page integrity" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Detects unauthorised scripts injected into your checkout — the Magecart card-skimming pattern — and satisfies PCI-DSS 4.0 §6.4.3 / §11.6.1." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Monitor payment-page scripts" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Adds a lightweight collector to checkout pages that reports which scripts the browser loaded." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Extra payment page IDs" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "WooCommerce checkout is detected automatically. Add other checkout page IDs here (one per line)." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Unauthorised scripts detected" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "New scripts appeared on your payment page that are not in the authorised baseline. Investigate immediately." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Script" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Page" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Authorised script inventory" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Latest scripts seen on a payment page. Authorise them to set your baseline." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Visit your checkout page once with monitoring on to capture the script inventory." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Current scripts authorised as the baseline." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "The script list changed since you opened this page. Review the refreshed list, then authorise again." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Authorise current" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "No inventory yet" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Load your checkout page once to populate this." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Captured from:" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "check this is really your checkout page before authorising." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "authorised" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "unauthorised" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "pending" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Recovery actions" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Immediate containment steps after a suspected compromise. Each is destructive — read what it does before clicking." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Log everyone out" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Destroys every active session site-wide, which stops a hijacked session immediately." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Log out every user on the site? Everyone, including you, will need to sign in again." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "All sessions cleared." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Log out everyone" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Regenerate keys & salts" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Rewrites the wp-config.php secret keys (backed up first) and invalidates every auth cookie." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Regenerate security keys & salts? This rewrites wp-config.php and signs everyone out immediately." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Keys regenerated — you will be signed out." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Could not regenerate keys." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Regenerate" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Roll back to last clean backup" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Restores the most recent completed GemBackup backup over the current files and database." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "No completed backup found to restore." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Restore the most recent backup" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "This overwrites current files and database." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Rollback started from the latest backup." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Could not start rollback." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Restore latest backup" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Forensic timeline" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Warning & critical security events across auth, files, firewall and admin — the last 7 days." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Refresh" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Nothing notable" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "No warning or critical events in the window." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Category" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Message" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Move a suspicious file out of harm’s way (reversible) instead of deleting it. This is the whole site’s quarantine — anything the malware scanner moved shows up here too." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "File path (relative to WordPress root)" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "database" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "file" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Restore from the malware scanner" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Restored." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Activity log" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "events" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Export failed." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Export CSV" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Clear all activity logs? This cannot be undone." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Logs cleared." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Clear logs" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "All categories" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Login & 2FA" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Bots" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Users" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "All severities" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Info" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Notice" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Warning" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Search message or IP…" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "User:" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Post" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "No events" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Nothing matches your filters yet." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "User / UA" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Hide details" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Show everything this user did" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Previous" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Next" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Watches for the early-warning signs of trouble outside the request path: certificate expiry, DNS changes, downtime and email-auth gaps." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Run checks now" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Enable daily monitoring & alerts" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Warnings go to the security email on the Notifications page, along with every other notification the plugin sends." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Last checked" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Site reachable" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "TLS certificate" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "days left" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "DNS A record" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "SPF record" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Not found" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "DMARC record" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "DKIM is selector-specific and can’t be auto-detected; verify it with your email provider." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Where alerts go" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "One address and one set of channels for the whole plugin — real-time alerts, the daily report, the weekly digest, backup failures and monitoring notices all use these." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Security email" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Every notification the plugin sends goes here. Leave empty to use the WordPress admin email." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Defaults to the admin email" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Send a test email" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Enable real-time alerts" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Send an email — and a message to each channel below — as soon as a qualifying event is logged." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Alert on severity" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Critical only" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Warning & above" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Notice & above" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Slack incoming webhook URL" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Send a test message" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Telegram bot token" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Telegram chat ID" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Test bot & chat" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Generic webhook URL" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Send a test event" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "What you get told about" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Every event a module can raise. Each switch also lives on the page of the module that raises it — changing it in either place changes the same setting." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Real-time alerts are off, so these events are still recorded in the log but nothing is sent. Switch them on above." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "No module that raises alerts is active yet." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Trusted-device tracking is part of GemSecurity Pro." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Sent on a schedule" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Mail that arrives whether or not anything happened — the quiet weeks are the point." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Daily report sent." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Could not send the report." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Send a report now" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Email a daily report" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "A morning email listing every administrator and active plugin, and anything that changed since yesterday — so an unexpected change is visible even when no alert fired." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Send at" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "In your site’s timezone." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Send a weekly security digest" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "A summary email (and channel message) every week." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Daily security scan" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Not a notification itself — it is what finds most of what you get notified about." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "General settings" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Plugin-wide preferences. Firewall, login and admin options live on their own pages." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Log retention" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Activity log entries older than this are pruned daily. Set to 0 to keep them forever." msgstr "" #: assets/build/backend.1.2.2.js:51 #: assets/build/backend.1.2.2.js:53 msgid "Compliance & SIEM" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Tamper-evident logging and forwarding for GDPR / PCI / SOC2 evidence." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Verify integrity" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Could not generate report." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Download report" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Tamper-evident audit log" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Hash-chain each log entry so any edit or deletion is detectable." msgstr "" #. translators: %d rows #: assets/build/backend.1.2.2.js:51 #, js-format msgid "Chain intact — %d entries verified." msgstr "" #. translators: %d id #: assets/build/backend.1.2.2.js:51 #, js-format msgid "Tampering detected at log entry #%d." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Forward events to SIEM" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Stream security events to an external collector and/or system syslog." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "HTTP collector endpoint" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Minimum severity" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Info & above" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Also write to system syslog" msgstr "" #: assets/build/backend.1.2.2.js:51 #: assets/build/backend.1.2.2.js:53 msgid "Maintenance & recovery" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Emergency lockdown and pre-update backups." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Lockdown mode" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Close the public site to everyone except administrators (shows a 503 maintenance page). Login still works." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Maintenance message" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "We’ll be back shortly." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Back up before plugin/theme/core updates" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Asks GemBackup to take a backup before any update starts." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Settings import / export" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Back up or migrate the whole GemSecurity configuration — settings and module activation — as JSON." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Include API keys and secrets" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "CAPTCHA and sign-in secrets, alert tokens and webhook URLs. Leave off for files you share; importing a file without them keeps this site's own." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Settings exported. API keys, tokens and webhook URLs were left out." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Settings exported." msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Export settings" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Importing…" msgstr "" #: assets/build/backend.1.2.2.js:51 #: assets/build/backend.1.2.2.js:53 msgid "Import settings" msgstr "" #: assets/build/backend.1.2.2.js:51 msgid "Import failed — that file is not valid JSON." msgstr "" #. translators: 1: settings count, 2: module count. #: assets/build/backend.1.2.2.js:52 #, js-format msgid "Imported %1$d settings and %2$d module states." msgstr "" #. translators: %s: comma-separated module ids. #: assets/build/backend.1.2.2.js:53 #, js-format msgid "Skipped modules this site cannot enable: %s" msgstr "" #: assets/build/backend.1.2.2.js:53 msgid "Import failed." msgstr "" #: assets/build/backend.1.2.2.js:53 msgid "GemSecurity dashboard" msgstr "" #: assets/build/backend.1.2.2.js:53 msgid "Switch to light mode" msgstr "" #: assets/build/backend.1.2.2.js:53 msgid "Switch to dark mode" msgstr "" #: assets/build/backend.1.2.2.js:53 msgid "General" msgstr "" #: assets/build/backend.1.2.2.js:53 msgid "Import / export" msgstr "" #: assets/build/backend.1.2.2.js:53 msgid "This module is turned off" msgstr "" #: assets/build/backend.1.2.2.js:53 msgid "Activate it from the Modules page to use this feature." msgstr "" #: assets/build/backend.1.2.2.js:53 msgid "Go to Modules" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Essential" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Light-touch protection that never gets in anyone’s way." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Firewall & login attempt limits" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Comment spam blocking" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Activity log + vulnerability checks" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "The best balance of safety and compatibility for most sites." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Everything in Essential" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Web application firewall + rate limiting" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Bad-bot blocking & security headers" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "File change monitoring" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Maximum" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Locks things down tight. Best for sites with few editors." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Everything in Recommended" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "XML-RPC off, file editing disabled" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "404 throttling & AI crawler blocking" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Strong password policy + two-factor" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Welcome" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "A few questions" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Review features" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Alerts" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "All set" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "What kind of site is this?" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "This tells us what's worth protecting the most." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Blog or portfolio" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Content I publish; readers mostly read." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Business site" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Marketing, services, lead forms." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Online store" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "I sell products or subscriptions." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Membership, courses or community" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "People sign up and log in to use it." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Agency or multi-client site" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "I manage this for someone else." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Who else logs in?" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Login surface is where most sites get hit." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Only me" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "I am the only account." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "A small team" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "A handful of editors or staff." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Members and customers can register" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "The public can create accounts." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Has anything suspicious happened lately?" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "If yes, we turn on tighter detection and threat intel." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "All quiet — nothing I've noticed" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Standard protection is a good fit." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Spam, brute-force or odd traffic" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Comment spam, login attempts, bursts." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Been hacked before, or files look changed" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Lock it down and watch files closely." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Where does your traffic come from?" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Shapes bot blocking and country rules." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Global audience" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Visitors from anywhere." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "A few specific countries" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "I can keep others out safely." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Mostly bots and scrapers lately" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Hungry crawlers, AI bots, scanners." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "If a real visitor got blocked once, how bad is that?" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Tunes how aggressively we enforce rules." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Terrible — be gentle" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Protect, but never risk breaking anything." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Balanced is fine" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "The recommended default." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Fine — lock it down" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "I'll handle the odd false positive." msgstr "" #. translators: 1: step, 2: total #: assets/build/setup.1.2.2.js:14 #, js-format msgid "Step %1$d of %2$d" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Setup complete" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "You can change every choice later from the GemSecurity settings." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Toggle dark mode" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Skip setup" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Back" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "About" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "1 minute" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Nothing is applied until you confirm" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Something went wrong while saving. Please try again." msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Finish setup" msgstr "" #: assets/build/setup.1.2.2.js:14 msgid "Let’s get started" msgstr "" #. translators: 1 answered, 2 total #: assets/build/setup.1.2.2.js:15 #, js-format msgid "Continue (%1$d/%2$d)" msgstr "" #: assets/build/setup.1.2.2.js:15 msgid "Continue" msgstr "" #: assets/build/setup.1.2.2.js:15 msgid "Block attacks" msgstr "" #: assets/build/setup.1.2.2.js:15 msgid "Firewall, brute-force and bot protection." msgstr "" #: assets/build/setup.1.2.2.js:15 msgid "Find problems" msgstr "" #: assets/build/setup.1.2.2.js:15 msgid "Malware, vulnerability and file-change scans." msgstr "" #: assets/build/setup.1.2.2.js:15 msgid "Stay informed" msgstr "" #: assets/build/setup.1.2.2.js:15 msgid "Alerts the moment something needs you." msgstr "" #: assets/build/setup.1.2.2.js:15 msgid "Let’s secure your website" msgstr "" #: assets/build/setup.1.2.2.js:15 msgid "Answer a few quick questions and GemSecurity will switch on the right protection for you." msgstr "" #: assets/build/setup.1.2.2.js:15 msgid "It takes about a minute." msgstr "" #: assets/build/setup.1.2.2.js:15 msgid "A few questions about your site" msgstr "" #: assets/build/setup.1.2.2.js:15 msgid "Your answers switch on the right protection — we show the summary before anything is saved." msgstr "" #. translators: 1 answered, 2 total #: assets/build/setup.1.2.2.js:16 #, js-format msgid "%1$d of %2$d answered — your recommendation appears here." msgstr "" #: assets/build/setup.1.2.2.js:16 msgid "Recommended for you" msgstr "" #: assets/build/setup.1.2.2.js:16 msgid "Review your features" msgstr "" #: assets/build/setup.1.2.2.js:16 msgid "We pre-selected features based on your answers. Tweak anything you like — only switched-on features load, so your site stays fast." msgstr "" #. translators: %d: features enabled #: assets/build/setup.1.2.2.js:17 #, js-format msgid "%d features switched on" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Where should we send alerts?" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Get an email when GemSecurity blocks something serious or finds a problem." msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Email me security alerts" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Lockouts, malware findings, file changes and more." msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Send alerts to" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Alert me about" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Critical issues only" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Warnings and critical issues" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Everything" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Weekly security summary" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "One short email a week with what was blocked and what needs attention." msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Protection level" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Features switched on" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Alerts sent to" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Email alerts are off" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Edit" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Firewall & login protection" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Active now" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "First full scan" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Not run yet · about 4 min" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Weekly security digest" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Every Monday, by email" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Your site is protected" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "GemSecurity is now watching" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "What we set up" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "What happens next" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Run first scan" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "Go to dashboard" msgstr "" #: assets/build/setup.1.2.2.js:17 msgid "You can change any of this later in Settings." msgstr ""