Version Description
October 21, 2020 =
Improvement: Initial integration of i18n in Wordfence.
Improvement: Prevent Wordfence from loading under <PHP 5.3.
Improvement: Updated GeoIP database.
Improvement: Prevented wildcard from running/saving for scan's excluded files pattern.
Improvement: Included Wordfence Login Security tables in diagnostics missing table list.
Fix: Removed new scan issues when WordPress update occurs mid-scan.
Fix: Specified category when saving
whitelistedServiceIPs
to WAF storage engine.Fix: Removed localhost IP for auto-update email alerts.
Fix: Fixed broken message in Live Traffic with MySQLi storage engine for blacklisted hits.
Fix: Removed optional parameter values for PHP 8 compatibility.
Download this release
Release Info
Developer | wfmatt |
Plugin | Wordfence Security – Firewall & Malware Scan |
Version | 7.4.12 |
Comparing to | |
See all releases |
Code changes from version 7.4.11 to 7.4.12
- css/{activity-report-widget.1598542714.css → activity-report-widget.1603293147.css} +0 -0
- css/{diff.1598542714.css → diff.1603293147.css} +0 -0
- css/{dt_table.1598542714.css → dt_table.1603293147.css} +0 -0
- css/{fullLog.1598542714.css → fullLog.1603293147.css} +0 -0
- css/{iptraf.1598542714.css → iptraf.1603293147.css} +0 -0
- css/{jquery-ui-timepicker-addon.1598542714.css → jquery-ui-timepicker-addon.1603293147.css} +0 -0
- css/{jquery-ui.min.1598542714.css → jquery-ui.min.1603293147.css} +0 -0
- css/{jquery-ui.structure.min.1598542714.css → jquery-ui.structure.min.1603293147.css} +0 -0
- css/{jquery-ui.theme.min.1598542714.css → jquery-ui.theme.min.1603293147.css} +0 -0
- css/{main.1598542714.css → main.1603293147.css} +0 -0
- css/{phpinfo.1598542714.css → phpinfo.1603293147.css} +0 -0
- css/{wf-adminbar.1598542714.css → wf-adminbar.1603293147.css} +0 -0
- css/{wf-colorbox.1598542714.css → wf-colorbox.1603293147.css} +0 -0
- css/{wf-font-awesome.1598542714.css → wf-font-awesome.1603293147.css} +0 -0
- css/{wf-global.1598542714.css → wf-global.1603293147.css} +0 -0
- css/{wf-ionicons.1598542714.css → wf-ionicons.1603293147.css} +0 -0
- css/{wf-onboarding.1598542714.css → wf-onboarding.1603293147.css} +0 -0
- css/{wf-roboto-font.1598542714.css → wf-roboto-font.1603293147.css} +0 -0
- css/{wfselect2.min.1598542714.css → wfselect2.min.1603293147.css} +0 -0
- css/{wordfenceBox.1598542714.css → wordfenceBox.1603293147.css} +0 -0
- js/{Chart.bundle.min.1598542714.js → Chart.bundle.min.1603293147.js} +0 -0
- js/{admin.1598542714.js → admin.1603293147.js} +0 -0
- js/{admin.ajaxWatcher.1598542714.js → admin.ajaxWatcher.1603293147.js} +0 -0
- js/{admin.liveTraffic.1598542714.js → admin.liveTraffic.1603293147.js} +0 -0
- js/{date.1598542714.js → date.1603293147.js} +0 -0
- js/{jquery-ui-timepicker-addon.1598542714.js → jquery-ui-timepicker-addon.1603293147.js} +0 -0
- js/{jquery.colorbox-min.1598542714.js → jquery.colorbox-min.1603293147.js} +0 -0
- js/{jquery.colorbox.1598542714.js → jquery.colorbox.1603293147.js} +0 -0
- js/{jquery.dataTables.min.1598542714.js → jquery.dataTables.min.1603293147.js} +0 -0
- js/{jquery.qrcode.min.1598542714.js → jquery.qrcode.min.1603293147.js} +0 -0
- js/{jquery.tmpl.min.1598542714.js → jquery.tmpl.min.1603293147.js} +0 -0
- js/{jquery.tools.min.1598542714.js → jquery.tools.min.1603293147.js} +0 -0
- js/{knockout-3.3.0.1598542714.js → knockout-3.3.0.1603293147.js} +0 -0
- js/{wfdashboard.1598542714.js → wfdashboard.1603293147.js} +0 -0
- js/{wfdropdown.1598542714.js → wfdropdown.1603293147.js} +0 -0
- js/{wfglobal.1598542714.js → wfglobal.1603293147.js} +0 -0
- js/{wfpopover.1598542714.js → wfpopover.1603293147.js} +0 -0
- js/{wfselect2.min.1598542714.js → wfselect2.min.1603293147.js} +0 -0
- languages/wordfence.mo +0 -0
- languages/wordfence.po +9153 -0
- lib/GeoLite2-Country.mmdb +0 -0
- lib/menu_tools_diagnostic.php +13 -1
- lib/wf503.php +1 -1
- lib/wfActivityReport.php +4 -3
- lib/wfAlerts.php +6 -6
- lib/wfConfig.php +17 -6
- lib/wfLog.php +7 -7
- lib/wfScanEngine.php +3 -1
- lib/wordfenceClass.php +18 -35
- lib/wordfenceScanner.php +8 -3
- modules/login-security/css/{admin-global.1598542714.css → admin-global.1603293147.css} +0 -0
- modules/login-security/css/{admin.1598542714.css → admin.1603293147.css} +0 -0
- modules/login-security/css/{colorbox.1598542714.css → colorbox.1603293147.css} +0 -0
- modules/login-security/css/{font-awesome.1598542714.css → font-awesome.1603293147.css} +0 -0
- modules/login-security/css/{ionicons.1598542714.css → ionicons.1603293147.css} +0 -0
- modules/login-security/css/{jquery-ui-timepicker-addon.1598542714.css → jquery-ui-timepicker-addon.1603293147.css} +0 -0
- modules/login-security/css/{jquery-ui.min.1598542714.css → jquery-ui.min.1603293147.css} +0 -0
- modules/login-security/css/{jquery-ui.structure.min.1598542714.css → jquery-ui.structure.min.1603293147.css} +0 -0
- modules/login-security/css/{jquery-ui.theme.min.1598542714.css → jquery-ui.theme.min.1603293147.css} +0 -0
- modules/login-security/css/{login.1598542714.css → login.1603293147.css} +0 -0
- modules/login-security/js/{admin-global.1598542714.js → admin-global.1603293147.js} +0 -0
- modules/login-security/js/{admin.1598542714.js → admin.1603293147.js} +0 -0
- modules/login-security/js/{jquery-ui-timepicker-addon.1598542714.js → jquery-ui-timepicker-addon.1603293147.js} +0 -0
- modules/login-security/js/{jquery.colorbox.1598542714.js → jquery.colorbox.1603293147.js} +0 -0
- modules/login-security/js/{jquery.colorbox.min.1598542714.js → jquery.colorbox.min.1603293147.js} +0 -0
- modules/login-security/js/{jquery.qrcode.min.1598542714.js → jquery.qrcode.min.1603293147.js} +0 -0
- modules/login-security/js/{jquery.tmpl.min.1598542714.js → jquery.tmpl.min.1603293147.js} +0 -0
- modules/login-security/js/{login.1598542714.js → login.1603293147.js} +0 -0
- modules/login-security/wordfence-login-security.php +1 -1
- readme.txt +14 -1
- vendor/wordfence/wf-waf/src/init.php +1 -0
- vendor/wordfence/wf-waf/src/lib/i18n.php +79 -0
- vendor/wordfence/wf-waf/src/lib/storage/mysql.php +0 -5
- vendor/wordfence/wf-waf/src/views/403-blacklist.php +10 -10
- vendor/wordfence/wf-waf/src/views/403-roadblock.php +18 -18
- vendor/wordfence/wf-waf/src/views/403.php +13 -13
- vendor/wordfence/wf-waf/src/views/503-lockout.php +16 -16
- vendor/wordfence/wf-waf/src/views/503.php +14 -14
- views/diagnostics/text.php +12 -0
- views/unsupported-php/admin-message.php +10 -0
- waf/bootstrap.php +62 -0
- waf/pomo/entry.php +96 -0
- waf/pomo/mo.php +349 -0
- waf/pomo/plural-forms.php +344 -0
- waf/pomo/po.php +509 -0
- waf/pomo/streams.php +290 -0
- waf/pomo/translations.php +379 -0
- wordfence.php +17 -3
css/{activity-report-widget.1598542714.css → activity-report-widget.1603293147.css}
RENAMED
File without changes
|
css/{diff.1598542714.css → diff.1603293147.css}
RENAMED
File without changes
|
css/{dt_table.1598542714.css → dt_table.1603293147.css}
RENAMED
File without changes
|
css/{fullLog.1598542714.css → fullLog.1603293147.css}
RENAMED
File without changes
|
css/{iptraf.1598542714.css → iptraf.1603293147.css}
RENAMED
File without changes
|
css/{jquery-ui-timepicker-addon.1598542714.css → jquery-ui-timepicker-addon.1603293147.css}
RENAMED
File without changes
|
css/{jquery-ui.min.1598542714.css → jquery-ui.min.1603293147.css}
RENAMED
File without changes
|
css/{jquery-ui.structure.min.1598542714.css → jquery-ui.structure.min.1603293147.css}
RENAMED
File without changes
|
css/{jquery-ui.theme.min.1598542714.css → jquery-ui.theme.min.1603293147.css}
RENAMED
File without changes
|
css/{main.1598542714.css → main.1603293147.css}
RENAMED
File without changes
|
css/{phpinfo.1598542714.css → phpinfo.1603293147.css}
RENAMED
File without changes
|
css/{wf-adminbar.1598542714.css → wf-adminbar.1603293147.css}
RENAMED
File without changes
|
css/{wf-colorbox.1598542714.css → wf-colorbox.1603293147.css}
RENAMED
File without changes
|
css/{wf-font-awesome.1598542714.css → wf-font-awesome.1603293147.css}
RENAMED
File without changes
|
css/{wf-global.1598542714.css → wf-global.1603293147.css}
RENAMED
File without changes
|
css/{wf-ionicons.1598542714.css → wf-ionicons.1603293147.css}
RENAMED
File without changes
|
css/{wf-onboarding.1598542714.css → wf-onboarding.1603293147.css}
RENAMED
File without changes
|
css/{wf-roboto-font.1598542714.css → wf-roboto-font.1603293147.css}
RENAMED
File without changes
|
css/{wfselect2.min.1598542714.css → wfselect2.min.1603293147.css}
RENAMED
File without changes
|
css/{wordfenceBox.1598542714.css → wordfenceBox.1603293147.css}
RENAMED
File without changes
|
js/{Chart.bundle.min.1598542714.js → Chart.bundle.min.1603293147.js}
RENAMED
File without changes
|
js/{admin.1598542714.js → admin.1603293147.js}
RENAMED
File without changes
|
js/{admin.ajaxWatcher.1598542714.js → admin.ajaxWatcher.1603293147.js}
RENAMED
File without changes
|
js/{admin.liveTraffic.1598542714.js → admin.liveTraffic.1603293147.js}
RENAMED
File without changes
|
js/{date.1598542714.js → date.1603293147.js}
RENAMED
File without changes
|
js/{jquery-ui-timepicker-addon.1598542714.js → jquery-ui-timepicker-addon.1603293147.js}
RENAMED
File without changes
|
js/{jquery.colorbox-min.1598542714.js → jquery.colorbox-min.1603293147.js}
RENAMED
File without changes
|
js/{jquery.colorbox.1598542714.js → jquery.colorbox.1603293147.js}
RENAMED
File without changes
|
js/{jquery.dataTables.min.1598542714.js → jquery.dataTables.min.1603293147.js}
RENAMED
File without changes
|
js/{jquery.qrcode.min.1598542714.js → jquery.qrcode.min.1603293147.js}
RENAMED
File without changes
|
js/{jquery.tmpl.min.1598542714.js → jquery.tmpl.min.1603293147.js}
RENAMED
File without changes
|
js/{jquery.tools.min.1598542714.js → jquery.tools.min.1603293147.js}
RENAMED
File without changes
|
js/{knockout-3.3.0.1598542714.js → knockout-3.3.0.1603293147.js}
RENAMED
File without changes
|
js/{wfdashboard.1598542714.js → wfdashboard.1603293147.js}
RENAMED
File without changes
|
js/{wfdropdown.1598542714.js → wfdropdown.1603293147.js}
RENAMED
File without changes
|
js/{wfglobal.1598542714.js → wfglobal.1603293147.js}
RENAMED
File without changes
|
js/{wfpopover.1598542714.js → wfpopover.1603293147.js}
RENAMED
File without changes
|
js/{wfselect2.min.1598542714.js → wfselect2.min.1603293147.js}
RENAMED
File without changes
|
languages/wordfence.mo
ADDED
Binary file
|
languages/wordfence.po
ADDED
@@ -0,0 +1,9153 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Copyright (C) 2020 Wordfence
|
2 |
+
# This file is distributed under the same license as the Wordfence Security plugin.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"Project-Id-Version: Wordfence Security 7.4.11\n"
|
6 |
+
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
7 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
8 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"POT-Creation-Date: 2020-10-01T16:37:39+00:00\n"
|
13 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
+
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
+
|
16 |
+
#: 403-blacklist.php:79
|
17 |
+
#: 403-blacklist.php:181
|
18 |
+
#: 403-roadblock.php:40
|
19 |
+
#: 403.php:7
|
20 |
+
msgid "403 Forbidden"
|
21 |
+
msgstr ""
|
22 |
+
|
23 |
+
#: 403-blacklist.php:183
|
24 |
+
msgid "WHAT? Why am I seeing this?"
|
25 |
+
msgstr ""
|
26 |
+
|
27 |
+
#: 403-blacklist.php:185
|
28 |
+
msgid "Your access to this site was blocked by Wordfence, a security provider, who protects sites from malicious activity."
|
29 |
+
msgstr ""
|
30 |
+
|
31 |
+
#: 403-blacklist.php:187
|
32 |
+
msgid "If you believe Wordfence should be allowing you access to this site, please let them know using the steps below so they can investigate why this is happening."
|
33 |
+
msgstr ""
|
34 |
+
|
35 |
+
#: 403-blacklist.php:191
|
36 |
+
msgid "Reporting a Problem"
|
37 |
+
msgstr ""
|
38 |
+
|
39 |
+
#: 403-blacklist.php:193
|
40 |
+
msgid "1. Please copy this text. You need to paste it into a form later."
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#: 403-blacklist.php:212
|
44 |
+
msgid "2. Click this button and you will be prompted to paste the text above."
|
45 |
+
msgstr ""
|
46 |
+
|
47 |
+
#: 403-blacklist.php:214
|
48 |
+
msgid "Report Problem"
|
49 |
+
msgstr ""
|
50 |
+
|
51 |
+
#: 403-blacklist.php:216
|
52 |
+
#: 403-roadblock.php:447
|
53 |
+
#: 403.php:362
|
54 |
+
#: 503-lockout.php:389
|
55 |
+
#: 503.php:383
|
56 |
+
msgid "Generated by Wordfence at %s.<br>Your computer's time: "
|
57 |
+
msgstr ""
|
58 |
+
|
59 |
+
#: 403-roadblock.php:357
|
60 |
+
#: 403-roadblock.php:421
|
61 |
+
#: 403.php:324
|
62 |
+
#: 403.php:336
|
63 |
+
msgid "A potentially unsafe operation has been detected in your request to this site"
|
64 |
+
msgstr ""
|
65 |
+
|
66 |
+
#: 403-roadblock.php:358
|
67 |
+
#: 403.php:325
|
68 |
+
msgid "Your access to this service has been limited. (HTTP response code 403)"
|
69 |
+
msgstr ""
|
70 |
+
|
71 |
+
#: 403-roadblock.php:359
|
72 |
+
#: 403.php:326
|
73 |
+
#: 503-lockout.php:327
|
74 |
+
#: 503.php:327
|
75 |
+
#: lib/wf503.php:323
|
76 |
+
#: lib/wfLockedOut.php:328
|
77 |
+
msgid "If you think you have been blocked in error, contact the owner of this site for assistance."
|
78 |
+
msgstr ""
|
79 |
+
|
80 |
+
#: 403-roadblock.php:366
|
81 |
+
msgid "If you are an administrator and you are certain this is a false positive, you can automatically whitelist this request and repeat the same action."
|
82 |
+
msgstr ""
|
83 |
+
|
84 |
+
#: 403-roadblock.php:373
|
85 |
+
msgid "I am certain this is a false positive."
|
86 |
+
msgstr ""
|
87 |
+
|
88 |
+
#: 403-roadblock.php:375
|
89 |
+
msgid "Whitelist This Action"
|
90 |
+
msgstr ""
|
91 |
+
|
92 |
+
#: 403-roadblock.php:378
|
93 |
+
msgid "All set! You can refresh the page to try this action again."
|
94 |
+
msgstr ""
|
95 |
+
|
96 |
+
#: 403-roadblock.php:379
|
97 |
+
msgid "Something went wrong whitelisting this request. You can try setting the Firewall Status to Learning Mode under Web App Firewall in the Wordfence menu, and retry this same action."
|
98 |
+
msgstr ""
|
99 |
+
|
100 |
+
#: 403-roadblock.php:417
|
101 |
+
#: 403.php:332
|
102 |
+
#: 503-lockout.php:359
|
103 |
+
#: 503.php:353
|
104 |
+
#: lib/wf503.php:331
|
105 |
+
#: lib/wfLockedOut.php:340
|
106 |
+
msgid "Block Technical Data"
|
107 |
+
msgstr ""
|
108 |
+
|
109 |
+
#: 403-roadblock.php:420
|
110 |
+
#: 403.php:335
|
111 |
+
#: 503-lockout.php:362
|
112 |
+
#: 503.php:356
|
113 |
+
#: lib/wfLockedOut.php:343
|
114 |
+
msgid "Block Reason:"
|
115 |
+
msgstr ""
|
116 |
+
|
117 |
+
#: 403-roadblock.php:424
|
118 |
+
#: 403.php:339
|
119 |
+
#: 503-lockout.php:366
|
120 |
+
#: 503.php:360
|
121 |
+
#: lib/wfLockedOut.php:347
|
122 |
+
msgid "Time:"
|
123 |
+
msgstr ""
|
124 |
+
|
125 |
+
#: 403-roadblock.php:440
|
126 |
+
#: 403.php:355
|
127 |
+
#: 503-lockout.php:382
|
128 |
+
#: 503.php:376
|
129 |
+
#: lib/wf503.php:354
|
130 |
+
#: lib/wfLockedOut.php:363
|
131 |
+
msgid "About Wordfence"
|
132 |
+
msgstr ""
|
133 |
+
|
134 |
+
#: 403-roadblock.php:441
|
135 |
+
#: 403.php:356
|
136 |
+
#: 503-lockout.php:383
|
137 |
+
#: 503.php:377
|
138 |
+
#: lib/wf503.php:355
|
139 |
+
#: lib/wfLockedOut.php:364
|
140 |
+
msgid "Wordfence is a security plugin installed on over 3 million WordPress sites. The owner of this site is using Wordfence to manage access to their site."
|
141 |
+
msgstr ""
|
142 |
+
|
143 |
+
#: 403-roadblock.php:442
|
144 |
+
#: 403.php:357
|
145 |
+
#: 503-lockout.php:384
|
146 |
+
#: 503.php:378
|
147 |
+
#: lib/wf503.php:356
|
148 |
+
#: lib/wfLockedOut.php:365
|
149 |
+
msgid "You can also read the documentation to learn about Wordfence's blocking tools, or visit wordfence.com to learn more about Wordfence."
|
150 |
+
msgstr ""
|
151 |
+
|
152 |
+
#: 403-roadblock.php:446
|
153 |
+
#: 403.php:361
|
154 |
+
#: 503-lockout.php:388
|
155 |
+
#: 503.php:382
|
156 |
+
msgid "Click here to learn more: <a href=\"https://www.wordfence.com/help/?query=locked-out\" target=\"_blank\" rel=\"noopener noreferrer\">Documentation</a>"
|
157 |
+
msgstr ""
|
158 |
+
|
159 |
+
#: 503-lockout.php:8
|
160 |
+
#: 503.php:8
|
161 |
+
#: 503.php:325
|
162 |
+
#: lib/wf503.php:321
|
163 |
+
msgid "Your access to this site has been limited by the site owner"
|
164 |
+
msgstr ""
|
165 |
+
|
166 |
+
#: 503-lockout.php:325
|
167 |
+
#: lib/wfLockedOut.php:326
|
168 |
+
msgid "Your access to this site has been temporarily limited by the site owner"
|
169 |
+
msgstr ""
|
170 |
+
|
171 |
+
#: 503-lockout.php:326
|
172 |
+
#: lib/wfLockedOut.php:327
|
173 |
+
msgid "Your access to this service has been temporarily limited. Please try again in a few minutes. (HTTP response code 503)"
|
174 |
+
msgstr ""
|
175 |
+
|
176 |
+
#: 503-lockout.php:335
|
177 |
+
#: lib/wfLockedOut.php:335
|
178 |
+
msgid "Return to the site home page"
|
179 |
+
msgstr ""
|
180 |
+
|
181 |
+
#: 503-lockout.php:342
|
182 |
+
#: 503.php:336
|
183 |
+
msgid "If you are a WordPress user with administrative privileges on this site, please enter your email address in the box below and click \"Send\". You will then receive an email that helps you regain access."
|
184 |
+
msgstr ""
|
185 |
+
|
186 |
+
#: 503-lockout.php:346
|
187 |
+
#: lib/wfUnlockMsg.php:6
|
188 |
+
msgid "Send Unlock Email"
|
189 |
+
msgstr ""
|
190 |
+
|
191 |
+
#: 503-lockout.php:363
|
192 |
+
#: lib/wfLockedOut.php:344
|
193 |
+
msgid "You have been temporarily locked out of this system. This means that you will not be able to log in for a while."
|
194 |
+
msgstr ""
|
195 |
+
|
196 |
+
#: 503.php:326
|
197 |
+
#: lib/wf503.php:322
|
198 |
+
msgid "Your access to this service has been limited. (HTTP response code 503)"
|
199 |
+
msgstr ""
|
200 |
+
|
201 |
+
#. Plugin Name of the plugin
|
202 |
+
msgid "Wordfence Security"
|
203 |
+
msgstr ""
|
204 |
+
|
205 |
+
#. Plugin URI of the plugin
|
206 |
+
#. Author URI of the plugin
|
207 |
+
msgid "http://www.wordfence.com/"
|
208 |
+
msgstr ""
|
209 |
+
|
210 |
+
#. Description of the plugin
|
211 |
+
msgid "Wordfence Security - Anti-virus, Firewall and Malware Scan"
|
212 |
+
msgstr ""
|
213 |
+
|
214 |
+
#. Author of the plugin
|
215 |
+
msgid "Wordfence"
|
216 |
+
msgstr ""
|
217 |
+
|
218 |
+
#: lib/dashboard/widget_countries.php:16
|
219 |
+
#: lib/dashboard/widget_ips.php:21
|
220 |
+
#: lib/dashboard/widget_localattacks.php:15
|
221 |
+
msgid "No Data Available During Learning Mode"
|
222 |
+
msgstr ""
|
223 |
+
|
224 |
+
#: lib/dashboard/widget_localattacks.php:8
|
225 |
+
msgid "Firewall Summary:"
|
226 |
+
msgstr ""
|
227 |
+
|
228 |
+
#: lib/dashboard/widget_localattacks.php:8
|
229 |
+
msgid "Attacks Blocked for %s"
|
230 |
+
msgstr ""
|
231 |
+
|
232 |
+
#: lib/dashboard/widget_localattacks.php:30
|
233 |
+
msgid "No blocks have been recorded."
|
234 |
+
msgstr ""
|
235 |
+
|
236 |
+
#: lib/dashboard/widget_localattacks.php:35
|
237 |
+
#: views/blocking/blocking-create.php:10
|
238 |
+
msgid "<span class=\"wf-hidden-xs\">Block </span>Type"
|
239 |
+
msgstr ""
|
240 |
+
|
241 |
+
#: lib/dashboard/widget_localattacks.php:42
|
242 |
+
msgid "Total"
|
243 |
+
msgstr ""
|
244 |
+
|
245 |
+
#: lib/dashboard/widget_localattacks.php:47
|
246 |
+
msgid "Today"
|
247 |
+
msgstr ""
|
248 |
+
|
249 |
+
#: lib/dashboard/widget_localattacks.php:47
|
250 |
+
msgid "Week"
|
251 |
+
msgstr ""
|
252 |
+
|
253 |
+
#: lib/dashboard/widget_localattacks.php:47
|
254 |
+
msgid "Month"
|
255 |
+
msgstr ""
|
256 |
+
|
257 |
+
#: lib/dashboard/widget_localattacks.php:62
|
258 |
+
#: lib/menu_firewall_waf.php:52
|
259 |
+
#: lib/menu_firewall_waf_options.php:158
|
260 |
+
#: lib/menu_scanner.php:77
|
261 |
+
#: lib/menu_scanner_options.php:132
|
262 |
+
msgid "Premium"
|
263 |
+
msgstr ""
|
264 |
+
|
265 |
+
#: lib/dashboard/widget_localattacks.php:68
|
266 |
+
msgid "How are these categorized?"
|
267 |
+
msgstr ""
|
268 |
+
|
269 |
+
#: lib/dashboard/widget_networkattacks.php:8
|
270 |
+
msgid "Total Attacks Blocked:"
|
271 |
+
msgstr ""
|
272 |
+
|
273 |
+
#: lib/dashboard/widget_networkattacks.php:8
|
274 |
+
#: lib/wfDiagnostic.php:779
|
275 |
+
msgid "Wordfence Network"
|
276 |
+
msgstr ""
|
277 |
+
|
278 |
+
#: lib/dashboard/widget_networkattacks.php:17
|
279 |
+
msgid "Blocked attack counts not available yet."
|
280 |
+
msgstr ""
|
281 |
+
|
282 |
+
#: lib/dashboard/widget_networkattacks.php:22
|
283 |
+
msgid "24 Hours"
|
284 |
+
msgstr ""
|
285 |
+
|
286 |
+
#: lib/dashboard/widget_networkattacks.php:24
|
287 |
+
msgid "30 Days"
|
288 |
+
msgstr ""
|
289 |
+
|
290 |
+
#: lib/dashboard/widget_networkattacks.php:206
|
291 |
+
msgid "Last Updated: %s ago"
|
292 |
+
msgstr ""
|
293 |
+
|
294 |
+
#: lib/dashboard/widget_notifications.php:37
|
295 |
+
#: lib/menu_wordfence_central.php:64
|
296 |
+
msgid "Wordfence Central Status"
|
297 |
+
msgstr ""
|
298 |
+
|
299 |
+
#: lib/dashboard/widget_notifications.php:40
|
300 |
+
msgid "Connected by %s on %s"
|
301 |
+
msgstr ""
|
302 |
+
|
303 |
+
#: lib/dashboard/widget_notifications.php:42
|
304 |
+
msgid "Disconnected by %s on %s"
|
305 |
+
msgstr ""
|
306 |
+
|
307 |
+
#: lib/dashboard/widget_notifications.php:44
|
308 |
+
#: lib/menu_wordfence_central.php:105
|
309 |
+
msgid "It looks like you've tried to connect this site to Wordfence Central, but the installation did not finish."
|
310 |
+
msgstr ""
|
311 |
+
|
312 |
+
#: lib/dashboard/widget_notifications.php:46
|
313 |
+
#: lib/menu_wordfence_central.php:58
|
314 |
+
#: lib/menu_wordfence_central.php:115
|
315 |
+
msgid "Wordfence Central allows you to manage Wordfence on multiple sites from one location. It makes security monitoring and configuring Wordfence easier."
|
316 |
+
msgstr ""
|
317 |
+
|
318 |
+
#: lib/dashboard/widget_notifications.php:54
|
319 |
+
#: lib/menu_wordfence_central.php:109
|
320 |
+
#: views/onboarding/banner.php:9
|
321 |
+
#: views/onboarding/disabled-overlay.php:8
|
322 |
+
msgid "Resume Installation"
|
323 |
+
msgstr ""
|
324 |
+
|
325 |
+
#: lib/dashboard/widget_notifications.php:55
|
326 |
+
#: lib/dashboard/widget_notifications.php:60
|
327 |
+
#: lib/menu_wordfence_central.php:66
|
328 |
+
msgid "Disconnect This Site"
|
329 |
+
msgstr ""
|
330 |
+
|
331 |
+
#: lib/dashboard/widget_notifications.php:65
|
332 |
+
#: lib/menu_wordfence_central.php:59
|
333 |
+
msgid "Visit Wordfence Central"
|
334 |
+
msgstr ""
|
335 |
+
|
336 |
+
#: lib/dashboard/widget_notifications.php:128
|
337 |
+
msgid "Confirm Disconnect"
|
338 |
+
msgstr ""
|
339 |
+
|
340 |
+
#: lib/dashboard/widget_notifications.php:129
|
341 |
+
msgid "Are you sure you want to disconnect your site from Wordfence Central?"
|
342 |
+
msgstr ""
|
343 |
+
|
344 |
+
#: lib/dashboard/widget_notifications.php:130
|
345 |
+
#: lib/menu_scanner.php:215
|
346 |
+
#: lib/menu_scanner.php:226
|
347 |
+
#: lib/menu_tools_diagnostic.php:955
|
348 |
+
#: lib/menu_tools_twoFactor.php:235
|
349 |
+
#: lib/menu_tools_twoFactor.php:273
|
350 |
+
#: lib/wordfenceClass.php:7596
|
351 |
+
#: lib/wordfenceClass.php:7640
|
352 |
+
#: lib/wordfenceClass.php:7704
|
353 |
+
#: lib/wordfenceClass.php:7764
|
354 |
+
#: lib/wordfenceClass.php:7810
|
355 |
+
#: views/blocking/block-list.php:501
|
356 |
+
#: views/blocking/blocking-create.php:212
|
357 |
+
#: views/dashboard/options-group-license.php:150
|
358 |
+
#: views/options/block-all-options-controls.php:164
|
359 |
+
#: views/options/block-controls.php:79
|
360 |
+
msgid "Cancel"
|
361 |
+
msgstr ""
|
362 |
+
|
363 |
+
#: lib/dashboard/widget_notifications.php:131
|
364 |
+
msgid "Disconnect"
|
365 |
+
msgstr ""
|
366 |
+
|
367 |
+
#: lib/email_genericAlert.php:2
|
368 |
+
msgid "This email was sent from your website \"%s\" by the Wordfence plugin at %s"
|
369 |
+
msgstr ""
|
370 |
+
|
371 |
+
#: lib/email_genericAlert.php:4
|
372 |
+
msgid "The Wordfence administrative URL for this site is: %s"
|
373 |
+
msgstr ""
|
374 |
+
|
375 |
+
#: lib/email_genericAlert.php:10
|
376 |
+
msgid ""
|
377 |
+
"NOTE: You are using the free version of Wordfence. Upgrade today:\n"
|
378 |
+
" - Receive real-time Firewall and Scan engine rule updates for protection as threats emerge\n"
|
379 |
+
" - Real-time IP Blacklist blocks the most malicious IPs from accessing your site\n"
|
380 |
+
" - Country blocking\n"
|
381 |
+
" - IP reputation monitoring\n"
|
382 |
+
" - Schedule scans to run more frequently and at optimal times\n"
|
383 |
+
" - Access to Premium Support\n"
|
384 |
+
" - Discounts for multi-year and multi-license purchases\n"
|
385 |
+
"\n"
|
386 |
+
"Click here to upgrade to Wordfence Premium:\n"
|
387 |
+
"https://www.wordfence.com/zz1/wordfence-signup/"
|
388 |
+
msgstr ""
|
389 |
+
|
390 |
+
#: lib/email_genericAlert.php:24
|
391 |
+
msgid ""
|
392 |
+
"To change your alert options for Wordfence, visit:\n"
|
393 |
+
"%s"
|
394 |
+
msgstr ""
|
395 |
+
|
396 |
+
#: lib/email_genericAlert.php:26
|
397 |
+
msgid ""
|
398 |
+
"To see current Wordfence alerts, visit:\n"
|
399 |
+
"%s"
|
400 |
+
msgstr ""
|
401 |
+
|
402 |
+
#: lib/email_newIssues.php:3
|
403 |
+
msgid "This email was sent from your website \"%s\" by the Wordfence plugin."
|
404 |
+
msgstr ""
|
405 |
+
|
406 |
+
#: lib/email_newIssues.php:5
|
407 |
+
msgid "Wordfence found the following new issues on \"%s\"%s."
|
408 |
+
msgstr ""
|
409 |
+
|
410 |
+
#: lib/email_newIssues.php:5
|
411 |
+
msgid " (%d existing %s also found again)"
|
412 |
+
msgstr ""
|
413 |
+
|
414 |
+
#: lib/email_newIssues.php:5
|
415 |
+
msgid "issue was"
|
416 |
+
msgstr ""
|
417 |
+
|
418 |
+
#: lib/email_newIssues.php:5
|
419 |
+
msgid "issues were"
|
420 |
+
msgstr ""
|
421 |
+
|
422 |
+
#: lib/email_newIssues.php:7
|
423 |
+
msgid "Alert generated at %s"
|
424 |
+
msgstr ""
|
425 |
+
|
426 |
+
#: lib/email_newIssues.php:11
|
427 |
+
msgid "See the details of these scan results on your site at: %s"
|
428 |
+
msgstr ""
|
429 |
+
|
430 |
+
#: lib/email_newIssues.php:15
|
431 |
+
msgid "HIGH SENSITIVITY scanning is enabled, it may produce false positives"
|
432 |
+
msgstr ""
|
433 |
+
|
434 |
+
#: lib/email_newIssues.php:21
|
435 |
+
#: lib/menu_scanner.php:119
|
436 |
+
msgid "Beta scan signatures are currently enabled. These signatures have not been fully tested yet and may cause false positives or scan stability issues on some sites."
|
437 |
+
msgstr ""
|
438 |
+
|
439 |
+
#: lib/email_newIssues.php:21
|
440 |
+
msgid "The Beta option can be turned off at the bottom of the Diagnostics page."
|
441 |
+
msgstr ""
|
442 |
+
|
443 |
+
#: lib/email_newIssues.php:27
|
444 |
+
msgid "The scan was terminated early because it reached the time limit for scans. If you would like to allow your scans to run longer, you can customize the limit on the options page: <a href=\"%s\">%s</a> or read more about scan options to improve scan speed here: <a href=\"%s\">%s</a>"
|
445 |
+
msgstr ""
|
446 |
+
|
447 |
+
#: lib/email_newIssues.php:33
|
448 |
+
msgid "Critical Problems:"
|
449 |
+
msgstr ""
|
450 |
+
|
451 |
+
#: lib/email_newIssues.php:34
|
452 |
+
msgid "High Severity Problems:"
|
453 |
+
msgstr ""
|
454 |
+
|
455 |
+
#: lib/email_newIssues.php:35
|
456 |
+
msgid "Medium Severity Problems:"
|
457 |
+
msgstr ""
|
458 |
+
|
459 |
+
#: lib/email_newIssues.php:36
|
460 |
+
msgid "Low Severity Problems:"
|
461 |
+
msgstr ""
|
462 |
+
|
463 |
+
#: lib/email_newIssues.php:55
|
464 |
+
msgid "Plugin contains an unpatched security vulnerability."
|
465 |
+
msgstr ""
|
466 |
+
|
467 |
+
#: lib/email_newIssues.php:57
|
468 |
+
#: lib/email_newIssues.php:79
|
469 |
+
#: views/scanner/issue-wfPluginAbandoned.php:20
|
470 |
+
#: views/scanner/issue-wfPluginAbandoned.php:37
|
471 |
+
#: views/scanner/issue-wfPluginRemoved.php:18
|
472 |
+
#: views/scanner/issue-wfPluginRemoved.php:32
|
473 |
+
#: views/scanner/issue-wfPluginUpgrade.php:20
|
474 |
+
#: views/scanner/issue-wfPluginUpgrade.php:37
|
475 |
+
#: views/scanner/issue-wfPluginVulnerable.php:19
|
476 |
+
#: views/scanner/issue-wfPluginVulnerable.php:34
|
477 |
+
#: views/scanner/issue-wfThemeUpgrade.php:19
|
478 |
+
#: views/scanner/issue-wfThemeUpgrade.php:35
|
479 |
+
#: views/scanner/issue-wfUpgrade.php:17
|
480 |
+
#: views/scanner/issue-wfUpgrade.php:31
|
481 |
+
msgid "Vulnerability Information"
|
482 |
+
msgstr ""
|
483 |
+
|
484 |
+
#: lib/email_newIssues.php:63
|
485 |
+
msgid "The core files scan has not run because this version is not currently indexed by Wordfence. New WordPress versions may take up to a day to be indexed."
|
486 |
+
msgstr ""
|
487 |
+
|
488 |
+
#: lib/email_newIssues.php:66
|
489 |
+
msgid "Firewall issues may be caused by file permission changes or other technical problems."
|
490 |
+
msgstr ""
|
491 |
+
|
492 |
+
#: lib/email_newIssues.php:66
|
493 |
+
msgid "More Details and Instructions"
|
494 |
+
msgstr ""
|
495 |
+
|
496 |
+
#: lib/email_newIssues.php:69
|
497 |
+
msgid "Scanning additional paths is optional and is not always necessary."
|
498 |
+
msgstr ""
|
499 |
+
|
500 |
+
#: lib/email_newIssues.php:69
|
501 |
+
#: lib/email_unlockRequest.php:10
|
502 |
+
#: lib/menu_dashboard.php:108
|
503 |
+
#: lib/menu_dashboard.php:464
|
504 |
+
#: lib/menu_dashboard_options.php:152
|
505 |
+
#: lib/wfVersionCheckController.php:56
|
506 |
+
#: lib/wfVersionCheckController.php:69
|
507 |
+
#: lib/wfVersionCheckController.php:135
|
508 |
+
#: lib/wfVersionCheckController.php:150
|
509 |
+
#: views/blocking/blocking-status.php:27
|
510 |
+
#: views/dashboard/options-group-dashboard.php:107
|
511 |
+
#: views/gdpr/banner.php:55
|
512 |
+
#: views/onboarding/fresh-install.php:44
|
513 |
+
#: views/onboarding/modal-final-attempt.php:42
|
514 |
+
#: views/onboarding/plugin-header.php:66
|
515 |
+
#: views/scanner/scanner-status.php:55
|
516 |
+
#: views/tours/login-security.php:30
|
517 |
+
#: views/tours/login-security.php:62
|
518 |
+
#: views/waf/firewall-status.php:58
|
519 |
+
#: views/waf/firewall-status.php:68
|
520 |
+
#: views/waf/options-group-basic-firewall.php:467
|
521 |
+
msgid "Learn More"
|
522 |
+
msgstr ""
|
523 |
+
|
524 |
+
#: lib/email_newIssues.php:77
|
525 |
+
#: views/scanner/issue-wfPluginUpgrade.php:16
|
526 |
+
#: views/scanner/issue-wfPluginUpgrade.php:33
|
527 |
+
#: views/scanner/issue-wfThemeUpgrade.php:16
|
528 |
+
#: views/scanner/issue-wfThemeUpgrade.php:32
|
529 |
+
#: views/scanner/issue-wfUpgrade.php:15
|
530 |
+
#: views/scanner/issue-wfUpgrade.php:29
|
531 |
+
msgid "Update includes security-related fixes."
|
532 |
+
msgstr ""
|
533 |
+
|
534 |
+
#: lib/email_newIssues.php:104
|
535 |
+
msgid "%d existing issue was found again and is not shown."
|
536 |
+
msgstr ""
|
537 |
+
|
538 |
+
#: lib/email_newIssues.php:104
|
539 |
+
msgid "%d existing issues were found again and are not shown."
|
540 |
+
msgstr ""
|
541 |
+
|
542 |
+
#: lib/email_newIssues.php:107
|
543 |
+
msgid "%d issue was omitted from this email due to length limits."
|
544 |
+
msgstr ""
|
545 |
+
|
546 |
+
#: lib/email_newIssues.php:107
|
547 |
+
msgid "%d issues were omitted from this email due to length limits."
|
548 |
+
msgstr ""
|
549 |
+
|
550 |
+
#: lib/email_newIssues.php:108
|
551 |
+
msgid "View every issue:"
|
552 |
+
msgstr ""
|
553 |
+
|
554 |
+
#: lib/email_newIssues.php:117
|
555 |
+
msgid "NOTE: You are using the free version of Wordfence. Upgrade today:"
|
556 |
+
msgstr ""
|
557 |
+
|
558 |
+
#: lib/email_newIssues.php:120
|
559 |
+
msgid "Receive real-time Firewall and Scan engine rule updates for protection as threats emerge"
|
560 |
+
msgstr ""
|
561 |
+
|
562 |
+
#: lib/email_newIssues.php:121
|
563 |
+
msgid "Real-time IP Blacklist blocks the most malicious IPs from accessing your site"
|
564 |
+
msgstr ""
|
565 |
+
|
566 |
+
#: lib/email_newIssues.php:122
|
567 |
+
msgid "Country blocking"
|
568 |
+
msgstr ""
|
569 |
+
|
570 |
+
#: lib/email_newIssues.php:123
|
571 |
+
msgid "IP reputation monitoring"
|
572 |
+
msgstr ""
|
573 |
+
|
574 |
+
#: lib/email_newIssues.php:124
|
575 |
+
msgid "Schedule scans to run more frequently and at optimal times"
|
576 |
+
msgstr ""
|
577 |
+
|
578 |
+
#: lib/email_newIssues.php:125
|
579 |
+
msgid "Access to Premium Support"
|
580 |
+
msgstr ""
|
581 |
+
|
582 |
+
#: lib/email_newIssues.php:126
|
583 |
+
msgid "Discounts for multi-year and multi-license purchases"
|
584 |
+
msgstr ""
|
585 |
+
|
586 |
+
#: lib/email_newIssues.php:129
|
587 |
+
msgid "Click here to upgrade to Wordfence Premium:"
|
588 |
+
msgstr ""
|
589 |
+
|
590 |
+
#: lib/email_unlockRequest.php:2
|
591 |
+
msgid "Either you or someone else at IP address <b>%s</b> requested instructions to regain access to the website <a href=\"%s\"><b>%s</b></a>."
|
592 |
+
msgstr ""
|
593 |
+
|
594 |
+
#: lib/email_unlockRequest.php:4
|
595 |
+
#: lib/email_unsubscribeRequest.php:4
|
596 |
+
msgid "Request was generated at: %s"
|
597 |
+
msgstr ""
|
598 |
+
|
599 |
+
#: lib/email_unlockRequest.php:6
|
600 |
+
msgid "If you did not request these instructions then you can safely ignore them."
|
601 |
+
msgstr ""
|
602 |
+
|
603 |
+
#: lib/email_unlockRequest.php:7
|
604 |
+
msgid "These instructions <b>will be valid for 30 minutes</b> from the time they were sent."
|
605 |
+
msgstr ""
|
606 |
+
|
607 |
+
#: lib/email_unlockRequest.php:10
|
608 |
+
msgid "Click here to unlock your ability to sign-in and to access to the site."
|
609 |
+
msgstr ""
|
610 |
+
|
611 |
+
#: lib/email_unlockRequest.php:10
|
612 |
+
msgid "Do this if you simply need to regain access because you were accidentally locked out. If you received an \"Insecure Password\" message before getting locked out, you may also need to reset your password."
|
613 |
+
msgstr ""
|
614 |
+
|
615 |
+
#: lib/email_unlockRequest.php:13
|
616 |
+
msgid "Click here to unblock all IP addresses."
|
617 |
+
msgstr ""
|
618 |
+
|
619 |
+
#: lib/email_unlockRequest.php:13
|
620 |
+
msgid "Do this if you still can't regain access using the link above. It causes everyone who is blocked or locked out to be able to access your site again."
|
621 |
+
msgstr ""
|
622 |
+
|
623 |
+
#: lib/email_unlockRequest.php:16
|
624 |
+
msgid "Click here to unlock all IP addresses and disable the Wordfence Firewall and Wordfence login security for all users"
|
625 |
+
msgstr ""
|
626 |
+
|
627 |
+
#: lib/email_unlockRequest.php:16
|
628 |
+
msgid "Do this if you keep getting locked out or blocked and can't access your site. You can re-enable login security and the firewall once you sign-in to the site by visiting the Wordfence Firewall menu, clicking and then turning on the firewall and login security options. If you use country blocking, you will also need to choose which countries to block."
|
629 |
+
msgstr ""
|
630 |
+
|
631 |
+
#: lib/email_unsubscribeRequest.php:2
|
632 |
+
msgid "Either you or someone at IP address <b>%s</b> requested an alert unsubscribe link for the website <a href=\"%s\"><b>%s</b></a>."
|
633 |
+
msgstr ""
|
634 |
+
|
635 |
+
#: lib/email_unsubscribeRequest.php:6
|
636 |
+
msgid "If you did not request this, you can safely ignore it."
|
637 |
+
msgstr ""
|
638 |
+
|
639 |
+
#: lib/email_unsubscribeRequest.php:8
|
640 |
+
msgid "<a href=\"%s\" target=\"_blank\">Click here</a> to stop receiving security alerts."
|
641 |
+
msgstr ""
|
642 |
+
|
643 |
+
#: lib/menu_dashboard.php:24
|
644 |
+
msgid "Wordfence Dashboard"
|
645 |
+
msgstr ""
|
646 |
+
|
647 |
+
#: lib/menu_dashboard.php:26
|
648 |
+
msgid "Learn more<span class=\"wf-hidden-xs\"> about the Dashboard</span>"
|
649 |
+
msgstr ""
|
650 |
+
|
651 |
+
#: lib/menu_dashboard.php:54
|
652 |
+
#: lib/menu_dashboard_options.php:98
|
653 |
+
#: lib/menu_firewall.php:20
|
654 |
+
#: lib/menu_firewall.php:30
|
655 |
+
#: models/page/wfPage.php:105
|
656 |
+
msgid "Firewall"
|
657 |
+
msgstr ""
|
658 |
+
|
659 |
+
#: lib/menu_dashboard.php:55
|
660 |
+
#: lib/menu_dashboard_options.php:99
|
661 |
+
msgid "WAF Currently in Learning Mode"
|
662 |
+
msgstr ""
|
663 |
+
|
664 |
+
#: lib/menu_dashboard.php:55
|
665 |
+
#: lib/menu_dashboard_options.php:99
|
666 |
+
msgid "Protection from known and emerging threats"
|
667 |
+
msgstr ""
|
668 |
+
|
669 |
+
#: lib/menu_dashboard.php:57
|
670 |
+
#: lib/menu_dashboard_options.php:101
|
671 |
+
#: views/waf/firewall-status.php:58
|
672 |
+
msgid "Manage Firewall"
|
673 |
+
msgstr ""
|
674 |
+
|
675 |
+
#: lib/menu_dashboard.php:58
|
676 |
+
#: lib/menu_dashboard_options.php:102
|
677 |
+
msgid "Firewall Status"
|
678 |
+
msgstr ""
|
679 |
+
|
680 |
+
#: lib/menu_dashboard.php:61
|
681 |
+
#: lib/menu_dashboard.php:77
|
682 |
+
#: lib/menu_dashboard_options.php:105
|
683 |
+
#: lib/menu_dashboard_options.php:121
|
684 |
+
msgid "https://www.wordfence.com/help/dashboard/#dashboard-status"
|
685 |
+
msgstr ""
|
686 |
+
|
687 |
+
#: lib/menu_dashboard.php:71
|
688 |
+
#: lib/menu_dashboard_options.php:115
|
689 |
+
#: lib/menu_scanner.php:31
|
690 |
+
#: lib/menu_scanner.php:303
|
691 |
+
#: models/page/wfPage.php:113
|
692 |
+
msgid "Scan"
|
693 |
+
msgstr ""
|
694 |
+
|
695 |
+
#: lib/menu_dashboard.php:72
|
696 |
+
#: lib/menu_dashboard_options.php:116
|
697 |
+
msgid "Detection of security issues"
|
698 |
+
msgstr ""
|
699 |
+
|
700 |
+
#: lib/menu_dashboard.php:74
|
701 |
+
#: lib/menu_dashboard_options.php:118
|
702 |
+
#: lib/menu_scanner.php:64
|
703 |
+
msgid "Manage Scan"
|
704 |
+
msgstr ""
|
705 |
+
|
706 |
+
#: lib/menu_dashboard.php:75
|
707 |
+
#: lib/menu_dashboard_options.php:119
|
708 |
+
#: lib/menu_options.php:87
|
709 |
+
#: lib/menu_scanner.php:65
|
710 |
+
#: lib/menu_scanner_options.php:120
|
711 |
+
#: views/dashboard/options-group-dashboard.php:97
|
712 |
+
msgid "Scan Status"
|
713 |
+
msgstr ""
|
714 |
+
|
715 |
+
#: lib/menu_dashboard.php:86
|
716 |
+
#: lib/menu_dashboard_options.php:130
|
717 |
+
msgid "Premium License Conflict"
|
718 |
+
msgstr ""
|
719 |
+
|
720 |
+
#: lib/menu_dashboard.php:87
|
721 |
+
#: lib/menu_dashboard_options.php:131
|
722 |
+
msgid "License already in use"
|
723 |
+
msgstr ""
|
724 |
+
|
725 |
+
#: lib/menu_dashboard.php:89
|
726 |
+
#: lib/menu_dashboard_options.php:133
|
727 |
+
msgid "Reset License"
|
728 |
+
msgstr ""
|
729 |
+
|
730 |
+
#: lib/menu_dashboard.php:97
|
731 |
+
#: lib/menu_dashboard.php:106
|
732 |
+
#: lib/menu_dashboard_options.php:141
|
733 |
+
#: lib/menu_dashboard_options.php:150
|
734 |
+
#: views/scanner/scanner-status.php:53
|
735 |
+
#: views/waf/firewall-status.php:66
|
736 |
+
msgid "Premium Protection Disabled"
|
737 |
+
msgstr ""
|
738 |
+
|
739 |
+
#: lib/menu_dashboard.php:98
|
740 |
+
#: lib/menu_dashboard_options.php:142
|
741 |
+
msgid "License is expired"
|
742 |
+
msgstr ""
|
743 |
+
|
744 |
+
#: lib/menu_dashboard.php:100
|
745 |
+
#: lib/menu_dashboard.php:117
|
746 |
+
#: lib/menu_dashboard_options.php:144
|
747 |
+
#: lib/menu_dashboard_options.php:161
|
748 |
+
msgid "Renew License"
|
749 |
+
msgstr ""
|
750 |
+
|
751 |
+
#: lib/menu_dashboard.php:107
|
752 |
+
#: lib/menu_dashboard_options.php:151
|
753 |
+
#: views/waf/firewall-status.php:67
|
754 |
+
msgid "As a free Wordfence user, you are currently using the Community version of the Threat Defense Feed. Premium users are protected by an additional %d firewall rules and malware signatures. Upgrade to Premium today to improve your protection."
|
755 |
+
msgstr ""
|
756 |
+
|
757 |
+
#: lib/menu_dashboard.php:108
|
758 |
+
#: lib/menu_dashboard_options.php:152
|
759 |
+
#: lib/menu_firewall_waf.php:55
|
760 |
+
#: lib/menu_firewall_waf.php:72
|
761 |
+
#: lib/menu_scanner.php:80
|
762 |
+
#: lib/menu_support.php:43
|
763 |
+
#: lib/menu_tools_twoFactor.php:51
|
764 |
+
#: views/blocking/blocking-create.php:179
|
765 |
+
#: views/blocking/blocking-status.php:27
|
766 |
+
#: views/blocking/options-group-advanced-country.php:85
|
767 |
+
#: views/dashboard/options-group-dashboard.php:107
|
768 |
+
#: views/dashboard/options-group-license.php:70
|
769 |
+
#: views/onboarding/fresh-install.php:43
|
770 |
+
#: views/onboarding/modal-final-attempt.php:41
|
771 |
+
#: views/onboarding/plugin-header.php:65
|
772 |
+
#: views/scanner/scanner-status.php:55
|
773 |
+
#: views/tools/options-group-2fa.php:40
|
774 |
+
#: views/waf/firewall-status.php:68
|
775 |
+
#: views/waf/options-group-basic-firewall.php:467
|
776 |
+
msgid "Upgrade to Premium"
|
777 |
+
msgstr ""
|
778 |
+
|
779 |
+
#: lib/menu_dashboard.php:114
|
780 |
+
#: lib/menu_dashboard.php:171
|
781 |
+
#: lib/menu_dashboard_options.php:158
|
782 |
+
#: lib/menu_dashboard_options.php:215
|
783 |
+
msgid "Premium License Expiring"
|
784 |
+
msgstr ""
|
785 |
+
|
786 |
+
#: lib/menu_dashboard.php:115
|
787 |
+
#: lib/menu_dashboard_options.php:159
|
788 |
+
msgid "Auto-renew is disabled"
|
789 |
+
msgstr ""
|
790 |
+
|
791 |
+
#: lib/menu_dashboard.php:124
|
792 |
+
#: lib/menu_dashboard_options.php:168
|
793 |
+
msgid "Payment Method Expiring"
|
794 |
+
msgstr ""
|
795 |
+
|
796 |
+
#: lib/menu_dashboard.php:127
|
797 |
+
#: lib/menu_dashboard_options.php:171
|
798 |
+
msgid "Payment Method Expired"
|
799 |
+
msgstr ""
|
800 |
+
|
801 |
+
#: lib/menu_dashboard.php:130
|
802 |
+
#: lib/menu_dashboard_options.php:174
|
803 |
+
msgid "Payment Method Missing"
|
804 |
+
msgstr ""
|
805 |
+
|
806 |
+
#: lib/menu_dashboard.php:133
|
807 |
+
#: lib/menu_dashboard_options.php:177
|
808 |
+
msgid "Payment Method Invalid"
|
809 |
+
msgstr ""
|
810 |
+
|
811 |
+
#: lib/menu_dashboard.php:139
|
812 |
+
#: lib/menu_dashboard.php:160
|
813 |
+
#: lib/menu_dashboard_options.php:183
|
814 |
+
#: lib/menu_dashboard_options.php:204
|
815 |
+
msgid "today"
|
816 |
+
msgstr ""
|
817 |
+
|
818 |
+
#: lib/menu_dashboard.php:142
|
819 |
+
#: lib/menu_dashboard_options.php:186
|
820 |
+
msgid "tomorrow"
|
821 |
+
msgstr ""
|
822 |
+
|
823 |
+
#: lib/menu_dashboard.php:145
|
824 |
+
#: lib/menu_dashboard.php:166
|
825 |
+
#: lib/menu_dashboard_options.php:189
|
826 |
+
#: lib/menu_dashboard_options.php:210
|
827 |
+
msgid "in %d days"
|
828 |
+
msgstr ""
|
829 |
+
|
830 |
+
#: lib/menu_dashboard.php:151
|
831 |
+
#: lib/menu_dashboard.php:172
|
832 |
+
#: lib/menu_dashboard_options.php:195
|
833 |
+
#: lib/menu_dashboard_options.php:216
|
834 |
+
msgid "License renews %s"
|
835 |
+
msgstr ""
|
836 |
+
|
837 |
+
#: lib/menu_dashboard.php:153
|
838 |
+
#: lib/menu_dashboard_options.php:197
|
839 |
+
msgid "Update Payment Method"
|
840 |
+
msgstr ""
|
841 |
+
|
842 |
+
#: lib/menu_dashboard.php:163
|
843 |
+
#: lib/menu_dashboard_options.php:207
|
844 |
+
msgid "in 1 day"
|
845 |
+
msgstr ""
|
846 |
+
|
847 |
+
#: lib/menu_dashboard.php:174
|
848 |
+
#: lib/menu_dashboard_options.php:218
|
849 |
+
msgid "Review Payment Method"
|
850 |
+
msgstr ""
|
851 |
+
|
852 |
+
#: lib/menu_dashboard.php:182
|
853 |
+
#: lib/menu_dashboard_options.php:226
|
854 |
+
msgid "Wordfence Premium Enabled"
|
855 |
+
msgstr ""
|
856 |
+
|
857 |
+
#: lib/menu_dashboard.php:208
|
858 |
+
msgid "Tools"
|
859 |
+
msgstr ""
|
860 |
+
|
861 |
+
#: lib/menu_dashboard.php:209
|
862 |
+
msgid "Live Traffic, Whois Lookup, Import/Export, and Diagnostics"
|
863 |
+
msgstr ""
|
864 |
+
|
865 |
+
#: lib/menu_dashboard.php:219
|
866 |
+
#: lib/menu_firewall_waf.php:157
|
867 |
+
#: lib/menu_scanner.php:139
|
868 |
+
#: lib/menu_support.php:19
|
869 |
+
msgid "Help"
|
870 |
+
msgstr ""
|
871 |
+
|
872 |
+
#: lib/menu_dashboard.php:220
|
873 |
+
#: lib/menu_firewall_waf.php:158
|
874 |
+
#: lib/menu_scanner.php:140
|
875 |
+
msgid "Find the documentation and help you need"
|
876 |
+
msgstr ""
|
877 |
+
|
878 |
+
#: lib/menu_dashboard.php:230
|
879 |
+
#: models/page/wfPage.php:103
|
880 |
+
msgid "Global Options"
|
881 |
+
msgstr ""
|
882 |
+
|
883 |
+
#: lib/menu_dashboard.php:231
|
884 |
+
msgid "Manage global options for Wordfence such as alerts, premium status, and more"
|
885 |
+
msgstr ""
|
886 |
+
|
887 |
+
#: lib/menu_dashboard.php:282
|
888 |
+
msgid "This is your Dashboard"
|
889 |
+
msgstr ""
|
890 |
+
|
891 |
+
#: lib/menu_dashboard.php:283
|
892 |
+
msgid "The Wordfence Dashboard provides valuable insights into the current state of your site's security. You'll find useful data summarized here as well as important status updates and notifications."
|
893 |
+
msgstr ""
|
894 |
+
|
895 |
+
#: lib/menu_dashboard.php:290
|
896 |
+
#: lib/menu_dashboard.php:306
|
897 |
+
#: lib/menu_dashboard.php:367
|
898 |
+
#: lib/menu_dashboard.php:384
|
899 |
+
#: lib/menu_dashboard.php:402
|
900 |
+
#: lib/menu_firewall_blocking.php:125
|
901 |
+
#: lib/menu_firewall_blocking.php:141
|
902 |
+
#: lib/menu_firewall_blocking.php:209
|
903 |
+
#: lib/menu_firewall_waf.php:255
|
904 |
+
#: lib/menu_firewall_waf.php:272
|
905 |
+
#: lib/menu_firewall_waf.php:289
|
906 |
+
#: lib/menu_scanner.php:311
|
907 |
+
#: lib/menu_scanner.php:328
|
908 |
+
#: lib/menu_scanner.php:380
|
909 |
+
#: views/tours/login-security.php:37
|
910 |
+
#: views/tours/login-security.php:53
|
911 |
+
msgid "Next"
|
912 |
+
msgstr ""
|
913 |
+
|
914 |
+
#: lib/menu_dashboard.php:297
|
915 |
+
msgid "Easily Monitor Your Wordfence Protection"
|
916 |
+
msgstr ""
|
917 |
+
|
918 |
+
#: lib/menu_dashboard.php:298
|
919 |
+
msgid "Each feature contains a status that reminds you what's enabled, disabled or needs attention. The Notifications section will highlight actions you need to take."
|
920 |
+
msgstr ""
|
921 |
+
|
922 |
+
#: lib/menu_dashboard.php:305
|
923 |
+
#: lib/menu_dashboard.php:322
|
924 |
+
#: lib/menu_dashboard.php:383
|
925 |
+
#: lib/menu_dashboard.php:401
|
926 |
+
#: lib/menu_dashboard.php:418
|
927 |
+
#: lib/menu_firewall_blocking.php:140
|
928 |
+
#: lib/menu_firewall_blocking.php:156
|
929 |
+
#: lib/menu_firewall_blocking.php:223
|
930 |
+
#: lib/menu_firewall_waf.php:271
|
931 |
+
#: lib/menu_firewall_waf.php:288
|
932 |
+
#: lib/menu_firewall_waf.php:306
|
933 |
+
#: lib/menu_scanner.php:327
|
934 |
+
#: lib/menu_scanner.php:343
|
935 |
+
#: lib/menu_scanner.php:394
|
936 |
+
#: views/tours/login-security.php:52
|
937 |
+
#: views/tours/login-security.php:69
|
938 |
+
msgid "Previous"
|
939 |
+
msgstr ""
|
940 |
+
|
941 |
+
#: lib/menu_dashboard.php:313
|
942 |
+
#: lib/menu_dashboard.php:391
|
943 |
+
msgid "Global Wordfence Options"
|
944 |
+
msgstr ""
|
945 |
+
|
946 |
+
#: lib/menu_dashboard.php:315
|
947 |
+
msgid "You'll find this icon throughout the plugin. Clicking it will show you the options and features for each section of Wordfence. From the dashboard, you can find the <strong>Global Options</strong> for Wordfence such as alerts, automatic updates, and managing your site's Premium License."
|
948 |
+
msgstr ""
|
949 |
+
|
950 |
+
#: lib/menu_dashboard.php:323
|
951 |
+
#: lib/menu_dashboard.php:419
|
952 |
+
#: lib/menu_firewall_blocking.php:157
|
953 |
+
#: lib/menu_firewall_blocking.php:224
|
954 |
+
#: lib/menu_firewall_waf.php:307
|
955 |
+
#: lib/menu_firewall_waf.php:354
|
956 |
+
#: lib/menu_scanner.php:344
|
957 |
+
#: lib/menu_scanner.php:395
|
958 |
+
#: lib/menu_tools_livetraffic.php:552
|
959 |
+
#: lib/menu_tools_livetraffic.php:583
|
960 |
+
msgid "Got it"
|
961 |
+
msgstr ""
|
962 |
+
|
963 |
+
#: lib/menu_dashboard.php:357
|
964 |
+
msgid "You have successfully updated to Wordfence %s"
|
965 |
+
msgstr ""
|
966 |
+
|
967 |
+
#: lib/menu_dashboard.php:358
|
968 |
+
msgid "This update includes a number of significant interface changes. We'd like to walk you through some of them, but you can bypass the tour for a section at any time by closing the dialogs."
|
969 |
+
msgstr ""
|
970 |
+
|
971 |
+
#: lib/menu_dashboard.php:359
|
972 |
+
msgid "We welcome your feedback and comments at <a href=\"mailto:feedback@wordfence.com\">feedback@wordfence.com</a>. For a deeper dive on all of the changes, <a href=\"https://www.wordfence.com/blog/2018/01/introducing-wordfence-7/\" target=\"_blank\" rel=\"noopener noreferrer\">click here</a>."
|
973 |
+
msgstr ""
|
974 |
+
|
975 |
+
#: lib/menu_dashboard.php:374
|
976 |
+
msgid "Monitor Your Wordfence Protection"
|
977 |
+
msgstr ""
|
978 |
+
|
979 |
+
#: lib/menu_dashboard.php:375
|
980 |
+
msgid "Each feature contains a status percentage reminding you at a high level of what's enabled, disabled, or needing your attention. The Notifications section highlights actions you need to take."
|
981 |
+
msgstr ""
|
982 |
+
|
983 |
+
#: lib/menu_dashboard.php:393
|
984 |
+
msgid "Manage your Wordfence license, see alerts and automatic plugin updates, and import/export your settings."
|
985 |
+
msgstr ""
|
986 |
+
|
987 |
+
#: lib/menu_dashboard.php:409
|
988 |
+
msgid "Updated Navigation"
|
989 |
+
msgstr ""
|
990 |
+
|
991 |
+
#: lib/menu_dashboard.php:410
|
992 |
+
msgid "The main navigation no longer includes an <strong>Options</strong> link. Options are now accessed via the <strong>Options</strong> link on each feature's main page. Live Traffic is now located in the Tools section, and blocking is found under the Firewall. Shortcuts to add a <strong>Blocking</strong> link back to the main navigation are available under Blocking options."
|
993 |
+
msgstr ""
|
994 |
+
|
995 |
+
#: lib/menu_dashboard.php:459
|
996 |
+
msgid "Recommended Settings Change"
|
997 |
+
msgstr ""
|
998 |
+
|
999 |
+
#: lib/menu_dashboard.php:460
|
1000 |
+
msgid "Greetings! The default configuration for Wordfence Live Traffic has changed. The new default saves only logins and blocked requests, while this site is currently recording all traffic. Would you like to change to the new default?"
|
1001 |
+
msgstr ""
|
1002 |
+
|
1003 |
+
#: lib/menu_dashboard.php:460
|
1004 |
+
msgid "Rate limiting based on type of request (human vs crawler) may be less accurate because this prevents loading the extra JavaScript used for that identification."
|
1005 |
+
msgstr ""
|
1006 |
+
|
1007 |
+
#: lib/menu_dashboard.php:461
|
1008 |
+
msgid "Yes Please"
|
1009 |
+
msgstr ""
|
1010 |
+
|
1011 |
+
#: lib/menu_dashboard.php:463
|
1012 |
+
#: views/onboarding/fresh-install.php:45
|
1013 |
+
#: views/onboarding/modal-final-attempt.php:43
|
1014 |
+
#: views/onboarding/plugin-header.php:67
|
1015 |
+
msgid "No Thanks"
|
1016 |
+
msgstr ""
|
1017 |
+
|
1018 |
+
#: lib/menu_dashboard_options.php:11
|
1019 |
+
#: lib/menu_dashboard_options.php:79
|
1020 |
+
#: lib/menu_options.php:271
|
1021 |
+
msgid "Wordfence Global Options"
|
1022 |
+
msgstr ""
|
1023 |
+
|
1024 |
+
#: lib/menu_dashboard_options.php:48
|
1025 |
+
msgid "Back<span class=\"wf-hidden-xs\"> to Dashboard</span>"
|
1026 |
+
msgstr ""
|
1027 |
+
|
1028 |
+
#: lib/menu_dashboard_options.php:50
|
1029 |
+
msgid "Are you sure you want to restore the default global settings? This will undo any custom changes you have made to the options on this page. Your configured license key and alert emails will not be changed."
|
1030 |
+
msgstr ""
|
1031 |
+
|
1032 |
+
#: lib/menu_dashboard_options.php:81
|
1033 |
+
msgid "Learn more<span class=\"wf-hidden-xs\"> about Global Options</span>"
|
1034 |
+
msgstr ""
|
1035 |
+
|
1036 |
+
#: lib/menu_dashboard_options.php:268
|
1037 |
+
#: lib/menu_dashboard_options.php:278
|
1038 |
+
#: lib/menu_options.php:404
|
1039 |
+
#: lib/menu_options.php:414
|
1040 |
+
#: lib/menu_tools.php:26
|
1041 |
+
#: lib/menu_tools_importExport.php:7
|
1042 |
+
#: lib/menu_tools_importExport.php:13
|
1043 |
+
#: models/page/wfPage.php:121
|
1044 |
+
#: views/dashboard/options-group-import.php:22
|
1045 |
+
msgid "Import/Export Options"
|
1046 |
+
msgstr ""
|
1047 |
+
|
1048 |
+
#: lib/menu_dashboard_options.php:276
|
1049 |
+
msgid "Importing and exporting of options has moved to the Tools page"
|
1050 |
+
msgstr ""
|
1051 |
+
|
1052 |
+
#: lib/menu_firewall.php:20
|
1053 |
+
#: lib/menu_firewall_waf.php:35
|
1054 |
+
#: lib/menu_firewall_waf_options.php:141
|
1055 |
+
msgid "Web Application Firewall"
|
1056 |
+
msgstr ""
|
1057 |
+
|
1058 |
+
#: lib/menu_firewall.php:21
|
1059 |
+
#: lib/menu_firewall.php:41
|
1060 |
+
#: lib/menu_firewall_blocking.php:117
|
1061 |
+
#: lib/menu_firewall_waf.php:142
|
1062 |
+
#: models/page/wfPage.php:109
|
1063 |
+
msgid "Blocking"
|
1064 |
+
msgstr ""
|
1065 |
+
|
1066 |
+
#: lib/menu_firewall.php:33
|
1067 |
+
#: lib/menu_firewall_waf_options.php:124
|
1068 |
+
msgid "Learn more<span class=\"wf-hidden-xs\"> about the Firewall</span>"
|
1069 |
+
msgstr ""
|
1070 |
+
|
1071 |
+
#: lib/menu_firewall.php:44
|
1072 |
+
#: lib/menu_firewall_blocking_options.php:92
|
1073 |
+
msgid "Learn more<span class=\"wf-hidden-xs\"> about Blocking</span>"
|
1074 |
+
msgstr ""
|
1075 |
+
|
1076 |
+
#: lib/menu_firewall_blocking.php:25
|
1077 |
+
msgid "<strong>Note:</strong> Blocking is disabled when the option \"Enable Rate Limiting and Advanced Blocking\" is off."
|
1078 |
+
msgstr ""
|
1079 |
+
|
1080 |
+
#: lib/menu_firewall_blocking.php:26
|
1081 |
+
#: lib/menu_tools_twoFactor.php:79
|
1082 |
+
msgid "Turn On"
|
1083 |
+
msgstr ""
|
1084 |
+
|
1085 |
+
#: lib/menu_firewall_blocking.php:31
|
1086 |
+
msgid "<strong>Note:</strong> The GeoIP database that is required for country blocking has been updated to a new format. This new format requires sites to run PHP 5.4 or newer, and this site is on PHP %s. To ensure country blocking continues functioning, please update PHP."
|
1087 |
+
msgstr ""
|
1088 |
+
|
1089 |
+
#: lib/menu_firewall_blocking.php:32
|
1090 |
+
msgid "More Information"
|
1091 |
+
msgstr ""
|
1092 |
+
|
1093 |
+
#: lib/menu_firewall_blocking.php:38
|
1094 |
+
msgid "Create a Blocking Rule"
|
1095 |
+
msgstr ""
|
1096 |
+
|
1097 |
+
#: lib/menu_firewall_blocking.php:38
|
1098 |
+
msgid "Edit Blocking Rule"
|
1099 |
+
msgstr ""
|
1100 |
+
|
1101 |
+
#: lib/menu_firewall_blocking.php:118
|
1102 |
+
msgid "Wordfence lets you take control of protecting your site with powerful blocking features. Block traffic based on IP, IP range, hostname, browser, or referrer. Country blocking is available for Premium customers."
|
1103 |
+
msgstr ""
|
1104 |
+
|
1105 |
+
#: lib/menu_firewall_blocking.php:132
|
1106 |
+
#: lib/menu_firewall_blocking.php:202
|
1107 |
+
msgid "Blocking Builder"
|
1108 |
+
msgstr ""
|
1109 |
+
|
1110 |
+
#: lib/menu_firewall_blocking.php:133
|
1111 |
+
msgid "All of your blocking rules are in one central location. Choose the Block Type, then enter the details for the rule. Once it has been added, you'll see it saved as a rule for your site."
|
1112 |
+
msgstr ""
|
1113 |
+
|
1114 |
+
#: lib/menu_firewall_blocking.php:148
|
1115 |
+
#: lib/menu_firewall_blocking.php:216
|
1116 |
+
msgid "Manage Blocking Rules"
|
1117 |
+
msgstr ""
|
1118 |
+
|
1119 |
+
#: lib/menu_firewall_blocking.php:149
|
1120 |
+
msgid "Here's where you'll see all the blocking rules you've created. You can also manage them as well as remove or modify them from this table."
|
1121 |
+
msgstr ""
|
1122 |
+
|
1123 |
+
#: lib/menu_firewall_blocking.php:203
|
1124 |
+
msgid "All of the blocking rules you create are now in one central location. Simply choose the block type and enter the details for the rule you want to create. Premium users have access to advanced country blocking options, found via the <strong>Options</strong> link."
|
1125 |
+
msgstr ""
|
1126 |
+
|
1127 |
+
#: lib/menu_firewall_blocking.php:217
|
1128 |
+
msgid "All blocking rules you create will show here. You can manage them as well as remove or modify them from the same location."
|
1129 |
+
msgstr ""
|
1130 |
+
|
1131 |
+
#: lib/menu_firewall_blocking_options.php:12
|
1132 |
+
#: lib/menu_firewall_blocking_options.php:90
|
1133 |
+
#: lib/menu_options.php:339
|
1134 |
+
#: models/page/wfPage.php:111
|
1135 |
+
#: views/blocking/blocking-status.php:14
|
1136 |
+
msgid "Blocking Options"
|
1137 |
+
msgstr ""
|
1138 |
+
|
1139 |
+
#: lib/menu_firewall_blocking_options.php:49
|
1140 |
+
#: lib/menu_firewall_waf_options.php:78
|
1141 |
+
#: lib/menu_scanner_options.php:66
|
1142 |
+
msgid "<span class=\"wf-hidden-xs\">Back to </span>%s"
|
1143 |
+
msgstr ""
|
1144 |
+
|
1145 |
+
#: lib/menu_firewall_blocking_options.php:51
|
1146 |
+
msgid "Are you sure you want to restore the default Blocking settings? This will undo any custom changes you have made to the options on this page. Any existing blocks will be preserved."
|
1147 |
+
msgstr ""
|
1148 |
+
|
1149 |
+
#: lib/menu_firewall_blocking_options.php:102
|
1150 |
+
msgid "General"
|
1151 |
+
msgstr ""
|
1152 |
+
|
1153 |
+
#: lib/menu_firewall_blocking_options.php:116
|
1154 |
+
msgid "Display Blocking menu option"
|
1155 |
+
msgstr ""
|
1156 |
+
|
1157 |
+
#: lib/menu_firewall_waf.php:36
|
1158 |
+
#: lib/menu_firewall_waf.php:53
|
1159 |
+
#: lib/menu_firewall_waf_options.php:142
|
1160 |
+
#: lib/menu_firewall_waf_options.php:159
|
1161 |
+
msgid "Currently in Learning Mode"
|
1162 |
+
msgstr ""
|
1163 |
+
|
1164 |
+
#: lib/menu_firewall_waf.php:36
|
1165 |
+
#: lib/menu_firewall_waf_options.php:142
|
1166 |
+
msgid "Stops Complex Attacks"
|
1167 |
+
msgstr ""
|
1168 |
+
|
1169 |
+
#: lib/menu_firewall_waf.php:38
|
1170 |
+
msgid "Manage WAF"
|
1171 |
+
msgstr ""
|
1172 |
+
|
1173 |
+
#: lib/menu_firewall_waf.php:39
|
1174 |
+
#: lib/menu_firewall_waf_options.php:145
|
1175 |
+
#: lib/menu_options.php:104
|
1176 |
+
#: views/waf/options-group-basic-firewall.php:34
|
1177 |
+
msgid "Web Application Firewall Status"
|
1178 |
+
msgstr ""
|
1179 |
+
|
1180 |
+
#: lib/menu_firewall_waf.php:42
|
1181 |
+
#: lib/menu_firewall_waf.php:60
|
1182 |
+
#: lib/menu_firewall_waf.php:76
|
1183 |
+
#: lib/menu_firewall_waf.php:108
|
1184 |
+
msgid "https://www.wordfence.com/help/firewall/#firewall-status"
|
1185 |
+
msgstr ""
|
1186 |
+
|
1187 |
+
#: lib/menu_firewall_waf.php:52
|
1188 |
+
#: lib/menu_firewall_waf_options.php:158
|
1189 |
+
msgid "Firewall Rules: "
|
1190 |
+
msgstr ""
|
1191 |
+
|
1192 |
+
#: lib/menu_firewall_waf.php:52
|
1193 |
+
#: lib/menu_firewall_waf_options.php:158
|
1194 |
+
#: lib/menu_scanner.php:77
|
1195 |
+
#: lib/menu_scanner_options.php:132
|
1196 |
+
msgid "Community"
|
1197 |
+
msgstr ""
|
1198 |
+
|
1199 |
+
#: lib/menu_firewall_waf.php:53
|
1200 |
+
#: lib/menu_firewall_waf_options.php:159
|
1201 |
+
msgid "Rules updated in real-time"
|
1202 |
+
msgstr ""
|
1203 |
+
|
1204 |
+
#: lib/menu_firewall_waf.php:53
|
1205 |
+
#: lib/menu_firewall_waf_options.php:159
|
1206 |
+
msgid "Rule updates delayed by 30 days"
|
1207 |
+
msgstr ""
|
1208 |
+
|
1209 |
+
#: lib/menu_firewall_waf.php:55
|
1210 |
+
msgid "Manage Firewall Rules"
|
1211 |
+
msgstr ""
|
1212 |
+
|
1213 |
+
#: lib/menu_firewall_waf.php:57
|
1214 |
+
#: lib/menu_firewall_waf_options.php:163
|
1215 |
+
msgid "Firewall Rules Status"
|
1216 |
+
msgstr ""
|
1217 |
+
|
1218 |
+
#: lib/menu_firewall_waf.php:69
|
1219 |
+
#: lib/menu_firewall_waf_options.php:175
|
1220 |
+
msgid "Real-Time IP Blacklist: "
|
1221 |
+
msgstr ""
|
1222 |
+
|
1223 |
+
#: lib/menu_firewall_waf.php:69
|
1224 |
+
#: lib/menu_firewall_waf_options.php:175
|
1225 |
+
#: lib/menu_tools_diagnostic.php:295
|
1226 |
+
#: lib/menu_tools_diagnostic.php:300
|
1227 |
+
#: lib/menu_tools_diagnostic.php:301
|
1228 |
+
#: lib/menu_tools_diagnostic.php:304
|
1229 |
+
#: models/firewall/wfFirewall.php:35
|
1230 |
+
#: views/diagnostics/text.php:154
|
1231 |
+
#: views/diagnostics/text.php:159
|
1232 |
+
#: views/diagnostics/text.php:160
|
1233 |
+
#: views/diagnostics/text.php:163
|
1234 |
+
#: views/scanner/scan-scheduling.php:15
|
1235 |
+
#: views/waf/options-group-basic-firewall.php:477
|
1236 |
+
#: views/waf/options-group-whitelisted.php:81
|
1237 |
+
#: views/waf/options-group-whitelisted.php:94
|
1238 |
+
msgid "Enabled"
|
1239 |
+
msgstr ""
|
1240 |
+
|
1241 |
+
#: lib/menu_firewall_waf.php:69
|
1242 |
+
#: lib/menu_firewall_waf_options.php:175
|
1243 |
+
#: lib/menu_tools_diagnostic.php:295
|
1244 |
+
#: lib/menu_tools_diagnostic.php:300
|
1245 |
+
#: lib/menu_tools_diagnostic.php:301
|
1246 |
+
#: lib/menu_tools_diagnostic.php:304
|
1247 |
+
#: models/firewall/wfFirewall.php:41
|
1248 |
+
#: views/diagnostics/text.php:154
|
1249 |
+
#: views/diagnostics/text.php:159
|
1250 |
+
#: views/diagnostics/text.php:160
|
1251 |
+
#: views/diagnostics/text.php:163
|
1252 |
+
#: views/scanner/scan-scheduling.php:14
|
1253 |
+
#: views/waf/options-group-basic-firewall.php:48
|
1254 |
+
#: views/waf/options-group-basic-firewall.php:476
|
1255 |
+
msgid "Disabled"
|
1256 |
+
msgstr ""
|
1257 |
+
|
1258 |
+
#: lib/menu_firewall_waf.php:70
|
1259 |
+
#: lib/menu_firewall_waf_options.php:176
|
1260 |
+
msgid "Blocks requests from known malicious IPs"
|
1261 |
+
msgstr ""
|
1262 |
+
|
1263 |
+
#: lib/menu_firewall_waf.php:72
|
1264 |
+
msgid "Manage Real-Time IP Blacklist"
|
1265 |
+
msgstr ""
|
1266 |
+
|
1267 |
+
#: lib/menu_firewall_waf.php:72
|
1268 |
+
#: views/waf/option-whitelist.php:102
|
1269 |
+
msgid "Enable"
|
1270 |
+
msgstr ""
|
1271 |
+
|
1272 |
+
#: lib/menu_firewall_waf.php:74
|
1273 |
+
#: lib/menu_firewall_waf_options.php:180
|
1274 |
+
msgid "Blacklist Status"
|
1275 |
+
msgstr ""
|
1276 |
+
|
1277 |
+
#: lib/menu_firewall_waf.php:102
|
1278 |
+
#: lib/menu_firewall_waf.php:279
|
1279 |
+
#: lib/menu_firewall_waf_options.php:191
|
1280 |
+
#: views/waf/options-group-brute-force.php:26
|
1281 |
+
msgid "Brute Force Protection"
|
1282 |
+
msgstr ""
|
1283 |
+
|
1284 |
+
#: lib/menu_firewall_waf.php:102
|
1285 |
+
#: lib/menu_firewall_waf_options.php:191
|
1286 |
+
msgid ": Disabled"
|
1287 |
+
msgstr ""
|
1288 |
+
|
1289 |
+
#: lib/menu_firewall_waf.php:103
|
1290 |
+
#: lib/menu_firewall_waf_options.php:192
|
1291 |
+
msgid "Stops Password Guessing Attacks"
|
1292 |
+
msgstr ""
|
1293 |
+
|
1294 |
+
#: lib/menu_firewall_waf.php:105
|
1295 |
+
msgid "Manage Brute Force Protection"
|
1296 |
+
msgstr ""
|
1297 |
+
|
1298 |
+
#: lib/menu_firewall_waf.php:106
|
1299 |
+
#: lib/menu_firewall_waf_options.php:195
|
1300 |
+
msgid "Brute Force Protection Status"
|
1301 |
+
msgstr ""
|
1302 |
+
|
1303 |
+
#: lib/menu_firewall_waf.php:131
|
1304 |
+
#: views/waf/options-group-rate-limiting.php:26
|
1305 |
+
msgid "Rate Limiting"
|
1306 |
+
msgstr ""
|
1307 |
+
|
1308 |
+
#: lib/menu_firewall_waf.php:132
|
1309 |
+
msgid "Block crawlers that are using too many resources or stealing content"
|
1310 |
+
msgstr ""
|
1311 |
+
|
1312 |
+
#: lib/menu_firewall_waf.php:143
|
1313 |
+
msgid "Block traffic by country, IP, IP range, user agent, referrer, or hostname"
|
1314 |
+
msgstr ""
|
1315 |
+
|
1316 |
+
#: lib/menu_firewall_waf.php:168
|
1317 |
+
msgid "All Firewall Options"
|
1318 |
+
msgstr ""
|
1319 |
+
|
1320 |
+
#: lib/menu_firewall_waf.php:169
|
1321 |
+
msgid "Manage global and advanced firewall options"
|
1322 |
+
msgstr ""
|
1323 |
+
|
1324 |
+
#: lib/menu_firewall_waf.php:246
|
1325 |
+
msgid "The Wordfence firewall protects your sites from attackers"
|
1326 |
+
msgstr ""
|
1327 |
+
|
1328 |
+
#: lib/menu_firewall_waf.php:247
|
1329 |
+
msgid "This is where you can monitor the work Wordfence is doing to protect your site and also where you can manage the options to optimize the firewall's configuration."
|
1330 |
+
msgstr ""
|
1331 |
+
|
1332 |
+
#: lib/menu_firewall_waf.php:262
|
1333 |
+
msgid "Web Application Firewall (WAF)"
|
1334 |
+
msgstr ""
|
1335 |
+
|
1336 |
+
#: lib/menu_firewall_waf.php:263
|
1337 |
+
msgid "The Wordfence Web Application Firewall blocks known and emerging attacks using firewall rules. When you first install the WAF, it will be in learning mode. This allows Wordfence to learn about your site so that we can understand how to protect it and how to allow normal visitors through the firewall. We recommend you let Wordfence learn for a week before you enable the firewall."
|
1338 |
+
msgstr ""
|
1339 |
+
|
1340 |
+
#: lib/menu_firewall_waf.php:280
|
1341 |
+
msgid "Wordfence protects your site from password-guessing attacks by locking out attackers and helping you avoid weak passwords."
|
1342 |
+
msgstr ""
|
1343 |
+
|
1344 |
+
#: lib/menu_firewall_waf.php:296
|
1345 |
+
#: lib/menu_firewall_waf.php:347
|
1346 |
+
#: lib/menu_firewall_waf_options.php:23
|
1347 |
+
#: lib/menu_firewall_waf_options.php:122
|
1348 |
+
#: lib/menu_options.php:302
|
1349 |
+
#: models/page/wfPage.php:107
|
1350 |
+
msgid "Firewall Options"
|
1351 |
+
msgstr ""
|
1352 |
+
|
1353 |
+
#: lib/menu_firewall_waf.php:298
|
1354 |
+
msgid "Set up the way you want the firewall to protect your site including the web application firewall, brute force protection, rate limiting, and blocking."
|
1355 |
+
msgstr ""
|
1356 |
+
|
1357 |
+
#: lib/menu_firewall_waf.php:349
|
1358 |
+
msgid "All of the Firewall settings are now located here. This includes configuration options for the web application firewall, brute force protection, rate limiting, whitelisted URLs, and blocking."
|
1359 |
+
msgstr ""
|
1360 |
+
|
1361 |
+
#: lib/menu_firewall_waf_options.php:80
|
1362 |
+
msgid "Are you sure you want to restore the default Firewall settings? This will undo any custom changes you have made to the options on this page. If you have manually disabled any rules or added any custom whitelisted URLs, those changes will not be overwritten."
|
1363 |
+
msgstr ""
|
1364 |
+
|
1365 |
+
#: lib/menu_options.php:24
|
1366 |
+
#: lib/menu_options.php:261
|
1367 |
+
msgid "All Options"
|
1368 |
+
msgstr ""
|
1369 |
+
|
1370 |
+
#: lib/menu_options.php:68
|
1371 |
+
#: views/dashboard/options-group-license.php:35
|
1372 |
+
msgid "License Key"
|
1373 |
+
msgstr ""
|
1374 |
+
|
1375 |
+
#: lib/menu_options.php:69
|
1376 |
+
msgid "Display All Options menu item"
|
1377 |
+
msgstr ""
|
1378 |
+
|
1379 |
+
#: lib/menu_options.php:70
|
1380 |
+
msgid "Display Blocking menu item"
|
1381 |
+
msgstr ""
|
1382 |
+
|
1383 |
+
#: lib/menu_options.php:71
|
1384 |
+
msgid "Display Live Traffic menu item"
|
1385 |
+
msgstr ""
|
1386 |
+
|
1387 |
+
#: lib/menu_options.php:72
|
1388 |
+
#: views/dashboard/options-group-general.php:44
|
1389 |
+
msgid "Update Wordfence automatically when a new version is released?"
|
1390 |
+
msgstr ""
|
1391 |
+
|
1392 |
+
#: lib/menu_options.php:73
|
1393 |
+
#: views/dashboard/options-group-general.php:55
|
1394 |
+
msgid "Where to email alerts"
|
1395 |
+
msgstr ""
|
1396 |
+
|
1397 |
+
#: lib/menu_options.php:74
|
1398 |
+
#: views/dashboard/option-howgetips.php:21
|
1399 |
+
msgid "How does Wordfence get IPs"
|
1400 |
+
msgstr ""
|
1401 |
+
|
1402 |
+
#: lib/menu_options.php:75
|
1403 |
+
#: lib/menu_tools_diagnostic.php:235
|
1404 |
+
#: views/dashboard/option-howgetips.php:50
|
1405 |
+
#: views/diagnostics/text.php:108
|
1406 |
+
msgid "Trusted Proxies"
|
1407 |
+
msgstr ""
|
1408 |
+
|
1409 |
+
#: lib/menu_options.php:76
|
1410 |
+
#: views/dashboard/options-group-general.php:73
|
1411 |
+
msgid "Hide WordPress version"
|
1412 |
+
msgstr ""
|
1413 |
+
|
1414 |
+
#: lib/menu_options.php:77
|
1415 |
+
#: views/dashboard/options-group-general.php:85
|
1416 |
+
msgid "Disable Code Execution for Uploads directory"
|
1417 |
+
msgstr ""
|
1418 |
+
|
1419 |
+
#: lib/menu_options.php:78
|
1420 |
+
#: views/dashboard/options-group-general.php:97
|
1421 |
+
msgid "Pause live updates when window loses focus"
|
1422 |
+
msgstr ""
|
1423 |
+
|
1424 |
+
#: lib/menu_options.php:79
|
1425 |
+
#: views/dashboard/options-group-general.php:107
|
1426 |
+
msgid "Update interval in seconds"
|
1427 |
+
msgstr ""
|
1428 |
+
|
1429 |
+
#: lib/menu_options.php:80
|
1430 |
+
#: views/dashboard/options-group-general.php:120
|
1431 |
+
msgid "Bypass the LiteSpeed \"noabort\" check"
|
1432 |
+
msgstr ""
|
1433 |
+
|
1434 |
+
#: lib/menu_options.php:81
|
1435 |
+
#: views/dashboard/options-group-general.php:132
|
1436 |
+
msgid "Delete Wordfence tables and data on deactivation"
|
1437 |
+
msgstr ""
|
1438 |
+
|
1439 |
+
#: lib/menu_options.php:82
|
1440 |
+
#: views/dashboard/options-group-dashboard.php:36
|
1441 |
+
msgid "Updates Needed (Plugin, Theme, or Core)"
|
1442 |
+
msgstr ""
|
1443 |
+
|
1444 |
+
#: lib/menu_options.php:83
|
1445 |
+
#: views/dashboard/options-group-dashboard.php:48
|
1446 |
+
msgid "Security Alerts"
|
1447 |
+
msgstr ""
|
1448 |
+
|
1449 |
+
#: lib/menu_options.php:84
|
1450 |
+
#: views/dashboard/options-group-dashboard.php:60
|
1451 |
+
msgid "Promotions"
|
1452 |
+
msgstr ""
|
1453 |
+
|
1454 |
+
#: lib/menu_options.php:85
|
1455 |
+
#: views/dashboard/options-group-dashboard.php:72
|
1456 |
+
msgid "Blog Highlights"
|
1457 |
+
msgstr ""
|
1458 |
+
|
1459 |
+
#: lib/menu_options.php:86
|
1460 |
+
#: views/dashboard/options-group-dashboard.php:84
|
1461 |
+
msgid "Product Updates"
|
1462 |
+
msgstr ""
|
1463 |
+
|
1464 |
+
#: lib/menu_options.php:88
|
1465 |
+
#: views/dashboard/options-group-alert.php:36
|
1466 |
+
msgid "Email me when Wordfence is automatically updated"
|
1467 |
+
msgstr ""
|
1468 |
+
|
1469 |
+
#: lib/menu_options.php:89
|
1470 |
+
#: views/dashboard/options-group-alert.php:48
|
1471 |
+
msgid "Email me if Wordfence is deactivated"
|
1472 |
+
msgstr ""
|
1473 |
+
|
1474 |
+
#: lib/menu_options.php:90
|
1475 |
+
#: views/dashboard/options-group-alert.php:59
|
1476 |
+
msgid "Email me if the Wordfence Web Application Firewall is turned off"
|
1477 |
+
msgstr ""
|
1478 |
+
|
1479 |
+
#: lib/menu_options.php:91
|
1480 |
+
msgid "Alert me with scan results of this severity level or greater"
|
1481 |
+
msgstr ""
|
1482 |
+
|
1483 |
+
#: lib/menu_options.php:92
|
1484 |
+
#: views/dashboard/options-group-alert.php:90
|
1485 |
+
msgid "Alert when an IP address is blocked"
|
1486 |
+
msgstr ""
|
1487 |
+
|
1488 |
+
#: lib/menu_options.php:93
|
1489 |
+
#: views/dashboard/options-group-alert.php:101
|
1490 |
+
msgid "Alert when someone is locked out from login"
|
1491 |
+
msgstr ""
|
1492 |
+
|
1493 |
+
#: lib/menu_options.php:94
|
1494 |
+
#: views/dashboard/options-group-alert.php:123
|
1495 |
+
msgid "Alert when the \"lost password\" form is used for a valid user"
|
1496 |
+
msgstr ""
|
1497 |
+
|
1498 |
+
#: lib/menu_options.php:95
|
1499 |
+
#: views/dashboard/options-group-alert.php:134
|
1500 |
+
msgid "Alert me when someone with administrator access signs in"
|
1501 |
+
msgstr ""
|
1502 |
+
|
1503 |
+
#: lib/menu_options.php:96
|
1504 |
+
#: views/dashboard/options-group-alert.php:140
|
1505 |
+
msgid "Only alert me when that administrator signs in from a new device or location"
|
1506 |
+
msgstr ""
|
1507 |
+
|
1508 |
+
#: lib/menu_options.php:97
|
1509 |
+
#: views/dashboard/options-group-alert.php:151
|
1510 |
+
msgid "Alert me when a non-admin user signs in"
|
1511 |
+
msgstr ""
|
1512 |
+
|
1513 |
+
#: lib/menu_options.php:98
|
1514 |
+
#: views/dashboard/options-group-alert.php:157
|
1515 |
+
msgid "Only alert me when that user signs in from a new device or location"
|
1516 |
+
msgstr ""
|
1517 |
+
|
1518 |
+
#: lib/menu_options.php:99
|
1519 |
+
#: views/dashboard/options-group-alert.php:168
|
1520 |
+
msgid "Alert me when there's a large increase in attacks detected on my site"
|
1521 |
+
msgstr ""
|
1522 |
+
|
1523 |
+
#: lib/menu_options.php:100
|
1524 |
+
#: views/dashboard/options-group-alert.php:177
|
1525 |
+
msgid "Maximum email alerts to send per hour"
|
1526 |
+
msgstr ""
|
1527 |
+
|
1528 |
+
#: lib/menu_options.php:101
|
1529 |
+
#: views/dashboard/options-group-email-summary.php:43
|
1530 |
+
msgid "Enable email summary"
|
1531 |
+
msgstr ""
|
1532 |
+
|
1533 |
+
#: lib/menu_options.php:102
|
1534 |
+
#: views/dashboard/options-group-email-summary.php:52
|
1535 |
+
msgid "List of directories to exclude from recently modified file list"
|
1536 |
+
msgstr ""
|
1537 |
+
|
1538 |
+
#: lib/menu_options.php:103
|
1539 |
+
#: views/dashboard/options-group-email-summary.php:63
|
1540 |
+
msgid "Enable activity report widget on the WordPress dashboard"
|
1541 |
+
msgstr ""
|
1542 |
+
|
1543 |
+
#: lib/menu_options.php:105
|
1544 |
+
msgid "Web Application Firewall Protection Level"
|
1545 |
+
msgstr ""
|
1546 |
+
|
1547 |
+
#: lib/menu_options.php:106
|
1548 |
+
#: views/waf/options-group-basic-firewall.php:464
|
1549 |
+
msgid "Real-Time IP Blacklist"
|
1550 |
+
msgstr ""
|
1551 |
+
|
1552 |
+
#: lib/menu_options.php:107
|
1553 |
+
#: views/waf/options-group-advanced-firewall.php:40
|
1554 |
+
msgid "Delay IP and Country blocking until after WordPress and plugins have loaded (only process firewall rules early)"
|
1555 |
+
msgstr ""
|
1556 |
+
|
1557 |
+
#: lib/menu_options.php:108
|
1558 |
+
#: views/waf/options-group-advanced-firewall.php:52
|
1559 |
+
msgid "Whitelisted IP addresses that bypass all rules"
|
1560 |
+
msgstr ""
|
1561 |
+
|
1562 |
+
#: lib/menu_options.php:109
|
1563 |
+
#: views/waf/options-group-advanced-firewall.php:88
|
1564 |
+
msgid "Whitelisted services"
|
1565 |
+
msgstr ""
|
1566 |
+
|
1567 |
+
#: lib/menu_options.php:110
|
1568 |
+
#: views/waf/options-group-advanced-firewall.php:99
|
1569 |
+
msgid "Immediately block IPs that access these URLs"
|
1570 |
+
msgstr ""
|
1571 |
+
|
1572 |
+
#: lib/menu_options.php:111
|
1573 |
+
#: views/waf/options-group-advanced-firewall.php:112
|
1574 |
+
msgid "Ignored IP addresses for Wordfence Web Application Firewall alerting"
|
1575 |
+
msgstr ""
|
1576 |
+
|
1577 |
+
#: lib/menu_options.php:112
|
1578 |
+
msgid "Web Application Firewall Rules"
|
1579 |
+
msgstr ""
|
1580 |
+
|
1581 |
+
#: lib/menu_options.php:113
|
1582 |
+
#: views/waf/options-group-brute-force.php:38
|
1583 |
+
msgid "Enable brute force protection"
|
1584 |
+
msgstr ""
|
1585 |
+
|
1586 |
+
#: lib/menu_options.php:114
|
1587 |
+
#: views/waf/options-group-brute-force.php:61
|
1588 |
+
msgid "Lock out after how many login failures"
|
1589 |
+
msgstr ""
|
1590 |
+
|
1591 |
+
#: lib/menu_options.php:115
|
1592 |
+
#: views/waf/options-group-brute-force.php:77
|
1593 |
+
msgid "Lock out after how many forgot password attempts"
|
1594 |
+
msgstr ""
|
1595 |
+
|
1596 |
+
#: lib/menu_options.php:116
|
1597 |
+
#: views/waf/options-group-brute-force.php:93
|
1598 |
+
msgid "Count failures over what time period"
|
1599 |
+
msgstr ""
|
1600 |
+
|
1601 |
+
#: lib/menu_options.php:117
|
1602 |
+
#: views/waf/options-group-brute-force.php:109
|
1603 |
+
msgid "Amount of time a user is locked out"
|
1604 |
+
msgstr ""
|
1605 |
+
|
1606 |
+
#: lib/menu_options.php:118
|
1607 |
+
#: views/waf/options-group-brute-force.php:121
|
1608 |
+
msgid "Immediately lock out invalid usernames"
|
1609 |
+
msgstr ""
|
1610 |
+
|
1611 |
+
#: lib/menu_options.php:119
|
1612 |
+
#: views/waf/options-group-brute-force.php:139
|
1613 |
+
msgid "Immediately block the IP of users who try to sign in as these usernames"
|
1614 |
+
msgstr ""
|
1615 |
+
|
1616 |
+
#: lib/menu_options.php:120
|
1617 |
+
#: views/waf/options-group-brute-force.php:178
|
1618 |
+
msgid "Enforce strong passwords"
|
1619 |
+
msgstr ""
|
1620 |
+
|
1621 |
+
#: lib/menu_options.php:121
|
1622 |
+
#: views/waf/options-group-brute-force.php:155
|
1623 |
+
msgid "Prevent the use of passwords leaked in data breaches"
|
1624 |
+
msgstr ""
|
1625 |
+
|
1626 |
+
#: lib/menu_options.php:122
|
1627 |
+
#: views/waf/options-group-brute-force.php:190
|
1628 |
+
msgid "Don't let WordPress reveal valid users in login errors"
|
1629 |
+
msgstr ""
|
1630 |
+
|
1631 |
+
#: lib/menu_options.php:123
|
1632 |
+
msgid "Prevent users registering \"admin\" username if it doesn't exist"
|
1633 |
+
msgstr ""
|
1634 |
+
|
1635 |
+
#: lib/menu_options.php:124
|
1636 |
+
msgid "Prevent discovery of usernames through \"/?author=N\" scans, the oEmbed API, the WordPress REST API, and WordPress XML Sitemaps"
|
1637 |
+
msgstr ""
|
1638 |
+
|
1639 |
+
#: lib/menu_options.php:125
|
1640 |
+
#: views/waf/options-group-brute-force.php:226
|
1641 |
+
msgid "Block IPs who send POST requests with blank User-Agent and Referer"
|
1642 |
+
msgstr ""
|
1643 |
+
|
1644 |
+
#: lib/menu_options.php:126
|
1645 |
+
#: views/waf/options-group-brute-force.php:236
|
1646 |
+
msgid "Custom text shown on block pages"
|
1647 |
+
msgstr ""
|
1648 |
+
|
1649 |
+
#: lib/menu_options.php:127
|
1650 |
+
#: views/waf/options-group-brute-force.php:251
|
1651 |
+
msgid "Check password strength on profile update"
|
1652 |
+
msgstr ""
|
1653 |
+
|
1654 |
+
#: lib/menu_options.php:128
|
1655 |
+
#: views/waf/options-group-brute-force.php:263
|
1656 |
+
msgid "Participate in the Real-Time Wordfence Security Network"
|
1657 |
+
msgstr ""
|
1658 |
+
|
1659 |
+
#: lib/menu_options.php:129
|
1660 |
+
#: views/waf/options-group-rate-limiting.php:38
|
1661 |
+
msgid "Enable Rate Limiting and Advanced Blocking"
|
1662 |
+
msgstr ""
|
1663 |
+
|
1664 |
+
#: lib/menu_options.php:130
|
1665 |
+
#: views/waf/options-group-rate-limiting.php:60
|
1666 |
+
msgid "How should we treat Google's crawlers"
|
1667 |
+
msgstr ""
|
1668 |
+
|
1669 |
+
#: lib/menu_options.php:131
|
1670 |
+
#: views/waf/options-group-rate-limiting.php:100
|
1671 |
+
msgid "If anyone's requests exceed"
|
1672 |
+
msgstr ""
|
1673 |
+
|
1674 |
+
#: lib/menu_options.php:132
|
1675 |
+
#: views/waf/options-group-rate-limiting.php:117
|
1676 |
+
msgid "If a crawler's page views exceed"
|
1677 |
+
msgstr ""
|
1678 |
+
|
1679 |
+
#: lib/menu_options.php:133
|
1680 |
+
#: views/waf/options-group-rate-limiting.php:134
|
1681 |
+
msgid "If a crawler's pages not found (404s) exceed"
|
1682 |
+
msgstr ""
|
1683 |
+
|
1684 |
+
#: lib/menu_options.php:134
|
1685 |
+
#: views/waf/options-group-rate-limiting.php:151
|
1686 |
+
msgid "If a human's page views exceed"
|
1687 |
+
msgstr ""
|
1688 |
+
|
1689 |
+
#: lib/menu_options.php:135
|
1690 |
+
#: views/waf/options-group-rate-limiting.php:168
|
1691 |
+
msgid "If a human's pages not found (404s) exceed"
|
1692 |
+
msgstr ""
|
1693 |
+
|
1694 |
+
#: lib/menu_options.php:136
|
1695 |
+
#: views/waf/options-group-rate-limiting.php:184
|
1696 |
+
msgid "How long is an IP address blocked when it breaks a rule"
|
1697 |
+
msgstr ""
|
1698 |
+
|
1699 |
+
#: lib/menu_options.php:137
|
1700 |
+
#: views/waf/options-group-rate-limiting.php:194
|
1701 |
+
msgid "Whitelisted 404 URLs"
|
1702 |
+
msgstr ""
|
1703 |
+
|
1704 |
+
#: lib/menu_options.php:138
|
1705 |
+
msgid "Web Application Firewall Whitelisted URLs"
|
1706 |
+
msgstr ""
|
1707 |
+
|
1708 |
+
#: lib/menu_options.php:139
|
1709 |
+
msgid "Monitor background requests from an administrator's web browser for false positives (Front-end Website)"
|
1710 |
+
msgstr ""
|
1711 |
+
|
1712 |
+
#: lib/menu_options.php:140
|
1713 |
+
msgid "Monitor background requests from an administrator's web browser for false positives (Admin Panel)"
|
1714 |
+
msgstr ""
|
1715 |
+
|
1716 |
+
#: lib/menu_options.php:141
|
1717 |
+
msgid "What to do when we block someone visiting from a blocked country"
|
1718 |
+
msgstr ""
|
1719 |
+
|
1720 |
+
#: lib/menu_options.php:142
|
1721 |
+
msgid "URL to redirect blocked countries to"
|
1722 |
+
msgstr ""
|
1723 |
+
|
1724 |
+
#: lib/menu_options.php:143
|
1725 |
+
#: views/blocking/options-group-advanced-country.php:62
|
1726 |
+
msgid "Block countries even if they are logged in"
|
1727 |
+
msgstr ""
|
1728 |
+
|
1729 |
+
#: lib/menu_options.php:144
|
1730 |
+
msgid "If user from a blocked country hits the relative URL ____ then redirect that user to ____ and set a cookie that will bypass all country blocking"
|
1731 |
+
msgstr ""
|
1732 |
+
|
1733 |
+
#: lib/menu_options.php:145
|
1734 |
+
msgid "If user who is allowed to access the site views the relative URL ____ then set a cookie that will bypass country blocking in future in case that user hits the site from a blocked country"
|
1735 |
+
msgstr ""
|
1736 |
+
|
1737 |
+
#: lib/menu_options.php:146
|
1738 |
+
#: views/scanner/scan-scheduling.php:12
|
1739 |
+
msgid "Schedule Wordfence Scans"
|
1740 |
+
msgstr ""
|
1741 |
+
|
1742 |
+
#: lib/menu_options.php:147
|
1743 |
+
msgid "Scan Type"
|
1744 |
+
msgstr ""
|
1745 |
+
|
1746 |
+
#: lib/menu_options.php:148
|
1747 |
+
#: views/scanner/options-group-general.php:32
|
1748 |
+
msgid "Check if this website is on a domain blacklist"
|
1749 |
+
msgstr ""
|
1750 |
+
|
1751 |
+
#: lib/menu_options.php:149
|
1752 |
+
msgid "Check if this website is being "Spamvertised""
|
1753 |
+
msgstr ""
|
1754 |
+
|
1755 |
+
#: lib/menu_options.php:150
|
1756 |
+
#: views/scanner/options-group-general.php:34
|
1757 |
+
msgid "Check if this website IP is generating spam"
|
1758 |
+
msgstr ""
|
1759 |
+
|
1760 |
+
#: lib/menu_options.php:151
|
1761 |
+
#: views/scanner/options-group-general.php:35
|
1762 |
+
msgid "Scan for misconfigured How does Wordfence get IPs"
|
1763 |
+
msgstr ""
|
1764 |
+
|
1765 |
+
#: lib/menu_options.php:152
|
1766 |
+
#: views/scanner/options-group-general.php:36
|
1767 |
+
msgid "Scan for publicly accessible configuration, backup, or log files"
|
1768 |
+
msgstr ""
|
1769 |
+
|
1770 |
+
#: lib/menu_options.php:153
|
1771 |
+
#: views/scanner/options-group-general.php:37
|
1772 |
+
msgid "Scan for publicly accessible quarantined files"
|
1773 |
+
msgstr ""
|
1774 |
+
|
1775 |
+
#: lib/menu_options.php:154
|
1776 |
+
#: views/scanner/options-group-general.php:38
|
1777 |
+
msgid "Scan core files against repository versions for changes"
|
1778 |
+
msgstr ""
|
1779 |
+
|
1780 |
+
#: lib/menu_options.php:155
|
1781 |
+
#: views/scanner/options-group-general.php:39
|
1782 |
+
msgid "Scan theme files against repository versions for changes"
|
1783 |
+
msgstr ""
|
1784 |
+
|
1785 |
+
#: lib/menu_options.php:156
|
1786 |
+
#: views/scanner/options-group-general.php:40
|
1787 |
+
msgid "Scan plugin files against repository versions for changes"
|
1788 |
+
msgstr ""
|
1789 |
+
|
1790 |
+
#: lib/menu_options.php:157
|
1791 |
+
#: views/scanner/options-group-general.php:41
|
1792 |
+
msgid "Scan wp-admin and wp-includes for files not bundled with WordPress"
|
1793 |
+
msgstr ""
|
1794 |
+
|
1795 |
+
#: lib/menu_options.php:158
|
1796 |
+
#: views/scanner/options-group-general.php:42
|
1797 |
+
msgid "Scan for signatures of known malicious files"
|
1798 |
+
msgstr ""
|
1799 |
+
|
1800 |
+
#: lib/menu_options.php:159
|
1801 |
+
#: views/scanner/options-group-general.php:43
|
1802 |
+
msgid "Scan file contents for backdoors, trojans and suspicious code"
|
1803 |
+
msgstr ""
|
1804 |
+
|
1805 |
+
#: lib/menu_options.php:160
|
1806 |
+
#: views/scanner/options-group-general.php:44
|
1807 |
+
msgid "Scan file contents for malicious URLs"
|
1808 |
+
msgstr ""
|
1809 |
+
|
1810 |
+
#: lib/menu_options.php:161
|
1811 |
+
#: views/scanner/options-group-general.php:45
|
1812 |
+
msgid "Scan posts for known dangerous URLs and suspicious content"
|
1813 |
+
msgstr ""
|
1814 |
+
|
1815 |
+
#: lib/menu_options.php:162
|
1816 |
+
#: views/scanner/options-group-general.php:46
|
1817 |
+
msgid "Scan comments for known dangerous URLs and suspicious content"
|
1818 |
+
msgstr ""
|
1819 |
+
|
1820 |
+
#: lib/menu_options.php:163
|
1821 |
+
#: views/scanner/options-group-general.php:47
|
1822 |
+
msgid "Scan WordPress core, plugin, and theme options for known dangerous URLs and suspicious content"
|
1823 |
+
msgstr ""
|
1824 |
+
|
1825 |
+
#: lib/menu_options.php:164
|
1826 |
+
#: views/scanner/options-group-general.php:48
|
1827 |
+
msgid "Scan for out of date, abandoned, and vulnerable plugins, themes, and WordPress versions"
|
1828 |
+
msgstr ""
|
1829 |
+
|
1830 |
+
#: lib/menu_options.php:165
|
1831 |
+
#: views/scanner/options-group-general.php:49
|
1832 |
+
msgid "Scan for suspicious admin users created outside of WordPress"
|
1833 |
+
msgstr ""
|
1834 |
+
|
1835 |
+
#: lib/menu_options.php:166
|
1836 |
+
#: views/scanner/options-group-general.php:50
|
1837 |
+
msgid "Check the strength of passwords"
|
1838 |
+
msgstr ""
|
1839 |
+
|
1840 |
+
#: lib/menu_options.php:167
|
1841 |
+
#: views/scanner/options-group-general.php:51
|
1842 |
+
msgid "Monitor disk space"
|
1843 |
+
msgstr ""
|
1844 |
+
|
1845 |
+
#: lib/menu_options.php:168
|
1846 |
+
#: views/scanner/options-group-general.php:52
|
1847 |
+
msgid "Monitor Web Application Firewall status"
|
1848 |
+
msgstr ""
|
1849 |
+
|
1850 |
+
#: lib/menu_options.php:169
|
1851 |
+
#: views/scanner/options-group-general.php:53
|
1852 |
+
msgid "Scan files outside your WordPress installation"
|
1853 |
+
msgstr ""
|
1854 |
+
|
1855 |
+
#: lib/menu_options.php:170
|
1856 |
+
#: views/scanner/options-group-general.php:54
|
1857 |
+
msgid "Scan images, binary, and other files as if they were executable"
|
1858 |
+
msgstr ""
|
1859 |
+
|
1860 |
+
#: lib/menu_options.php:171
|
1861 |
+
#: views/scanner/options-group-performance.php:32
|
1862 |
+
msgid "Use low resource scanning (reduces server load by lengthening the scan duration)"
|
1863 |
+
msgstr ""
|
1864 |
+
|
1865 |
+
#: lib/menu_options.php:172
|
1866 |
+
#: views/scanner/options-group-performance.php:33
|
1867 |
+
msgid "Limit the number of issues sent in the scan results email"
|
1868 |
+
msgstr ""
|
1869 |
+
|
1870 |
+
#: lib/menu_options.php:173
|
1871 |
+
#: views/scanner/options-group-performance.php:34
|
1872 |
+
msgid "Time limit that a scan can run in seconds"
|
1873 |
+
msgstr ""
|
1874 |
+
|
1875 |
+
#: lib/menu_options.php:174
|
1876 |
+
#: views/scanner/options-group-performance.php:35
|
1877 |
+
msgid "How much memory should Wordfence request when scanning"
|
1878 |
+
msgstr ""
|
1879 |
+
|
1880 |
+
#: lib/menu_options.php:175
|
1881 |
+
msgid "Maximum execution time for each scan stage"
|
1882 |
+
msgstr ""
|
1883 |
+
|
1884 |
+
#: lib/menu_options.php:176
|
1885 |
+
msgid "Exclude files from scan that match these wildcard patterns"
|
1886 |
+
msgstr ""
|
1887 |
+
|
1888 |
+
#: lib/menu_options.php:177
|
1889 |
+
msgid "Additional scan signatures"
|
1890 |
+
msgstr ""
|
1891 |
+
|
1892 |
+
#: lib/menu_options.php:178
|
1893 |
+
msgid "Traffic logging mode (Live Traffic)"
|
1894 |
+
msgstr ""
|
1895 |
+
|
1896 |
+
#: lib/menu_options.php:179
|
1897 |
+
#: views/tools/options-group-live-traffic.php:78
|
1898 |
+
msgid "Don't log signed-in users with publishing access"
|
1899 |
+
msgstr ""
|
1900 |
+
|
1901 |
+
#: lib/menu_options.php:180
|
1902 |
+
#: views/tools/options-group-live-traffic.php:87
|
1903 |
+
msgid "List of comma separated usernames to ignore"
|
1904 |
+
msgstr ""
|
1905 |
+
|
1906 |
+
#: lib/menu_options.php:181
|
1907 |
+
#: views/tools/options-group-live-traffic.php:96
|
1908 |
+
msgid "List of comma separated IP addresses to ignore"
|
1909 |
+
msgstr ""
|
1910 |
+
|
1911 |
+
#: lib/menu_options.php:182
|
1912 |
+
#: views/tools/options-group-live-traffic.php:105
|
1913 |
+
msgid "Browser user-agent to ignore"
|
1914 |
+
msgstr ""
|
1915 |
+
|
1916 |
+
#: lib/menu_options.php:183
|
1917 |
+
#: views/tools/options-group-live-traffic.php:114
|
1918 |
+
msgid "Amount of Live Traffic data to store (number of rows)"
|
1919 |
+
msgstr ""
|
1920 |
+
|
1921 |
+
#: lib/menu_options.php:184
|
1922 |
+
msgid "Maximum days to keep Live Traffic data"
|
1923 |
+
msgstr ""
|
1924 |
+
|
1925 |
+
#: lib/menu_options.php:185
|
1926 |
+
#: views/dashboard/options-group-import.php:31
|
1927 |
+
msgid "Export this site's Wordfence options for import on another site"
|
1928 |
+
msgstr ""
|
1929 |
+
|
1930 |
+
#: lib/menu_options.php:186
|
1931 |
+
#: views/dashboard/options-group-import.php:44
|
1932 |
+
msgid "Import Wordfence options from another site using a token"
|
1933 |
+
msgstr ""
|
1934 |
+
|
1935 |
+
#: lib/menu_options.php:190
|
1936 |
+
msgid "Require Cellphone Sign-in for all Administrators"
|
1937 |
+
msgstr ""
|
1938 |
+
|
1939 |
+
#: lib/menu_options.php:191
|
1940 |
+
msgid "Enable Separate Prompt for Two Factor Code"
|
1941 |
+
msgstr ""
|
1942 |
+
|
1943 |
+
#: lib/menu_options.php:200
|
1944 |
+
msgid "Are you sure you want to restore the default settings? This will undo any custom changes you have made to the options on this page. If you have manually disabled any rules or added any custom whitelisted URLs, those changes will not be overwritten."
|
1945 |
+
msgstr ""
|
1946 |
+
|
1947 |
+
#: lib/menu_options.php:267
|
1948 |
+
msgid "These options are also available throughout the plugin pages, in the relevant sections. This page is provided for easier setup for experienced Wordfence users."
|
1949 |
+
msgstr ""
|
1950 |
+
|
1951 |
+
#: lib/menu_options.php:350
|
1952 |
+
#: models/page/wfPage.php:115
|
1953 |
+
msgid "Scan Options"
|
1954 |
+
msgstr ""
|
1955 |
+
|
1956 |
+
#: lib/menu_options.php:382
|
1957 |
+
msgid "Tool Options"
|
1958 |
+
msgstr ""
|
1959 |
+
|
1960 |
+
#: lib/menu_options.php:412
|
1961 |
+
msgid "Importing and exporting of options is available on the Tools page"
|
1962 |
+
msgstr ""
|
1963 |
+
|
1964 |
+
#: lib/menu_scanner.php:34
|
1965 |
+
msgid "Learn more<span class=\"wf-hidden-xs\"> about the Scanner</span>"
|
1966 |
+
msgstr ""
|
1967 |
+
|
1968 |
+
#: lib/menu_scanner.php:61
|
1969 |
+
#: lib/menu_scanner_options.php:116
|
1970 |
+
msgid "Scan Type: "
|
1971 |
+
msgstr ""
|
1972 |
+
|
1973 |
+
#: lib/menu_scanner.php:67
|
1974 |
+
#: lib/menu_scanner.php:87
|
1975 |
+
#: lib/menu_scanner.php:103
|
1976 |
+
msgid "https://www.wordfence.com/help/scan/#scan-status"
|
1977 |
+
msgstr ""
|
1978 |
+
|
1979 |
+
#: lib/menu_scanner.php:77
|
1980 |
+
#: lib/menu_scanner_options.php:132
|
1981 |
+
msgid "Malware Signatures: "
|
1982 |
+
msgstr ""
|
1983 |
+
|
1984 |
+
#: lib/menu_scanner.php:78
|
1985 |
+
#: lib/menu_scanner_options.php:133
|
1986 |
+
msgid "Signatures updated in real-time"
|
1987 |
+
msgstr ""
|
1988 |
+
|
1989 |
+
#: lib/menu_scanner.php:78
|
1990 |
+
#: lib/menu_scanner_options.php:133
|
1991 |
+
msgid "Signature updates delayed by 30 days"
|
1992 |
+
msgstr ""
|
1993 |
+
|
1994 |
+
#: lib/menu_scanner.php:80
|
1995 |
+
msgid "Protect More Sites"
|
1996 |
+
msgstr ""
|
1997 |
+
|
1998 |
+
#: lib/menu_scanner.php:82
|
1999 |
+
#: lib/menu_scanner_options.php:136
|
2000 |
+
msgid "Malware Signatures Status"
|
2001 |
+
msgstr ""
|
2002 |
+
|
2003 |
+
#: lib/menu_scanner.php:85
|
2004 |
+
#: lib/menu_scanner_options.php:139
|
2005 |
+
#: models/scanner/wfScanner.php:761
|
2006 |
+
msgid "Enable Premium Scan Signatures."
|
2007 |
+
msgstr ""
|
2008 |
+
|
2009 |
+
#: lib/menu_scanner.php:97
|
2010 |
+
#: lib/menu_scanner_options.php:151
|
2011 |
+
msgid "Reputation Checks"
|
2012 |
+
msgstr ""
|
2013 |
+
|
2014 |
+
#: lib/menu_scanner.php:98
|
2015 |
+
#: lib/menu_scanner_options.php:152
|
2016 |
+
msgid "Check spam & spamvertising blacklists"
|
2017 |
+
msgstr ""
|
2018 |
+
|
2019 |
+
#: lib/menu_scanner.php:100
|
2020 |
+
msgid "Manage Options"
|
2021 |
+
msgstr ""
|
2022 |
+
|
2023 |
+
#: lib/menu_scanner.php:101
|
2024 |
+
#: lib/menu_scanner_options.php:155
|
2025 |
+
msgid "Reputation Check Status"
|
2026 |
+
msgstr ""
|
2027 |
+
|
2028 |
+
#: lib/menu_scanner.php:120
|
2029 |
+
msgid "Turn Off Beta Signatures"
|
2030 |
+
msgstr ""
|
2031 |
+
|
2032 |
+
#: lib/menu_scanner.php:150
|
2033 |
+
#: lib/menu_scanner_options.php:97
|
2034 |
+
msgid "Scan Options and Scheduling"
|
2035 |
+
msgstr ""
|
2036 |
+
|
2037 |
+
#: lib/menu_scanner.php:151
|
2038 |
+
msgid "Manage scan options including scheduling"
|
2039 |
+
msgstr ""
|
2040 |
+
|
2041 |
+
#: lib/menu_scanner.php:212
|
2042 |
+
msgid "Are you sure you want to delete?"
|
2043 |
+
msgstr ""
|
2044 |
+
|
2045 |
+
#: lib/menu_scanner.php:213
|
2046 |
+
msgid "<strong>WARNING:</strong> If you delete the wrong file, it could cause your WordPress website to stop functioning, and you will probably have to restore from a backup."
|
2047 |
+
msgstr ""
|
2048 |
+
|
2049 |
+
#: lib/menu_scanner.php:214
|
2050 |
+
msgid "Do not delete files on your system unless you're ABSOLUTELY sure you know what you're doing. If you delete the wrong file it could cause your WordPress website to stop functioning and you will probably have to restore from backups. If you're unsure, Cancel and work with your hosting provider to clean your system of infected files. If you'd like to learn more, <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">click here for our help article</a>."
|
2051 |
+
msgstr ""
|
2052 |
+
|
2053 |
+
#: lib/menu_scanner.php:216
|
2054 |
+
msgid "Delete Files"
|
2055 |
+
msgstr ""
|
2056 |
+
|
2057 |
+
#: lib/menu_scanner.php:224
|
2058 |
+
msgid "Are you sure you want to repair?"
|
2059 |
+
msgstr ""
|
2060 |
+
|
2061 |
+
#: lib/menu_scanner.php:225
|
2062 |
+
msgid "Do not repair files on your system unless you're ABSOLUTELY sure you know what you're doing. If you repair the wrong file it could cause your WordPress website to stop functioning and you will probably have to restore from backups. If you're unsure, Cancel and work with your hosting provider to clean your system of infected files."
|
2063 |
+
msgstr ""
|
2064 |
+
|
2065 |
+
#: lib/menu_scanner.php:227
|
2066 |
+
msgid "Repair Files"
|
2067 |
+
msgstr ""
|
2068 |
+
|
2069 |
+
#: lib/menu_scanner.php:237
|
2070 |
+
#: lib/menu_tools_twoFactor.php:246
|
2071 |
+
#: lib/menu_tools_twoFactor.php:255
|
2072 |
+
#: lib/menu_tools_twoFactor.php:264
|
2073 |
+
#: lib/menu_tools_twoFactor.php:284
|
2074 |
+
#: lib/wordfenceClass.php:4846
|
2075 |
+
#: lib/wordfenceClass.php:4852
|
2076 |
+
#: lib/wordfenceClass.php:4858
|
2077 |
+
#: lib/wordfenceClass.php:4865
|
2078 |
+
#: lib/wordfenceClass.php:4871
|
2079 |
+
#: lib/wordfenceClass.php:4878
|
2080 |
+
#: lib/wordfenceClass.php:4886
|
2081 |
+
#: lib/wordfenceClass.php:5919
|
2082 |
+
#: lib/wordfenceClass.php:5921
|
2083 |
+
#: lib/wordfenceClass.php:7621
|
2084 |
+
#: lib/wordfenceClass.php:7628
|
2085 |
+
#: lib/wordfenceClass.php:7735
|
2086 |
+
#: lib/wordfenceClass.php:7799
|
2087 |
+
#: views/dashboard/options-group-import.php:147
|
2088 |
+
#: views/dashboard/options-group-import.php:157
|
2089 |
+
#: views/dashboard/options-group-import.php:177
|
2090 |
+
#: views/onboarding/fresh-install.php:99
|
2091 |
+
#: views/onboarding/fresh-install.php:131
|
2092 |
+
#: views/onboarding/fresh-install.php:144
|
2093 |
+
#: views/onboarding/fresh-install.php:155
|
2094 |
+
#: views/onboarding/modal-final-attempt.php:48
|
2095 |
+
#: views/onboarding/plugin-header.php:135
|
2096 |
+
#: views/onboarding/plugin-header.php:167
|
2097 |
+
#: views/onboarding/plugin-header.php:180
|
2098 |
+
msgid "Close"
|
2099 |
+
msgstr ""
|
2100 |
+
|
2101 |
+
#: lib/menu_scanner.php:304
|
2102 |
+
msgid "A Wordfence scan looks for malware, malicious URLs, and patterns of infections by examining all of the files, posts, and comments on your WordPress website. It also checks your server and monitors your site's online reputation."
|
2103 |
+
msgstr ""
|
2104 |
+
|
2105 |
+
#: lib/menu_scanner.php:318
|
2106 |
+
msgid "Manage Scan Settings"
|
2107 |
+
msgstr ""
|
2108 |
+
|
2109 |
+
#: lib/menu_scanner.php:320
|
2110 |
+
msgid "Set up the way you want the scan to monitor your site security including custom scan configurations and scheduling."
|
2111 |
+
msgstr ""
|
2112 |
+
|
2113 |
+
#: lib/menu_scanner.php:335
|
2114 |
+
msgid "Start Your First Scan"
|
2115 |
+
msgstr ""
|
2116 |
+
|
2117 |
+
#: lib/menu_scanner.php:336
|
2118 |
+
msgid "By default, Wordfence will scan your site daily. Start your first scan now to see if your site has any security issues that need to be addressed. From here you can run manual scans any time you like."
|
2119 |
+
msgstr ""
|
2120 |
+
|
2121 |
+
#: lib/menu_scanner.php:372
|
2122 |
+
msgid "Scan Options & Settings"
|
2123 |
+
msgstr ""
|
2124 |
+
|
2125 |
+
#: lib/menu_scanner.php:374
|
2126 |
+
msgid "All of your scan options, including scheduling, are now located here."
|
2127 |
+
msgstr ""
|
2128 |
+
|
2129 |
+
#: lib/menu_scanner.php:387
|
2130 |
+
msgid "Scan Progress and Activity"
|
2131 |
+
msgstr ""
|
2132 |
+
|
2133 |
+
#: lib/menu_scanner.php:388
|
2134 |
+
msgid "Track each scan stage as Wordfence scans your entire site. Along the way you can see the activity log one line at a time or expand the activity log for a more detailed view. Clicking on scan results will reveal detailed scan findings."
|
2135 |
+
msgstr ""
|
2136 |
+
|
2137 |
+
#: lib/menu_scanner_credentials.php:31
|
2138 |
+
msgid "Back to Scan"
|
2139 |
+
msgstr ""
|
2140 |
+
|
2141 |
+
#: lib/menu_scanner_credentials.php:51
|
2142 |
+
msgid "File System Credentials Required"
|
2143 |
+
msgstr ""
|
2144 |
+
|
2145 |
+
#: lib/menu_scanner_credentials.php:66
|
2146 |
+
msgid "Security token has expired. Click <a href=\"%s\">here</a> to return to the scan page."
|
2147 |
+
msgstr ""
|
2148 |
+
|
2149 |
+
#: lib/menu_scanner_options.php:14
|
2150 |
+
msgid "Scanner Options"
|
2151 |
+
msgstr ""
|
2152 |
+
|
2153 |
+
#: lib/menu_scanner_options.php:68
|
2154 |
+
msgid "Are you sure you want to restore the default Scan settings? This will undo any custom changes you have made to the options on this page."
|
2155 |
+
msgstr ""
|
2156 |
+
|
2157 |
+
#: lib/menu_scanner_options.php:99
|
2158 |
+
msgid "Learn more<span class=\"wf-hidden-xs\"> about Scanning</span>"
|
2159 |
+
msgstr ""
|
2160 |
+
|
2161 |
+
#: lib/menu_support.php:31
|
2162 |
+
msgid "Free Support"
|
2163 |
+
msgstr ""
|
2164 |
+
|
2165 |
+
#: lib/menu_support.php:32
|
2166 |
+
msgid "Support for free customers is available via our forums page on wordpress.org. The majority of requests <strong>receive an answer within a few days.</strong>"
|
2167 |
+
msgstr ""
|
2168 |
+
|
2169 |
+
#: lib/menu_support.php:33
|
2170 |
+
msgid "Go to Support Forums"
|
2171 |
+
msgstr ""
|
2172 |
+
|
2173 |
+
#: lib/menu_support.php:37
|
2174 |
+
msgid "Premium Support"
|
2175 |
+
msgstr ""
|
2176 |
+
|
2177 |
+
#: lib/menu_support.php:38
|
2178 |
+
#: lib/menu_support.php:42
|
2179 |
+
msgid "Our senior support engineers <strong>respond to Premium tickets within a few hours</strong> on average and have a direct line to our QA and development teams."
|
2180 |
+
msgstr ""
|
2181 |
+
|
2182 |
+
#: lib/menu_support.php:39
|
2183 |
+
msgid "Go to Premium Support"
|
2184 |
+
msgstr ""
|
2185 |
+
|
2186 |
+
#: lib/menu_support.php:41
|
2187 |
+
msgid "Upgrade Now to Access Premium Support"
|
2188 |
+
msgstr ""
|
2189 |
+
|
2190 |
+
#: lib/menu_support.php:59
|
2191 |
+
msgid "GDPR Information"
|
2192 |
+
msgstr ""
|
2193 |
+
|
2194 |
+
#: lib/menu_support.php:70
|
2195 |
+
msgid "General Data Protection Regulation"
|
2196 |
+
msgstr ""
|
2197 |
+
|
2198 |
+
#: lib/menu_support.php:71
|
2199 |
+
msgid "The GDPR is a set of rules that provides more control over EU personal data. Defiant has updated its terms of use, privacy policies, and software, as well as made available a data processing agreement to meet GDPR compliance."
|
2200 |
+
msgstr ""
|
2201 |
+
|
2202 |
+
#: lib/menu_support.php:80
|
2203 |
+
msgid "Data Processing Agreement"
|
2204 |
+
msgstr ""
|
2205 |
+
|
2206 |
+
#: lib/menu_support.php:81
|
2207 |
+
msgid "If you qualify as a data controller under the GDPR and need a data processing agreement, it can be <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">found here</a>."
|
2208 |
+
msgstr ""
|
2209 |
+
|
2210 |
+
#: lib/menu_support.php:90
|
2211 |
+
msgid "Agreement to New Terms and Privacy Policies"
|
2212 |
+
msgstr ""
|
2213 |
+
|
2214 |
+
#: lib/menu_support.php:91
|
2215 |
+
msgid "To continue using Defiant products and services including the Wordfence plugin, all customers must review and agree to the updated terms and privacy policies. These changes reflect our commitment to follow data protection best practices and regulations. The Wordfence interface will remain disabled until these terms are agreed to."
|
2216 |
+
msgstr ""
|
2217 |
+
|
2218 |
+
#: lib/menu_support.php:104
|
2219 |
+
msgid "All Documentation"
|
2220 |
+
msgstr ""
|
2221 |
+
|
2222 |
+
#: lib/menu_support.php:112
|
2223 |
+
msgid "Top Topics and Questions"
|
2224 |
+
msgstr ""
|
2225 |
+
|
2226 |
+
#: lib/menu_support.php:160
|
2227 |
+
msgid "Documentation"
|
2228 |
+
msgstr ""
|
2229 |
+
|
2230 |
+
#: lib/menu_support.php:161
|
2231 |
+
msgid "Documentation about Wordfence may be found on our website by clicking the button below or by clicking the <i class=\"wf-fa wf-fa-question-circle-o\" aria-hidden=\"true\"></i> links on any of the plugin's pages."
|
2232 |
+
msgstr ""
|
2233 |
+
|
2234 |
+
#: lib/menu_support.php:162
|
2235 |
+
msgid "View Documentation"
|
2236 |
+
msgstr ""
|
2237 |
+
|
2238 |
+
#: lib/menu_support.php:267
|
2239 |
+
#: views/onboarding/fresh-install.php:131
|
2240 |
+
#: views/onboarding/plugin-header.php:167
|
2241 |
+
msgid "Premium License Installed"
|
2242 |
+
msgstr ""
|
2243 |
+
|
2244 |
+
#: lib/menu_support.php:267
|
2245 |
+
#: views/onboarding/fresh-install.php:131
|
2246 |
+
#: views/onboarding/plugin-header.php:167
|
2247 |
+
msgid "Congratulations! Wordfence Premium is now active on your website. Please note that some Premium features are not enabled by default."
|
2248 |
+
msgstr ""
|
2249 |
+
|
2250 |
+
#: lib/menu_support.php:267
|
2251 |
+
#: views/onboarding/fresh-install.php:30
|
2252 |
+
#: views/onboarding/modal-final-attempt.php:59
|
2253 |
+
#: views/onboarding/plugin-header.php:61
|
2254 |
+
#: views/waf/waf-install.php:105
|
2255 |
+
#: views/waf/waf-modal-wrapper.php:17
|
2256 |
+
#: views/waf/waf-uninstall.php:106
|
2257 |
+
msgid "Continue"
|
2258 |
+
msgstr ""
|
2259 |
+
|
2260 |
+
#: lib/menu_tools.php:22
|
2261 |
+
#: lib/menu_tools_twoFactor.php:14
|
2262 |
+
#: lib/menu_tools_twoFactor.php:23
|
2263 |
+
#: models/page/wfPage.php:117
|
2264 |
+
msgid "Two-Factor Authentication"
|
2265 |
+
msgstr ""
|
2266 |
+
|
2267 |
+
#: lib/menu_tools.php:24
|
2268 |
+
#: lib/menu_tools_livetraffic.php:8
|
2269 |
+
#: lib/menu_tools_livetraffic.php:41
|
2270 |
+
#: lib/menu_tools_livetraffic.php:546
|
2271 |
+
#: lib/menu_tools_livetraffic.php:577
|
2272 |
+
#: models/page/wfPage.php:119
|
2273 |
+
msgid "Live Traffic"
|
2274 |
+
msgstr ""
|
2275 |
+
|
2276 |
+
#: lib/menu_tools.php:25
|
2277 |
+
#: lib/menu_tools_whois.php:7
|
2278 |
+
#: lib/menu_tools_whois.php:16
|
2279 |
+
#: lib/menu_tools_whois.php:71
|
2280 |
+
#: models/page/wfPage.php:123
|
2281 |
+
msgid "Whois Lookup"
|
2282 |
+
msgstr ""
|
2283 |
+
|
2284 |
+
#: lib/menu_tools.php:27
|
2285 |
+
#: lib/menu_tools_diagnostic.php:24
|
2286 |
+
#: models/page/wfPage.php:125
|
2287 |
+
msgid "Diagnostics"
|
2288 |
+
msgstr ""
|
2289 |
+
|
2290 |
+
#: lib/menu_tools_diagnostic.php:34
|
2291 |
+
msgid "This page shows information that can be used for troubleshooting conflicts, configuration issues, or compatibility with other plugins, themes, or a host's environment."
|
2292 |
+
msgstr ""
|
2293 |
+
|
2294 |
+
#: lib/menu_tools_diagnostic.php:38
|
2295 |
+
msgid "Thanks for sending your diagnostic page over email"
|
2296 |
+
msgstr ""
|
2297 |
+
|
2298 |
+
#: lib/menu_tools_diagnostic.php:53
|
2299 |
+
msgid "Send Report by Email"
|
2300 |
+
msgstr ""
|
2301 |
+
|
2302 |
+
#: lib/menu_tools_diagnostic.php:60
|
2303 |
+
msgid "Email address:"
|
2304 |
+
msgstr ""
|
2305 |
+
|
2306 |
+
#: lib/menu_tools_diagnostic.php:67
|
2307 |
+
msgid "Ticket Number/Forum Username:"
|
2308 |
+
msgstr ""
|
2309 |
+
|
2310 |
+
#: lib/menu_tools_diagnostic.php:122
|
2311 |
+
msgid "Additional Detail"
|
2312 |
+
msgstr ""
|
2313 |
+
|
2314 |
+
#: lib/menu_tools_diagnostic.php:165
|
2315 |
+
msgid "View Additional Detail"
|
2316 |
+
msgstr ""
|
2317 |
+
|
2318 |
+
#: lib/menu_tools_diagnostic.php:186
|
2319 |
+
#: views/diagnostics/text.php:60
|
2320 |
+
#: views/scanner/issue-checkHowGetIPs.php:8
|
2321 |
+
msgid "IP Detection"
|
2322 |
+
msgstr ""
|
2323 |
+
|
2324 |
+
#: lib/menu_tools_diagnostic.php:187
|
2325 |
+
#: views/diagnostics/text.php:60
|
2326 |
+
msgid "Methods of detecting a visitor's IP address."
|
2327 |
+
msgstr ""
|
2328 |
+
|
2329 |
+
#: lib/menu_tools_diagnostic.php:199
|
2330 |
+
#: views/diagnostics/text.php:69
|
2331 |
+
msgid "IPs"
|
2332 |
+
msgstr ""
|
2333 |
+
|
2334 |
+
#: lib/menu_tools_diagnostic.php:200
|
2335 |
+
#: views/diagnostics/text.php:70
|
2336 |
+
#: views/diagnostics/text.php:189
|
2337 |
+
msgid "Value"
|
2338 |
+
msgstr ""
|
2339 |
+
|
2340 |
+
#: lib/menu_tools_diagnostic.php:201
|
2341 |
+
#: views/diagnostics/text.php:71
|
2342 |
+
msgid "Used"
|
2343 |
+
msgstr ""
|
2344 |
+
|
2345 |
+
#: lib/menu_tools_diagnostic.php:217
|
2346 |
+
#: lib/menu_tools_diagnostic.php:268
|
2347 |
+
#: lib/menu_tools_diagnostic.php:269
|
2348 |
+
#: lib/menu_tools_diagnostic.php:282
|
2349 |
+
#: lib/menu_tools_diagnostic.php:283
|
2350 |
+
#: lib/menu_tools_diagnostic.php:296
|
2351 |
+
#: lib/menu_tools_diagnostic.php:297
|
2352 |
+
#: lib/menu_tools_diagnostic.php:298
|
2353 |
+
#: lib/menu_tools_diagnostic.php:299
|
2354 |
+
#: lib/menu_tools_diagnostic.php:313
|
2355 |
+
#: lib/menu_tools_diagnostic.php:314
|
2356 |
+
#: lib/menu_tools_diagnostic.php:315
|
2357 |
+
#: lib/menu_tools_diagnostic.php:317
|
2358 |
+
#: lib/menu_tools_diagnostic.php:318
|
2359 |
+
#: lib/menu_tools_diagnostic.php:319
|
2360 |
+
#: lib/menu_tools_diagnostic.php:329
|
2361 |
+
#: lib/wfDiagnostic.php:363
|
2362 |
+
#: views/diagnostics/text.php:86
|
2363 |
+
#: views/diagnostics/text.php:127
|
2364 |
+
#: views/diagnostics/text.php:128
|
2365 |
+
#: views/diagnostics/text.php:141
|
2366 |
+
#: views/diagnostics/text.php:142
|
2367 |
+
#: views/diagnostics/text.php:155
|
2368 |
+
#: views/diagnostics/text.php:156
|
2369 |
+
#: views/diagnostics/text.php:157
|
2370 |
+
#: views/diagnostics/text.php:158
|
2371 |
+
#: views/diagnostics/text.php:172
|
2372 |
+
#: views/diagnostics/text.php:173
|
2373 |
+
#: views/diagnostics/text.php:174
|
2374 |
+
#: views/diagnostics/text.php:176
|
2375 |
+
#: views/diagnostics/text.php:177
|
2376 |
+
#: views/diagnostics/text.php:178
|
2377 |
+
#: views/diagnostics/text.php:196
|
2378 |
+
msgid "(not set)"
|
2379 |
+
msgstr ""
|
2380 |
+
|
2381 |
+
#: lib/menu_tools_diagnostic.php:226
|
2382 |
+
#: views/diagnostics/text.php:96
|
2383 |
+
msgid "In use"
|
2384 |
+
msgstr ""
|
2385 |
+
|
2386 |
+
#: lib/menu_tools_diagnostic.php:228
|
2387 |
+
#: views/diagnostics/text.php:98
|
2388 |
+
msgid "Configured but not valid"
|
2389 |
+
msgstr ""
|
2390 |
+
|
2391 |
+
#: lib/menu_tools_diagnostic.php:249
|
2392 |
+
#: views/diagnostics/text.php:117
|
2393 |
+
msgid "WordPress Settings"
|
2394 |
+
msgstr ""
|
2395 |
+
|
2396 |
+
#: lib/menu_tools_diagnostic.php:250
|
2397 |
+
#: views/diagnostics/text.php:117
|
2398 |
+
msgid "WordPress version and internal settings/constants."
|
2399 |
+
msgstr ""
|
2400 |
+
|
2401 |
+
#: lib/menu_tools_diagnostic.php:265
|
2402 |
+
#: views/diagnostics/text.php:124
|
2403 |
+
msgid "Return value of is_multisite()"
|
2404 |
+
msgstr ""
|
2405 |
+
|
2406 |
+
#: lib/menu_tools_diagnostic.php:265
|
2407 |
+
#: lib/menu_tools_diagnostic.php:276
|
2408 |
+
#: lib/menu_tools_diagnostic.php:278
|
2409 |
+
#: lib/menu_tools_diagnostic.php:279
|
2410 |
+
#: lib/menu_tools_diagnostic.php:292
|
2411 |
+
#: lib/menu_tools_diagnostic.php:305
|
2412 |
+
#: lib/menu_tools_diagnostic.php:306
|
2413 |
+
#: lib/menu_tools_diagnostic.php:307
|
2414 |
+
#: lib/menu_tools_diagnostic.php:308
|
2415 |
+
#: lib/menu_tools_diagnostic.php:309
|
2416 |
+
#: lib/menu_tools_diagnostic.php:310
|
2417 |
+
#: lib/menu_tools_diagnostic.php:315
|
2418 |
+
#: lib/menu_tools_diagnostic.php:316
|
2419 |
+
#: lib/menu_tools_diagnostic.php:317
|
2420 |
+
#: lib/menu_tools_diagnostic.php:318
|
2421 |
+
#: lib/menu_tools_diagnostic.php:319
|
2422 |
+
#: lib/menu_tools_diagnostic.php:323
|
2423 |
+
#: lib/wfDiagnostic.php:357
|
2424 |
+
#: lib/wfDiagnostic.php:375
|
2425 |
+
#: views/diagnostics/text.php:124
|
2426 |
+
#: views/diagnostics/text.php:135
|
2427 |
+
#: views/diagnostics/text.php:137
|
2428 |
+
#: views/diagnostics/text.php:138
|
2429 |
+
#: views/diagnostics/text.php:151
|
2430 |
+
#: views/diagnostics/text.php:164
|
2431 |
+
#: views/diagnostics/text.php:165
|
2432 |
+
#: views/diagnostics/text.php:166
|
2433 |
+
#: views/diagnostics/text.php:167
|
2434 |
+
#: views/diagnostics/text.php:168
|
2435 |
+
#: views/diagnostics/text.php:169
|
2436 |
+
#: views/diagnostics/text.php:174
|
2437 |
+
#: views/diagnostics/text.php:175
|
2438 |
+
#: views/diagnostics/text.php:176
|
2439 |
+
#: views/diagnostics/text.php:177
|
2440 |
+
#: views/diagnostics/text.php:178
|
2441 |
+
#: views/diagnostics/text.php:182
|
2442 |
+
#: views/onboarding/fresh-install.php:18
|
2443 |
+
#: views/onboarding/modal-final-attempt.php:25
|
2444 |
+
#: views/onboarding/plugin-header.php:39
|
2445 |
+
#: views/reports/activity-report-email-inline.php:262
|
2446 |
+
#: views/reports/activity-report.php:117
|
2447 |
+
msgid "Yes"
|
2448 |
+
msgstr ""
|
2449 |
+
|
2450 |
+
#: lib/menu_tools_diagnostic.php:265
|
2451 |
+
#: lib/menu_tools_diagnostic.php:292
|
2452 |
+
#: lib/menu_tools_diagnostic.php:305
|
2453 |
+
#: lib/menu_tools_diagnostic.php:306
|
2454 |
+
#: lib/menu_tools_diagnostic.php:307
|
2455 |
+
#: lib/menu_tools_diagnostic.php:308
|
2456 |
+
#: lib/menu_tools_diagnostic.php:309
|
2457 |
+
#: lib/menu_tools_diagnostic.php:310
|
2458 |
+
#: lib/menu_tools_diagnostic.php:315
|
2459 |
+
#: lib/menu_tools_diagnostic.php:316
|
2460 |
+
#: lib/menu_tools_diagnostic.php:318
|
2461 |
+
#: lib/menu_tools_diagnostic.php:319
|
2462 |
+
#: lib/menu_tools_diagnostic.php:323
|
2463 |
+
#: lib/wfDiagnostic.php:357
|
2464 |
+
#: lib/wfDiagnostic.php:375
|
2465 |
+
#: views/diagnostics/text.php:124
|
2466 |
+
#: views/diagnostics/text.php:151
|
2467 |
+
#: views/diagnostics/text.php:164
|
2468 |
+
#: views/diagnostics/text.php:165
|
2469 |
+
#: views/diagnostics/text.php:166
|
2470 |
+
#: views/diagnostics/text.php:167
|
2471 |
+
#: views/diagnostics/text.php:168
|
2472 |
+
#: views/diagnostics/text.php:169
|
2473 |
+
#: views/diagnostics/text.php:174
|
2474 |
+
#: views/diagnostics/text.php:175
|
2475 |
+
#: views/diagnostics/text.php:177
|
2476 |
+
#: views/diagnostics/text.php:178
|
2477 |
+
#: views/diagnostics/text.php:182
|
2478 |
+
#: views/onboarding/fresh-install.php:19
|
2479 |
+
#: views/onboarding/modal-final-attempt.php:26
|
2480 |
+
#: views/onboarding/plugin-header.php:40
|
2481 |
+
#: views/reports/activity-report-email-inline.php:262
|
2482 |
+
#: views/reports/activity-report.php:117
|
2483 |
+
msgid "No"
|
2484 |
+
msgstr ""
|
2485 |
+
|
2486 |
+
#: lib/menu_tools_diagnostic.php:266
|
2487 |
+
#: views/diagnostics/text.php:125
|
2488 |
+
msgid "WordPress base path"
|
2489 |
+
msgstr ""
|
2490 |
+
|
2491 |
+
#: lib/menu_tools_diagnostic.php:267
|
2492 |
+
#: views/diagnostics/text.php:126
|
2493 |
+
msgid "WordPress debug mode"
|
2494 |
+
msgstr ""
|
2495 |
+
|
2496 |
+
#: lib/menu_tools_diagnostic.php:267
|
2497 |
+
#: lib/menu_tools_diagnostic.php:270
|
2498 |
+
#: lib/menu_tools_diagnostic.php:271
|
2499 |
+
#: lib/wfDiagnostic.php:576
|
2500 |
+
#: views/diagnostics/text.php:126
|
2501 |
+
#: views/diagnostics/text.php:129
|
2502 |
+
#: views/diagnostics/text.php:130
|
2503 |
+
#: views/waf/options-group-brute-force.php:42
|
2504 |
+
#: views/waf/options-group-rate-limiting.php:42
|
2505 |
+
msgid "On"
|
2506 |
+
msgstr ""
|
2507 |
+
|
2508 |
+
#: lib/menu_tools_diagnostic.php:267
|
2509 |
+
#: lib/menu_tools_diagnostic.php:270
|
2510 |
+
#: lib/menu_tools_diagnostic.php:271
|
2511 |
+
#: lib/wfDiagnostic.php:576
|
2512 |
+
#: views/diagnostics/text.php:126
|
2513 |
+
#: views/diagnostics/text.php:129
|
2514 |
+
#: views/diagnostics/text.php:130
|
2515 |
+
#: views/waf/options-group-brute-force.php:41
|
2516 |
+
#: views/waf/options-group-rate-limiting.php:41
|
2517 |
+
msgid "Off"
|
2518 |
+
msgstr ""
|
2519 |
+
|
2520 |
+
#: lib/menu_tools_diagnostic.php:268
|
2521 |
+
#: views/diagnostics/text.php:127
|
2522 |
+
msgid "WordPress error logging override"
|
2523 |
+
msgstr ""
|
2524 |
+
|
2525 |
+
#: lib/menu_tools_diagnostic.php:269
|
2526 |
+
#: views/diagnostics/text.php:128
|
2527 |
+
msgid "WordPress error display override"
|
2528 |
+
msgstr ""
|
2529 |
+
|
2530 |
+
#: lib/menu_tools_diagnostic.php:270
|
2531 |
+
#: views/diagnostics/text.php:129
|
2532 |
+
msgid "WordPress script debug mode"
|
2533 |
+
msgstr ""
|
2534 |
+
|
2535 |
+
#: lib/menu_tools_diagnostic.php:271
|
2536 |
+
#: views/diagnostics/text.php:130
|
2537 |
+
msgid "WordPress query debug mode"
|
2538 |
+
msgstr ""
|
2539 |
+
|
2540 |
+
#: lib/menu_tools_diagnostic.php:272
|
2541 |
+
#: views/diagnostics/text.php:131
|
2542 |
+
msgid "Database character set"
|
2543 |
+
msgstr ""
|
2544 |
+
|
2545 |
+
#: lib/menu_tools_diagnostic.php:273
|
2546 |
+
#: views/diagnostics/text.php:132
|
2547 |
+
msgid "Database collation"
|
2548 |
+
msgstr ""
|
2549 |
+
|
2550 |
+
#: lib/menu_tools_diagnostic.php:274
|
2551 |
+
#: views/diagnostics/text.php:133
|
2552 |
+
msgid "Explicitly set site URL"
|
2553 |
+
msgstr ""
|
2554 |
+
|
2555 |
+
#: lib/menu_tools_diagnostic.php:275
|
2556 |
+
#: views/diagnostics/text.php:134
|
2557 |
+
msgid "Explicitly set blog URL"
|
2558 |
+
msgstr ""
|
2559 |
+
|
2560 |
+
#: lib/menu_tools_diagnostic.php:276
|
2561 |
+
#: views/diagnostics/text.php:135
|
2562 |
+
msgid "\"wp-content\" folder is in default location"
|
2563 |
+
msgstr ""
|
2564 |
+
|
2565 |
+
#: lib/menu_tools_diagnostic.php:276
|
2566 |
+
#: lib/menu_tools_diagnostic.php:278
|
2567 |
+
#: lib/menu_tools_diagnostic.php:279
|
2568 |
+
#: views/diagnostics/text.php:135
|
2569 |
+
#: views/diagnostics/text.php:137
|
2570 |
+
#: views/diagnostics/text.php:138
|
2571 |
+
msgid "No: %s"
|
2572 |
+
msgstr ""
|
2573 |
+
|
2574 |
+
#: lib/menu_tools_diagnostic.php:277
|
2575 |
+
#: views/diagnostics/text.php:136
|
2576 |
+
msgid "URL to the \"wp-content\" folder"
|
2577 |
+
msgstr ""
|
2578 |
+
|
2579 |
+
#: lib/menu_tools_diagnostic.php:278
|
2580 |
+
#: views/diagnostics/text.php:137
|
2581 |
+
msgid "\"plugins\" folder is in default location"
|
2582 |
+
msgstr ""
|
2583 |
+
|
2584 |
+
#: lib/menu_tools_diagnostic.php:279
|
2585 |
+
#: views/diagnostics/text.php:138
|
2586 |
+
msgid "\"languages\" folder is in default location"
|
2587 |
+
msgstr ""
|
2588 |
+
|
2589 |
+
#: lib/menu_tools_diagnostic.php:280
|
2590 |
+
#: views/diagnostics/text.php:139
|
2591 |
+
msgid "Language choice"
|
2592 |
+
msgstr ""
|
2593 |
+
|
2594 |
+
#: lib/menu_tools_diagnostic.php:281
|
2595 |
+
#: views/diagnostics/text.php:140
|
2596 |
+
msgid "Custom upload folder location"
|
2597 |
+
msgstr ""
|
2598 |
+
|
2599 |
+
#: lib/menu_tools_diagnostic.php:282
|
2600 |
+
#: views/diagnostics/text.php:141
|
2601 |
+
msgid "Theme template folder override"
|
2602 |
+
msgstr ""
|
2603 |
+
|
2604 |
+
#: lib/menu_tools_diagnostic.php:282
|
2605 |
+
#: lib/menu_tools_diagnostic.php:283
|
2606 |
+
#: views/diagnostics/text.php:141
|
2607 |
+
#: views/diagnostics/text.php:142
|
2608 |
+
msgid "Overridden: %s"
|
2609 |
+
msgstr ""
|
2610 |
+
|
2611 |
+
#: lib/menu_tools_diagnostic.php:283
|
2612 |
+
#: views/diagnostics/text.php:142
|
2613 |
+
msgid "Theme stylesheet folder override"
|
2614 |
+
msgstr ""
|
2615 |
+
|
2616 |
+
#: lib/menu_tools_diagnostic.php:284
|
2617 |
+
#: views/diagnostics/text.php:143
|
2618 |
+
msgid "Post editing automatic saving interval"
|
2619 |
+
msgstr ""
|
2620 |
+
|
2621 |
+
#: lib/menu_tools_diagnostic.php:285
|
2622 |
+
#: views/diagnostics/text.php:144
|
2623 |
+
msgid "Post revisions saved by WordPress"
|
2624 |
+
msgstr ""
|
2625 |
+
|
2626 |
+
#: lib/menu_tools_diagnostic.php:285
|
2627 |
+
#: views/diagnostics/text.php:144
|
2628 |
+
#: views/waf/options-group-rate-limiting.php:67
|
2629 |
+
msgid "Unlimited"
|
2630 |
+
msgstr ""
|
2631 |
+
|
2632 |
+
#: lib/menu_tools_diagnostic.php:285
|
2633 |
+
#: lib/menu_tools_diagnostic.php:312
|
2634 |
+
#: lib/wfDiagnostic.php:202
|
2635 |
+
#: lib/wfDiagnostic.php:411
|
2636 |
+
#: views/diagnostics/text.php:144
|
2637 |
+
#: views/diagnostics/text.php:171
|
2638 |
+
#: views/scanner/issue-base.php:101
|
2639 |
+
msgid "None"
|
2640 |
+
msgstr ""
|
2641 |
+
|
2642 |
+
#: lib/menu_tools_diagnostic.php:286
|
2643 |
+
#: views/diagnostics/text.php:145
|
2644 |
+
msgid "WordPress cookie domain"
|
2645 |
+
msgstr ""
|
2646 |
+
|
2647 |
+
#: lib/menu_tools_diagnostic.php:287
|
2648 |
+
#: views/diagnostics/text.php:146
|
2649 |
+
msgid "WordPress cookie path"
|
2650 |
+
msgstr ""
|
2651 |
+
|
2652 |
+
#: lib/menu_tools_diagnostic.php:288
|
2653 |
+
#: views/diagnostics/text.php:147
|
2654 |
+
msgid "WordPress site cookie path"
|
2655 |
+
msgstr ""
|
2656 |
+
|
2657 |
+
#: lib/menu_tools_diagnostic.php:289
|
2658 |
+
#: views/diagnostics/text.php:148
|
2659 |
+
msgid "WordPress admin cookie path"
|
2660 |
+
msgstr ""
|
2661 |
+
|
2662 |
+
#: lib/menu_tools_diagnostic.php:290
|
2663 |
+
#: views/diagnostics/text.php:149
|
2664 |
+
msgid "WordPress plugins cookie path"
|
2665 |
+
msgstr ""
|
2666 |
+
|
2667 |
+
#: lib/menu_tools_diagnostic.php:291
|
2668 |
+
#: views/diagnostics/text.php:150
|
2669 |
+
msgid "URL redirected to if the visitor tries to access a nonexistent blog"
|
2670 |
+
msgstr ""
|
2671 |
+
|
2672 |
+
#: lib/menu_tools_diagnostic.php:292
|
2673 |
+
#: views/diagnostics/text.php:151
|
2674 |
+
msgid "Concatenate JavaScript files"
|
2675 |
+
msgstr ""
|
2676 |
+
|
2677 |
+
#: lib/menu_tools_diagnostic.php:293
|
2678 |
+
#: views/diagnostics/text.php:152
|
2679 |
+
msgid "WordPress memory limit"
|
2680 |
+
msgstr ""
|
2681 |
+
|
2682 |
+
#: lib/menu_tools_diagnostic.php:294
|
2683 |
+
#: views/diagnostics/text.php:153
|
2684 |
+
msgid "Administrative memory limit"
|
2685 |
+
msgstr ""
|
2686 |
+
|
2687 |
+
#: lib/menu_tools_diagnostic.php:295
|
2688 |
+
#: views/diagnostics/text.php:154
|
2689 |
+
msgid "Built-in caching"
|
2690 |
+
msgstr ""
|
2691 |
+
|
2692 |
+
#: lib/menu_tools_diagnostic.php:296
|
2693 |
+
#: views/diagnostics/text.php:155
|
2694 |
+
msgid "Custom \"users\" table"
|
2695 |
+
msgstr ""
|
2696 |
+
|
2697 |
+
#: lib/menu_tools_diagnostic.php:296
|
2698 |
+
#: lib/menu_tools_diagnostic.php:297
|
2699 |
+
#: views/diagnostics/text.php:155
|
2700 |
+
#: views/diagnostics/text.php:156
|
2701 |
+
msgid "Set: %s"
|
2702 |
+
msgstr ""
|
2703 |
+
|
2704 |
+
#: lib/menu_tools_diagnostic.php:297
|
2705 |
+
#: views/diagnostics/text.php:156
|
2706 |
+
msgid "Custom \"usermeta\" table"
|
2707 |
+
msgstr ""
|
2708 |
+
|
2709 |
+
#: lib/menu_tools_diagnostic.php:298
|
2710 |
+
#: views/diagnostics/text.php:157
|
2711 |
+
msgid "Overridden permissions for a new folder"
|
2712 |
+
msgstr ""
|
2713 |
+
|
2714 |
+
#: lib/menu_tools_diagnostic.php:299
|
2715 |
+
#: views/diagnostics/text.php:158
|
2716 |
+
msgid "Overridden permissions for a new file"
|
2717 |
+
msgstr ""
|
2718 |
+
|
2719 |
+
#: lib/menu_tools_diagnostic.php:300
|
2720 |
+
#: views/diagnostics/text.php:159
|
2721 |
+
msgid "Alternate WP cron"
|
2722 |
+
msgstr ""
|
2723 |
+
|
2724 |
+
#: lib/menu_tools_diagnostic.php:301
|
2725 |
+
#: views/diagnostics/text.php:160
|
2726 |
+
msgid "WP cron status"
|
2727 |
+
msgstr ""
|
2728 |
+
|
2729 |
+
#: lib/menu_tools_diagnostic.php:302
|
2730 |
+
#: views/diagnostics/text.php:161
|
2731 |
+
msgid "Cron running frequency lock"
|
2732 |
+
msgstr ""
|
2733 |
+
|
2734 |
+
#: lib/menu_tools_diagnostic.php:303
|
2735 |
+
#: views/diagnostics/text.php:162
|
2736 |
+
msgid "Interval the trash is automatically emptied at in days"
|
2737 |
+
msgstr ""
|
2738 |
+
|
2739 |
+
#: lib/menu_tools_diagnostic.php:303
|
2740 |
+
#: lib/wordfenceClass.php:4172
|
2741 |
+
#: views/diagnostics/text.php:162
|
2742 |
+
msgid "Never"
|
2743 |
+
msgstr ""
|
2744 |
+
|
2745 |
+
#: lib/menu_tools_diagnostic.php:304
|
2746 |
+
#: views/diagnostics/text.php:163
|
2747 |
+
msgid "Automatic database repair"
|
2748 |
+
msgstr ""
|
2749 |
+
|
2750 |
+
#: lib/menu_tools_diagnostic.php:305
|
2751 |
+
#: views/diagnostics/text.php:164
|
2752 |
+
msgid "Do not upgrade global tables"
|
2753 |
+
msgstr ""
|
2754 |
+
|
2755 |
+
#: lib/menu_tools_diagnostic.php:306
|
2756 |
+
#: views/diagnostics/text.php:165
|
2757 |
+
msgid "Disallow plugin/theme editing"
|
2758 |
+
msgstr ""
|
2759 |
+
|
2760 |
+
#: lib/menu_tools_diagnostic.php:307
|
2761 |
+
#: views/diagnostics/text.php:166
|
2762 |
+
msgid "Disallow plugin/theme update and installation"
|
2763 |
+
msgstr ""
|
2764 |
+
|
2765 |
+
#: lib/menu_tools_diagnostic.php:308
|
2766 |
+
#: views/diagnostics/text.php:167
|
2767 |
+
msgid "Overwrite image edits when restoring the original"
|
2768 |
+
msgstr ""
|
2769 |
+
|
2770 |
+
#: lib/menu_tools_diagnostic.php:309
|
2771 |
+
#: views/diagnostics/text.php:168
|
2772 |
+
msgid "Force SSL for administrative logins"
|
2773 |
+
msgstr ""
|
2774 |
+
|
2775 |
+
#: lib/menu_tools_diagnostic.php:310
|
2776 |
+
#: views/diagnostics/text.php:169
|
2777 |
+
msgid "Block external URL requests"
|
2778 |
+
msgstr ""
|
2779 |
+
|
2780 |
+
#: lib/menu_tools_diagnostic.php:311
|
2781 |
+
#: views/diagnostics/text.php:170
|
2782 |
+
msgid "Whitelisted hosts"
|
2783 |
+
msgstr ""
|
2784 |
+
|
2785 |
+
#: lib/menu_tools_diagnostic.php:312
|
2786 |
+
#: views/diagnostics/text.php:171
|
2787 |
+
msgid "Automatic WP Core updates"
|
2788 |
+
msgstr ""
|
2789 |
+
|
2790 |
+
#: lib/menu_tools_diagnostic.php:312
|
2791 |
+
#: views/diagnostics/text.php:171
|
2792 |
+
msgid "Everything"
|
2793 |
+
msgstr ""
|
2794 |
+
|
2795 |
+
#: lib/menu_tools_diagnostic.php:312
|
2796 |
+
#: views/diagnostics/text.php:171
|
2797 |
+
msgid "Default"
|
2798 |
+
msgstr ""
|
2799 |
+
|
2800 |
+
#: lib/menu_tools_diagnostic.php:313
|
2801 |
+
#: views/diagnostics/text.php:172
|
2802 |
+
msgid "Hostname for a proxy server"
|
2803 |
+
msgstr ""
|
2804 |
+
|
2805 |
+
#: lib/menu_tools_diagnostic.php:314
|
2806 |
+
#: views/diagnostics/text.php:173
|
2807 |
+
msgid "Port for a proxy server"
|
2808 |
+
msgstr ""
|
2809 |
+
|
2810 |
+
#: lib/menu_tools_diagnostic.php:315
|
2811 |
+
#: views/diagnostics/text.php:174
|
2812 |
+
msgid "Multisite enabled"
|
2813 |
+
msgstr ""
|
2814 |
+
|
2815 |
+
#: lib/menu_tools_diagnostic.php:316
|
2816 |
+
#: views/diagnostics/text.php:175
|
2817 |
+
msgid "Multisite/network ability enabled"
|
2818 |
+
msgstr ""
|
2819 |
+
|
2820 |
+
#: lib/menu_tools_diagnostic.php:317
|
2821 |
+
#: views/diagnostics/text.php:176
|
2822 |
+
msgid "Multisite enabled, WordPress will load the /wp-content/sunrise.php file"
|
2823 |
+
msgstr ""
|
2824 |
+
|
2825 |
+
#: lib/menu_tools_diagnostic.php:318
|
2826 |
+
#: views/diagnostics/text.php:177
|
2827 |
+
msgid "Multisite enabled, subdomain installation constant"
|
2828 |
+
msgstr ""
|
2829 |
+
|
2830 |
+
#: lib/menu_tools_diagnostic.php:319
|
2831 |
+
#: views/diagnostics/text.php:178
|
2832 |
+
msgid "Multisite enabled, Older subdomain installation constant"
|
2833 |
+
msgstr ""
|
2834 |
+
|
2835 |
+
#: lib/menu_tools_diagnostic.php:320
|
2836 |
+
#: views/diagnostics/text.php:179
|
2837 |
+
msgid "Defines the multisite domain for the current site"
|
2838 |
+
msgstr ""
|
2839 |
+
|
2840 |
+
#: lib/menu_tools_diagnostic.php:321
|
2841 |
+
#: views/diagnostics/text.php:180
|
2842 |
+
msgid "Defines the multisite path for the current site"
|
2843 |
+
msgstr ""
|
2844 |
+
|
2845 |
+
#: lib/menu_tools_diagnostic.php:322
|
2846 |
+
#: views/diagnostics/text.php:181
|
2847 |
+
msgid "Defines the multisite database ID for the current site"
|
2848 |
+
msgstr ""
|
2849 |
+
|
2850 |
+
#: lib/menu_tools_diagnostic.php:323
|
2851 |
+
#: views/diagnostics/text.php:182
|
2852 |
+
msgid "Disable the fatal error handler"
|
2853 |
+
msgstr ""
|
2854 |
+
|
2855 |
+
#: lib/menu_tools_diagnostic.php:357
|
2856 |
+
#: views/diagnostics/text.php:220
|
2857 |
+
msgid "WordPress Plugins"
|
2858 |
+
msgstr ""
|
2859 |
+
|
2860 |
+
#: lib/menu_tools_diagnostic.php:358
|
2861 |
+
#: views/diagnostics/text.php:220
|
2862 |
+
msgid "Status of installed plugins."
|
2863 |
+
msgstr ""
|
2864 |
+
|
2865 |
+
#: lib/menu_tools_diagnostic.php:382
|
2866 |
+
#: lib/menu_tools_diagnostic.php:428
|
2867 |
+
#: lib/menu_tools_diagnostic.php:527
|
2868 |
+
#: views/diagnostics/text.php:238
|
2869 |
+
#: views/diagnostics/text.php:277
|
2870 |
+
#: views/diagnostics/text.php:351
|
2871 |
+
msgid "Version %s"
|
2872 |
+
msgstr ""
|
2873 |
+
|
2874 |
+
#: lib/menu_tools_diagnostic.php:386
|
2875 |
+
#: views/diagnostics/text.php:242
|
2876 |
+
msgid "Network Activated"
|
2877 |
+
msgstr ""
|
2878 |
+
|
2879 |
+
#: lib/menu_tools_diagnostic.php:388
|
2880 |
+
#: lib/menu_tools_diagnostic.php:431
|
2881 |
+
#: lib/menu_tools_diagnostic.php:487
|
2882 |
+
#: lib/menu_tools_diagnostic.php:530
|
2883 |
+
#: views/diagnostics/text.php:244
|
2884 |
+
#: views/diagnostics/text.php:282
|
2885 |
+
#: views/diagnostics/text.php:324
|
2886 |
+
#: views/diagnostics/text.php:355
|
2887 |
+
msgid "Active"
|
2888 |
+
msgstr ""
|
2889 |
+
|
2890 |
+
#: lib/menu_tools_diagnostic.php:390
|
2891 |
+
#: lib/menu_tools_diagnostic.php:489
|
2892 |
+
#: lib/menu_tools_diagnostic.php:532
|
2893 |
+
#: views/diagnostics/text.php:246
|
2894 |
+
#: views/diagnostics/text.php:324
|
2895 |
+
#: views/diagnostics/text.php:357
|
2896 |
+
msgid "Inactive"
|
2897 |
+
msgstr ""
|
2898 |
+
|
2899 |
+
#: lib/menu_tools_diagnostic.php:402
|
2900 |
+
#: views/diagnostics/text.php:258
|
2901 |
+
msgid "Must-Use WordPress Plugins"
|
2902 |
+
msgstr ""
|
2903 |
+
|
2904 |
+
#: lib/menu_tools_diagnostic.php:403
|
2905 |
+
#: views/diagnostics/text.php:258
|
2906 |
+
msgid "WordPress \"mu-plugins\" that are always active, including those provided by hosts."
|
2907 |
+
msgstr ""
|
2908 |
+
|
2909 |
+
#: lib/menu_tools_diagnostic.php:438
|
2910 |
+
#: views/diagnostics/text.php:287
|
2911 |
+
msgid "No MU-Plugins"
|
2912 |
+
msgstr ""
|
2913 |
+
|
2914 |
+
#: lib/menu_tools_diagnostic.php:450
|
2915 |
+
#: views/diagnostics/text.php:296
|
2916 |
+
msgid "Drop-In WordPress Plugins"
|
2917 |
+
msgstr ""
|
2918 |
+
|
2919 |
+
#: lib/menu_tools_diagnostic.php:451
|
2920 |
+
#: views/diagnostics/text.php:296
|
2921 |
+
msgid "WordPress \"drop-in\" plugins that are active."
|
2922 |
+
msgstr ""
|
2923 |
+
|
2924 |
+
#: lib/menu_tools_diagnostic.php:464
|
2925 |
+
#: views/diagnostics/text.php:302
|
2926 |
+
msgid "Advanced caching plugin"
|
2927 |
+
msgstr ""
|
2928 |
+
|
2929 |
+
#: lib/menu_tools_diagnostic.php:465
|
2930 |
+
#: views/diagnostics/text.php:303
|
2931 |
+
msgid "Custom database class"
|
2932 |
+
msgstr ""
|
2933 |
+
|
2934 |
+
#: lib/menu_tools_diagnostic.php:466
|
2935 |
+
#: views/diagnostics/text.php:304
|
2936 |
+
msgid "Custom database error message"
|
2937 |
+
msgstr ""
|
2938 |
+
|
2939 |
+
#: lib/menu_tools_diagnostic.php:467
|
2940 |
+
#: views/diagnostics/text.php:305
|
2941 |
+
msgid "Custom installation script"
|
2942 |
+
msgstr ""
|
2943 |
+
|
2944 |
+
#: lib/menu_tools_diagnostic.php:468
|
2945 |
+
#: views/diagnostics/text.php:306
|
2946 |
+
msgid "Custom maintenance message"
|
2947 |
+
msgstr ""
|
2948 |
+
|
2949 |
+
#: lib/menu_tools_diagnostic.php:469
|
2950 |
+
#: views/diagnostics/text.php:307
|
2951 |
+
msgid "External object cache"
|
2952 |
+
msgstr ""
|
2953 |
+
|
2954 |
+
#: lib/menu_tools_diagnostic.php:470
|
2955 |
+
#: views/diagnostics/text.php:308
|
2956 |
+
msgid "Custom PHP error message"
|
2957 |
+
msgstr ""
|
2958 |
+
|
2959 |
+
#: lib/menu_tools_diagnostic.php:471
|
2960 |
+
#: views/diagnostics/text.php:309
|
2961 |
+
msgid "Custom PHP fatal error handler"
|
2962 |
+
msgstr ""
|
2963 |
+
|
2964 |
+
#: lib/menu_tools_diagnostic.php:473
|
2965 |
+
#: views/diagnostics/text.php:311
|
2966 |
+
msgid "Executed before Multisite is loaded"
|
2967 |
+
msgstr ""
|
2968 |
+
|
2969 |
+
#: lib/menu_tools_diagnostic.php:474
|
2970 |
+
#: views/diagnostics/text.php:312
|
2971 |
+
msgid "Custom site deleted message"
|
2972 |
+
msgstr ""
|
2973 |
+
|
2974 |
+
#: lib/menu_tools_diagnostic.php:475
|
2975 |
+
#: views/diagnostics/text.php:313
|
2976 |
+
msgid "Custom site inactive message"
|
2977 |
+
msgstr ""
|
2978 |
+
|
2979 |
+
#: lib/menu_tools_diagnostic.php:476
|
2980 |
+
#: views/diagnostics/text.php:314
|
2981 |
+
msgid "Custom site suspended message"
|
2982 |
+
msgstr ""
|
2983 |
+
|
2984 |
+
#: lib/menu_tools_diagnostic.php:501
|
2985 |
+
#: views/diagnostics/text.php:332
|
2986 |
+
#: views/reports/activity-report-email-inline.php:384
|
2987 |
+
#: views/reports/activity-report.php:191
|
2988 |
+
msgid "Themes"
|
2989 |
+
msgstr ""
|
2990 |
+
|
2991 |
+
#: lib/menu_tools_diagnostic.php:502
|
2992 |
+
#: views/diagnostics/text.php:332
|
2993 |
+
msgid "Status of installed themes."
|
2994 |
+
msgstr ""
|
2995 |
+
|
2996 |
+
#: lib/menu_tools_diagnostic.php:540
|
2997 |
+
#: views/diagnostics/text.php:366
|
2998 |
+
msgid "No Themes"
|
2999 |
+
msgstr ""
|
3000 |
+
|
3001 |
+
#: lib/menu_tools_diagnostic.php:552
|
3002 |
+
#: views/diagnostics/text.php:375
|
3003 |
+
msgid "Cron Jobs"
|
3004 |
+
msgstr ""
|
3005 |
+
|
3006 |
+
#: lib/menu_tools_diagnostic.php:553
|
3007 |
+
#: views/diagnostics/text.php:375
|
3008 |
+
msgid "List of WordPress cron jobs scheduled by WordPress, plugins, or themes."
|
3009 |
+
msgstr ""
|
3010 |
+
|
3011 |
+
#: lib/menu_tools_diagnostic.php:573
|
3012 |
+
#: views/diagnostics/text.php:390
|
3013 |
+
msgid "Overdue"
|
3014 |
+
msgstr ""
|
3015 |
+
|
3016 |
+
#: lib/menu_tools_diagnostic.php:605
|
3017 |
+
#: views/diagnostics/text.php:402
|
3018 |
+
msgid "Database Tables"
|
3019 |
+
msgstr ""
|
3020 |
+
|
3021 |
+
#: lib/menu_tools_diagnostic.php:606
|
3022 |
+
#: views/diagnostics/text.php:402
|
3023 |
+
msgid "Database table names, sizes, timestamps, and other metadata."
|
3024 |
+
msgstr ""
|
3025 |
+
|
3026 |
+
#: lib/menu_tools_diagnostic.php:616
|
3027 |
+
msgid "Wordfence Table Check"
|
3028 |
+
msgstr ""
|
3029 |
+
|
3030 |
+
#: lib/menu_tools_diagnostic.php:619
|
3031 |
+
#: views/diagnostics/text.php:420
|
3032 |
+
msgid "Unable to verify - table count too high"
|
3033 |
+
msgstr ""
|
3034 |
+
|
3035 |
+
#: lib/menu_tools_diagnostic.php:636
|
3036 |
+
#: views/diagnostics/text.php:441
|
3037 |
+
msgid "All Tables Exist"
|
3038 |
+
msgstr ""
|
3039 |
+
|
3040 |
+
#: lib/menu_tools_diagnostic.php:638
|
3041 |
+
#: views/diagnostics/text.php:443
|
3042 |
+
msgid "Tables missing (prefix %s, %s): %s"
|
3043 |
+
msgstr ""
|
3044 |
+
|
3045 |
+
#: lib/menu_tools_diagnostic.php:638
|
3046 |
+
#: views/diagnostics/text.php:443
|
3047 |
+
msgid "lowercase"
|
3048 |
+
msgstr ""
|
3049 |
+
|
3050 |
+
#: lib/menu_tools_diagnostic.php:638
|
3051 |
+
#: views/diagnostics/text.php:443
|
3052 |
+
msgid "regular case"
|
3053 |
+
msgstr ""
|
3054 |
+
|
3055 |
+
#: lib/menu_tools_diagnostic.php:684
|
3056 |
+
#: views/diagnostics/text.php:477
|
3057 |
+
msgid "and %d more"
|
3058 |
+
msgstr ""
|
3059 |
+
|
3060 |
+
#: lib/menu_tools_diagnostic.php:703
|
3061 |
+
#: views/diagnostics/text.php:488
|
3062 |
+
msgid "Log Files"
|
3063 |
+
msgstr ""
|
3064 |
+
|
3065 |
+
#: lib/menu_tools_diagnostic.php:704
|
3066 |
+
#: views/diagnostics/text.php:488
|
3067 |
+
msgid "PHP error logs generated by your site, if enabled by your host."
|
3068 |
+
msgstr ""
|
3069 |
+
|
3070 |
+
#: lib/menu_tools_diagnostic.php:716
|
3071 |
+
#: views/diagnostics/text.php:494
|
3072 |
+
#: views/reports/activity-report-email-inline.php:333
|
3073 |
+
#: views/scanner/issue-file.php:8
|
3074 |
+
#: views/scanner/issue-knownfile.php:8
|
3075 |
+
msgid "File"
|
3076 |
+
msgstr ""
|
3077 |
+
|
3078 |
+
#: lib/menu_tools_diagnostic.php:717
|
3079 |
+
#: lib/menu_tools_diagnostic.php:756
|
3080 |
+
msgid "Download"
|
3081 |
+
msgstr ""
|
3082 |
+
|
3083 |
+
#: lib/menu_tools_diagnostic.php:725
|
3084 |
+
#: views/diagnostics/text.php:501
|
3085 |
+
msgid "No log files found."
|
3086 |
+
msgstr ""
|
3087 |
+
|
3088 |
+
#: lib/menu_tools_diagnostic.php:745
|
3089 |
+
#: views/diagnostics/text.php:520
|
3090 |
+
msgid "UTC"
|
3091 |
+
msgstr ""
|
3092 |
+
|
3093 |
+
#: lib/menu_tools_diagnostic.php:756
|
3094 |
+
msgid "Requires downloading from the server directly"
|
3095 |
+
msgstr ""
|
3096 |
+
|
3097 |
+
#: lib/menu_tools_diagnostic.php:770
|
3098 |
+
#: views/diagnostics/text.php:541
|
3099 |
+
msgid "Scan Issues"
|
3100 |
+
msgstr ""
|
3101 |
+
|
3102 |
+
#: lib/menu_tools_diagnostic.php:775
|
3103 |
+
#: views/diagnostics/text.php:549
|
3104 |
+
msgid "New Issues (%d total)"
|
3105 |
+
msgstr ""
|
3106 |
+
|
3107 |
+
#: lib/menu_tools_diagnostic.php:796
|
3108 |
+
#: lib/wordfenceClass.php:3877
|
3109 |
+
#: views/diagnostics/text.php:572
|
3110 |
+
msgid "No New Issues"
|
3111 |
+
msgstr ""
|
3112 |
+
|
3113 |
+
#: lib/menu_tools_diagnostic.php:811
|
3114 |
+
msgid "Other Tests"
|
3115 |
+
msgstr ""
|
3116 |
+
|
3117 |
+
#: lib/menu_tools_diagnostic.php:812
|
3118 |
+
msgid "System configuration, memory test, send test email from this server."
|
3119 |
+
msgstr ""
|
3120 |
+
|
3121 |
+
#: lib/menu_tools_diagnostic.php:823
|
3122 |
+
msgid "Click to view your system's configuration in a new window"
|
3123 |
+
msgstr ""
|
3124 |
+
|
3125 |
+
#: lib/menu_tools_diagnostic.php:829
|
3126 |
+
msgid "Test your WordPress host's available memory"
|
3127 |
+
msgstr ""
|
3128 |
+
|
3129 |
+
#: lib/menu_tools_diagnostic.php:835
|
3130 |
+
msgid "Send a test email from this WordPress server to an email address:"
|
3131 |
+
msgstr ""
|
3132 |
+
|
3133 |
+
#: lib/menu_tools_diagnostic.php:837
|
3134 |
+
msgid "Send Test Email"
|
3135 |
+
msgstr ""
|
3136 |
+
|
3137 |
+
#: lib/menu_tools_diagnostic.php:842
|
3138 |
+
msgid "Send a test activity report email:"
|
3139 |
+
msgstr ""
|
3140 |
+
|
3141 |
+
#: lib/menu_tools_diagnostic.php:844
|
3142 |
+
msgid "Send Test Activity Report"
|
3143 |
+
msgstr ""
|
3144 |
+
|
3145 |
+
#: lib/menu_tools_diagnostic.php:849
|
3146 |
+
msgid "Clear all Wordfence Central connection data"
|
3147 |
+
msgstr ""
|
3148 |
+
|
3149 |
+
#: lib/menu_tools_diagnostic.php:850
|
3150 |
+
msgid "Clear Connection Data"
|
3151 |
+
msgstr ""
|
3152 |
+
|
3153 |
+
#: lib/menu_tools_diagnostic.php:862
|
3154 |
+
msgid "Debugging Options"
|
3155 |
+
msgstr ""
|
3156 |
+
|
3157 |
+
#: lib/menu_tools_diagnostic.php:879
|
3158 |
+
msgid "Enable debugging mode (increases database load)"
|
3159 |
+
msgstr ""
|
3160 |
+
|
3161 |
+
#: lib/menu_tools_diagnostic.php:891
|
3162 |
+
msgid "Start all scans remotely (Try this if your scans aren't starting and your site is publicly accessible)"
|
3163 |
+
msgstr ""
|
3164 |
+
|
3165 |
+
#: lib/menu_tools_diagnostic.php:903
|
3166 |
+
msgid "Enable SSL Verification (Disable this if you are consistently unable to connect to the Wordfence servers.)"
|
3167 |
+
msgstr ""
|
3168 |
+
|
3169 |
+
#: lib/menu_tools_diagnostic.php:915
|
3170 |
+
msgid "Disable reading of php://input"
|
3171 |
+
msgstr ""
|
3172 |
+
|
3173 |
+
#: lib/menu_tools_diagnostic.php:927
|
3174 |
+
msgid "Enable beta threat defense feed"
|
3175 |
+
msgstr ""
|
3176 |
+
|
3177 |
+
#: lib/menu_tools_diagnostic.php:934
|
3178 |
+
msgid "Restore Defaults"
|
3179 |
+
msgstr ""
|
3180 |
+
|
3181 |
+
#: lib/menu_tools_diagnostic.php:935
|
3182 |
+
msgid "Cancel Changes"
|
3183 |
+
msgstr ""
|
3184 |
+
|
3185 |
+
#: lib/menu_tools_diagnostic.php:936
|
3186 |
+
msgid "Save Changes"
|
3187 |
+
msgstr ""
|
3188 |
+
|
3189 |
+
#: lib/menu_tools_diagnostic.php:953
|
3190 |
+
#: views/options/block-all-options-controls.php:162
|
3191 |
+
#: views/options/block-controls.php:77
|
3192 |
+
msgid "Confirm Restore Defaults"
|
3193 |
+
msgstr ""
|
3194 |
+
|
3195 |
+
#: lib/menu_tools_diagnostic.php:954
|
3196 |
+
msgid "Are you sure you want to restore the default Diagnostics settings? This will undo any custom changes you have made to the options on this page."
|
3197 |
+
msgstr ""
|
3198 |
+
|
3199 |
+
#: lib/menu_tools_diagnostic.php:956
|
3200 |
+
#: views/options/block-all-options-controls.php:165
|
3201 |
+
#: views/options/block-controls.php:80
|
3202 |
+
msgid "Restore<span class=\"wf-hidden-xs\"> Defaults</span>"
|
3203 |
+
msgstr ""
|
3204 |
+
|
3205 |
+
#: lib/menu_tools_importExport.php:14
|
3206 |
+
msgid "<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"wf-help-link\">Learn more<span class=\"wf-hidden-xs\"> about importing and exporting options</span></a>"
|
3207 |
+
msgstr ""
|
3208 |
+
|
3209 |
+
#: lib/menu_tools_importExport.php:18
|
3210 |
+
msgid "To clone one site's configuration to another, use the import/export tools below."
|
3211 |
+
msgstr ""
|
3212 |
+
|
3213 |
+
#: lib/menu_tools_livetraffic.php:42
|
3214 |
+
msgid "<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"wf-help-link\">Learn more<span class=\"wf-hidden-xs\"> about Live Traffic</span></a>"
|
3215 |
+
msgstr ""
|
3216 |
+
|
3217 |
+
#: lib/menu_tools_livetraffic.php:49
|
3218 |
+
msgid "Live Updates Paused"
|
3219 |
+
msgstr ""
|
3220 |
+
|
3221 |
+
#: lib/menu_tools_livetraffic.php:50
|
3222 |
+
msgid "Click inside window to resume"
|
3223 |
+
msgstr ""
|
3224 |
+
|
3225 |
+
#: lib/menu_tools_livetraffic.php:55
|
3226 |
+
msgid "Wordfence Live Traffic shows you what is happening on your site in real-time, including user logins, hack attempts, and requests that were blocked by the Wordfence Firewall. You can choose to log security-related traffic only or all traffic. Traffic is logged directly on the server, which means it includes visits that don't execute JavaScript. Google and other JavaScript-based analytics packages typically only show visits from browsers that are operated by a human, while Live Traffic can show visits from crawlers like Google and Bing."
|
3227 |
+
msgstr ""
|
3228 |
+
|
3229 |
+
#: lib/menu_tools_livetraffic.php:71
|
3230 |
+
msgid "Traffic logging mode: Security-related traffic only"
|
3231 |
+
msgstr ""
|
3232 |
+
|
3233 |
+
#: lib/menu_tools_livetraffic.php:73
|
3234 |
+
#: lib/menu_tools_livetraffic.php:80
|
3235 |
+
msgid " (host setting <a href=\"%s\" class=\"wfhelp\" target=\"_blank\" rel=\"noopener noreferrer\"></a>)"
|
3236 |
+
msgstr ""
|
3237 |
+
|
3238 |
+
#: lib/menu_tools_livetraffic.php:74
|
3239 |
+
msgid "Login and firewall activity will appear below."
|
3240 |
+
msgstr ""
|
3241 |
+
|
3242 |
+
#: lib/menu_tools_livetraffic.php:78
|
3243 |
+
msgid "Traffic logging mode: All traffic"
|
3244 |
+
msgstr ""
|
3245 |
+
|
3246 |
+
#: lib/menu_tools_livetraffic.php:81
|
3247 |
+
msgid "Regular traffic and security-related traffic will appear below."
|
3248 |
+
msgstr ""
|
3249 |
+
|
3250 |
+
#: lib/menu_tools_livetraffic.php:94
|
3251 |
+
msgid "Human"
|
3252 |
+
msgstr ""
|
3253 |
+
|
3254 |
+
#: lib/menu_tools_livetraffic.php:95
|
3255 |
+
msgid "Bot"
|
3256 |
+
msgstr ""
|
3257 |
+
|
3258 |
+
#: lib/menu_tools_livetraffic.php:96
|
3259 |
+
msgid "Warning"
|
3260 |
+
msgstr ""
|
3261 |
+
|
3262 |
+
#: lib/menu_tools_livetraffic.php:97
|
3263 |
+
#: lib/wfDiagnostic.php:746
|
3264 |
+
msgid "Blocked"
|
3265 |
+
msgstr ""
|
3266 |
+
|
3267 |
+
#: lib/menu_tools_livetraffic.php:111
|
3268 |
+
msgid "Show Advanced Filters"
|
3269 |
+
msgstr ""
|
3270 |
+
|
3271 |
+
#: lib/menu_tools_livetraffic.php:118
|
3272 |
+
msgid "Expand All Results"
|
3273 |
+
msgstr ""
|
3274 |
+
|
3275 |
+
#: lib/menu_tools_livetraffic.php:459
|
3276 |
+
msgid "See recent traffic"
|
3277 |
+
msgstr ""
|
3278 |
+
|
3279 |
+
#: lib/menu_tools_livetraffic.php:459
|
3280 |
+
msgid "Recent"
|
3281 |
+
msgstr ""
|
3282 |
+
|
3283 |
+
#: lib/menu_tools_livetraffic.php:547
|
3284 |
+
msgid "Live traffic defaults to a summary view of all security-related traffic. Details are viewable by clicking anywhere within the summary record. To switch to the expanded view, click the <strong>Expand All Records</strong> switch."
|
3285 |
+
msgstr ""
|
3286 |
+
|
3287 |
+
#: lib/menu_tools_livetraffic.php:578
|
3288 |
+
msgid "Live traffic now defaults to a summary view. Details are viewable by clicking anywhere within the summary record. To switch to the expanded view, click the <strong>Expand All Records</strong> switch. New installations will only log security-related traffic by default, though your previous setting has been preserved."
|
3289 |
+
msgstr ""
|
3290 |
+
|
3291 |
+
#: lib/menu_tools_twoFactor.php:16
|
3292 |
+
msgid "Learn more<span class=\"wf-hidden-xs\"> about Two-Factor Authentication</span>"
|
3293 |
+
msgstr ""
|
3294 |
+
|
3295 |
+
#: lib/menu_tools_twoFactor.php:35
|
3296 |
+
msgid "2FA Mode: Legacy"
|
3297 |
+
msgstr ""
|
3298 |
+
|
3299 |
+
#: lib/menu_tools_twoFactor.php:35
|
3300 |
+
msgid "Two-factor authentication is using legacy support, which enables SMS-based codes but is less compatible. An improved interface and use by non-administrators is available by activating the new login security module."
|
3301 |
+
msgstr ""
|
3302 |
+
|
3303 |
+
#: lib/menu_tools_twoFactor.php:36
|
3304 |
+
msgid "Switch to New 2FA"
|
3305 |
+
msgstr ""
|
3306 |
+
|
3307 |
+
#: lib/menu_tools_twoFactor.php:42
|
3308 |
+
#: views/tools/options-group-2fa.php:31
|
3309 |
+
msgid "Take Login Security to the next level with Two-Factor Authentication"
|
3310 |
+
msgstr ""
|
3311 |
+
|
3312 |
+
#: lib/menu_tools_twoFactor.php:43
|
3313 |
+
#: views/tools/options-group-2fa.php:32
|
3314 |
+
msgid "Used by banks, government agencies, and military worldwide, two-factor authentication is one of the most secure forms of remote system authentication available. With it enabled, an attacker needs to know your username, password, <em>and</em> have control of your phone to log into your site. Upgrade to Premium now to enable this powerful feature."
|
3315 |
+
msgstr ""
|
3316 |
+
|
3317 |
+
#: lib/menu_tools_twoFactor.php:59
|
3318 |
+
msgid "With Two-Factor Authentication enabled, an attacker needs to know your username, password <em>and</em> have control of your phone to log in to your site. We recommend you enable Two-Factor Authentication for all Administrator level accounts."
|
3319 |
+
msgstr ""
|
3320 |
+
|
3321 |
+
#: lib/menu_tools_twoFactor.php:66
|
3322 |
+
msgid "Are you sure you want to restore the default Two-Factor Authentication settings? This will undo any custom changes you have made to the options on this page. If you have configured any users to use two-factor authentication, they will not be changed."
|
3323 |
+
msgstr ""
|
3324 |
+
|
3325 |
+
#: lib/menu_tools_twoFactor.php:78
|
3326 |
+
msgid "<strong>Note:</strong> Two-Factor Authentication is disabled when the option \"Enable Brute Force Protection\" is off."
|
3327 |
+
msgstr ""
|
3328 |
+
|
3329 |
+
#: lib/menu_tools_twoFactor.php:85
|
3330 |
+
msgid "Enable Two-Factor Authentication"
|
3331 |
+
msgstr ""
|
3332 |
+
|
3333 |
+
#: lib/menu_tools_twoFactor.php:94
|
3334 |
+
msgid "Enter username to enable Two-Factor Authentication for"
|
3335 |
+
msgstr ""
|
3336 |
+
|
3337 |
+
#: lib/menu_tools_twoFactor.php:104
|
3338 |
+
msgid "Use authenticator app"
|
3339 |
+
msgstr ""
|
3340 |
+
|
3341 |
+
#: lib/menu_tools_twoFactor.php:113
|
3342 |
+
msgid "Send code to a phone number:"
|
3343 |
+
msgstr ""
|
3344 |
+
|
3345 |
+
#: lib/menu_tools_twoFactor.php:115
|
3346 |
+
msgid "+1 (000) 000 0000"
|
3347 |
+
msgstr ""
|
3348 |
+
|
3349 |
+
#: lib/menu_tools_twoFactor.php:134
|
3350 |
+
msgid "Two-Factor Authentication Users"
|
3351 |
+
msgstr ""
|
3352 |
+
|
3353 |
+
#: lib/menu_tools_twoFactor.php:186
|
3354 |
+
msgid "Phone (%s)"
|
3355 |
+
msgstr ""
|
3356 |
+
|
3357 |
+
#: lib/menu_tools_twoFactor.php:188
|
3358 |
+
msgid "Authenticator"
|
3359 |
+
msgstr ""
|
3360 |
+
|
3361 |
+
#: lib/menu_tools_twoFactor.php:192
|
3362 |
+
msgid "Cellphone Sign-in Enabled"
|
3363 |
+
msgstr ""
|
3364 |
+
|
3365 |
+
#: lib/menu_tools_twoFactor.php:196
|
3366 |
+
msgid "Enter activation code:"
|
3367 |
+
msgstr ""
|
3368 |
+
|
3369 |
+
#: lib/menu_tools_twoFactor.php:197
|
3370 |
+
msgid "Code"
|
3371 |
+
msgstr ""
|
3372 |
+
|
3373 |
+
#: lib/menu_tools_twoFactor.php:199
|
3374 |
+
msgid "Activate"
|
3375 |
+
msgstr ""
|
3376 |
+
|
3377 |
+
#: lib/menu_tools_twoFactor.php:210
|
3378 |
+
msgid "No users currently have cellphone sign-in enabled."
|
3379 |
+
msgstr ""
|
3380 |
+
|
3381 |
+
#: lib/menu_tools_twoFactor.php:221
|
3382 |
+
msgid "2FA Mode: Normal"
|
3383 |
+
msgstr ""
|
3384 |
+
|
3385 |
+
#: lib/menu_tools_twoFactor.php:221
|
3386 |
+
msgid "Legacy support for SMS-based two-factor authentication is being phased out, as it is less secure than using a modern authenticator app."
|
3387 |
+
msgstr ""
|
3388 |
+
|
3389 |
+
#: lib/menu_tools_twoFactor.php:222
|
3390 |
+
msgid "If you have a conflict with the new 2FA method, you can temporarily switch back to the Legacy version."
|
3391 |
+
msgstr ""
|
3392 |
+
|
3393 |
+
#: lib/menu_tools_twoFactor.php:223
|
3394 |
+
msgid "Revert to Legacy 2FA"
|
3395 |
+
msgstr ""
|
3396 |
+
|
3397 |
+
#: lib/menu_tools_twoFactor.php:232
|
3398 |
+
msgid "Migrate or switch to new two-factor authentication?"
|
3399 |
+
msgstr ""
|
3400 |
+
|
3401 |
+
#: lib/menu_tools_twoFactor.php:233
|
3402 |
+
msgid "Use the buttons below to migrate to the new two-factor authentication system or switch without migration. Migration will copy all existing authenticator-based user activations over to the new system while switching will use only users already set up in the new system. Existing SMS-based two-factor authentication activations must be disabled prior to migration."
|
3403 |
+
msgstr ""
|
3404 |
+
|
3405 |
+
#: lib/menu_tools_twoFactor.php:234
|
3406 |
+
msgid "Migrate"
|
3407 |
+
msgstr ""
|
3408 |
+
|
3409 |
+
#: lib/menu_tools_twoFactor.php:235
|
3410 |
+
msgid "Switch"
|
3411 |
+
msgstr ""
|
3412 |
+
|
3413 |
+
#: lib/menu_tools_twoFactor.php:243
|
3414 |
+
msgid "New Two-Factor Authentication Active"
|
3415 |
+
msgstr ""
|
3416 |
+
|
3417 |
+
#: lib/menu_tools_twoFactor.php:244
|
3418 |
+
msgid "Your site is now using the new login security module and two-factor authentication. Before logging out, we recommend testing your login in a different browser or a private/incognito window. If any plugins or your theme cause conflicts with logging in, you can revert to the old 2FA method."
|
3419 |
+
msgstr ""
|
3420 |
+
|
3421 |
+
#: lib/menu_tools_twoFactor.php:245
|
3422 |
+
msgid "Go To New 2FA"
|
3423 |
+
msgstr ""
|
3424 |
+
|
3425 |
+
#: lib/menu_tools_twoFactor.php:253
|
3426 |
+
msgid "Migration Cannot Proceed"
|
3427 |
+
msgstr ""
|
3428 |
+
|
3429 |
+
#: lib/menu_tools_twoFactor.php:254
|
3430 |
+
msgid "One or more users with two-factor authentication active are using SMS, which is unsupported in the new login security module. Please either deactivate two-factor authentication for those users or change them to use an authenticator app prior to migration."
|
3431 |
+
msgstr ""
|
3432 |
+
|
3433 |
+
#: lib/menu_tools_twoFactor.php:262
|
3434 |
+
msgid "Migration Failed"
|
3435 |
+
msgstr ""
|
3436 |
+
|
3437 |
+
#: lib/menu_tools_twoFactor.php:263
|
3438 |
+
msgid "Automatic migration of the 2FA-enabled accounts failed. Please verify that your server is reachable via the internet and try again."
|
3439 |
+
msgstr ""
|
3440 |
+
|
3441 |
+
#: lib/menu_tools_twoFactor.php:271
|
3442 |
+
msgid "Revert back to legacy two-factor authentication?"
|
3443 |
+
msgstr ""
|
3444 |
+
|
3445 |
+
#: lib/menu_tools_twoFactor.php:272
|
3446 |
+
msgid "All two-factor authentication settings and users' codes will revert to your older settings. If any users had set up two-factor authentication after the update, they will no longer have 2FA enabled until you switch to the new version again."
|
3447 |
+
msgstr ""
|
3448 |
+
|
3449 |
+
#: lib/menu_tools_twoFactor.php:274
|
3450 |
+
msgid "Revert"
|
3451 |
+
msgstr ""
|
3452 |
+
|
3453 |
+
#: lib/menu_tools_twoFactor.php:282
|
3454 |
+
msgid "Legacy Two-Factor Authentication Active"
|
3455 |
+
msgstr ""
|
3456 |
+
|
3457 |
+
#: lib/menu_tools_twoFactor.php:283
|
3458 |
+
msgid "Your site is now using the legacy two-factor authentication system."
|
3459 |
+
msgstr ""
|
3460 |
+
|
3461 |
+
#: lib/menu_tools_whois.php:17
|
3462 |
+
msgid "<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"wf-help-link\">Learn more<span class=\"wf-hidden-xs\"> about Whois Lookup</span></a>"
|
3463 |
+
msgstr ""
|
3464 |
+
|
3465 |
+
#: lib/menu_tools_whois.php:21
|
3466 |
+
msgid "The whois service gives you a way to look up who owns an IP address or domain name that is visiting your website or is engaging in malicious activity on your website."
|
3467 |
+
msgstr ""
|
3468 |
+
|
3469 |
+
#: lib/menu_tools_whois.php:34
|
3470 |
+
msgid "How to block a network"
|
3471 |
+
msgstr ""
|
3472 |
+
|
3473 |
+
#: lib/menu_tools_whois.php:36
|
3474 |
+
msgid "You've chosen to block the network that <span style=\"color: #F00;\">%s</span> is part of. We've marked the networks we found that this IP address belongs to in red below. Make sure you read all the WHOIS information so that you see all networks this IP belongs to. We recommend blocking the network with the lowest number of addresses. You may find this is listed at the end as part of the 'rWHOIS' query which contacts the local WHOIS server that is run by the network administrator."
|
3475 |
+
msgstr ""
|
3476 |
+
|
3477 |
+
#: lib/menu_wordfence_central.php:10
|
3478 |
+
msgid "Testing initial communication with Wordfence Central."
|
3479 |
+
msgstr ""
|
3480 |
+
|
3481 |
+
#: lib/menu_wordfence_central.php:11
|
3482 |
+
msgid "Passing public key to Wordfence Central."
|
3483 |
+
msgstr ""
|
3484 |
+
|
3485 |
+
#: lib/menu_wordfence_central.php:12
|
3486 |
+
msgid "Testing public key authentication with Wordfence Central."
|
3487 |
+
msgstr ""
|
3488 |
+
|
3489 |
+
#: lib/menu_wordfence_central.php:13
|
3490 |
+
msgid "Testing that Wordfence Central is able to communicate with this site."
|
3491 |
+
msgstr ""
|
3492 |
+
|
3493 |
+
#: lib/menu_wordfence_central.php:14
|
3494 |
+
msgid "Retrieving access token using authorization grant."
|
3495 |
+
msgstr ""
|
3496 |
+
|
3497 |
+
#: lib/menu_wordfence_central.php:15
|
3498 |
+
msgid "Redirecting back to Wordfence Central."
|
3499 |
+
msgstr ""
|
3500 |
+
|
3501 |
+
#: lib/menu_wordfence_central.php:44
|
3502 |
+
#: lib/menu_wordfence_central.php:57
|
3503 |
+
msgid "Wordfence Central"
|
3504 |
+
msgstr ""
|
3505 |
+
|
3506 |
+
#: lib/menu_wordfence_central.php:65
|
3507 |
+
msgid "Activated - connected by %s on %s"
|
3508 |
+
msgstr ""
|
3509 |
+
|
3510 |
+
#: lib/menu_wordfence_central.php:75
|
3511 |
+
msgid "Wordfence Central Installation Process"
|
3512 |
+
msgstr ""
|
3513 |
+
|
3514 |
+
#: lib/menu_wordfence_central.php:110
|
3515 |
+
msgid "Disconnect Site"
|
3516 |
+
msgstr ""
|
3517 |
+
|
3518 |
+
#: lib/menu_wordfence_central.php:116
|
3519 |
+
msgid "To connect your site your site to Wordfence Central, use the link below:"
|
3520 |
+
msgstr ""
|
3521 |
+
|
3522 |
+
#: lib/menu_wordfence_central.php:118
|
3523 |
+
msgid "Connect Site"
|
3524 |
+
msgstr ""
|
3525 |
+
|
3526 |
+
#: lib/rest-api/wfRESTAuthenticationController.php:67
|
3527 |
+
msgid "Site is not connected to Wordfence Central."
|
3528 |
+
msgstr ""
|
3529 |
+
|
3530 |
+
#: lib/rest-api/wfRESTAuthenticationController.php:76
|
3531 |
+
#: lib/rest-api/wfRESTAuthenticationController.php:130
|
3532 |
+
msgid "Data is invalid."
|
3533 |
+
msgstr ""
|
3534 |
+
|
3535 |
+
#: lib/rest-api/wfRESTAuthenticationController.php:81
|
3536 |
+
#: lib/rest-api/wfRESTAuthenticationController.php:135
|
3537 |
+
msgid "Nonce format is invalid."
|
3538 |
+
msgstr ""
|
3539 |
+
|
3540 |
+
#: lib/rest-api/wfRESTAuthenticationController.php:86
|
3541 |
+
#: lib/rest-api/wfRESTAuthenticationController.php:91
|
3542 |
+
msgid "Site ID is invalid."
|
3543 |
+
msgstr ""
|
3544 |
+
|
3545 |
+
#: lib/rest-api/wfRESTAuthenticationController.php:102
|
3546 |
+
#: lib/rest-api/wfRESTAuthenticationController.php:153
|
3547 |
+
msgid "Nonce is invalid."
|
3548 |
+
msgstr ""
|
3549 |
+
|
3550 |
+
#: lib/rest-api/wfRESTAuthenticationController.php:108
|
3551 |
+
#: lib/rest-api/wfRESTAuthenticationController.php:159
|
3552 |
+
msgid "Signature is invalid."
|
3553 |
+
msgstr ""
|
3554 |
+
|
3555 |
+
#: lib/rest-api/wfRESTAuthenticationController.php:140
|
3556 |
+
msgid "Email address is invalid."
|
3557 |
+
msgstr ""
|
3558 |
+
|
3559 |
+
#: lib/rest-api/wfRESTAuthenticationController.php:179
|
3560 |
+
msgid "Admin user with this email address not found."
|
3561 |
+
msgstr ""
|
3562 |
+
|
3563 |
+
#: lib/rest-api/wfRESTBaseController.php:26
|
3564 |
+
#: lib/rest-api/wfRESTBaseController.php:49
|
3565 |
+
#: lib/rest-api/wfRESTBaseController.php:81
|
3566 |
+
msgid "Token is invalid."
|
3567 |
+
msgstr ""
|
3568 |
+
|
3569 |
+
#: lib/rest-api/wfRESTBaseController.php:64
|
3570 |
+
msgid "Authorization header format is invalid."
|
3571 |
+
msgstr ""
|
3572 |
+
|
3573 |
+
#: lib/rest-api/wfRESTConfigController.php:32
|
3574 |
+
msgid "Specific config options to return."
|
3575 |
+
msgstr ""
|
3576 |
+
|
3577 |
+
#: lib/rest-api/wfRESTConfigController.php:42
|
3578 |
+
msgid "Specific config options to set."
|
3579 |
+
msgstr ""
|
3580 |
+
|
3581 |
+
#: lib/rest-api/wfRESTConfigController.php:213
|
3582 |
+
#: lib/rest-api/wfRESTConfigController.php:250
|
3583 |
+
#: lib/wordfenceClass.php:4433
|
3584 |
+
msgid "An error occurred while saving the configuration: %s"
|
3585 |
+
msgstr ""
|
3586 |
+
|
3587 |
+
#: lib/rest-api/wfRESTConfigController.php:222
|
3588 |
+
#: lib/rest-api/wfRESTConfigController.php:259
|
3589 |
+
#: lib/wordfenceClass.php:4442
|
3590 |
+
msgid "Errors occurred while saving the configuration: %s"
|
3591 |
+
msgstr ""
|
3592 |
+
|
3593 |
+
#: lib/rest-api/wfRESTConfigController.php:227
|
3594 |
+
#: lib/rest-api/wfRESTConfigController.php:264
|
3595 |
+
#: lib/wordfenceClass.php:4447
|
3596 |
+
msgid "Errors occurred while saving the configuration."
|
3597 |
+
msgstr ""
|
3598 |
+
|
3599 |
+
#: lib/rest-api/wfRESTConfigController.php:241
|
3600 |
+
#: lib/rest-api/wfRESTConfigController.php:276
|
3601 |
+
msgid "A server error occurred while saving the configuration: %s"
|
3602 |
+
msgstr ""
|
3603 |
+
|
3604 |
+
#: lib/rest-api/wfRESTConfigController.php:281
|
3605 |
+
msgid "Validation error: 'fields' parameter is empty or not an array."
|
3606 |
+
msgstr ""
|
3607 |
+
|
3608 |
+
#: lib/rest-api/wfRESTScanController.php:16
|
3609 |
+
msgid "Scan result group or all results."
|
3610 |
+
msgstr ""
|
3611 |
+
|
3612 |
+
#: lib/rest-api/wfRESTScanController.php:21
|
3613 |
+
msgid "Offset of scan results to return."
|
3614 |
+
msgstr ""
|
3615 |
+
|
3616 |
+
#: lib/rest-api/wfRESTScanController.php:26
|
3617 |
+
msgid "Number of scan results to return."
|
3618 |
+
msgstr ""
|
3619 |
+
|
3620 |
+
#: lib/rest-api/wfRESTScanController.php:84
|
3621 |
+
msgid "Wordfence scan starting at %s from Wordfence Central"
|
3622 |
+
msgstr ""
|
3623 |
+
|
3624 |
+
#: lib/rest-api/wfRESTScanController.php:127
|
3625 |
+
msgid "Scan stop request received from Wordfence Central."
|
3626 |
+
msgstr ""
|
3627 |
+
|
3628 |
+
#: lib/rest-api/wfRESTScanController.php:128
|
3629 |
+
msgid "SUM_KILLED:A request was received to stop the previous scan from Wordfence Central."
|
3630 |
+
msgstr ""
|
3631 |
+
|
3632 |
+
#: lib/wf503.php:5
|
3633 |
+
msgid "Your access to this site has been limited"
|
3634 |
+
msgstr ""
|
3635 |
+
|
3636 |
+
#: lib/wf503.php:334
|
3637 |
+
msgid "Block Reason"
|
3638 |
+
msgstr ""
|
3639 |
+
|
3640 |
+
#: lib/wf503.php:338
|
3641 |
+
#: views/reports/activity-report-email-inline.php:286
|
3642 |
+
msgid "Time"
|
3643 |
+
msgstr ""
|
3644 |
+
|
3645 |
+
#: lib/wf503.php:360
|
3646 |
+
#: lib/wfLockedOut.php:369
|
3647 |
+
msgid "Click here to learn more: <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Documentation</a>"
|
3648 |
+
msgstr ""
|
3649 |
+
|
3650 |
+
#: lib/wf503.php:361
|
3651 |
+
#: lib/wfLockedOut.php:370
|
3652 |
+
msgid "Generated by Wordfence at %s"
|
3653 |
+
msgstr ""
|
3654 |
+
|
3655 |
+
#: lib/wf503.php:361
|
3656 |
+
#: lib/wfLockedOut.php:370
|
3657 |
+
msgid "Your computer's time:"
|
3658 |
+
msgstr ""
|
3659 |
+
|
3660 |
+
#: lib/wfActivityReport.php:506
|
3661 |
+
#: lib/wfIssues.php:487
|
3662 |
+
msgid "No longer an administrator for this site? <a href=\"%s\" target=\"_blank\">Click here</a> to stop receiving security alerts."
|
3663 |
+
msgstr ""
|
3664 |
+
|
3665 |
+
#: lib/wfAdminNoticeQueue.php:175
|
3666 |
+
msgid "<a class=\"wf-btn wf-btn-default wf-btn-sm wf-dismiss-link\" href=\"#\" onclick=\"wordfenceExt.dismissAdminNotice('%s'); return false;\">Dismiss</a>"
|
3667 |
+
msgstr ""
|
3668 |
+
|
3669 |
+
#: lib/wfAlerts.php:29
|
3670 |
+
msgid "Wordfence has blocked IP address %s."
|
3671 |
+
msgstr ""
|
3672 |
+
|
3673 |
+
#: lib/wfAlerts.php:30
|
3674 |
+
msgid "The reason is: \"%s\"."
|
3675 |
+
msgstr ""
|
3676 |
+
|
3677 |
+
#: lib/wfAlerts.php:32
|
3678 |
+
msgid "The duration of the block is %s."
|
3679 |
+
msgstr ""
|
3680 |
+
|
3681 |
+
#: lib/wfAlerts.php:34
|
3682 |
+
msgid "Blocking IP %s"
|
3683 |
+
msgstr ""
|
3684 |
+
|
3685 |
+
#: lib/wfAlerts.php:53
|
3686 |
+
msgid "Wordfence Upgraded to version %s"
|
3687 |
+
msgstr ""
|
3688 |
+
|
3689 |
+
#: lib/wfAlerts.php:53
|
3690 |
+
msgid "Your Wordfence installation has been upgraded to version %s"
|
3691 |
+
msgstr ""
|
3692 |
+
|
3693 |
+
#: lib/wfAlerts.php:75
|
3694 |
+
msgid "Wordfence WAF Deactivated"
|
3695 |
+
msgstr ""
|
3696 |
+
|
3697 |
+
#: lib/wfAlerts.php:75
|
3698 |
+
msgid "A user with username \"%s\" deactivated the Wordfence Web Application Firewall on your WordPress site."
|
3699 |
+
msgstr ""
|
3700 |
+
|
3701 |
+
#: lib/wfAlerts.php:96
|
3702 |
+
msgid "Wordfence Deactivated"
|
3703 |
+
msgstr ""
|
3704 |
+
|
3705 |
+
#: lib/wfAlerts.php:96
|
3706 |
+
msgid "A user with username \"%s\" deactivated Wordfence on your WordPress site."
|
3707 |
+
msgstr ""
|
3708 |
+
|
3709 |
+
#: lib/wfAlerts.php:118
|
3710 |
+
msgid "Password recovery attempted"
|
3711 |
+
msgstr ""
|
3712 |
+
|
3713 |
+
#: lib/wfAlerts.php:118
|
3714 |
+
msgid "Someone tried to recover the password for user with email address: %s"
|
3715 |
+
msgstr ""
|
3716 |
+
|
3717 |
+
#: lib/wfAlerts.php:140
|
3718 |
+
msgid "A user with IP addr %s has been locked out from signing in or using the password recovery form for the following reason: %s."
|
3719 |
+
msgstr ""
|
3720 |
+
|
3721 |
+
#: lib/wfAlerts.php:142
|
3722 |
+
msgid "The duration of the lockout is %s."
|
3723 |
+
msgstr ""
|
3724 |
+
|
3725 |
+
#: lib/wfAlerts.php:144
|
3726 |
+
msgid "User locked out from signing in"
|
3727 |
+
msgstr ""
|
3728 |
+
|
3729 |
+
#: lib/wfAlerts.php:177
|
3730 |
+
msgid "Admin Login"
|
3731 |
+
msgstr ""
|
3732 |
+
|
3733 |
+
#: lib/wfAlerts.php:177
|
3734 |
+
msgid "A user with username \"%s\" who has administrator access signed in to your WordPress site."
|
3735 |
+
msgstr ""
|
3736 |
+
|
3737 |
+
#: lib/wfAlerts.php:211
|
3738 |
+
msgid "User login"
|
3739 |
+
msgstr ""
|
3740 |
+
|
3741 |
+
#: lib/wfAlerts.php:211
|
3742 |
+
msgid "A non-admin user with username \"%s\" signed in to your WordPress site."
|
3743 |
+
msgstr ""
|
3744 |
+
|
3745 |
+
#: lib/wfAlerts.php:239
|
3746 |
+
msgid "User login blocked for insecure password"
|
3747 |
+
msgstr ""
|
3748 |
+
|
3749 |
+
#: lib/wfAlerts.php:239
|
3750 |
+
msgid "A user with username \"%s\" tried to sign in to your WordPress site. Access was denied because the password being used exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please change or reset the password (%s) to reactivate this account. Learn More: %s"
|
3751 |
+
msgstr ""
|
3752 |
+
|
3753 |
+
#: lib/wfAlerts.php:256
|
3754 |
+
msgid "Increased Attack Rate"
|
3755 |
+
msgstr ""
|
3756 |
+
|
3757 |
+
#: lib/wfBulkCountries.php:5
|
3758 |
+
msgid "Andorra"
|
3759 |
+
msgstr ""
|
3760 |
+
|
3761 |
+
#: lib/wfBulkCountries.php:6
|
3762 |
+
msgid "United Arab Emirates"
|
3763 |
+
msgstr ""
|
3764 |
+
|
3765 |
+
#: lib/wfBulkCountries.php:7
|
3766 |
+
msgid "Afghanistan"
|
3767 |
+
msgstr ""
|
3768 |
+
|
3769 |
+
#: lib/wfBulkCountries.php:8
|
3770 |
+
msgid "Antigua and Barbuda"
|
3771 |
+
msgstr ""
|
3772 |
+
|
3773 |
+
#: lib/wfBulkCountries.php:9
|
3774 |
+
msgid "Anguilla"
|
3775 |
+
msgstr ""
|
3776 |
+
|
3777 |
+
#: lib/wfBulkCountries.php:10
|
3778 |
+
msgid "Albania"
|
3779 |
+
msgstr ""
|
3780 |
+
|
3781 |
+
#: lib/wfBulkCountries.php:11
|
3782 |
+
msgid "Armenia"
|
3783 |
+
msgstr ""
|
3784 |
+
|
3785 |
+
#: lib/wfBulkCountries.php:12
|
3786 |
+
msgid "Angola"
|
3787 |
+
msgstr ""
|
3788 |
+
|
3789 |
+
#: lib/wfBulkCountries.php:13
|
3790 |
+
msgid "Antarctica"
|
3791 |
+
msgstr ""
|
3792 |
+
|
3793 |
+
#: lib/wfBulkCountries.php:14
|
3794 |
+
msgid "Argentina"
|
3795 |
+
msgstr ""
|
3796 |
+
|
3797 |
+
#: lib/wfBulkCountries.php:15
|
3798 |
+
msgid "American Samoa"
|
3799 |
+
msgstr ""
|
3800 |
+
|
3801 |
+
#: lib/wfBulkCountries.php:16
|
3802 |
+
msgid "Austria"
|
3803 |
+
msgstr ""
|
3804 |
+
|
3805 |
+
#: lib/wfBulkCountries.php:17
|
3806 |
+
msgid "Australia"
|
3807 |
+
msgstr ""
|
3808 |
+
|
3809 |
+
#: lib/wfBulkCountries.php:18
|
3810 |
+
msgid "Aruba"
|
3811 |
+
msgstr ""
|
3812 |
+
|
3813 |
+
#: lib/wfBulkCountries.php:19
|
3814 |
+
msgid "Aland Islands"
|
3815 |
+
msgstr ""
|
3816 |
+
|
3817 |
+
#: lib/wfBulkCountries.php:20
|
3818 |
+
msgid "Azerbaijan"
|
3819 |
+
msgstr ""
|
3820 |
+
|
3821 |
+
#: lib/wfBulkCountries.php:21
|
3822 |
+
msgid "Bosnia and Herzegovina"
|
3823 |
+
msgstr ""
|
3824 |
+
|
3825 |
+
#: lib/wfBulkCountries.php:22
|
3826 |
+
msgid "Barbados"
|
3827 |
+
msgstr ""
|
3828 |
+
|
3829 |
+
#: lib/wfBulkCountries.php:23
|
3830 |
+
msgid "Bangladesh"
|
3831 |
+
msgstr ""
|
3832 |
+
|
3833 |
+
#: lib/wfBulkCountries.php:24
|
3834 |
+
msgid "Belgium"
|
3835 |
+
msgstr ""
|
3836 |
+
|
3837 |
+
#: lib/wfBulkCountries.php:25
|
3838 |
+
msgid "Burkina Faso"
|
3839 |
+
msgstr ""
|
3840 |
+
|
3841 |
+
#: lib/wfBulkCountries.php:26
|
3842 |
+
msgid "Bulgaria"
|
3843 |
+
msgstr ""
|
3844 |
+
|
3845 |
+
#: lib/wfBulkCountries.php:27
|
3846 |
+
msgid "Bahrain"
|
3847 |
+
msgstr ""
|
3848 |
+
|
3849 |
+
#: lib/wfBulkCountries.php:28
|
3850 |
+
msgid "Burundi"
|
3851 |
+
msgstr ""
|
3852 |
+
|
3853 |
+
#: lib/wfBulkCountries.php:29
|
3854 |
+
msgid "Benin"
|
3855 |
+
msgstr ""
|
3856 |
+
|
3857 |
+
#: lib/wfBulkCountries.php:30
|
3858 |
+
msgid "Saint Bartelemey"
|
3859 |
+
msgstr ""
|
3860 |
+
|
3861 |
+
#: lib/wfBulkCountries.php:31
|
3862 |
+
msgid "Bermuda"
|
3863 |
+
msgstr ""
|
3864 |
+
|
3865 |
+
#: lib/wfBulkCountries.php:32
|
3866 |
+
msgid "Brunei Darussalam"
|
3867 |
+
msgstr ""
|
3868 |
+
|
3869 |
+
#: lib/wfBulkCountries.php:33
|
3870 |
+
msgid "Bolivia"
|
3871 |
+
msgstr ""
|
3872 |
+
|
3873 |
+
#: lib/wfBulkCountries.php:34
|
3874 |
+
msgid "Bonaire, Saint Eustatius and Saba"
|
3875 |
+
msgstr ""
|
3876 |
+
|
3877 |
+
#: lib/wfBulkCountries.php:35
|
3878 |
+
msgid "Brazil"
|
3879 |
+
msgstr ""
|
3880 |
+
|
3881 |
+
#: lib/wfBulkCountries.php:36
|
3882 |
+
msgid "Bahamas"
|
3883 |
+
msgstr ""
|
3884 |
+
|
3885 |
+
#: lib/wfBulkCountries.php:37
|
3886 |
+
msgid "Bhutan"
|
3887 |
+
msgstr ""
|
3888 |
+
|
3889 |
+
#: lib/wfBulkCountries.php:38
|
3890 |
+
msgid "Bouvet Island"
|
3891 |
+
msgstr ""
|
3892 |
+
|
3893 |
+
#: lib/wfBulkCountries.php:39
|
3894 |
+
msgid "Botswana"
|
3895 |
+
msgstr ""
|
3896 |
+
|
3897 |
+
#: lib/wfBulkCountries.php:40
|
3898 |
+
msgid "Belarus"
|
3899 |
+
msgstr ""
|
3900 |
+
|
3901 |
+
#: lib/wfBulkCountries.php:41
|
3902 |
+
msgid "Belize"
|
3903 |
+
msgstr ""
|
3904 |
+
|
3905 |
+
#: lib/wfBulkCountries.php:42
|
3906 |
+
msgid "Canada"
|
3907 |
+
msgstr ""
|
3908 |
+
|
3909 |
+
#: lib/wfBulkCountries.php:43
|
3910 |
+
msgid "Cocos (Keeling) Islands"
|
3911 |
+
msgstr ""
|
3912 |
+
|
3913 |
+
#: lib/wfBulkCountries.php:44
|
3914 |
+
msgid "Congo, The Democratic Republic of the"
|
3915 |
+
msgstr ""
|
3916 |
+
|
3917 |
+
#: lib/wfBulkCountries.php:45
|
3918 |
+
msgid "Central African Republic"
|
3919 |
+
msgstr ""
|
3920 |
+
|
3921 |
+
#: lib/wfBulkCountries.php:46
|
3922 |
+
msgid "Congo"
|
3923 |
+
msgstr ""
|
3924 |
+
|
3925 |
+
#: lib/wfBulkCountries.php:47
|
3926 |
+
msgid "Switzerland"
|
3927 |
+
msgstr ""
|
3928 |
+
|
3929 |
+
#: lib/wfBulkCountries.php:48
|
3930 |
+
msgid "Cote dIvoire"
|
3931 |
+
msgstr ""
|
3932 |
+
|
3933 |
+
#: lib/wfBulkCountries.php:49
|
3934 |
+
msgid "Cook Islands"
|
3935 |
+
msgstr ""
|
3936 |
+
|
3937 |
+
#: lib/wfBulkCountries.php:50
|
3938 |
+
msgid "Chile"
|
3939 |
+
msgstr ""
|
3940 |
+
|
3941 |
+
#: lib/wfBulkCountries.php:51
|
3942 |
+
msgid "Cameroon"
|
3943 |
+
msgstr ""
|
3944 |
+
|
3945 |
+
#: lib/wfBulkCountries.php:52
|
3946 |
+
msgid "China"
|
3947 |
+
msgstr ""
|
3948 |
+
|
3949 |
+
#: lib/wfBulkCountries.php:53
|
3950 |
+
msgid "Colombia"
|
3951 |
+
msgstr ""
|
3952 |
+
|
3953 |
+
#: lib/wfBulkCountries.php:54
|
3954 |
+
msgid "Costa Rica"
|
3955 |
+
msgstr ""
|
3956 |
+
|
3957 |
+
#: lib/wfBulkCountries.php:55
|
3958 |
+
msgid "Cuba"
|
3959 |
+
msgstr ""
|
3960 |
+
|
3961 |
+
#: lib/wfBulkCountries.php:56
|
3962 |
+
msgid "Cape Verde"
|
3963 |
+
msgstr ""
|
3964 |
+
|
3965 |
+
#: lib/wfBulkCountries.php:57
|
3966 |
+
msgid "Curacao"
|
3967 |
+
msgstr ""
|
3968 |
+
|
3969 |
+
#: lib/wfBulkCountries.php:58
|
3970 |
+
msgid "Christmas Island"
|
3971 |
+
msgstr ""
|
3972 |
+
|
3973 |
+
#: lib/wfBulkCountries.php:59
|
3974 |
+
msgid "Cyprus"
|
3975 |
+
msgstr ""
|
3976 |
+
|
3977 |
+
#: lib/wfBulkCountries.php:60
|
3978 |
+
msgid "Czech Republic"
|
3979 |
+
msgstr ""
|
3980 |
+
|
3981 |
+
#: lib/wfBulkCountries.php:61
|
3982 |
+
msgid "Germany"
|
3983 |
+
msgstr ""
|
3984 |
+
|
3985 |
+
#: lib/wfBulkCountries.php:62
|
3986 |
+
msgid "Djibouti"
|
3987 |
+
msgstr ""
|
3988 |
+
|
3989 |
+
#: lib/wfBulkCountries.php:63
|
3990 |
+
msgid "Denmark"
|
3991 |
+
msgstr ""
|
3992 |
+
|
3993 |
+
#: lib/wfBulkCountries.php:64
|
3994 |
+
msgid "Dominica"
|
3995 |
+
msgstr ""
|
3996 |
+
|
3997 |
+
#: lib/wfBulkCountries.php:65
|
3998 |
+
msgid "Dominican Republic"
|
3999 |
+
msgstr ""
|
4000 |
+
|
4001 |
+
#: lib/wfBulkCountries.php:66
|
4002 |
+
msgid "Algeria"
|
4003 |
+
msgstr ""
|
4004 |
+
|
4005 |
+
#: lib/wfBulkCountries.php:67
|
4006 |
+
msgid "Ecuador"
|
4007 |
+
msgstr ""
|
4008 |
+
|
4009 |
+
#: lib/wfBulkCountries.php:68
|
4010 |
+
msgid "Estonia"
|
4011 |
+
msgstr ""
|
4012 |
+
|
4013 |
+
#: lib/wfBulkCountries.php:69
|
4014 |
+
msgid "Egypt"
|
4015 |
+
msgstr ""
|
4016 |
+
|
4017 |
+
#: lib/wfBulkCountries.php:70
|
4018 |
+
msgid "Western Sahara"
|
4019 |
+
msgstr ""
|
4020 |
+
|
4021 |
+
#: lib/wfBulkCountries.php:71
|
4022 |
+
msgid "Eritrea"
|
4023 |
+
msgstr ""
|
4024 |
+
|
4025 |
+
#: lib/wfBulkCountries.php:72
|
4026 |
+
msgid "Spain"
|
4027 |
+
msgstr ""
|
4028 |
+
|
4029 |
+
#: lib/wfBulkCountries.php:73
|
4030 |
+
msgid "Ethiopia"
|
4031 |
+
msgstr ""
|
4032 |
+
|
4033 |
+
#: lib/wfBulkCountries.php:74
|
4034 |
+
msgid "Europe"
|
4035 |
+
msgstr ""
|
4036 |
+
|
4037 |
+
#: lib/wfBulkCountries.php:75
|
4038 |
+
msgid "Finland"
|
4039 |
+
msgstr ""
|
4040 |
+
|
4041 |
+
#: lib/wfBulkCountries.php:76
|
4042 |
+
msgid "Fiji"
|
4043 |
+
msgstr ""
|
4044 |
+
|
4045 |
+
#: lib/wfBulkCountries.php:77
|
4046 |
+
msgid "Falkland Islands (Malvinas)"
|
4047 |
+
msgstr ""
|
4048 |
+
|
4049 |
+
#: lib/wfBulkCountries.php:78
|
4050 |
+
msgid "Micronesia, Federated States of"
|
4051 |
+
msgstr ""
|
4052 |
+
|
4053 |
+
#: lib/wfBulkCountries.php:79
|
4054 |
+
msgid "Faroe Islands"
|
4055 |
+
msgstr ""
|
4056 |
+
|
4057 |
+
#: lib/wfBulkCountries.php:80
|
4058 |
+
msgid "France"
|
4059 |
+
msgstr ""
|
4060 |
+
|
4061 |
+
#: lib/wfBulkCountries.php:81
|
4062 |
+
msgid "Gabon"
|
4063 |
+
msgstr ""
|
4064 |
+
|
4065 |
+
#: lib/wfBulkCountries.php:82
|
4066 |
+
msgid "United Kingdom"
|
4067 |
+
msgstr ""
|
4068 |
+
|
4069 |
+
#: lib/wfBulkCountries.php:83
|
4070 |
+
msgid "Grenada"
|
4071 |
+
msgstr ""
|
4072 |
+
|
4073 |
+
#: lib/wfBulkCountries.php:84
|
4074 |
+
msgid "Georgia"
|
4075 |
+
msgstr ""
|
4076 |
+
|
4077 |
+
#: lib/wfBulkCountries.php:85
|
4078 |
+
msgid "French Guiana"
|
4079 |
+
msgstr ""
|
4080 |
+
|
4081 |
+
#: lib/wfBulkCountries.php:86
|
4082 |
+
msgid "Guernsey"
|
4083 |
+
msgstr ""
|
4084 |
+
|
4085 |
+
#: lib/wfBulkCountries.php:87
|
4086 |
+
msgid "Ghana"
|
4087 |
+
msgstr ""
|
4088 |
+
|
4089 |
+
#: lib/wfBulkCountries.php:88
|
4090 |
+
msgid "Gibraltar"
|
4091 |
+
msgstr ""
|
4092 |
+
|
4093 |
+
#: lib/wfBulkCountries.php:89
|
4094 |
+
msgid "Greenland"
|
4095 |
+
msgstr ""
|
4096 |
+
|
4097 |
+
#: lib/wfBulkCountries.php:90
|
4098 |
+
msgid "Gambia"
|
4099 |
+
msgstr ""
|
4100 |
+
|
4101 |
+
#: lib/wfBulkCountries.php:91
|
4102 |
+
msgid "Guinea"
|
4103 |
+
msgstr ""
|
4104 |
+
|
4105 |
+
#: lib/wfBulkCountries.php:92
|
4106 |
+
msgid "Guadeloupe"
|
4107 |
+
msgstr ""
|
4108 |
+
|
4109 |
+
#: lib/wfBulkCountries.php:93
|
4110 |
+
msgid "Equatorial Guinea"
|
4111 |
+
msgstr ""
|
4112 |
+
|
4113 |
+
#: lib/wfBulkCountries.php:94
|
4114 |
+
msgid "Greece"
|
4115 |
+
msgstr ""
|
4116 |
+
|
4117 |
+
#: lib/wfBulkCountries.php:95
|
4118 |
+
msgid "South Georgia and the South Sandwich Islands"
|
4119 |
+
msgstr ""
|
4120 |
+
|
4121 |
+
#: lib/wfBulkCountries.php:96
|
4122 |
+
msgid "Guatemala"
|
4123 |
+
msgstr ""
|
4124 |
+
|
4125 |
+
#: lib/wfBulkCountries.php:97
|
4126 |
+
msgid "Guam"
|
4127 |
+
msgstr ""
|
4128 |
+
|
4129 |
+
#: lib/wfBulkCountries.php:98
|
4130 |
+
msgid "Guinea-Bissau"
|
4131 |
+
msgstr ""
|
4132 |
+
|
4133 |
+
#: lib/wfBulkCountries.php:99
|
4134 |
+
msgid "Guyana"
|
4135 |
+
msgstr ""
|
4136 |
+
|
4137 |
+
#: lib/wfBulkCountries.php:100
|
4138 |
+
msgid "Hong Kong"
|
4139 |
+
msgstr ""
|
4140 |
+
|
4141 |
+
#: lib/wfBulkCountries.php:101
|
4142 |
+
msgid "Heard Island and McDonald Islands"
|
4143 |
+
msgstr ""
|
4144 |
+
|
4145 |
+
#: lib/wfBulkCountries.php:102
|
4146 |
+
msgid "Honduras"
|
4147 |
+
msgstr ""
|
4148 |
+
|
4149 |
+
#: lib/wfBulkCountries.php:103
|
4150 |
+
msgid "Croatia"
|
4151 |
+
msgstr ""
|
4152 |
+
|
4153 |
+
#: lib/wfBulkCountries.php:104
|
4154 |
+
msgid "Haiti"
|
4155 |
+
msgstr ""
|
4156 |
+
|
4157 |
+
#: lib/wfBulkCountries.php:105
|
4158 |
+
msgid "Hungary"
|
4159 |
+
msgstr ""
|
4160 |
+
|
4161 |
+
#: lib/wfBulkCountries.php:106
|
4162 |
+
msgid "Indonesia"
|
4163 |
+
msgstr ""
|
4164 |
+
|
4165 |
+
#: lib/wfBulkCountries.php:107
|
4166 |
+
msgid "Ireland"
|
4167 |
+
msgstr ""
|
4168 |
+
|
4169 |
+
#: lib/wfBulkCountries.php:108
|
4170 |
+
msgid "Israel"
|
4171 |
+
msgstr ""
|
4172 |
+
|
4173 |
+
#: lib/wfBulkCountries.php:109
|
4174 |
+
msgid "Isle of Man"
|
4175 |
+
msgstr ""
|
4176 |
+
|
4177 |
+
#: lib/wfBulkCountries.php:110
|
4178 |
+
msgid "India"
|
4179 |
+
msgstr ""
|
4180 |
+
|
4181 |
+
#: lib/wfBulkCountries.php:111
|
4182 |
+
msgid "British Indian Ocean Territory"
|
4183 |
+
msgstr ""
|
4184 |
+
|
4185 |
+
#: lib/wfBulkCountries.php:112
|
4186 |
+
msgid "Iraq"
|
4187 |
+
msgstr ""
|
4188 |
+
|
4189 |
+
#: lib/wfBulkCountries.php:113
|
4190 |
+
msgid "Iran, Islamic Republic of"
|
4191 |
+
msgstr ""
|
4192 |
+
|
4193 |
+
#: lib/wfBulkCountries.php:114
|
4194 |
+
msgid "Iceland"
|
4195 |
+
msgstr ""
|
4196 |
+
|
4197 |
+
#: lib/wfBulkCountries.php:115
|
4198 |
+
msgid "Italy"
|
4199 |
+
msgstr ""
|
4200 |
+
|
4201 |
+
#: lib/wfBulkCountries.php:116
|
4202 |
+
msgid "Jersey"
|
4203 |
+
msgstr ""
|
4204 |
+
|
4205 |
+
#: lib/wfBulkCountries.php:117
|
4206 |
+
msgid "Jamaica"
|
4207 |
+
msgstr ""
|
4208 |
+
|
4209 |
+
#: lib/wfBulkCountries.php:118
|
4210 |
+
msgid "Jordan"
|
4211 |
+
msgstr ""
|
4212 |
+
|
4213 |
+
#: lib/wfBulkCountries.php:119
|
4214 |
+
msgid "Japan"
|
4215 |
+
msgstr ""
|
4216 |
+
|
4217 |
+
#: lib/wfBulkCountries.php:120
|
4218 |
+
msgid "Kenya"
|
4219 |
+
msgstr ""
|
4220 |
+
|
4221 |
+
#: lib/wfBulkCountries.php:121
|
4222 |
+
msgid "Kyrgyzstan"
|
4223 |
+
msgstr ""
|
4224 |
+
|
4225 |
+
#: lib/wfBulkCountries.php:122
|
4226 |
+
msgid "Cambodia"
|
4227 |
+
msgstr ""
|
4228 |
+
|
4229 |
+
#: lib/wfBulkCountries.php:123
|
4230 |
+
msgid "Kiribati"
|
4231 |
+
msgstr ""
|
4232 |
+
|
4233 |
+
#: lib/wfBulkCountries.php:124
|
4234 |
+
msgid "Comoros"
|
4235 |
+
msgstr ""
|
4236 |
+
|
4237 |
+
#: lib/wfBulkCountries.php:125
|
4238 |
+
msgid "Saint Kitts and Nevis"
|
4239 |
+
msgstr ""
|
4240 |
+
|
4241 |
+
#: lib/wfBulkCountries.php:126
|
4242 |
+
msgid "North Korea"
|
4243 |
+
msgstr ""
|
4244 |
+
|
4245 |
+
#: lib/wfBulkCountries.php:127
|
4246 |
+
msgid "South Korea"
|
4247 |
+
msgstr ""
|
4248 |
+
|
4249 |
+
#: lib/wfBulkCountries.php:128
|
4250 |
+
msgid "Kuwait"
|
4251 |
+
msgstr ""
|
4252 |
+
|
4253 |
+
#: lib/wfBulkCountries.php:129
|
4254 |
+
msgid "Cayman Islands"
|
4255 |
+
msgstr ""
|
4256 |
+
|
4257 |
+
#: lib/wfBulkCountries.php:130
|
4258 |
+
msgid "Kazakhstan"
|
4259 |
+
msgstr ""
|
4260 |
+
|
4261 |
+
#: lib/wfBulkCountries.php:131
|
4262 |
+
msgid "Lao Peoples Democratic Republic"
|
4263 |
+
msgstr ""
|
4264 |
+
|
4265 |
+
#: lib/wfBulkCountries.php:132
|
4266 |
+
msgid "Lebanon"
|
4267 |
+
msgstr ""
|
4268 |
+
|
4269 |
+
#: lib/wfBulkCountries.php:133
|
4270 |
+
msgid "Saint Lucia"
|
4271 |
+
msgstr ""
|
4272 |
+
|
4273 |
+
#: lib/wfBulkCountries.php:134
|
4274 |
+
msgid "Liechtenstein"
|
4275 |
+
msgstr ""
|
4276 |
+
|
4277 |
+
#: lib/wfBulkCountries.php:135
|
4278 |
+
msgid "Sri Lanka"
|
4279 |
+
msgstr ""
|
4280 |
+
|
4281 |
+
#: lib/wfBulkCountries.php:136
|
4282 |
+
msgid "Liberia"
|
4283 |
+
msgstr ""
|
4284 |
+
|
4285 |
+
#: lib/wfBulkCountries.php:137
|
4286 |
+
msgid "Lesotho"
|
4287 |
+
msgstr ""
|
4288 |
+
|
4289 |
+
#: lib/wfBulkCountries.php:138
|
4290 |
+
msgid "Lithuania"
|
4291 |
+
msgstr ""
|
4292 |
+
|
4293 |
+
#: lib/wfBulkCountries.php:139
|
4294 |
+
msgid "Luxembourg"
|
4295 |
+
msgstr ""
|
4296 |
+
|
4297 |
+
#: lib/wfBulkCountries.php:140
|
4298 |
+
msgid "Latvia"
|
4299 |
+
msgstr ""
|
4300 |
+
|
4301 |
+
#: lib/wfBulkCountries.php:141
|
4302 |
+
msgid "Libyan Arab Jamahiriya"
|
4303 |
+
msgstr ""
|
4304 |
+
|
4305 |
+
#: lib/wfBulkCountries.php:142
|
4306 |
+
msgid "Morocco"
|
4307 |
+
msgstr ""
|
4308 |
+
|
4309 |
+
#: lib/wfBulkCountries.php:143
|
4310 |
+
msgid "Monaco"
|
4311 |
+
msgstr ""
|
4312 |
+
|
4313 |
+
#: lib/wfBulkCountries.php:144
|
4314 |
+
msgid "Moldova, Republic of"
|
4315 |
+
msgstr ""
|
4316 |
+
|
4317 |
+
#: lib/wfBulkCountries.php:145
|
4318 |
+
msgid "Montenegro"
|
4319 |
+
msgstr ""
|
4320 |
+
|
4321 |
+
#: lib/wfBulkCountries.php:146
|
4322 |
+
msgid "Saint Martin"
|
4323 |
+
msgstr ""
|
4324 |
+
|
4325 |
+
#: lib/wfBulkCountries.php:147
|
4326 |
+
msgid "Madagascar"
|
4327 |
+
msgstr ""
|
4328 |
+
|
4329 |
+
#: lib/wfBulkCountries.php:148
|
4330 |
+
msgid "Marshall Islands"
|
4331 |
+
msgstr ""
|
4332 |
+
|
4333 |
+
#: lib/wfBulkCountries.php:149
|
4334 |
+
msgid "Macedonia"
|
4335 |
+
msgstr ""
|
4336 |
+
|
4337 |
+
#: lib/wfBulkCountries.php:150
|
4338 |
+
msgid "Mali"
|
4339 |
+
msgstr ""
|
4340 |
+
|
4341 |
+
#: lib/wfBulkCountries.php:151
|
4342 |
+
msgid "Myanmar"
|
4343 |
+
msgstr ""
|
4344 |
+
|
4345 |
+
#: lib/wfBulkCountries.php:152
|
4346 |
+
msgid "Mongolia"
|
4347 |
+
msgstr ""
|
4348 |
+
|
4349 |
+
#: lib/wfBulkCountries.php:153
|
4350 |
+
msgid "Macao"
|
4351 |
+
msgstr ""
|
4352 |
+
|
4353 |
+
#: lib/wfBulkCountries.php:154
|
4354 |
+
msgid "Northern Mariana Islands"
|
4355 |
+
msgstr ""
|
4356 |
+
|
4357 |
+
#: lib/wfBulkCountries.php:155
|
4358 |
+
msgid "Martinique"
|
4359 |
+
msgstr ""
|
4360 |
+
|
4361 |
+
#: lib/wfBulkCountries.php:156
|
4362 |
+
msgid "Mauritania"
|
4363 |
+
msgstr ""
|
4364 |
+
|
4365 |
+
#: lib/wfBulkCountries.php:157
|
4366 |
+
msgid "Montserrat"
|
4367 |
+
msgstr ""
|
4368 |
+
|
4369 |
+
#: lib/wfBulkCountries.php:158
|
4370 |
+
msgid "Malta"
|
4371 |
+
msgstr ""
|
4372 |
+
|
4373 |
+
#: lib/wfBulkCountries.php:159
|
4374 |
+
msgid "Mauritius"
|
4375 |
+
msgstr ""
|
4376 |
+
|
4377 |
+
#: lib/wfBulkCountries.php:160
|
4378 |
+
msgid "Maldives"
|
4379 |
+
msgstr ""
|
4380 |
+
|
4381 |
+
#: lib/wfBulkCountries.php:161
|
4382 |
+
msgid "Malawi"
|
4383 |
+
msgstr ""
|
4384 |
+
|
4385 |
+
#: lib/wfBulkCountries.php:162
|
4386 |
+
msgid "Mexico"
|
4387 |
+
msgstr ""
|
4388 |
+
|
4389 |
+
#: lib/wfBulkCountries.php:163
|
4390 |
+
msgid "Malaysia"
|
4391 |
+
msgstr ""
|
4392 |
+
|
4393 |
+
#: lib/wfBulkCountries.php:164
|
4394 |
+
msgid "Mozambique"
|
4395 |
+
msgstr ""
|
4396 |
+
|
4397 |
+
#: lib/wfBulkCountries.php:165
|
4398 |
+
msgid "Namibia"
|
4399 |
+
msgstr ""
|
4400 |
+
|
4401 |
+
#: lib/wfBulkCountries.php:166
|
4402 |
+
msgid "New Caledonia"
|
4403 |
+
msgstr ""
|
4404 |
+
|
4405 |
+
#: lib/wfBulkCountries.php:167
|
4406 |
+
msgid "Niger"
|
4407 |
+
msgstr ""
|
4408 |
+
|
4409 |
+
#: lib/wfBulkCountries.php:168
|
4410 |
+
msgid "Norfolk Island"
|
4411 |
+
msgstr ""
|
4412 |
+
|
4413 |
+
#: lib/wfBulkCountries.php:169
|
4414 |
+
msgid "Nigeria"
|
4415 |
+
msgstr ""
|
4416 |
+
|
4417 |
+
#: lib/wfBulkCountries.php:170
|
4418 |
+
msgid "Nicaragua"
|
4419 |
+
msgstr ""
|
4420 |
+
|
4421 |
+
#: lib/wfBulkCountries.php:171
|
4422 |
+
msgid "Netherlands"
|
4423 |
+
msgstr ""
|
4424 |
+
|
4425 |
+
#: lib/wfBulkCountries.php:172
|
4426 |
+
msgid "Norway"
|
4427 |
+
msgstr ""
|
4428 |
+
|
4429 |
+
#: lib/wfBulkCountries.php:173
|
4430 |
+
msgid "Nepal"
|
4431 |
+
msgstr ""
|
4432 |
+
|
4433 |
+
#: lib/wfBulkCountries.php:174
|
4434 |
+
msgid "Nauru"
|
4435 |
+
msgstr ""
|
4436 |
+
|
4437 |
+
#: lib/wfBulkCountries.php:175
|
4438 |
+
msgid "Niue"
|
4439 |
+
msgstr ""
|
4440 |
+
|
4441 |
+
#: lib/wfBulkCountries.php:176
|
4442 |
+
msgid "New Zealand"
|
4443 |
+
msgstr ""
|
4444 |
+
|
4445 |
+
#: lib/wfBulkCountries.php:177
|
4446 |
+
msgid "Oman"
|
4447 |
+
msgstr ""
|
4448 |
+
|
4449 |
+
#: lib/wfBulkCountries.php:178
|
4450 |
+
msgid "Panama"
|
4451 |
+
msgstr ""
|
4452 |
+
|
4453 |
+
#: lib/wfBulkCountries.php:179
|
4454 |
+
msgid "Peru"
|
4455 |
+
msgstr ""
|
4456 |
+
|
4457 |
+
#: lib/wfBulkCountries.php:180
|
4458 |
+
msgid "French Polynesia"
|
4459 |
+
msgstr ""
|
4460 |
+
|
4461 |
+
#: lib/wfBulkCountries.php:181
|
4462 |
+
msgid "Papua New Guinea"
|
4463 |
+
msgstr ""
|
4464 |
+
|
4465 |
+
#: lib/wfBulkCountries.php:182
|
4466 |
+
msgid "Philippines"
|
4467 |
+
msgstr ""
|
4468 |
+
|
4469 |
+
#: lib/wfBulkCountries.php:183
|
4470 |
+
msgid "Pakistan"
|
4471 |
+
msgstr ""
|
4472 |
+
|
4473 |
+
#: lib/wfBulkCountries.php:184
|
4474 |
+
msgid "Poland"
|
4475 |
+
msgstr ""
|
4476 |
+
|
4477 |
+
#: lib/wfBulkCountries.php:185
|
4478 |
+
msgid "Saint Pierre and Miquelon"
|
4479 |
+
msgstr ""
|
4480 |
+
|
4481 |
+
#: lib/wfBulkCountries.php:186
|
4482 |
+
msgid "Pitcairn"
|
4483 |
+
msgstr ""
|
4484 |
+
|
4485 |
+
#: lib/wfBulkCountries.php:187
|
4486 |
+
msgid "Puerto Rico"
|
4487 |
+
msgstr ""
|
4488 |
+
|
4489 |
+
#: lib/wfBulkCountries.php:188
|
4490 |
+
msgid "Palestinian Territory"
|
4491 |
+
msgstr ""
|
4492 |
+
|
4493 |
+
#: lib/wfBulkCountries.php:189
|
4494 |
+
msgid "Portugal"
|
4495 |
+
msgstr ""
|
4496 |
+
|
4497 |
+
#: lib/wfBulkCountries.php:190
|
4498 |
+
msgid "Palau"
|
4499 |
+
msgstr ""
|
4500 |
+
|
4501 |
+
#: lib/wfBulkCountries.php:191
|
4502 |
+
msgid "Paraguay"
|
4503 |
+
msgstr ""
|
4504 |
+
|
4505 |
+
#: lib/wfBulkCountries.php:192
|
4506 |
+
msgid "Qatar"
|
4507 |
+
msgstr ""
|
4508 |
+
|
4509 |
+
#: lib/wfBulkCountries.php:193
|
4510 |
+
msgid "Reunion"
|
4511 |
+
msgstr ""
|
4512 |
+
|
4513 |
+
#: lib/wfBulkCountries.php:194
|
4514 |
+
msgid "Romania"
|
4515 |
+
msgstr ""
|
4516 |
+
|
4517 |
+
#: lib/wfBulkCountries.php:195
|
4518 |
+
msgid "Serbia"
|
4519 |
+
msgstr ""
|
4520 |
+
|
4521 |
+
#: lib/wfBulkCountries.php:196
|
4522 |
+
msgid "Russian Federation"
|
4523 |
+
msgstr ""
|
4524 |
+
|
4525 |
+
#: lib/wfBulkCountries.php:197
|
4526 |
+
msgid "Rwanda"
|
4527 |
+
msgstr ""
|
4528 |
+
|
4529 |
+
#: lib/wfBulkCountries.php:198
|
4530 |
+
msgid "Saudi Arabia"
|
4531 |
+
msgstr ""
|
4532 |
+
|
4533 |
+
#: lib/wfBulkCountries.php:199
|
4534 |
+
msgid "Solomon Islands"
|
4535 |
+
msgstr ""
|
4536 |
+
|
4537 |
+
#: lib/wfBulkCountries.php:200
|
4538 |
+
msgid "Seychelles"
|
4539 |
+
msgstr ""
|
4540 |
+
|
4541 |
+
#: lib/wfBulkCountries.php:201
|
4542 |
+
msgid "Sudan"
|
4543 |
+
msgstr ""
|
4544 |
+
|
4545 |
+
#: lib/wfBulkCountries.php:202
|
4546 |
+
msgid "Sweden"
|
4547 |
+
msgstr ""
|
4548 |
+
|
4549 |
+
#: lib/wfBulkCountries.php:203
|
4550 |
+
msgid "Singapore"
|
4551 |
+
msgstr ""
|
4552 |
+
|
4553 |
+
#: lib/wfBulkCountries.php:204
|
4554 |
+
msgid "Saint Helena"
|
4555 |
+
msgstr ""
|
4556 |
+
|
4557 |
+
#: lib/wfBulkCountries.php:205
|
4558 |
+
msgid "Slovenia"
|
4559 |
+
msgstr ""
|
4560 |
+
|
4561 |
+
#: lib/wfBulkCountries.php:206
|
4562 |
+
msgid "Svalbard and Jan Mayen"
|
4563 |
+
msgstr ""
|
4564 |
+
|
4565 |
+
#: lib/wfBulkCountries.php:207
|
4566 |
+
msgid "Slovakia"
|
4567 |
+
msgstr ""
|
4568 |
+
|
4569 |
+
#: lib/wfBulkCountries.php:208
|
4570 |
+
msgid "Sierra Leone"
|
4571 |
+
msgstr ""
|
4572 |
+
|
4573 |
+
#: lib/wfBulkCountries.php:209
|
4574 |
+
msgid "San Marino"
|
4575 |
+
msgstr ""
|
4576 |
+
|
4577 |
+
#: lib/wfBulkCountries.php:210
|
4578 |
+
msgid "Senegal"
|
4579 |
+
msgstr ""
|
4580 |
+
|
4581 |
+
#: lib/wfBulkCountries.php:211
|
4582 |
+
msgid "Somalia"
|
4583 |
+
msgstr ""
|
4584 |
+
|
4585 |
+
#: lib/wfBulkCountries.php:212
|
4586 |
+
msgid "Suriname"
|
4587 |
+
msgstr ""
|
4588 |
+
|
4589 |
+
#: lib/wfBulkCountries.php:213
|
4590 |
+
msgid "Sao Tome and Principe"
|
4591 |
+
msgstr ""
|
4592 |
+
|
4593 |
+
#: lib/wfBulkCountries.php:214
|
4594 |
+
msgid "El Salvador"
|
4595 |
+
msgstr ""
|
4596 |
+
|
4597 |
+
#: lib/wfBulkCountries.php:215
|
4598 |
+
msgid "Sint Maarten"
|
4599 |
+
msgstr ""
|
4600 |
+
|
4601 |
+
#: lib/wfBulkCountries.php:216
|
4602 |
+
msgid "Syrian Arab Republic"
|
4603 |
+
msgstr ""
|
4604 |
+
|
4605 |
+
#: lib/wfBulkCountries.php:217
|
4606 |
+
msgid "Swaziland"
|
4607 |
+
msgstr ""
|
4608 |
+
|
4609 |
+
#: lib/wfBulkCountries.php:218
|
4610 |
+
msgid "Turks and Caicos Islands"
|
4611 |
+
msgstr ""
|
4612 |
+
|
4613 |
+
#: lib/wfBulkCountries.php:219
|
4614 |
+
msgid "Chad"
|
4615 |
+
msgstr ""
|
4616 |
+
|
4617 |
+
#: lib/wfBulkCountries.php:220
|
4618 |
+
msgid "French Southern Territories"
|
4619 |
+
msgstr ""
|
4620 |
+
|
4621 |
+
#: lib/wfBulkCountries.php:221
|
4622 |
+
msgid "Togo"
|
4623 |
+
msgstr ""
|
4624 |
+
|
4625 |
+
#: lib/wfBulkCountries.php:222
|
4626 |
+
msgid "Thailand"
|
4627 |
+
msgstr ""
|
4628 |
+
|
4629 |
+
#: lib/wfBulkCountries.php:223
|
4630 |
+
msgid "Tajikistan"
|
4631 |
+
msgstr ""
|
4632 |
+
|
4633 |
+
#: lib/wfBulkCountries.php:224
|
4634 |
+
msgid "Tokelau"
|
4635 |
+
msgstr ""
|
4636 |
+
|
4637 |
+
#: lib/wfBulkCountries.php:225
|
4638 |
+
msgid "Timor-Leste"
|
4639 |
+
msgstr ""
|
4640 |
+
|
4641 |
+
#: lib/wfBulkCountries.php:226
|
4642 |
+
msgid "Turkmenistan"
|
4643 |
+
msgstr ""
|
4644 |
+
|
4645 |
+
#: lib/wfBulkCountries.php:227
|
4646 |
+
msgid "Tunisia"
|
4647 |
+
msgstr ""
|
4648 |
+
|
4649 |
+
#: lib/wfBulkCountries.php:228
|
4650 |
+
msgid "Tonga"
|
4651 |
+
msgstr ""
|
4652 |
+
|
4653 |
+
#: lib/wfBulkCountries.php:229
|
4654 |
+
msgid "Turkey"
|
4655 |
+
msgstr ""
|
4656 |
+
|
4657 |
+
#: lib/wfBulkCountries.php:230
|
4658 |
+
msgid "Trinidad and Tobago"
|
4659 |
+
msgstr ""
|
4660 |
+
|
4661 |
+
#: lib/wfBulkCountries.php:231
|
4662 |
+
msgid "Tuvalu"
|
4663 |
+
msgstr ""
|
4664 |
+
|
4665 |
+
#: lib/wfBulkCountries.php:232
|
4666 |
+
msgid "Taiwan"
|
4667 |
+
msgstr ""
|
4668 |
+
|
4669 |
+
#: lib/wfBulkCountries.php:233
|
4670 |
+
msgid "Tanzania, United Republic of"
|
4671 |
+
msgstr ""
|
4672 |
+
|
4673 |
+
#: lib/wfBulkCountries.php:234
|
4674 |
+
msgid "Ukraine"
|
4675 |
+
msgstr ""
|
4676 |
+
|
4677 |
+
#: lib/wfBulkCountries.php:235
|
4678 |
+
msgid "Uganda"
|
4679 |
+
msgstr ""
|
4680 |
+
|
4681 |
+
#: lib/wfBulkCountries.php:236
|
4682 |
+
msgid "United States Minor Outlying Islands"
|
4683 |
+
msgstr ""
|
4684 |
+
|
4685 |
+
#: lib/wfBulkCountries.php:237
|
4686 |
+
msgid "United States"
|
4687 |
+
msgstr ""
|
4688 |
+
|
4689 |
+
#: lib/wfBulkCountries.php:238
|
4690 |
+
msgid "Uruguay"
|
4691 |
+
msgstr ""
|
4692 |
+
|
4693 |
+
#: lib/wfBulkCountries.php:239
|
4694 |
+
msgid "Uzbekistan"
|
4695 |
+
msgstr ""
|
4696 |
+
|
4697 |
+
#: lib/wfBulkCountries.php:240
|
4698 |
+
msgid "Holy See (Vatican City State)"
|
4699 |
+
msgstr ""
|
4700 |
+
|
4701 |
+
#: lib/wfBulkCountries.php:241
|
4702 |
+
msgid "Saint Vincent and the Grenadines"
|
4703 |
+
msgstr ""
|
4704 |
+
|
4705 |
+
#: lib/wfBulkCountries.php:242
|
4706 |
+
msgid "Venezuela"
|
4707 |
+
msgstr ""
|
4708 |
+
|
4709 |
+
#: lib/wfBulkCountries.php:243
|
4710 |
+
msgid "Virgin Islands, British"
|
4711 |
+
msgstr ""
|
4712 |
+
|
4713 |
+
#: lib/wfBulkCountries.php:244
|
4714 |
+
msgid "Virgin Islands, U.S."
|
4715 |
+
msgstr ""
|
4716 |
+
|
4717 |
+
#: lib/wfBulkCountries.php:245
|
4718 |
+
msgid "Vietnam"
|
4719 |
+
msgstr ""
|
4720 |
+
|
4721 |
+
#: lib/wfBulkCountries.php:246
|
4722 |
+
msgid "Vanuatu"
|
4723 |
+
msgstr ""
|
4724 |
+
|
4725 |
+
#: lib/wfBulkCountries.php:247
|
4726 |
+
msgid "Wallis and Futuna"
|
4727 |
+
msgstr ""
|
4728 |
+
|
4729 |
+
#: lib/wfBulkCountries.php:248
|
4730 |
+
msgid "Samoa"
|
4731 |
+
msgstr ""
|
4732 |
+
|
4733 |
+
#: lib/wfBulkCountries.php:249
|
4734 |
+
msgid "Kosovo"
|
4735 |
+
msgstr ""
|
4736 |
+
|
4737 |
+
#: lib/wfBulkCountries.php:250
|
4738 |
+
msgid "Yemen"
|
4739 |
+
msgstr ""
|
4740 |
+
|
4741 |
+
#: lib/wfBulkCountries.php:251
|
4742 |
+
msgid "Mayotte"
|
4743 |
+
msgstr ""
|
4744 |
+
|
4745 |
+
#: lib/wfBulkCountries.php:252
|
4746 |
+
msgid "South Africa"
|
4747 |
+
msgstr ""
|
4748 |
+
|
4749 |
+
#: lib/wfBulkCountries.php:253
|
4750 |
+
msgid "Zambia"
|
4751 |
+
msgstr ""
|
4752 |
+
|
4753 |
+
#: lib/wfBulkCountries.php:254
|
4754 |
+
msgid "Zimbabwe"
|
4755 |
+
msgstr ""
|
4756 |
+
|
4757 |
+
#: lib/wfCentralAPI.php:199
|
4758 |
+
msgid "HTTP %d received from Wordfence Central: %s"
|
4759 |
+
msgstr ""
|
4760 |
+
|
4761 |
+
#: lib/wfCentralAPI.php:261
|
4762 |
+
#: lib/wfCentralAPI.php:317
|
4763 |
+
msgid "Unable to authenticate with Wordfence Central."
|
4764 |
+
msgstr ""
|
4765 |
+
|
4766 |
+
#: lib/wfCentralAPI.php:280
|
4767 |
+
msgid "Wordfence Central site ID has not been created yet."
|
4768 |
+
msgstr ""
|
4769 |
+
|
4770 |
+
#: lib/wfCentralAPI.php:284
|
4771 |
+
msgid "Wordfence Central secret key has not been created yet."
|
4772 |
+
msgstr ""
|
4773 |
+
|
4774 |
+
#: lib/wfCentralAPI.php:296
|
4775 |
+
msgid "Invalid response received from Wordfence Central when fetching nonce."
|
4776 |
+
msgstr ""
|
4777 |
+
|
4778 |
+
#: lib/wfCentralAPI.php:314
|
4779 |
+
msgid "Invalid response received from Wordfence Central when fetching token."
|
4780 |
+
msgstr ""
|
4781 |
+
|
4782 |
+
#: lib/wfConfig.php:951
|
4783 |
+
msgid "Wordfence Upgrade not run. Please modify your .htaccess"
|
4784 |
+
msgstr ""
|
4785 |
+
|
4786 |
+
#: lib/wfConfig.php:951
|
4787 |
+
msgid ""
|
4788 |
+
"To preserve the integrity of your website we are not running Wordfence auto-update.\n"
|
4789 |
+
"You are running the LiteSpeed web server which has been known to cause a problem with Wordfence auto-update.\n"
|
4790 |
+
"Please go to your website now and make a minor change to your .htaccess to fix this.\n"
|
4791 |
+
"You can find out how to make this change at:\n"
|
4792 |
+
"%s\n"
|
4793 |
+
"\n"
|
4794 |
+
"Alternatively you can disable auto-update on your website to stop receiving this message and upgrade Wordfence manually.\n"
|
4795 |
+
""
|
4796 |
+
msgstr ""
|
4797 |
+
|
4798 |
+
#: lib/wfConfig.php:1146
|
4799 |
+
msgid "The grace period end time must be in the future."
|
4800 |
+
msgstr ""
|
4801 |
+
|
4802 |
+
#: lib/wfConfig.php:1155
|
4803 |
+
msgid "Unknown firewall mode."
|
4804 |
+
msgstr ""
|
4805 |
+
|
4806 |
+
#: lib/wfConfig.php:1174
|
4807 |
+
msgid "The following emails are invalid: "
|
4808 |
+
msgstr ""
|
4809 |
+
|
4810 |
+
#: lib/wfConfig.php:1185
|
4811 |
+
msgid "\"%s\" is not a valid regular expression."
|
4812 |
+
msgstr ""
|
4813 |
+
|
4814 |
+
#: lib/wfConfig.php:1204
|
4815 |
+
msgid "Please make sure you separate your IP addresses with commas. The following whitelisted IP addresses are invalid: "
|
4816 |
+
msgstr ""
|
4817 |
+
|
4818 |
+
#: lib/wfConfig.php:1223
|
4819 |
+
msgid "The following users you selected to ignore in live traffic reports are not valid on this system: "
|
4820 |
+
msgstr ""
|
4821 |
+
|
4822 |
+
#: lib/wfConfig.php:1240
|
4823 |
+
msgid "The following IPs you selected to ignore in live traffic reports are not valid: "
|
4824 |
+
msgstr ""
|
4825 |
+
|
4826 |
+
#: lib/wfConfig.php:1257
|
4827 |
+
msgid "The following IPs/ranges you selected to trust as proxies are not valid: "
|
4828 |
+
msgstr ""
|
4829 |
+
|
4830 |
+
#: lib/wfConfig.php:1267
|
4831 |
+
msgid "An empty license key was entered."
|
4832 |
+
msgstr ""
|
4833 |
+
|
4834 |
+
#: lib/wfConfig.php:1270
|
4835 |
+
#: lib/wordfenceClass.php:4318
|
4836 |
+
msgid "The license key entered is not in a valid format. It must contain only numbers and the letters A-F."
|
4837 |
+
msgstr ""
|
4838 |
+
|
4839 |
+
#: lib/wfConfig.php:1741
|
4840 |
+
msgid "Your options have been saved, but you left your license key blank, so we tried to get you a free license key from the Wordfence servers. There was a problem fetching the free key: "
|
4841 |
+
msgstr ""
|
4842 |
+
|
4843 |
+
#: lib/wfConfig.php:1763
|
4844 |
+
msgid "Your options have been saved. However we noticed you changed your license key, and we tried to verify it with the Wordfence servers but received an error: "
|
4845 |
+
msgstr ""
|
4846 |
+
|
4847 |
+
#: lib/wfConfig.php:1807
|
4848 |
+
msgid "Your options have been saved. However we tried to verify your license key with the Wordfence servers and received an error: "
|
4849 |
+
msgstr ""
|
4850 |
+
|
4851 |
+
#: lib/wfDashboard.php:184
|
4852 |
+
msgid "Complex"
|
4853 |
+
msgstr ""
|
4854 |
+
|
4855 |
+
#: lib/wfDashboard.php:189
|
4856 |
+
msgid "Brute Force"
|
4857 |
+
msgstr ""
|
4858 |
+
|
4859 |
+
#: lib/wfDashboard.php:194
|
4860 |
+
msgid "Blacklist"
|
4861 |
+
msgstr ""
|
4862 |
+
|
4863 |
+
#: lib/wfDiagnostic.php:58
|
4864 |
+
msgid "General information about the Wordfence installation."
|
4865 |
+
msgstr ""
|
4866 |
+
|
4867 |
+
#: lib/wfDiagnostic.php:60
|
4868 |
+
msgid "Wordfence Version"
|
4869 |
+
msgstr ""
|
4870 |
+
|
4871 |
+
#: lib/wfDiagnostic.php:61
|
4872 |
+
msgid "GeoIP Version"
|
4873 |
+
msgstr ""
|
4874 |
+
|
4875 |
+
#: lib/wfDiagnostic.php:62
|
4876 |
+
msgid "Cron Status"
|
4877 |
+
msgstr ""
|
4878 |
+
|
4879 |
+
#: lib/wfDiagnostic.php:66
|
4880 |
+
msgid "Ability to read/write various files."
|
4881 |
+
msgstr ""
|
4882 |
+
|
4883 |
+
#: lib/wfDiagnostic.php:68
|
4884 |
+
msgid "Checking if web server can read from <code>~/plugins/wordfence</code>"
|
4885 |
+
msgstr ""
|
4886 |
+
|
4887 |
+
#: lib/wfDiagnostic.php:69
|
4888 |
+
msgid "Checking if web server can write to <code>~/plugins/wordfence</code>"
|
4889 |
+
msgstr ""
|
4890 |
+
|
4891 |
+
#: lib/wfDiagnostic.php:70
|
4892 |
+
msgid "Checking if web server can read from <code>~/wp-content/wflogs</code>"
|
4893 |
+
msgstr ""
|
4894 |
+
|
4895 |
+
#: lib/wfDiagnostic.php:71
|
4896 |
+
msgid "Checking if web server can write to <code>~/wp-content/wflogs</code>"
|
4897 |
+
msgstr ""
|
4898 |
+
|
4899 |
+
#: lib/wfDiagnostic.php:75
|
4900 |
+
msgid "Ability to save Wordfence settings to the database."
|
4901 |
+
msgstr ""
|
4902 |
+
|
4903 |
+
#: lib/wfDiagnostic.php:77
|
4904 |
+
msgid "Checking basic config reading/writing"
|
4905 |
+
msgstr ""
|
4906 |
+
|
4907 |
+
#: lib/wfDiagnostic.php:78
|
4908 |
+
msgid "Checking serialized config reading/writing"
|
4909 |
+
msgstr ""
|
4910 |
+
|
4911 |
+
#: lib/wfDiagnostic.php:82
|
4912 |
+
msgid "Current WAF configuration."
|
4913 |
+
msgstr ""
|
4914 |
+
|
4915 |
+
#: lib/wfDiagnostic.php:84
|
4916 |
+
msgid "WAF auto prepend active"
|
4917 |
+
msgstr ""
|
4918 |
+
|
4919 |
+
#: lib/wfDiagnostic.php:85
|
4920 |
+
msgid "WAF storage engine (WFWAF_STORAGE_ENGINE)"
|
4921 |
+
msgstr ""
|
4922 |
+
|
4923 |
+
#: lib/wfDiagnostic.php:86
|
4924 |
+
msgid "WAF log path"
|
4925 |
+
msgstr ""
|
4926 |
+
|
4927 |
+
#: lib/wfDiagnostic.php:87
|
4928 |
+
msgid "WAF subdirectory installation"
|
4929 |
+
msgstr ""
|
4930 |
+
|
4931 |
+
#: lib/wfDiagnostic.php:88
|
4932 |
+
msgid "wordfence-waf.php path"
|
4933 |
+
msgstr ""
|
4934 |
+
|
4935 |
+
#: lib/wfDiagnostic.php:89
|
4936 |
+
msgid "WAF File Permissions"
|
4937 |
+
msgstr ""
|
4938 |
+
|
4939 |
+
#: lib/wfDiagnostic.php:90
|
4940 |
+
msgid "Recently removed wflogs files"
|
4941 |
+
msgstr ""
|
4942 |
+
|
4943 |
+
#: lib/wfDiagnostic.php:94
|
4944 |
+
msgid "Database version and privileges."
|
4945 |
+
msgstr ""
|
4946 |
+
|
4947 |
+
#: lib/wfDiagnostic.php:96
|
4948 |
+
msgid "Database Version"
|
4949 |
+
msgstr ""
|
4950 |
+
|
4951 |
+
#: lib/wfDiagnostic.php:97
|
4952 |
+
msgid "Checking if MySQL user has <code>DELETE</code> privilege"
|
4953 |
+
msgstr ""
|
4954 |
+
|
4955 |
+
#: lib/wfDiagnostic.php:98
|
4956 |
+
msgid "Checking if MySQL user has <code>INSERT</code> privilege"
|
4957 |
+
msgstr ""
|
4958 |
+
|
4959 |
+
#: lib/wfDiagnostic.php:99
|
4960 |
+
msgid "Checking if MySQL user has <code>UPDATE</code> privilege"
|
4961 |
+
msgstr ""
|
4962 |
+
|
4963 |
+
#: lib/wfDiagnostic.php:100
|
4964 |
+
msgid "Checking if MySQL user has <code>SELECT</code> privilege"
|
4965 |
+
msgstr ""
|
4966 |
+
|
4967 |
+
#: lib/wfDiagnostic.php:101
|
4968 |
+
msgid "Checking if MySQL user has <code>CREATE TABLE</code> privilege"
|
4969 |
+
msgstr ""
|
4970 |
+
|
4971 |
+
#: lib/wfDiagnostic.php:102
|
4972 |
+
msgid "Checking if MySQL user has <code>ALTER TABLE</code> privilege"
|
4973 |
+
msgstr ""
|
4974 |
+
|
4975 |
+
#: lib/wfDiagnostic.php:103
|
4976 |
+
msgid "Checking if MySQL user has <code>DROP</code> privilege"
|
4977 |
+
msgstr ""
|
4978 |
+
|
4979 |
+
#: lib/wfDiagnostic.php:104
|
4980 |
+
msgid "Checking if MySQL user has <code>TRUNCATE</code> privilege"
|
4981 |
+
msgstr ""
|
4982 |
+
|
4983 |
+
#: lib/wfDiagnostic.php:108
|
4984 |
+
msgid "PHP version, important PHP extensions."
|
4985 |
+
msgstr ""
|
4986 |
+
|
4987 |
+
#: lib/wfDiagnostic.php:110
|
4988 |
+
msgid "PHP version >= PHP 5.6.20<br><em> (<a href=\"https://wordpress.org/about/requirements/\" target=\"_blank\" rel=\"noopener noreferrer\">Minimum version required by WordPress</a>)</em> <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"wfhelp\"></a>"
|
4989 |
+
msgstr ""
|
4990 |
+
|
4991 |
+
#: lib/wfDiagnostic.php:111
|
4992 |
+
msgid "Process Owner"
|
4993 |
+
msgstr ""
|
4994 |
+
|
4995 |
+
#: lib/wfDiagnostic.php:112
|
4996 |
+
msgid "Checking for OpenSSL support"
|
4997 |
+
msgstr ""
|
4998 |
+
|
4999 |
+
#: lib/wfDiagnostic.php:113
|
5000 |
+
msgid "Checking OpenSSL version"
|
5001 |
+
msgstr ""
|
5002 |
+
|
5003 |
+
#: lib/wfDiagnostic.php:114
|
5004 |
+
msgid "Checking for cURL support"
|
5005 |
+
msgstr ""
|
5006 |
+
|
5007 |
+
#: lib/wfDiagnostic.php:115
|
5008 |
+
msgid "cURL Features Code"
|
5009 |
+
msgstr ""
|
5010 |
+
|
5011 |
+
#: lib/wfDiagnostic.php:116
|
5012 |
+
msgid "cURL Host"
|
5013 |
+
msgstr ""
|
5014 |
+
|
5015 |
+
#: lib/wfDiagnostic.php:117
|
5016 |
+
msgid "cURL Support Protocols"
|
5017 |
+
msgstr ""
|
5018 |
+
|
5019 |
+
#: lib/wfDiagnostic.php:118
|
5020 |
+
msgid "cURL SSL Version"
|
5021 |
+
msgstr ""
|
5022 |
+
|
5023 |
+
#: lib/wfDiagnostic.php:119
|
5024 |
+
msgid "cURL libz Version"
|
5025 |
+
msgstr ""
|
5026 |
+
|
5027 |
+
#: lib/wfDiagnostic.php:120
|
5028 |
+
msgid "Checking <code>display_errors</code><br><em> (<a href=\"http://php.net/manual/en/errorfunc.configuration.php#ini.display-errors\" target=\"_blank\" rel=\"noopener noreferrer\">Should be disabled on production servers</a>)</em>"
|
5029 |
+
msgstr ""
|
5030 |
+
|
5031 |
+
#: lib/wfDiagnostic.php:124
|
5032 |
+
msgid "Ability to connect to the Wordfence servers and your own site."
|
5033 |
+
msgstr ""
|
5034 |
+
|
5035 |
+
#: lib/wfDiagnostic.php:126
|
5036 |
+
msgid "Connecting to Wordfence servers (http)"
|
5037 |
+
msgstr ""
|
5038 |
+
|
5039 |
+
#: lib/wfDiagnostic.php:127
|
5040 |
+
msgid "Connecting to Wordfence servers (https)"
|
5041 |
+
msgstr ""
|
5042 |
+
|
5043 |
+
#: lib/wfDiagnostic.php:128
|
5044 |
+
msgid "Connecting back to this site"
|
5045 |
+
msgstr ""
|
5046 |
+
|
5047 |
+
#: lib/wfDiagnostic.php:129
|
5048 |
+
msgid "IP(s) used by this server"
|
5049 |
+
msgstr ""
|
5050 |
+
|
5051 |
+
#: lib/wfDiagnostic.php:133
|
5052 |
+
msgid "Server time accuracy and applied offsets."
|
5053 |
+
msgstr ""
|
5054 |
+
|
5055 |
+
#: lib/wfDiagnostic.php:135
|
5056 |
+
msgid "Wordfence Network Time"
|
5057 |
+
msgstr ""
|
5058 |
+
|
5059 |
+
#: lib/wfDiagnostic.php:136
|
5060 |
+
#: lib/wfDiagnostic.php:786
|
5061 |
+
msgid "Server Time"
|
5062 |
+
msgstr ""
|
5063 |
+
|
5064 |
+
#: lib/wfDiagnostic.php:137
|
5065 |
+
msgid "Wordfence Network Time Offset"
|
5066 |
+
msgstr ""
|
5067 |
+
|
5068 |
+
#: lib/wfDiagnostic.php:138
|
5069 |
+
msgid "NTP Time Offset"
|
5070 |
+
msgstr ""
|
5071 |
+
|
5072 |
+
#: lib/wfDiagnostic.php:139
|
5073 |
+
msgid "TOTP Time Source"
|
5074 |
+
msgstr ""
|
5075 |
+
|
5076 |
+
#: lib/wfDiagnostic.php:140
|
5077 |
+
msgid "WordPress Time Zone"
|
5078 |
+
msgstr ""
|
5079 |
+
|
5080 |
+
#: lib/wfDiagnostic.php:197
|
5081 |
+
msgid "1 Job Overdue"
|
5082 |
+
msgstr ""
|
5083 |
+
|
5084 |
+
#: lib/wfDiagnostic.php:197
|
5085 |
+
msgid "%d Jobs Overdue"
|
5086 |
+
msgstr ""
|
5087 |
+
|
5088 |
+
#: lib/wfDiagnostic.php:197
|
5089 |
+
msgid "Normal"
|
5090 |
+
msgstr ""
|
5091 |
+
|
5092 |
+
#: lib/wfDiagnostic.php:216
|
5093 |
+
#: lib/wfDiagnostic.php:219
|
5094 |
+
msgid "No files readable"
|
5095 |
+
msgstr ""
|
5096 |
+
|
5097 |
+
#: lib/wfDiagnostic.php:231
|
5098 |
+
#: lib/wfDiagnostic.php:267
|
5099 |
+
msgid "File \"%s\" does not exist"
|
5100 |
+
msgstr ""
|
5101 |
+
|
5102 |
+
#: lib/wfDiagnostic.php:234
|
5103 |
+
msgid "File \"%s\" is unreadable"
|
5104 |
+
msgstr ""
|
5105 |
+
|
5106 |
+
#: lib/wfDiagnostic.php:252
|
5107 |
+
#: lib/wfDiagnostic.php:255
|
5108 |
+
msgid "No files writable"
|
5109 |
+
msgstr ""
|
5110 |
+
|
5111 |
+
#: lib/wfDiagnostic.php:270
|
5112 |
+
msgid "File \"%s\" is unwritable"
|
5113 |
+
msgstr ""
|
5114 |
+
|
5115 |
+
#: lib/wfDiagnostic.php:340
|
5116 |
+
msgid "Basic config writing"
|
5117 |
+
msgstr ""
|
5118 |
+
|
5119 |
+
#: lib/wfDiagnostic.php:352
|
5120 |
+
msgid "Serialized config writing"
|
5121 |
+
msgstr ""
|
5122 |
+
|
5123 |
+
#: lib/wfDiagnostic.php:360
|
5124 |
+
msgid "(default)"
|
5125 |
+
msgstr ""
|
5126 |
+
|
5127 |
+
#: lib/wfDiagnostic.php:388
|
5128 |
+
msgid "%s - using constant"
|
5129 |
+
msgstr ""
|
5130 |
+
|
5131 |
+
#: lib/wfDiagnostic.php:401
|
5132 |
+
msgid "%s - using template"
|
5133 |
+
msgstr ""
|
5134 |
+
|
5135 |
+
#: lib/wfDiagnostic.php:405
|
5136 |
+
msgid "0660 - using default"
|
5137 |
+
msgstr ""
|
5138 |
+
|
5139 |
+
#: lib/wfDiagnostic.php:439
|
5140 |
+
msgid "Unavailable"
|
5141 |
+
msgstr ""
|
5142 |
+
|
5143 |
+
#: lib/wfDiagnostic.php:478
|
5144 |
+
#: models/block/wfBlock.php:95
|
5145 |
+
msgid "Unknown"
|
5146 |
+
msgstr ""
|
5147 |
+
|
5148 |
+
#: lib/wfDiagnostic.php:607
|
5149 |
+
#: lib/wfDiagnostic.php:610
|
5150 |
+
msgid "wp_remote_post() test to noc1.wordfence.com failed! Response was: "
|
5151 |
+
msgstr ""
|
5152 |
+
|
5153 |
+
#: lib/wfDiagnostic.php:611
|
5154 |
+
msgid "This likely means that your hosting provider is blocking requests to noc1.wordfence.com or has set up a proxy that is not behaving itself."
|
5155 |
+
msgstr ""
|
5156 |
+
|
5157 |
+
#: lib/wfDiagnostic.php:637
|
5158 |
+
msgid "OK - %s"
|
5159 |
+
msgstr ""
|
5160 |
+
|
5161 |
+
#: lib/wfDiagnostic.php:644
|
5162 |
+
#: lib/wfDiagnostic.php:647
|
5163 |
+
msgid "wp_remote_post() test back to this server failed! Response was: "
|
5164 |
+
msgstr ""
|
5165 |
+
|
5166 |
+
#: lib/wfDiagnostic.php:648
|
5167 |
+
msgid "This additional info may help you diagnose the issue. The response headers we received were:"
|
5168 |
+
msgstr ""
|
5169 |
+
|
5170 |
+
#: lib/wfDiagnostic.php:677
|
5171 |
+
msgid "We cannot read $_SERVER[%s]"
|
5172 |
+
msgstr ""
|
5173 |
+
|
5174 |
+
#: lib/wfDiagnostic.php:689
|
5175 |
+
msgid "Should be: "
|
5176 |
+
msgstr ""
|
5177 |
+
|
5178 |
+
#: lib/wfDiagnostic.php:772
|
5179 |
+
msgid "NTP"
|
5180 |
+
msgstr ""
|
5181 |
+
|
5182 |
+
#: lib/wfImportExportController.php:43
|
5183 |
+
#: lib/wfImportExportController.php:50
|
5184 |
+
msgid "An error occurred: "
|
5185 |
+
msgstr ""
|
5186 |
+
|
5187 |
+
#: lib/wfImportExportController.php:46
|
5188 |
+
msgid "Invalid response: "
|
5189 |
+
msgstr ""
|
5190 |
+
|
5191 |
+
#: lib/wfImportExportController.php:62
|
5192 |
+
msgid "An error occurred: Invalid options format received."
|
5193 |
+
msgstr ""
|
5194 |
+
|
5195 |
+
#: lib/wfLockedOut.php:10
|
5196 |
+
msgid "You are temporarily locked out"
|
5197 |
+
msgstr ""
|
5198 |
+
|
5199 |
+
#: lib/wfLockedOut.php:336
|
5200 |
+
msgid "Attempt to return to the admin login page (you may still be locked out)"
|
5201 |
+
msgstr ""
|
5202 |
+
|
5203 |
+
#: lib/wfLog.php:217
|
5204 |
+
msgid "Exceeded the maximum global requests per minute for crawlers or humans."
|
5205 |
+
msgstr ""
|
5206 |
+
|
5207 |
+
#: lib/wfLog.php:220
|
5208 |
+
msgid "Exceeded the maximum number of requests per minute for crawlers."
|
5209 |
+
msgstr ""
|
5210 |
+
|
5211 |
+
#: lib/wfLog.php:223
|
5212 |
+
msgid "Exceeded the maximum number of page not found errors per minute for a crawler."
|
5213 |
+
msgstr ""
|
5214 |
+
|
5215 |
+
#: lib/wfLog.php:226
|
5216 |
+
msgid "Exceeded the maximum number of page requests per minute for humans."
|
5217 |
+
msgstr ""
|
5218 |
+
|
5219 |
+
#: lib/wfLog.php:229
|
5220 |
+
msgid "Exceeded the maximum number of page not found errors per minute for humans."
|
5221 |
+
msgstr ""
|
5222 |
+
|
5223 |
+
#: lib/wfLog.php:556
|
5224 |
+
msgid "Advanced blocking in effect."
|
5225 |
+
msgstr ""
|
5226 |
+
|
5227 |
+
#: lib/wfLog.php:568
|
5228 |
+
msgid "redirected to bypass URL"
|
5229 |
+
msgstr ""
|
5230 |
+
|
5231 |
+
#: lib/wfLog.php:582
|
5232 |
+
msgid "blocked access via country blocking and redirected to URL (%s)"
|
5233 |
+
msgstr ""
|
5234 |
+
|
5235 |
+
#: lib/wfLog.php:597
|
5236 |
+
#: models/block/wfBlock.php:1427
|
5237 |
+
msgid "blocked access via country blocking"
|
5238 |
+
msgstr ""
|
5239 |
+
|
5240 |
+
#: lib/wfLog.php:600
|
5241 |
+
#: models/block/wfBlock.php:1430
|
5242 |
+
#: waf/wfWAFIPBlocksController.php:71
|
5243 |
+
msgid "Access from your area has been temporarily limited for security reasons"
|
5244 |
+
msgstr ""
|
5245 |
+
|
5246 |
+
#: lib/wfLog.php:615
|
5247 |
+
#: waf/wfWAFIPBlocksController.php:97
|
5248 |
+
msgid "Manual block by administrator"
|
5249 |
+
msgstr ""
|
5250 |
+
|
5251 |
+
#: lib/wfLog.php:643
|
5252 |
+
msgid "Blocking IP %s. %s"
|
5253 |
+
msgstr ""
|
5254 |
+
|
5255 |
+
#: lib/wfLog.php:655
|
5256 |
+
msgid "Throttling IP %s. %s"
|
5257 |
+
msgstr ""
|
5258 |
+
|
5259 |
+
#: lib/wfScan.php:58
|
5260 |
+
msgid "The signature on the request to start a scan is invalid. Please try again."
|
5261 |
+
msgstr ""
|
5262 |
+
|
5263 |
+
#: lib/wfScan.php:65
|
5264 |
+
msgid "[invalid]"
|
5265 |
+
msgstr ""
|
5266 |
+
|
5267 |
+
#: lib/wfScan.php:65
|
5268 |
+
#: lib/wfScan.php:66
|
5269 |
+
msgid "[none]"
|
5270 |
+
msgstr ""
|
5271 |
+
|
5272 |
+
#: lib/wfScan.php:67
|
5273 |
+
msgid "Checking cronkey: %s (expecting %s)"
|
5274 |
+
msgstr ""
|
5275 |
+
|
5276 |
+
#: lib/wfScan.php:135
|
5277 |
+
#: lib/wfScan.php:138
|
5278 |
+
msgid "Scan can't continue - stored data not found after a fork."
|
5279 |
+
msgstr ""
|
5280 |
+
|
5281 |
+
#: lib/wfScan.php:261
|
5282 |
+
msgid "Wordfence scan failed because of license site URL conflict"
|
5283 |
+
msgstr ""
|
5284 |
+
|
5285 |
+
#: lib/wfScanEngine.php:850
|
5286 |
+
msgid ", and %d more."
|
5287 |
+
msgstr ""
|
5288 |
+
|
5289 |
+
#: lib/wfScanEngine.php:876
|
5290 |
+
msgid "%d path was skipped for the malware scan due to scan settings"
|
5291 |
+
msgstr ""
|
5292 |
+
|
5293 |
+
#: lib/wfScanEngine.php:876
|
5294 |
+
msgid "%d paths were skipped for the malware scan due to scan settings"
|
5295 |
+
msgstr ""
|
5296 |
+
|
5297 |
+
#: lib/wfScanEngine.php:877
|
5298 |
+
msgid "The option \"Scan files outside your WordPress installation\" is off by default, which means %d path and its file(s) will not be scanned for malware or unauthorized changes. To continue skipping this path, you may ignore this issue. Or to start scanning it, enable the option and subsequent scans will include it. Some paths may not be necessary to scan, so this is optional. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More</a><br><br>The path skipped is %s"
|
5299 |
+
msgstr ""
|
5300 |
+
|
5301 |
+
#: lib/wfScanEngine.php:877
|
5302 |
+
msgid "The option \"Scan files outside your WordPress installation\" is off by default, which means %d paths and their file(s) will not be scanned for malware or unauthorized changes. To continue skipping these paths, you may ignore this issue. Or to start scanning them, enable the option and subsequent scans will include them. Some paths may not be necessary to scan, so this is optional. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More</a><br><br>The paths skipped are %s"
|
5303 |
+
msgstr ""
|
5304 |
+
|
5305 |
+
#: lib/wfScanEngine.php:1486
|
5306 |
+
msgid "Scanning to check available disk space"
|
5307 |
+
msgstr ""
|
5308 |
+
|
5309 |
+
#: lib/wfScanEngine.php:1493
|
5310 |
+
msgid "Unable to access available disk space information"
|
5311 |
+
msgstr ""
|
5312 |
+
|
5313 |
+
#: lib/wfScanEngine.php:1500
|
5314 |
+
msgid "Total disk space: %s -- Free disk space: %s"
|
5315 |
+
msgstr ""
|
5316 |
+
|
5317 |
+
#: lib/wfScanEngine.php:1502
|
5318 |
+
msgid "The disk has %s MB available"
|
5319 |
+
msgstr ""
|
5320 |
+
|
5321 |
+
#: lib/wfScanEngine.php:1519
|
5322 |
+
msgid "You have %s disk space remaining"
|
5323 |
+
msgstr ""
|
5324 |
+
|
5325 |
+
#: lib/wfScanEngine.php:1520
|
5326 |
+
msgid "You only have %s of your disk space remaining. Please free up disk space or your website may stop serving requests."
|
5327 |
+
msgstr ""
|
5328 |
+
|
5329 |
+
#: lib/wfScanEngine.php:1529
|
5330 |
+
msgid "Checking Web Application Firewall status"
|
5331 |
+
msgstr ""
|
5332 |
+
|
5333 |
+
#: lib/wfScanEngine.php:1540
|
5334 |
+
msgid "Web Application Firewall is disabled"
|
5335 |
+
msgstr ""
|
5336 |
+
|
5337 |
+
#: lib/wfScanEngine.php:1541
|
5338 |
+
msgid "Wordfence's Web Application Firewall has been unexpectedly disabled. If you see a notice at the top of the Wordfence admin pages that says \"The Wordfence Web Application Firewall cannot run,\" click the link in that message to rebuild the configuration. If this does not work, you may need to fix file permissions. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">More Details</a>"
|
5339 |
+
msgstr ""
|
5340 |
+
|
5341 |
+
#: lib/wfScanEngine.php:1821
|
5342 |
+
msgid "An admin user with the username %s was created outside of WordPress."
|
5343 |
+
msgstr ""
|
5344 |
+
|
5345 |
+
#: lib/wfScanEngine.php:1822
|
5346 |
+
msgid "An admin user with the username %s was created outside of WordPress. It's possible a plugin could have created the account, but if you do not recognize the user, we suggest you remove it."
|
5347 |
+
msgstr ""
|
5348 |
+
|
5349 |
+
#: lib/wfScanEngine.php:1845
|
5350 |
+
msgid "An admin user with a suspicious username %s was found."
|
5351 |
+
msgstr ""
|
5352 |
+
|
5353 |
+
#: lib/wfScanEngine.php:1846
|
5354 |
+
msgid "An admin user with a suspicious username %s was found. Administrators accounts with usernames similar to this are commonly seen created by hackers. It's possible a plugin could have created the account, but if you do not recognize the user, we suggest you remove it."
|
5355 |
+
msgstr ""
|
5356 |
+
|
5357 |
+
#: lib/wfScanEngine.php:1976
|
5358 |
+
msgid "PHP Update Needed for Country Blocking"
|
5359 |
+
msgstr ""
|
5360 |
+
|
5361 |
+
#: lib/wfScanEngine.php:1977
|
5362 |
+
msgid "The GeoIP database that is required for country blocking has been updated to a new format. This new format requires sites to run PHP 5.4 or newer, and this site is on PHP %s. To ensure country blocking continues functioning, please update PHP."
|
5363 |
+
msgstr ""
|
5364 |
+
|
5365 |
+
#: lib/wfUnlockMsg.php:2
|
5366 |
+
msgid "If you are a WordPress user with administrative privileges on this site please enter your email in the box below and click "Send". You will then receive an email that helps you regain access."
|
5367 |
+
msgstr ""
|
5368 |
+
|
5369 |
+
#: lib/wfVersionCheckController.php:49
|
5370 |
+
#: lib/wfVersionCheckController.php:62
|
5371 |
+
msgid "PHP version too old"
|
5372 |
+
msgstr ""
|
5373 |
+
|
5374 |
+
#: lib/wfVersionCheckController.php:50
|
5375 |
+
msgid "Your site is using a PHP version (%s) that will no longer be supported by Wordfence in an upcoming release and needs to be updated. We recommend using the newest version of PHP available but will currently support PHP versions as old as %s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later."
|
5376 |
+
msgstr ""
|
5377 |
+
|
5378 |
+
#: lib/wfVersionCheckController.php:50
|
5379 |
+
#: lib/wfVersionCheckController.php:63
|
5380 |
+
#: lib/wfVersionCheckController.php:129
|
5381 |
+
#: lib/wfVersionCheckController.php:144
|
5382 |
+
msgid "Learn More: %s"
|
5383 |
+
msgstr ""
|
5384 |
+
|
5385 |
+
#: lib/wfVersionCheckController.php:56
|
5386 |
+
msgid "<strong>WARNING: </strong> Your site is using a PHP version (%s) that will no longer be supported by Wordfence in an upcoming release and needs to be updated. We recommend using the newest version of PHP available but will currently support PHP versions as old as %s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later."
|
5387 |
+
msgstr ""
|
5388 |
+
|
5389 |
+
#: lib/wfVersionCheckController.php:63
|
5390 |
+
msgid "Your site is using a PHP version (%s) that is no longer supported by Wordfence and needs to be updated. We recommend using the newest version of PHP available but will currently support PHP versions as old as %s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later."
|
5391 |
+
msgstr ""
|
5392 |
+
|
5393 |
+
#: lib/wfVersionCheckController.php:69
|
5394 |
+
msgid "<strong>WARNING: </strong> Your site is using a PHP version (%s) that is no longer supported by Wordfence and needs to be updated. We recommend using the newest version of PHP available but will currently support PHP versions as old as %s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later."
|
5395 |
+
msgstr ""
|
5396 |
+
|
5397 |
+
#: lib/wfVersionCheckController.php:128
|
5398 |
+
#: lib/wfVersionCheckController.php:143
|
5399 |
+
msgid "WordPress version too old"
|
5400 |
+
msgstr ""
|
5401 |
+
|
5402 |
+
#: lib/wfVersionCheckController.php:129
|
5403 |
+
msgid "Your site is using a WordPress version (%s) that will no longer be supported by Wordfence in an upcoming release and needs to be updated. We recommend using the newest version of WordPress but will currently support WordPress versions as old as %s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later."
|
5404 |
+
msgstr ""
|
5405 |
+
|
5406 |
+
#: lib/wfVersionCheckController.php:135
|
5407 |
+
msgid "<strong>WARNING: </strong> Your site is using a WordPress version (%s) that will no longer be supported by Wordfence in an upcoming release and needs to be updated. We recommend using the newest version of WordPress but will currently support WordPress versions as old as %s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later."
|
5408 |
+
msgstr ""
|
5409 |
+
|
5410 |
+
#: lib/wfVersionCheckController.php:144
|
5411 |
+
msgid "Your site is using a WordPress version (%s) that is no longer supported by Wordfence and needs to be updated. We recommend using the newest version of WordPress but will currently support WordPress versions as old as %s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later."
|
5412 |
+
msgstr ""
|
5413 |
+
|
5414 |
+
#: lib/wfVersionCheckController.php:150
|
5415 |
+
msgid "<strong>WARNING: </strong> Your site is using a WordPress version (%s) that is no longer supported by Wordfence and needs to be updated. We recommend using the newest version of WordPress but will currently support WordPress versions as old as %s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later."
|
5416 |
+
msgstr ""
|
5417 |
+
|
5418 |
+
#: lib/wordfenceClass.php:833
|
5419 |
+
msgid "Automatically generated from previous country blocking settings"
|
5420 |
+
msgstr ""
|
5421 |
+
|
5422 |
+
#: lib/wordfenceClass.php:1625
|
5423 |
+
msgid "Please choose a stronger password. Try including numbers, symbols, and a mix of upper and lowercase letters and remove common words."
|
5424 |
+
msgstr ""
|
5425 |
+
|
5426 |
+
#: lib/wordfenceClass.php:1631
|
5427 |
+
msgid "Passwords containing a space followed by \"wf\" without quotes are not allowed."
|
5428 |
+
msgstr ""
|
5429 |
+
|
5430 |
+
#: lib/wordfenceClass.php:1646
|
5431 |
+
msgid "Please choose a different password. The password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. <a href=\"%s\">Learn More</a>"
|
5432 |
+
msgstr ""
|
5433 |
+
|
5434 |
+
#: lib/wordfenceClass.php:1800
|
5435 |
+
msgid "Your request was received"
|
5436 |
+
msgstr ""
|
5437 |
+
|
5438 |
+
#: lib/wordfenceClass.php:1801
|
5439 |
+
msgid "We received a request to email \"%s\" instructions to unlock their access. If that is the email address of a site administrator or someone on the Wordfence alert list, they have been emailed instructions on how to regain access to this system. The instructions we sent will expire 30 minutes from now."
|
5440 |
+
msgstr ""
|
5441 |
+
|
5442 |
+
#: lib/wordfenceClass.php:1807
|
5443 |
+
msgid "Invalid key provided for authentication."
|
5444 |
+
msgstr ""
|
5445 |
+
|
5446 |
+
#: lib/wordfenceClass.php:1818
|
5447 |
+
msgid "Request received via unlock email link to unblock all IPs."
|
5448 |
+
msgstr ""
|
5449 |
+
|
5450 |
+
#: lib/wordfenceClass.php:1827
|
5451 |
+
msgid "Request received via unlock email link to unblock all IPs via disabling firewall rules."
|
5452 |
+
msgstr ""
|
5453 |
+
|
5454 |
+
#: lib/wordfenceClass.php:1835
|
5455 |
+
msgid "Invalid function specified. Please check the link we emailed you and make sure it was not cut-off by your email reader."
|
5456 |
+
msgstr ""
|
5457 |
+
|
5458 |
+
#: lib/wordfenceClass.php:1880
|
5459 |
+
msgid "Unsubscribe Requested"
|
5460 |
+
msgstr ""
|
5461 |
+
|
5462 |
+
#: lib/wordfenceClass.php:1936
|
5463 |
+
msgid "Sorry but your browser sent an invalid security token when trying to use this form."
|
5464 |
+
msgstr ""
|
5465 |
+
|
5466 |
+
#: lib/wordfenceClass.php:1942
|
5467 |
+
msgid "An error occurred while saving the license."
|
5468 |
+
msgstr ""
|
5469 |
+
|
5470 |
+
#: lib/wordfenceClass.php:1944
|
5471 |
+
#: lib/wordfenceClass.php:1964
|
5472 |
+
msgid "An error occurred while saving the license: %s"
|
5473 |
+
msgstr ""
|
5474 |
+
|
5475 |
+
#: lib/wordfenceClass.php:2339
|
5476 |
+
#: lib/wordfenceClass.php:2343
|
5477 |
+
msgid "Accessed a banned URL"
|
5478 |
+
msgstr ""
|
5479 |
+
|
5480 |
+
#: lib/wordfenceClass.php:2350
|
5481 |
+
#: lib/wordfenceClass.php:2354
|
5482 |
+
msgid "POST received with blank user-agent and referer"
|
5483 |
+
msgstr ""
|
5484 |
+
|
5485 |
+
#: lib/wordfenceClass.php:2484
|
5486 |
+
msgid "<strong>ERROR</strong>: You can't register using that username"
|
5487 |
+
msgstr ""
|
5488 |
+
|
5489 |
+
#: lib/wordfenceClass.php:2524
|
5490 |
+
msgid "Sorry, you are not allowed to list users."
|
5491 |
+
msgstr ""
|
5492 |
+
|
5493 |
+
#: lib/wordfenceClass.php:2531
|
5494 |
+
msgid "Invalid user ID."
|
5495 |
+
msgstr ""
|
5496 |
+
|
5497 |
+
#: lib/wordfenceClass.php:2675
|
5498 |
+
msgid "<strong>VERIFICATION FAILED</strong>: Two-factor authentication verification failed. Please try again."
|
5499 |
+
msgstr ""
|
5500 |
+
|
5501 |
+
#: lib/wordfenceClass.php:2682
|
5502 |
+
#: lib/wordfenceClass.php:3112
|
5503 |
+
msgid "<strong>ERROR</strong>: The username or password you entered is incorrect. <a href=\"%2$s\" title=\"Password Lost and Found\">Lost your password</a>?"
|
5504 |
+
msgstr ""
|
5505 |
+
|
5506 |
+
#: lib/wordfenceClass.php:2690
|
5507 |
+
#: lib/wordfenceClass.php:2821
|
5508 |
+
msgid "<strong>WARNING: </strong>The password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please <a href=\"%s\">change your password</a>. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More</a>"
|
5509 |
+
msgstr ""
|
5510 |
+
|
5511 |
+
#: lib/wordfenceClass.php:2711
|
5512 |
+
msgid "<strong>INVALID CODE</strong>: Please sign in again and add a space, the letters <code>wf</code>, and the code from your authenticator app to the end of your password (e.g., <code>wf123456</code>)."
|
5513 |
+
msgstr ""
|
5514 |
+
|
5515 |
+
#: lib/wordfenceClass.php:2715
|
5516 |
+
msgid "<strong>INVALID CODE</strong>: Please sign in again and add a space, the letters <code>wf</code>, and the code sent to your phone to the end of your password (e.g., <code>wf123456</code>)."
|
5517 |
+
msgstr ""
|
5518 |
+
|
5519 |
+
#: lib/wordfenceClass.php:2722
|
5520 |
+
#: lib/wordfenceClass.php:2773
|
5521 |
+
#: lib/wordfenceClass.php:2796
|
5522 |
+
msgid "<strong>AUTHENTICATION FAILURE</strong>: A temporary failure was encountered while trying to log in. Please try again."
|
5523 |
+
msgstr ""
|
5524 |
+
|
5525 |
+
#: lib/wordfenceClass.php:2732
|
5526 |
+
msgid "<strong>INVALID CODE</strong>: You need to enter the code generated by your authenticator app. The code should be a six digit number (e.g., 123456)."
|
5527 |
+
msgstr ""
|
5528 |
+
|
5529 |
+
#: lib/wordfenceClass.php:2736
|
5530 |
+
msgid "<strong>INVALID CODE</strong>: You need to enter the code generated sent to your phone. The code should be a six digit number (e.g., 123456)."
|
5531 |
+
msgstr ""
|
5532 |
+
|
5533 |
+
#: lib/wordfenceClass.php:2782
|
5534 |
+
msgid "<strong>CODE EXPIRED. CHECK YOUR PHONE:</strong> The code you entered has expired. Codes are only valid for 30 minutes for security reasons. We have sent you a new code. Please sign in using your username, password, and the new code we sent you."
|
5535 |
+
msgstr ""
|
5536 |
+
|
5537 |
+
#: lib/wordfenceClass.php:2805
|
5538 |
+
msgid "<strong>INVALID CODE</strong>: You need to enter your password and the code we sent to your phone. The code should start with 'wf' and should be four characters (e.g., wfAB12)."
|
5539 |
+
msgstr ""
|
5540 |
+
|
5541 |
+
#: lib/wordfenceClass.php:2854
|
5542 |
+
msgid "<strong>CODE REQUIRED</strong>: Please check your authenticator app for the current code. Enter it below to sign in."
|
5543 |
+
msgstr ""
|
5544 |
+
|
5545 |
+
#: lib/wordfenceClass.php:2859
|
5546 |
+
msgid "<strong>CODE REQUIRED</strong>: Please check your authenticator app for the current code. Please sign in again and add a space, the letters <code>wf</code>, and the code to the end of your password (e.g., <code>wf123456</code>)."
|
5547 |
+
msgstr ""
|
5548 |
+
|
5549 |
+
#: lib/wordfenceClass.php:2893
|
5550 |
+
#: lib/wordfenceClass.php:2950
|
5551 |
+
msgid "<strong>CHECK YOUR PHONE</strong>: A code has been sent to your phone and will arrive within 30 seconds. Enter it below to sign in."
|
5552 |
+
msgstr ""
|
5553 |
+
|
5554 |
+
#: lib/wordfenceClass.php:2898
|
5555 |
+
msgid "<strong>CHECK YOUR PHONE</strong>: A code has been sent to your phone and will arrive within 30 seconds. Please sign in again and add a space, the letters <code>wf</code>, and the code to the end of your password (e.g., <code>wf123456</code>)."
|
5556 |
+
msgstr ""
|
5557 |
+
|
5558 |
+
#: lib/wordfenceClass.php:2955
|
5559 |
+
msgid "<strong>CHECK YOUR PHONE</strong>: A code has been sent to your phone and will arrive within 30 seconds. Please sign in again and add a space and the code to the end of your password (e.g., <code>wfABCD</code>)."
|
5560 |
+
msgstr ""
|
5561 |
+
|
5562 |
+
#: lib/wordfenceClass.php:2976
|
5563 |
+
#: lib/wordfenceClass.php:3010
|
5564 |
+
msgid "<strong>WARNING: </strong>Your login has been allowed because you have previously logged in from the same IP, but you will be blocked if your IP changes. The password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please <a href=\"%s\">change your password</a>. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More</a>"
|
5565 |
+
msgstr ""
|
5566 |
+
|
5567 |
+
#: lib/wordfenceClass.php:2991
|
5568 |
+
#: lib/wordfenceClass.php:3025
|
5569 |
+
msgid "<strong>INSECURE PASSWORD:</strong> Your login attempt has been blocked because the password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please <a href=\"%s\">reset your password</a> to reactivate your account. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More</a>"
|
5570 |
+
msgstr ""
|
5571 |
+
|
5572 |
+
#: lib/wordfenceClass.php:3000
|
5573 |
+
msgid "<strong>Cellphone Sign-in Required</strong>: Cellphone Sign-in is required for all administrator accounts. Please contact the site administrator to enable it for your account."
|
5574 |
+
msgstr ""
|
5575 |
+
|
5576 |
+
#: lib/wordfenceClass.php:3038
|
5577 |
+
msgid "Blocked by Wordfence Security Network"
|
5578 |
+
msgstr ""
|
5579 |
+
|
5580 |
+
#: lib/wordfenceClass.php:3068
|
5581 |
+
msgid "Blocked by login security setting"
|
5582 |
+
msgstr ""
|
5583 |
+
|
5584 |
+
#: lib/wordfenceClass.php:3446
|
5585 |
+
msgid "An invalid type was specified to get file."
|
5586 |
+
msgstr ""
|
5587 |
+
|
5588 |
+
#: lib/wordfenceClass.php:3462
|
5589 |
+
msgid "We could not fetch a core WordPress file from the Wordfence API."
|
5590 |
+
msgstr ""
|
5591 |
+
|
5592 |
+
#: lib/wordfenceClass.php:3521
|
5593 |
+
msgid "Wordfence Test Email"
|
5594 |
+
msgstr ""
|
5595 |
+
|
5596 |
+
#: lib/wordfenceClass.php:3521
|
5597 |
+
msgid ""
|
5598 |
+
"This is a test email from %s.\n"
|
5599 |
+
"The IP address that requested this was: %s"
|
5600 |
+
msgstr ""
|
5601 |
+
|
5602 |
+
#: lib/wordfenceClass.php:3528
|
5603 |
+
msgid "Cellphone Sign-in is only available to paid members. <a href=\"https://www.wordfence.com/gnl1twoFac3/wordfence-signup/\" target=\"_blank\" rel=\"noopener noreferrer\">Click here to upgrade now.</a>"
|
5604 |
+
msgstr ""
|
5605 |
+
|
5606 |
+
#: lib/wordfenceClass.php:3535
|
5607 |
+
msgid "The username you specified does not exist."
|
5608 |
+
msgstr ""
|
5609 |
+
|
5610 |
+
#: lib/wordfenceClass.php:3544
|
5611 |
+
msgid "The username you specified is already enabled."
|
5612 |
+
msgstr ""
|
5613 |
+
|
5614 |
+
#: lib/wordfenceClass.php:3549
|
5615 |
+
msgid "Unknown authentication mode."
|
5616 |
+
msgstr ""
|
5617 |
+
|
5618 |
+
#: lib/wordfenceClass.php:3554
|
5619 |
+
msgid "The phone number you entered must start with a '+', then country code and then area code and number. For example, a number in the United States with country code '1' would look like this: +1-123-555-1234"
|
5620 |
+
msgstr ""
|
5621 |
+
|
5622 |
+
#: lib/wordfenceClass.php:3561
|
5623 |
+
#: lib/wordfenceClass.php:3593
|
5624 |
+
msgid "Could not contact Wordfence servers to generate a verification code: %s"
|
5625 |
+
msgstr ""
|
5626 |
+
|
5627 |
+
#: lib/wordfenceClass.php:3573
|
5628 |
+
#: lib/wordfenceClass.php:3617
|
5629 |
+
msgid "Could not gen verification code: %s"
|
5630 |
+
msgstr ""
|
5631 |
+
|
5632 |
+
#: lib/wordfenceClass.php:3574
|
5633 |
+
#: lib/wordfenceClass.php:3618
|
5634 |
+
msgid "We could not generate a verification code."
|
5635 |
+
msgstr ""
|
5636 |
+
|
5637 |
+
#: lib/wordfenceClass.php:3634
|
5638 |
+
msgid "Unknown two-factor authentication mode."
|
5639 |
+
msgstr ""
|
5640 |
+
|
5641 |
+
#: lib/wordfenceClass.php:3851
|
5642 |
+
msgid "# Scan Issues"
|
5643 |
+
msgstr ""
|
5644 |
+
|
5645 |
+
#: lib/wordfenceClass.php:3856
|
5646 |
+
msgid "## New Issues (%d total)"
|
5647 |
+
msgstr ""
|
5648 |
+
|
5649 |
+
#: lib/wordfenceClass.php:3883
|
5650 |
+
msgid "## Ignored Issues (%d total)"
|
5651 |
+
msgstr ""
|
5652 |
+
|
5653 |
+
#: lib/wordfenceClass.php:3904
|
5654 |
+
msgid "No Ignored Issues"
|
5655 |
+
msgstr ""
|
5656 |
+
|
5657 |
+
#: lib/wordfenceClass.php:3926
|
5658 |
+
msgid "Wordfence Activity Log"
|
5659 |
+
msgstr ""
|
5660 |
+
|
5661 |
+
#: lib/wordfenceClass.php:4127
|
5662 |
+
msgid "All Countries"
|
5663 |
+
msgstr ""
|
5664 |
+
|
5665 |
+
#: lib/wordfenceClass.php:4130
|
5666 |
+
msgid "1 Country"
|
5667 |
+
msgstr ""
|
5668 |
+
|
5669 |
+
#: lib/wordfenceClass.php:4133
|
5670 |
+
msgid "%d Countries"
|
5671 |
+
msgstr ""
|
5672 |
+
|
5673 |
+
#: lib/wordfenceClass.php:4137
|
5674 |
+
msgid "Entire Site"
|
5675 |
+
msgstr ""
|
5676 |
+
|
5677 |
+
#: lib/wordfenceClass.php:4140
|
5678 |
+
msgid "Login Only"
|
5679 |
+
msgstr ""
|
5680 |
+
|
5681 |
+
#: lib/wordfenceClass.php:4143
|
5682 |
+
msgid "Site Except Login"
|
5683 |
+
msgstr ""
|
5684 |
+
|
5685 |
+
#: lib/wordfenceClass.php:4151
|
5686 |
+
msgid "IP Range"
|
5687 |
+
msgstr ""
|
5688 |
+
|
5689 |
+
#: lib/wordfenceClass.php:4152
|
5690 |
+
msgid "User Agent"
|
5691 |
+
msgstr ""
|
5692 |
+
|
5693 |
+
#: lib/wordfenceClass.php:4153
|
5694 |
+
#: views/blocking/blocking-create.php:201
|
5695 |
+
msgid "Referrer"
|
5696 |
+
msgstr ""
|
5697 |
+
|
5698 |
+
#: lib/wordfenceClass.php:4154
|
5699 |
+
#: views/blocking/blocking-create.php:193
|
5700 |
+
msgid "Hostname"
|
5701 |
+
msgstr ""
|
5702 |
+
|
5703 |
+
#: lib/wordfenceClass.php:4168
|
5704 |
+
msgid "Permanent"
|
5705 |
+
msgstr ""
|
5706 |
+
|
5707 |
+
#: lib/wordfenceClass.php:4240
|
5708 |
+
msgid "An error occurred while creating the block."
|
5709 |
+
msgstr ""
|
5710 |
+
|
5711 |
+
#: lib/wordfenceClass.php:4246
|
5712 |
+
msgid "No block parameters were provided."
|
5713 |
+
msgstr ""
|
5714 |
+
|
5715 |
+
#: lib/wordfenceClass.php:4278
|
5716 |
+
#: lib/wordfenceClass.php:4310
|
5717 |
+
msgid "No blocks were provided."
|
5718 |
+
msgstr ""
|
5719 |
+
|
5720 |
+
#: lib/wordfenceClass.php:4342
|
5721 |
+
msgid "The license provided is already in use on another site."
|
5722 |
+
msgstr ""
|
5723 |
+
|
5724 |
+
#: lib/wordfenceClass.php:4347
|
5725 |
+
msgid "The Wordfence activation server returned an unexpected response. Please try again."
|
5726 |
+
msgstr ""
|
5727 |
+
|
5728 |
+
#: lib/wordfenceClass.php:4353
|
5729 |
+
msgid "We received an error while trying to activate the license with the Wordfence servers: "
|
5730 |
+
msgstr ""
|
5731 |
+
|
5732 |
+
#: lib/wordfenceClass.php:4366
|
5733 |
+
msgid "No license was provided to install."
|
5734 |
+
msgstr ""
|
5735 |
+
|
5736 |
+
#: lib/wordfenceClass.php:4417
|
5737 |
+
msgid "An unknown configuration section was provided."
|
5738 |
+
msgstr ""
|
5739 |
+
|
5740 |
+
#: lib/wordfenceClass.php:4423
|
5741 |
+
msgid "No configuration section was provided."
|
5742 |
+
msgstr ""
|
5743 |
+
|
5744 |
+
#: lib/wordfenceClass.php:4469
|
5745 |
+
#: lib/wordfenceClass.php:4474
|
5746 |
+
msgid "An error occurred while saving the configuration."
|
5747 |
+
msgstr ""
|
5748 |
+
|
5749 |
+
#: lib/wordfenceClass.php:4485
|
5750 |
+
msgid "No configuration changes were provided to save."
|
5751 |
+
msgstr ""
|
5752 |
+
|
5753 |
+
#: lib/wordfenceClass.php:4588
|
5754 |
+
msgid "Manual permanent block by admin"
|
5755 |
+
msgstr ""
|
5756 |
+
|
5757 |
+
#: lib/wordfenceClass.php:4754
|
5758 |
+
msgid "Idle"
|
5759 |
+
msgstr ""
|
5760 |
+
|
5761 |
+
#: lib/wordfenceClass.php:4763
|
5762 |
+
msgid "Scan completed on %s"
|
5763 |
+
msgstr ""
|
5764 |
+
|
5765 |
+
#: lib/wordfenceClass.php:4770
|
5766 |
+
msgid "Last scan failed"
|
5767 |
+
msgstr ""
|
5768 |
+
|
5769 |
+
#: lib/wordfenceClass.php:4837
|
5770 |
+
msgid "The current scan looks like it has failed. Its last status update was <span id=\"wf-scan-failed-time-ago\">%s</span> ago. You may continue to wait in case it resumes or stop and restart the scan. Some sites may need adjustments to run scans reliably."
|
5771 |
+
msgstr ""
|
5772 |
+
|
5773 |
+
#: lib/wordfenceClass.php:4837
|
5774 |
+
#: lib/wordfenceClass.php:4845
|
5775 |
+
#: lib/wordfenceClass.php:4864
|
5776 |
+
#: lib/wordfenceClass.php:4876
|
5777 |
+
#: lib/wordfenceClass.php:4884
|
5778 |
+
msgid "Click here for steps you can try."
|
5779 |
+
msgstr ""
|
5780 |
+
|
5781 |
+
#: lib/wordfenceClass.php:4838
|
5782 |
+
msgid "Cancel Scan"
|
5783 |
+
msgstr ""
|
5784 |
+
|
5785 |
+
#: lib/wordfenceClass.php:4845
|
5786 |
+
msgid "The previous scan has failed. Some sites may need adjustments to run scans reliably."
|
5787 |
+
msgstr ""
|
5788 |
+
|
5789 |
+
#: lib/wordfenceClass.php:4851
|
5790 |
+
msgid "The previous scan has terminated because the time limit of %s was reached. This limit can be customized on the options page."
|
5791 |
+
msgstr ""
|
5792 |
+
|
5793 |
+
#: lib/wordfenceClass.php:4857
|
5794 |
+
msgid "The previous scan has terminated because we detected an update occurring during the scan."
|
5795 |
+
msgstr ""
|
5796 |
+
|
5797 |
+
#: lib/wordfenceClass.php:4864
|
5798 |
+
msgid "The scan has failed to start. This is often because the site either cannot make outbound requests or is blocked from connecting to itself."
|
5799 |
+
msgstr ""
|
5800 |
+
|
5801 |
+
#: lib/wordfenceClass.php:4870
|
5802 |
+
msgid "Scans are not functional because SSL is unavailable."
|
5803 |
+
msgstr ""
|
5804 |
+
|
5805 |
+
#: lib/wordfenceClass.php:4876
|
5806 |
+
msgid "The scan has failed because we were unable to contact the Wordfence servers. Some sites may need adjustments to run scans reliably."
|
5807 |
+
msgstr ""
|
5808 |
+
|
5809 |
+
#: lib/wordfenceClass.php:4884
|
5810 |
+
msgid "The scan has failed because we received an unexpected response from the Wordfence servers. This may be a temporary error, though some sites may need adjustments to run scans reliably."
|
5811 |
+
msgstr ""
|
5812 |
+
|
5813 |
+
#: lib/wordfenceClass.php:4936
|
5814 |
+
#: lib/wordfenceClass.php:5052
|
5815 |
+
msgid "Deleting an infected wp-config.php file must be done outside of Wordfence. The wp-config.php file contains your database credentials, which you will need to restore normal site operations. Your site will NOT function once the wp-config.php file has been deleted."
|
5816 |
+
msgstr ""
|
5817 |
+
|
5818 |
+
#: lib/wordfenceClass.php:4945
|
5819 |
+
msgid "Could not delete file %s. Error was: %s"
|
5820 |
+
msgstr ""
|
5821 |
+
|
5822 |
+
#: lib/wordfenceClass.php:4969
|
5823 |
+
msgid "We could not retrieve the original file of %s to do a repair."
|
5824 |
+
msgstr ""
|
5825 |
+
|
5826 |
+
#: lib/wordfenceClass.php:4974
|
5827 |
+
msgid "An invalid file %s was specified for repair."
|
5828 |
+
msgstr ""
|
5829 |
+
|
5830 |
+
#: lib/wordfenceClass.php:4982
|
5831 |
+
msgid "You don't have permission to repair %s. You need to either fix the file manually using FTP or change the file permissions and ownership so that your web server has write access to repair the file."
|
5832 |
+
msgstr ""
|
5833 |
+
|
5834 |
+
#: lib/wordfenceClass.php:4985
|
5835 |
+
msgid "We could not write to %s. The error was: %s"
|
5836 |
+
msgstr ""
|
5837 |
+
|
5838 |
+
#: lib/wordfenceClass.php:4996
|
5839 |
+
msgid "We could not write to %s. (%d bytes written) You may not have permission to modify files on your WordPress server."
|
5840 |
+
msgstr ""
|
5841 |
+
|
5842 |
+
#: lib/wordfenceClass.php:5008
|
5843 |
+
msgid "Deleted some files with errors"
|
5844 |
+
msgstr ""
|
5845 |
+
|
5846 |
+
#: lib/wordfenceClass.php:5008
|
5847 |
+
msgid "Repaired some files with errors"
|
5848 |
+
msgstr ""
|
5849 |
+
|
5850 |
+
#: lib/wordfenceClass.php:5009
|
5851 |
+
msgid "Deleted %d files but we encountered the following errors with other files: %s"
|
5852 |
+
msgstr ""
|
5853 |
+
|
5854 |
+
#: lib/wordfenceClass.php:5009
|
5855 |
+
msgid "Repaired %d files but we encountered the following errors with other files: %s"
|
5856 |
+
msgstr ""
|
5857 |
+
|
5858 |
+
#: lib/wordfenceClass.php:5012
|
5859 |
+
msgid "Deleted %d files successfully"
|
5860 |
+
msgstr ""
|
5861 |
+
|
5862 |
+
#: lib/wordfenceClass.php:5012
|
5863 |
+
msgid "Repaired %d files successfully"
|
5864 |
+
msgstr ""
|
5865 |
+
|
5866 |
+
#: lib/wordfenceClass.php:5013
|
5867 |
+
msgid "Deleted %d files successfully. No errors were encountered."
|
5868 |
+
msgstr ""
|
5869 |
+
|
5870 |
+
#: lib/wordfenceClass.php:5013
|
5871 |
+
msgid "Repaired %d files successfully. No errors were encountered."
|
5872 |
+
msgstr ""
|
5873 |
+
|
5874 |
+
#: lib/wordfenceClass.php:5016
|
5875 |
+
msgid "Could not delete files"
|
5876 |
+
msgstr ""
|
5877 |
+
|
5878 |
+
#: lib/wordfenceClass.php:5016
|
5879 |
+
msgid "Could not repair files"
|
5880 |
+
msgstr ""
|
5881 |
+
|
5882 |
+
#: lib/wordfenceClass.php:5017
|
5883 |
+
msgid "We could not delete any of the files you selected. We encountered the following errors: %s"
|
5884 |
+
msgstr ""
|
5885 |
+
|
5886 |
+
#: lib/wordfenceClass.php:5017
|
5887 |
+
msgid "We could not repair any of the files you selected. We encountered the following errors: %s"
|
5888 |
+
msgstr ""
|
5889 |
+
|
5890 |
+
#: lib/wordfenceClass.php:5020
|
5891 |
+
msgid "Nothing done"
|
5892 |
+
msgstr ""
|
5893 |
+
|
5894 |
+
#: lib/wordfenceClass.php:5021
|
5895 |
+
msgid "We didn't delete anything and no errors were found."
|
5896 |
+
msgstr ""
|
5897 |
+
|
5898 |
+
#: lib/wordfenceClass.php:5021
|
5899 |
+
msgid "We didn't repair anything and no errors were found."
|
5900 |
+
msgstr ""
|
5901 |
+
|
5902 |
+
#: lib/wordfenceClass.php:5029
|
5903 |
+
msgid "Invalid bulk operation selected"
|
5904 |
+
msgstr ""
|
5905 |
+
|
5906 |
+
#: lib/wordfenceClass.php:5039
|
5907 |
+
msgid "Could not delete file because we could not find that issue."
|
5908 |
+
msgstr ""
|
5909 |
+
|
5910 |
+
#: lib/wordfenceClass.php:5042
|
5911 |
+
msgid "Could not delete file because that issue does not appear to be a file related issue."
|
5912 |
+
msgstr ""
|
5913 |
+
|
5914 |
+
#: lib/wordfenceClass.php:5048
|
5915 |
+
msgid "An invalid file was requested for deletion."
|
5916 |
+
msgstr ""
|
5917 |
+
|
5918 |
+
#: lib/wordfenceClass.php:5920
|
5919 |
+
#: views/dashboard/options-group-import.php:167
|
5920 |
+
msgid "Reload"
|
5921 |
+
msgstr ""
|
5922 |
+
|
5923 |
+
#: lib/wordfenceClass.php:5955
|
5924 |
+
msgid "The Wordfence Web Application Firewall cannot run."
|
5925 |
+
msgstr ""
|
5926 |
+
|
5927 |
+
#: lib/wordfenceClass.php:5968
|
5928 |
+
#: lib/wordfenceClass.php:5981
|
5929 |
+
msgid "The Wordfence Web Application Firewall needs a configuration update."
|
5930 |
+
msgstr ""
|
5931 |
+
|
5932 |
+
#: lib/wordfenceClass.php:5984
|
5933 |
+
msgid "The Wordfence Web Application Firewall is in read-only mode."
|
5934 |
+
msgstr ""
|
5935 |
+
|
5936 |
+
#: lib/wordfenceClass.php:6102
|
5937 |
+
msgid "The last rules update for the Wordfence Web Application Firewall was unsuccessful. The last successful update check was %s, so this site may be missing new rules added since then."
|
5938 |
+
msgstr ""
|
5939 |
+
|
5940 |
+
#: lib/wordfenceClass.php:6106
|
5941 |
+
msgid "You may wait for the next automatic attempt at %s or try to <a href=\"%s\">Manually Update</a> by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
5942 |
+
msgstr ""
|
5943 |
+
|
5944 |
+
#: lib/wordfenceClass.php:6109
|
5945 |
+
msgid "You may wait for the next automatic attempt or try to <a href=\"%s\">Manually Update</a> by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
5946 |
+
msgstr ""
|
5947 |
+
|
5948 |
+
#: lib/wordfenceClass.php:6114
|
5949 |
+
msgid "You may wait for the next automatic attempt at %s or log into the parent site to manually update by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
5950 |
+
msgstr ""
|
5951 |
+
|
5952 |
+
#: lib/wordfenceClass.php:6117
|
5953 |
+
msgid "You may wait for the next automatic attempt or log into the parent site to manually update by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
5954 |
+
msgstr ""
|
5955 |
+
|
5956 |
+
#: lib/wordfenceClass.php:6700
|
5957 |
+
msgid ""
|
5958 |
+
"User IP: %s\n"
|
5959 |
+
""
|
5960 |
+
msgstr ""
|
5961 |
+
|
5962 |
+
#: lib/wordfenceClass.php:6703
|
5963 |
+
msgid ""
|
5964 |
+
"User hostname: %s\n"
|
5965 |
+
""
|
5966 |
+
msgstr ""
|
5967 |
+
|
5968 |
+
#: lib/wordfenceClass.php:6707
|
5969 |
+
msgid "User location: "
|
5970 |
+
msgstr ""
|
5971 |
+
|
5972 |
+
#: lib/wordfenceClass.php:6762
|
5973 |
+
msgid "No longer an administrator for this site? Click here to stop receiving security alerts: %s"
|
5974 |
+
msgstr ""
|
5975 |
+
|
5976 |
+
#: lib/wordfenceClass.php:6821
|
5977 |
+
msgid "Invalid email address provided."
|
5978 |
+
msgstr ""
|
5979 |
+
|
5980 |
+
#: lib/wordfenceClass.php:6865
|
5981 |
+
msgid "<strong>ERROR</strong>: Incorrect username or password."
|
5982 |
+
msgstr ""
|
5983 |
+
|
5984 |
+
#: lib/wordfenceClass.php:7558
|
5985 |
+
#: lib/wordfenceClass.php:7655
|
5986 |
+
msgid "A valid server configuration was not provided."
|
5987 |
+
msgstr ""
|
5988 |
+
|
5989 |
+
#: lib/wordfenceClass.php:7569
|
5990 |
+
#: lib/wordfenceClass.php:7676
|
5991 |
+
msgid "Filesystem Credentials Required"
|
5992 |
+
msgstr ""
|
5993 |
+
|
5994 |
+
#: lib/wordfenceClass.php:7571
|
5995 |
+
#: lib/wordfenceClass.php:7595
|
5996 |
+
#: lib/wordfenceClass.php:7639
|
5997 |
+
#: views/waf/waf-install.php:13
|
5998 |
+
msgid "If you cannot complete the setup process, <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%s\">click here for help</a>"
|
5999 |
+
msgstr ""
|
6000 |
+
|
6001 |
+
#: lib/wordfenceClass.php:7572
|
6002 |
+
msgid "Once you have entered credentials, click Continue to complete the setup."
|
6003 |
+
msgstr ""
|
6004 |
+
|
6005 |
+
#: lib/wordfenceClass.php:7593
|
6006 |
+
#: lib/wordfenceClass.php:7701
|
6007 |
+
msgid "Filesystem Permission Error"
|
6008 |
+
msgstr ""
|
6009 |
+
|
6010 |
+
#: lib/wordfenceClass.php:7619
|
6011 |
+
msgid "Manual Installation Instructions"
|
6012 |
+
msgstr ""
|
6013 |
+
|
6014 |
+
#: lib/wordfenceClass.php:7626
|
6015 |
+
msgid "Installation Successful"
|
6016 |
+
msgstr ""
|
6017 |
+
|
6018 |
+
#: lib/wordfenceClass.php:7637
|
6019 |
+
msgid "Installation Failed"
|
6020 |
+
msgstr ""
|
6021 |
+
|
6022 |
+
#: lib/wordfenceClass.php:7678
|
6023 |
+
#: lib/wordfenceClass.php:7703
|
6024 |
+
#: lib/wordfenceClass.php:7734
|
6025 |
+
#: lib/wordfenceClass.php:7763
|
6026 |
+
#: lib/wordfenceClass.php:7809
|
6027 |
+
#: views/waf/waf-uninstall.php:13
|
6028 |
+
msgid "If you cannot complete the uninstall process, <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%s\">click here for help</a>"
|
6029 |
+
msgstr ""
|
6030 |
+
|
6031 |
+
#: lib/wordfenceClass.php:7679
|
6032 |
+
msgid "Once you have entered credentials, click Continue to complete uninstallation."
|
6033 |
+
msgstr ""
|
6034 |
+
|
6035 |
+
#: lib/wordfenceClass.php:7723
|
6036 |
+
msgid "The <code>auto_prepend_file</code> setting has been successfully removed from <code>.htaccess</code> and <code>.user.ini</code>. Once this change takes effect, Extended Protection Mode will be disabled."
|
6037 |
+
msgstr ""
|
6038 |
+
|
6039 |
+
#: lib/wordfenceClass.php:7725
|
6040 |
+
msgid "Any previous value for <code>auto_prepend_file</code> will need to be re-enabled manually if still needed."
|
6041 |
+
msgstr ""
|
6042 |
+
|
6043 |
+
#: lib/wordfenceClass.php:7729
|
6044 |
+
msgid "Waiting for it to take effect. This may take up to %s."
|
6045 |
+
msgstr ""
|
6046 |
+
|
6047 |
+
#: lib/wordfenceClass.php:7732
|
6048 |
+
msgid "Waiting for Changes"
|
6049 |
+
msgstr ""
|
6050 |
+
|
6051 |
+
#: lib/wordfenceClass.php:7754
|
6052 |
+
msgid "Extended Protection Mode has not been disabled. This may be because <code>auto_prepend_file</code> is configured somewhere else or the value is still cached by PHP."
|
6053 |
+
msgstr ""
|
6054 |
+
|
6055 |
+
#: lib/wordfenceClass.php:7756
|
6056 |
+
msgid "Retrying Failed."
|
6057 |
+
msgstr ""
|
6058 |
+
|
6059 |
+
#: lib/wordfenceClass.php:7758
|
6060 |
+
msgid "Try Again"
|
6061 |
+
msgstr ""
|
6062 |
+
|
6063 |
+
#: lib/wordfenceClass.php:7761
|
6064 |
+
msgid "Unable to Uninstall"
|
6065 |
+
msgstr ""
|
6066 |
+
|
6067 |
+
#: lib/wordfenceClass.php:7797
|
6068 |
+
msgid "Uninstallation Complete"
|
6069 |
+
msgstr ""
|
6070 |
+
|
6071 |
+
#: lib/wordfenceClass.php:7807
|
6072 |
+
msgid "Uninstallation Failed"
|
6073 |
+
msgstr ""
|
6074 |
+
|
6075 |
+
#: lib/wordfenceClass.php:8472
|
6076 |
+
msgid ""
|
6077 |
+
"To make your site as secure as possible, take a moment to optimize the Wordfence Web\n"
|
6078 |
+
"\t\tApplication Firewall:"
|
6079 |
+
msgstr ""
|
6080 |
+
|
6081 |
+
#: lib/wordfenceClass.php:8473
|
6082 |
+
msgid "Click here to configure"
|
6083 |
+
msgstr ""
|
6084 |
+
|
6085 |
+
#: lib/wordfenceClass.php:8474
|
6086 |
+
msgid "Dismiss"
|
6087 |
+
msgstr ""
|
6088 |
+
|
6089 |
+
#: lib/wordfenceClass.php:8476
|
6090 |
+
msgid "If you cannot complete the setup process, <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%s\">click here for help</a>."
|
6091 |
+
msgstr ""
|
6092 |
+
|
6093 |
+
#: lib/wordfenceClass.php:8643
|
6094 |
+
msgid "Auth grant is invalid."
|
6095 |
+
msgstr ""
|
6096 |
+
|
6097 |
+
#: lib/wordfenceClass.php:8658
|
6098 |
+
msgid "Invalid response from Wordfence Central: %s"
|
6099 |
+
msgstr ""
|
6100 |
+
|
6101 |
+
#: lib/wordfenceClass.php:8664
|
6102 |
+
#: lib/wordfenceClass.php:8677
|
6103 |
+
msgid "Invalid response from Wordfence Central. Parameter %s not found in response."
|
6104 |
+
msgstr ""
|
6105 |
+
|
6106 |
+
#: lib/wordfenceClass.php:8706
|
6107 |
+
#: lib/wordfenceClass.php:8843
|
6108 |
+
msgid "Access token not found."
|
6109 |
+
msgstr ""
|
6110 |
+
|
6111 |
+
#: lib/wordfenceClass.php:8751
|
6112 |
+
#: lib/wordfenceClass.php:8818
|
6113 |
+
msgid "Invalid response from Wordfence Central."
|
6114 |
+
msgstr ""
|
6115 |
+
|
6116 |
+
#: lib/wordfenceClass.php:8794
|
6117 |
+
msgid "Auth grant not found."
|
6118 |
+
msgstr ""
|
6119 |
+
|
6120 |
+
#: lib/wordfenceHash.php:600
|
6121 |
+
msgid "Old WordPress core file not removed during update: %s"
|
6122 |
+
msgstr ""
|
6123 |
+
|
6124 |
+
#: lib/wordfenceHash.php:601
|
6125 |
+
msgid "This file is in a WordPress core location but is from an older version of WordPress and not used with your current version. Hosting or permissions issues can cause these files to get left behind when WordPress is updated and they should be removed if possible."
|
6126 |
+
msgstr ""
|
6127 |
+
|
6128 |
+
#: lib/wordfenceHash.php:617
|
6129 |
+
#: lib/wordfenceHash.php:637
|
6130 |
+
msgid "Unknown file in WordPress core: %s"
|
6131 |
+
msgstr ""
|
6132 |
+
|
6133 |
+
#: lib/wordfenceHash.php:618
|
6134 |
+
msgid "This file is in a WordPress core location but is not distributed with this version of WordPress. This scan often includes files left over from a previous WordPress version, but it may also find files added by another plugin, files added by your host, or malicious files added by an attacker."
|
6135 |
+
msgstr ""
|
6136 |
+
|
6137 |
+
#: lib/wordfenceHash.php:638
|
6138 |
+
msgid "This file is in a WordPress core location but is not distributed with this version of WordPress. This scan often includes files left over from a previous WordPress version, but it may also find files added by another plugin, files added by your host, or malicious files added by an attacker. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More</a>"
|
6139 |
+
msgstr ""
|
6140 |
+
|
6141 |
+
#: lib/wordfenceHash.php:745
|
6142 |
+
msgid "(+ %d more)"
|
6143 |
+
msgstr ""
|
6144 |
+
|
6145 |
+
#: lib/wordfenceHash.php:746
|
6146 |
+
msgid "%d more similar files were found."
|
6147 |
+
msgstr ""
|
6148 |
+
|
6149 |
+
#: lib/wordfenceHash.php:746
|
6150 |
+
msgid "1 more similar file was found."
|
6151 |
+
msgstr ""
|
6152 |
+
|
6153 |
+
#: lib/wordfenceHash.php:746
|
6154 |
+
msgid "<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More</a>"
|
6155 |
+
msgstr ""
|
6156 |
+
|
6157 |
+
#: lib/wordfenceScanner.php:87
|
6158 |
+
msgid "Wordfence could not get the attack signature patterns from the scanning server."
|
6159 |
+
msgstr ""
|
6160 |
+
|
6161 |
+
#: lib/wordfenceScanner.php:106
|
6162 |
+
msgid "Wordfence received malformed attack signature patterns from the scanning server."
|
6163 |
+
msgstr ""
|
6164 |
+
|
6165 |
+
#: lib/wordfenceScanner.php:112
|
6166 |
+
msgid "A regex Wordfence received from its servers is invalid. The pattern is: "
|
6167 |
+
msgstr ""
|
6168 |
+
|
6169 |
+
#: lib/wordfenceScanner.php:214
|
6170 |
+
msgid "Backtrack limit is %d, reducing to 1000000"
|
6171 |
+
msgstr ""
|
6172 |
+
|
6173 |
+
#: lib/wordfenceScanner.php:227
|
6174 |
+
msgid "Detected loop in malware scan, aborting."
|
6175 |
+
msgstr ""
|
6176 |
+
|
6177 |
+
#: lib/wordfenceScanner.php:234
|
6178 |
+
msgid "No files remaining for malware scan."
|
6179 |
+
msgstr ""
|
6180 |
+
|
6181 |
+
#: lib/wordfenceScanner.php:298
|
6182 |
+
msgid "Encountered file that is too large: %s - Skipping."
|
6183 |
+
msgstr ""
|
6184 |
+
|
6185 |
+
#: lib/wordfenceScanner.php:307
|
6186 |
+
msgid "Scanning contents: %s (Size: %s Mem: %s)"
|
6187 |
+
msgstr ""
|
6188 |
+
|
6189 |
+
#: lib/wordfenceScanner.php:309
|
6190 |
+
msgid "Scanning contents: %s (Size: %s)"
|
6191 |
+
msgstr ""
|
6192 |
+
|
6193 |
+
#: lib/wordfenceScanner.php:339
|
6194 |
+
msgid "This file was detected because you have enabled \"Scan images, binary, and other files as if they were executable\", which treats non-PHP files as if they were PHP code. This option is more aggressive than the usual scans, and may cause false positives."
|
6195 |
+
msgstr ""
|
6196 |
+
|
6197 |
+
#: lib/wordfenceScanner.php:342
|
6198 |
+
msgid "This file was detected because you have enabled HIGH SENSITIVITY scanning. This option is more aggressive than the usual scans, and may cause false positives."
|
6199 |
+
msgstr ""
|
6200 |
+
|
6201 |
+
#: lib/wordfenceScanner.php:353
|
6202 |
+
msgid "File is an old version of TimThumb which is vulnerable."
|
6203 |
+
msgstr ""
|
6204 |
+
|
6205 |
+
#: lib/wordfenceScanner.php:354
|
6206 |
+
msgid "This file appears to be an old version of the TimThumb script which makes your system vulnerable to attackers. Please upgrade the theme or plugin that uses this or remove it."
|
6207 |
+
msgstr ""
|
6208 |
+
|
6209 |
+
#: lib/wordfenceScanner.php:375
|
6210 |
+
msgid "Resuming malware scan at rule %s."
|
6211 |
+
msgstr ""
|
6212 |
+
|
6213 |
+
#: lib/wordfenceScanner.php:383
|
6214 |
+
msgid "This file appears to be installed or modified by a hacker to perform malicious activity. If you know about this file you can choose to ignore it to exclude it from future scans."
|
6215 |
+
msgstr ""
|
6216 |
+
|
6217 |
+
#: lib/wordfenceScanner.php:420
|
6218 |
+
msgid "File appears to be malicious or unsafe: "
|
6219 |
+
msgstr ""
|
6220 |
+
|
6221 |
+
#: lib/wordfenceScanner.php:421
|
6222 |
+
msgid "The matched text in this file is:"
|
6223 |
+
msgstr ""
|
6224 |
+
|
6225 |
+
#: lib/wordfenceScanner.php:421
|
6226 |
+
msgid "The issue type is: <strong>%s</strong>"
|
6227 |
+
msgstr ""
|
6228 |
+
|
6229 |
+
#: lib/wordfenceScanner.php:421
|
6230 |
+
msgid "Description: <strong>%s</strong>"
|
6231 |
+
msgstr ""
|
6232 |
+
|
6233 |
+
#: lib/wordfenceScanner.php:439
|
6234 |
+
msgid "Forking during malware scan (%s) to ensure continuity."
|
6235 |
+
msgstr ""
|
6236 |
+
|
6237 |
+
#: lib/wordfenceScanner.php:461
|
6238 |
+
msgid "This file may contain malicious executable code: "
|
6239 |
+
msgstr ""
|
6240 |
+
|
6241 |
+
#: lib/wordfenceScanner.php:462
|
6242 |
+
msgid "This file is a PHP executable file and contains the word \"eval\" (without quotes) and the word \"<span class=\"wf-split-word\">%s</span>\" (without quotes). The eval() function along with an encoding function like the one mentioned are commonly used by hackers to hide their code. If you know about this file you can choose to ignore it to exclude it from future scans. This file was detected because you have enabled HIGH SENSITIVITY scanning. This option is more aggressive than the usual scans, and may cause false positives."
|
6243 |
+
msgstr ""
|
6244 |
+
|
6245 |
+
#: lib/wordfenceScanner.php:499
|
6246 |
+
msgid "Asking Wordfence to check URLs against malware list."
|
6247 |
+
msgstr ""
|
6248 |
+
|
6249 |
+
#: lib/wordfenceScanner.php:527
|
6250 |
+
#: lib/wordfenceScanner.php:563
|
6251 |
+
msgid "File contains suspected malware URL: "
|
6252 |
+
msgstr ""
|
6253 |
+
|
6254 |
+
#: lib/wordfenceScanner.php:528
|
6255 |
+
msgid "This file contains a suspected malware URL listed on Google's list of malware sites. Wordfence decodes %s when scanning files so the URL may not be visible if you view this file. The URL is: %s - More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page</a>."
|
6256 |
+
msgstr ""
|
6257 |
+
|
6258 |
+
#: lib/wordfenceScanner.php:545
|
6259 |
+
msgid "File contains suspected phishing URL: "
|
6260 |
+
msgstr ""
|
6261 |
+
|
6262 |
+
#: lib/wordfenceScanner.php:546
|
6263 |
+
msgid "This file contains a URL that is a suspected phishing site that is currently listed on Google's list of known phishing sites. The URL is: "
|
6264 |
+
msgstr ""
|
6265 |
+
|
6266 |
+
#: lib/wordfenceScanner.php:564
|
6267 |
+
msgid "This file contains a URL that is currently listed on Wordfence's domain blacklist. The URL is: "
|
6268 |
+
msgstr ""
|
6269 |
+
|
6270 |
+
#: lib/wordfenceScanner.php:580
|
6271 |
+
msgid "Finalizing malware scan results"
|
6272 |
+
msgstr ""
|
6273 |
+
|
6274 |
+
#: lib/wordfenceScanner.php:600
|
6275 |
+
msgid "Scanned contents of %d additional files at %.2f per second"
|
6276 |
+
msgstr ""
|
6277 |
+
|
6278 |
+
#: models/block/wfBlock.php:84
|
6279 |
+
msgid "IP Block"
|
6280 |
+
msgstr ""
|
6281 |
+
|
6282 |
+
#: models/block/wfBlock.php:86
|
6283 |
+
msgid "IP Throttled"
|
6284 |
+
msgstr ""
|
6285 |
+
|
6286 |
+
#: models/block/wfBlock.php:88
|
6287 |
+
msgid "Lockout"
|
6288 |
+
msgstr ""
|
6289 |
+
|
6290 |
+
#: models/block/wfBlock.php:90
|
6291 |
+
msgid "Country Block"
|
6292 |
+
msgstr ""
|
6293 |
+
|
6294 |
+
#: models/block/wfBlock.php:92
|
6295 |
+
msgid "Advanced Block"
|
6296 |
+
msgstr ""
|
6297 |
+
|
6298 |
+
#: models/block/wfBlock.php:174
|
6299 |
+
msgid "Invalid block type."
|
6300 |
+
msgstr ""
|
6301 |
+
|
6302 |
+
#: models/block/wfBlock.php:175
|
6303 |
+
msgid "Invalid block duration."
|
6304 |
+
msgstr ""
|
6305 |
+
|
6306 |
+
#: models/block/wfBlock.php:176
|
6307 |
+
msgid "A block reason must be provided."
|
6308 |
+
msgstr ""
|
6309 |
+
|
6310 |
+
#: models/block/wfBlock.php:179
|
6311 |
+
msgid "Invalid IP address."
|
6312 |
+
msgstr ""
|
6313 |
+
|
6314 |
+
#: models/block/wfBlock.php:180
|
6315 |
+
msgid "This IP address is in a range of addresses that Wordfence does not block. The IP range may be internal or belong to a service that is always allowed. Whitelisting of external services can be disabled. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More</a>"
|
6316 |
+
msgstr ""
|
6317 |
+
|
6318 |
+
#: models/block/wfBlock.php:183
|
6319 |
+
#: models/block/wfBlock.php:184
|
6320 |
+
msgid "Nothing selected to block."
|
6321 |
+
msgstr ""
|
6322 |
+
|
6323 |
+
#: models/block/wfBlock.php:185
|
6324 |
+
msgid "No countries selected."
|
6325 |
+
msgstr ""
|
6326 |
+
|
6327 |
+
#: models/block/wfBlock.php:190
|
6328 |
+
msgid "An invalid country was selected."
|
6329 |
+
msgstr ""
|
6330 |
+
|
6331 |
+
#: models/block/wfBlock.php:200
|
6332 |
+
msgid "Ranges mixing IPv4 and IPv6 addresses are not supported."
|
6333 |
+
msgstr ""
|
6334 |
+
|
6335 |
+
#: models/block/wfBlock.php:206
|
6336 |
+
msgid "Invalid IP range."
|
6337 |
+
msgstr ""
|
6338 |
+
|
6339 |
+
#: models/block/wfBlock.php:214
|
6340 |
+
msgid "Invalid hostname."
|
6341 |
+
msgstr ""
|
6342 |
+
|
6343 |
+
#: models/block/wfBlock.php:219
|
6344 |
+
msgid "No block parameters provided."
|
6345 |
+
msgstr ""
|
6346 |
+
|
6347 |
+
#: models/firewall/wfFirewall.php:38
|
6348 |
+
#: views/waf/options-group-basic-firewall.php:47
|
6349 |
+
msgid "Learning Mode"
|
6350 |
+
msgstr ""
|
6351 |
+
|
6352 |
+
#: models/firewall/wfFirewall.php:46
|
6353 |
+
msgid "Extended Protection"
|
6354 |
+
msgstr ""
|
6355 |
+
|
6356 |
+
#: models/firewall/wfFirewall.php:49
|
6357 |
+
msgid "Basic Protection"
|
6358 |
+
msgstr ""
|
6359 |
+
|
6360 |
+
#: models/firewall/wfFirewall.php:199
|
6361 |
+
#: models/firewall/wfFirewall.php:367
|
6362 |
+
#: models/firewall/wfFirewall.php:404
|
6363 |
+
msgid "Enable firewall."
|
6364 |
+
msgstr ""
|
6365 |
+
|
6366 |
+
#: models/firewall/wfFirewall.php:210
|
6367 |
+
msgid "Enable Premium Rules."
|
6368 |
+
msgstr ""
|
6369 |
+
|
6370 |
+
#: models/firewall/wfFirewall.php:244
|
6371 |
+
msgid "Optimize the Wordfence Firewall."
|
6372 |
+
msgstr ""
|
6373 |
+
|
6374 |
+
#: models/firewall/wfFirewall.php:252
|
6375 |
+
msgid "Enable Rate Limiting and Advanced Blocking."
|
6376 |
+
msgstr ""
|
6377 |
+
|
6378 |
+
#: models/firewall/wfFirewall.php:263
|
6379 |
+
msgid "Repair the Wordfence Firewall configuration."
|
6380 |
+
msgstr ""
|
6381 |
+
|
6382 |
+
#: models/firewall/wfFirewall.php:395
|
6383 |
+
msgctxt "wordfence"
|
6384 |
+
msgid "Re-enable %d firewall rule."
|
6385 |
+
msgid_plural "Re-enable %d firewall rules."
|
6386 |
+
msgstr[0] ""
|
6387 |
+
msgstr[1] ""
|
6388 |
+
|
6389 |
+
#: models/firewall/wfFirewall.php:452
|
6390 |
+
msgid "Enable Firewall."
|
6391 |
+
msgstr ""
|
6392 |
+
|
6393 |
+
#: models/firewall/wfFirewall.php:461
|
6394 |
+
#: models/firewall/wfFirewall.php:470
|
6395 |
+
msgid "Enable Real-Time IP Blacklist."
|
6396 |
+
msgstr ""
|
6397 |
+
|
6398 |
+
#: models/firewall/wfFirewall.php:569
|
6399 |
+
msgid "Enable Real-Time Wordfence Security Network."
|
6400 |
+
msgstr ""
|
6401 |
+
|
6402 |
+
#: models/firewall/wfFirewall.php:575
|
6403 |
+
msgid "Enforce Strong Passwords."
|
6404 |
+
msgstr ""
|
6405 |
+
|
6406 |
+
#: models/firewall/wfFirewall.php:581
|
6407 |
+
msgid "Enable Mask Login Errors."
|
6408 |
+
msgstr ""
|
6409 |
+
|
6410 |
+
#: models/firewall/wfFirewall.php:587
|
6411 |
+
msgid "Enable Block Admin Registration."
|
6412 |
+
msgstr ""
|
6413 |
+
|
6414 |
+
#: models/firewall/wfFirewall.php:593
|
6415 |
+
msgid "Disable Author Scanning."
|
6416 |
+
msgstr ""
|
6417 |
+
|
6418 |
+
#: models/firewall/wfFirewall.php:599
|
6419 |
+
msgid "Enable Brute Force Protection."
|
6420 |
+
msgstr ""
|
6421 |
+
|
6422 |
+
#: models/page/wfPage.php:101
|
6423 |
+
msgid "Dashboard"
|
6424 |
+
msgstr ""
|
6425 |
+
|
6426 |
+
#: models/page/wfPage.php:127
|
6427 |
+
msgid "Support"
|
6428 |
+
msgstr ""
|
6429 |
+
|
6430 |
+
#: models/scanner/wfScanner.php:116
|
6431 |
+
msgid "Quick"
|
6432 |
+
msgstr ""
|
6433 |
+
|
6434 |
+
#: models/scanner/wfScanner.php:118
|
6435 |
+
msgid "Limited"
|
6436 |
+
msgstr ""
|
6437 |
+
|
6438 |
+
#: models/scanner/wfScanner.php:120
|
6439 |
+
#: views/scanner/scan-type.php:32
|
6440 |
+
msgid "High Sensitivity"
|
6441 |
+
msgstr ""
|
6442 |
+
|
6443 |
+
#: models/scanner/wfScanner.php:122
|
6444 |
+
#: views/scanner/scan-scheduling.php:50
|
6445 |
+
msgid "Custom"
|
6446 |
+
msgstr ""
|
6447 |
+
|
6448 |
+
#: models/scanner/wfScanner.php:125
|
6449 |
+
msgid "Standard"
|
6450 |
+
msgstr ""
|
6451 |
+
|
6452 |
+
#: models/scanner/wfScanner.php:139
|
6453 |
+
msgid "Low resource utilization, limited detection capability"
|
6454 |
+
msgstr ""
|
6455 |
+
|
6456 |
+
#: models/scanner/wfScanner.php:141
|
6457 |
+
msgid "Standard detection capability, chance of false positives"
|
6458 |
+
msgstr ""
|
6459 |
+
|
6460 |
+
#: models/scanner/wfScanner.php:143
|
6461 |
+
msgid "Custom scan options selected"
|
6462 |
+
msgstr ""
|
6463 |
+
|
6464 |
+
#: models/scanner/wfScanner.php:146
|
6465 |
+
msgid "Standard detection capability"
|
6466 |
+
msgstr ""
|
6467 |
+
|
6468 |
+
#: models/scanner/wfScanner.php:770
|
6469 |
+
msgid "Enable Premium Reputation Checks."
|
6470 |
+
msgstr ""
|
6471 |
+
|
6472 |
+
#: models/scanner/wfScanner.php:778
|
6473 |
+
msgctxt "wordfence"
|
6474 |
+
msgid "Enable %d scan option."
|
6475 |
+
msgid_plural "Enable %d scan options."
|
6476 |
+
msgstr[0] ""
|
6477 |
+
msgstr[1] ""
|
6478 |
+
|
6479 |
+
#: models/scanner/wfScanner.php:820
|
6480 |
+
msgid "Enable scan option to check if this website is being \"Spamvertised\"."
|
6481 |
+
msgstr ""
|
6482 |
+
|
6483 |
+
#: models/scanner/wfScanner.php:821
|
6484 |
+
msgid "Enable scan option to check if your website IP is generating spam."
|
6485 |
+
msgstr ""
|
6486 |
+
|
6487 |
+
#: models/scanner/wfScanner.php:822
|
6488 |
+
msgid "Enable scan option to check if your website is on a domain blacklist."
|
6489 |
+
msgstr ""
|
6490 |
+
|
6491 |
+
#: models/scanner/wfScanner.php:926
|
6492 |
+
msgid "User defined scan pattern"
|
6493 |
+
msgstr ""
|
6494 |
+
|
6495 |
+
#: views/blocking/block-list.php:11
|
6496 |
+
msgid "Current blocks<span class=\"wf-hidden-xs\"> for %s</span>"
|
6497 |
+
msgstr ""
|
6498 |
+
|
6499 |
+
#: views/blocking/block-list.php:17
|
6500 |
+
msgid "Show<span class=\"wf-hidden-xs\"> Wordfence</span> Automatic<span class=\"wf-hidden-xs\"> Blocks</span>"
|
6501 |
+
msgstr ""
|
6502 |
+
|
6503 |
+
#: views/blocking/block-list.php:34
|
6504 |
+
msgid "Filter by Type, Detail, or Reason"
|
6505 |
+
msgstr ""
|
6506 |
+
|
6507 |
+
#: views/blocking/block-list.php:35
|
6508 |
+
#: views/blocking/block-list.php:379
|
6509 |
+
#: views/waf/option-whitelist.php:113
|
6510 |
+
msgid "Filter"
|
6511 |
+
msgstr ""
|
6512 |
+
|
6513 |
+
#: views/blocking/block-list.php:39
|
6514 |
+
#: views/blocking/block-list.php:502
|
6515 |
+
msgid "Unblock"
|
6516 |
+
msgstr ""
|
6517 |
+
|
6518 |
+
#: views/blocking/block-list.php:39
|
6519 |
+
msgid "Make Permanent"
|
6520 |
+
msgstr ""
|
6521 |
+
|
6522 |
+
#: views/blocking/block-list.php:39
|
6523 |
+
msgid "Export<span class=\"wf-hidden-xs\"> All IPs</span>"
|
6524 |
+
msgstr ""
|
6525 |
+
|
6526 |
+
#: views/blocking/block-list.php:68
|
6527 |
+
msgid "Block Type"
|
6528 |
+
msgstr ""
|
6529 |
+
|
6530 |
+
#: views/blocking/block-list.php:69
|
6531 |
+
msgid "Detail"
|
6532 |
+
msgstr ""
|
6533 |
+
|
6534 |
+
#: views/blocking/block-list.php:70
|
6535 |
+
msgid "Rule Added"
|
6536 |
+
msgstr ""
|
6537 |
+
|
6538 |
+
#: views/blocking/block-list.php:71
|
6539 |
+
msgid "Reason"
|
6540 |
+
msgstr ""
|
6541 |
+
|
6542 |
+
#: views/blocking/block-list.php:72
|
6543 |
+
msgid "Expiration"
|
6544 |
+
msgstr ""
|
6545 |
+
|
6546 |
+
#: views/blocking/block-list.php:73
|
6547 |
+
#: views/reports/activity-report-email-inline.php:140
|
6548 |
+
#: views/reports/activity-report-email-inline.php:195
|
6549 |
+
#: views/reports/activity-report.php:18
|
6550 |
+
#: views/reports/activity-report.php:63
|
6551 |
+
msgid "Block Count"
|
6552 |
+
msgstr ""
|
6553 |
+
|
6554 |
+
#: views/blocking/block-list.php:74
|
6555 |
+
msgid "Last Attempt"
|
6556 |
+
msgstr ""
|
6557 |
+
|
6558 |
+
#: views/blocking/block-list.php:79
|
6559 |
+
msgid "No blocks are currently active."
|
6560 |
+
msgstr ""
|
6561 |
+
|
6562 |
+
#: views/blocking/block-list.php:84
|
6563 |
+
msgid "No blocks match the current filter."
|
6564 |
+
msgstr ""
|
6565 |
+
|
6566 |
+
#: views/blocking/block-list.php:382
|
6567 |
+
msgid "Clear Filter"
|
6568 |
+
msgstr ""
|
6569 |
+
|
6570 |
+
#: views/blocking/block-list.php:385
|
6571 |
+
msgid "Change Filter"
|
6572 |
+
msgstr ""
|
6573 |
+
|
6574 |
+
#: views/blocking/block-list.php:499
|
6575 |
+
msgid "Unblocking"
|
6576 |
+
msgstr ""
|
6577 |
+
|
6578 |
+
#: views/blocking/block-list.php:500
|
6579 |
+
msgid "Are you sure you want to stop blocking the selected IP, range, or country?"
|
6580 |
+
msgstr ""
|
6581 |
+
|
6582 |
+
#: views/blocking/block-list.php:500
|
6583 |
+
msgid "Are you sure you want to stop blocking the ${count} selected IPs, ranges, and countries?"
|
6584 |
+
msgstr ""
|
6585 |
+
|
6586 |
+
#: views/blocking/blocking-create.php:13
|
6587 |
+
msgid "Block<span class=\"wf-hidden-xs\"> this IP Address</span>"
|
6588 |
+
msgstr ""
|
6589 |
+
|
6590 |
+
#: views/blocking/blocking-create.php:13
|
6591 |
+
msgid "IP<span class=\"wf-hidden-xs\"> Address</span>"
|
6592 |
+
msgstr ""
|
6593 |
+
|
6594 |
+
#: views/blocking/blocking-create.php:14
|
6595 |
+
msgid "Block<span class=\"wf-hidden-xs\"> the Selected Countries</span>"
|
6596 |
+
msgstr ""
|
6597 |
+
|
6598 |
+
#: views/blocking/blocking-create.php:14
|
6599 |
+
msgid "Update<span class=\"wf-hidden-xs\"> Block</span>"
|
6600 |
+
msgstr ""
|
6601 |
+
|
6602 |
+
#: views/blocking/blocking-create.php:14
|
6603 |
+
#: views/reports/activity-report-email-inline.php:139
|
6604 |
+
#: views/reports/activity-report-email-inline.php:193
|
6605 |
+
#: views/reports/activity-report.php:17
|
6606 |
+
#: views/reports/activity-report.php:61
|
6607 |
+
msgid "Country"
|
6608 |
+
msgstr ""
|
6609 |
+
|
6610 |
+
#: views/blocking/blocking-create.php:15
|
6611 |
+
msgid "Block<span class=\"wf-hidden-xs\"> Visitors Matching this Pattern</span>"
|
6612 |
+
msgstr ""
|
6613 |
+
|
6614 |
+
#: views/blocking/blocking-create.php:15
|
6615 |
+
msgid "<span class=\"wf-hidden-xs\">Custom </span>Pattern"
|
6616 |
+
msgstr ""
|
6617 |
+
|
6618 |
+
#: views/blocking/blocking-create.php:66
|
6619 |
+
msgid "Country Blocking"
|
6620 |
+
msgstr ""
|
6621 |
+
|
6622 |
+
#: views/blocking/blocking-create.php:113
|
6623 |
+
msgid "Block Duration"
|
6624 |
+
msgstr ""
|
6625 |
+
|
6626 |
+
#: views/blocking/blocking-create.php:115
|
6627 |
+
msgid "Enter a duration (default is forever)"
|
6628 |
+
msgstr ""
|
6629 |
+
|
6630 |
+
#: views/blocking/blocking-create.php:132
|
6631 |
+
msgid "<span class=\"wf-hidden-xs\">What to </span>Block"
|
6632 |
+
msgstr ""
|
6633 |
+
|
6634 |
+
#: views/blocking/blocking-create.php:137
|
6635 |
+
msgid "Login Form"
|
6636 |
+
msgstr ""
|
6637 |
+
|
6638 |
+
#: views/blocking/blocking-create.php:141
|
6639 |
+
msgid "<span class=\"wf-hidden-xs\">Block access to the rest of the site</span><span class=\"wf-visible-xs\">Rest of site</span>"
|
6640 |
+
msgstr ""
|
6641 |
+
|
6642 |
+
#: views/blocking/blocking-create.php:149
|
6643 |
+
msgid "If you use Google Adwords, blocking countries from accessing the entire site is not recommended. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More</a>"
|
6644 |
+
msgstr ""
|
6645 |
+
|
6646 |
+
#: views/blocking/blocking-create.php:153
|
6647 |
+
msgid "Countries<span class=\"wf-hidden-xs\"> to Block</span>"
|
6648 |
+
msgstr ""
|
6649 |
+
|
6650 |
+
#: views/blocking/blocking-create.php:153
|
6651 |
+
msgid "Pick<span class=\"wf-hidden-xs\"> from List</span>"
|
6652 |
+
msgstr ""
|
6653 |
+
|
6654 |
+
#: views/blocking/blocking-create.php:176
|
6655 |
+
#: views/blocking/options-group-advanced-country.php:82
|
6656 |
+
msgid "Put Geographic Protection In Place With Country Blocking"
|
6657 |
+
msgstr ""
|
6658 |
+
|
6659 |
+
#: views/blocking/blocking-create.php:177
|
6660 |
+
#: views/blocking/options-group-advanced-country.php:83
|
6661 |
+
msgid "Wordfence country blocking is designed to stop an attack, prevent content theft, or end malicious activity that originates from a geographic region in less than 1/300,000th of a second. Blocking countries who are regularly creating failed logins, a large number of page not found errors, and are clearly engaged in malicious activity is an effective way to protect your site during an attack."
|
6662 |
+
msgstr ""
|
6663 |
+
|
6664 |
+
#: views/blocking/blocking-create.php:185
|
6665 |
+
msgid "IP<span class=\"wf-hidden-xs\"> Address to Block</span>"
|
6666 |
+
msgstr ""
|
6667 |
+
|
6668 |
+
#: views/blocking/blocking-create.php:186
|
6669 |
+
msgid "Enter an IP address"
|
6670 |
+
msgstr ""
|
6671 |
+
|
6672 |
+
#: views/blocking/blocking-create.php:189
|
6673 |
+
msgid "IP<span class=\"wf-hidden-xs\"> Address</span> Range"
|
6674 |
+
msgstr ""
|
6675 |
+
|
6676 |
+
#: views/blocking/blocking-create.php:190
|
6677 |
+
msgid "e.g., 192.168.200.200 - 192.168.200.220 or 192.168.200.0/24"
|
6678 |
+
msgstr ""
|
6679 |
+
|
6680 |
+
#: views/blocking/blocking-create.php:194
|
6681 |
+
msgid "e.g., *.amazonaws.com or *.linode.com"
|
6682 |
+
msgstr ""
|
6683 |
+
|
6684 |
+
#: views/blocking/blocking-create.php:197
|
6685 |
+
msgid "<span class=\"wf-hidden-xs\">Browser </span>User Agent"
|
6686 |
+
msgstr ""
|
6687 |
+
|
6688 |
+
#: views/blocking/blocking-create.php:198
|
6689 |
+
msgid "e.g., *badRobot*, *MSIE*, or *browserSuffix"
|
6690 |
+
msgstr ""
|
6691 |
+
|
6692 |
+
#: views/blocking/blocking-create.php:202
|
6693 |
+
msgid "e.g., *badwebsite.example.com*"
|
6694 |
+
msgstr ""
|
6695 |
+
|
6696 |
+
#: views/blocking/blocking-create.php:205
|
6697 |
+
msgid "<span class=\"wf-hidden-xs\">Block </span>Reason"
|
6698 |
+
msgstr ""
|
6699 |
+
|
6700 |
+
#: views/blocking/blocking-create.php:206
|
6701 |
+
msgid "Enter a reason"
|
6702 |
+
msgstr ""
|
6703 |
+
|
6704 |
+
#: views/blocking/blocking-create.php:212
|
6705 |
+
msgid "Block<span class=\"wf-hidden-xs\"> Visitors Matching this</span> Pattern"
|
6706 |
+
msgstr ""
|
6707 |
+
|
6708 |
+
#: views/blocking/blocking-status.php:15
|
6709 |
+
msgid "Manage global blocking options."
|
6710 |
+
msgstr ""
|
6711 |
+
|
6712 |
+
#: views/blocking/country-modal.php:24
|
6713 |
+
msgid "Select Countries to Block from List"
|
6714 |
+
msgstr ""
|
6715 |
+
|
6716 |
+
#: views/blocking/country-modal.php:28
|
6717 |
+
msgid "Block All"
|
6718 |
+
msgstr ""
|
6719 |
+
|
6720 |
+
#: views/blocking/country-modal.php:28
|
6721 |
+
msgid "Unblock All"
|
6722 |
+
msgstr ""
|
6723 |
+
|
6724 |
+
#: views/blocking/country-modal.php:75
|
6725 |
+
msgid "Back"
|
6726 |
+
msgstr ""
|
6727 |
+
|
6728 |
+
#: views/blocking/country-modal.php:75
|
6729 |
+
msgid "Save"
|
6730 |
+
msgstr ""
|
6731 |
+
|
6732 |
+
#: views/blocking/option-bypass-cookie.php:8
|
6733 |
+
msgid "Bypass Cookie"
|
6734 |
+
msgstr ""
|
6735 |
+
|
6736 |
+
#: views/blocking/option-bypass-cookie.php:12
|
6737 |
+
msgid "If user who is allowed to access the site views the relative URL"
|
6738 |
+
msgstr ""
|
6739 |
+
|
6740 |
+
#: views/blocking/option-bypass-cookie.php:13
|
6741 |
+
msgid "/set-country-bypass/"
|
6742 |
+
msgstr ""
|
6743 |
+
|
6744 |
+
#: views/blocking/option-bypass-cookie.php:16
|
6745 |
+
msgid "then set a cookie that will bypass country blocking in future in case that user hits the site from a blocked country."
|
6746 |
+
msgstr ""
|
6747 |
+
|
6748 |
+
#: views/blocking/option-bypass-redirect.php:8
|
6749 |
+
msgid "Bypass Redirect"
|
6750 |
+
msgstr ""
|
6751 |
+
|
6752 |
+
#: views/blocking/option-bypass-redirect.php:12
|
6753 |
+
msgid "If user hits the relative URL"
|
6754 |
+
msgstr ""
|
6755 |
+
|
6756 |
+
#: views/blocking/option-bypass-redirect.php:13
|
6757 |
+
msgid "/bypassurl/"
|
6758 |
+
msgstr ""
|
6759 |
+
|
6760 |
+
#: views/blocking/option-bypass-redirect.php:16
|
6761 |
+
msgid "then redirect that user to"
|
6762 |
+
msgstr ""
|
6763 |
+
|
6764 |
+
#: views/blocking/option-bypass-redirect.php:17
|
6765 |
+
msgid "/page-name/"
|
6766 |
+
msgstr ""
|
6767 |
+
|
6768 |
+
#: views/blocking/option-bypass-redirect.php:21
|
6769 |
+
msgid "and set a cookie that will bypass all country blocking."
|
6770 |
+
msgstr ""
|
6771 |
+
|
6772 |
+
#: views/blocking/options-group-advanced-country.php:22
|
6773 |
+
msgid "Advanced Country Blocking Options"
|
6774 |
+
msgstr ""
|
6775 |
+
|
6776 |
+
#: views/blocking/options-group-advanced-country.php:39
|
6777 |
+
msgid "What to do when we block someone"
|
6778 |
+
msgstr ""
|
6779 |
+
|
6780 |
+
#: views/blocking/options-group-advanced-country.php:49
|
6781 |
+
msgid "URL to redirect blocked users to"
|
6782 |
+
msgstr ""
|
6783 |
+
|
6784 |
+
#: views/blocking/options-group-advanced-country.php:50
|
6785 |
+
msgid "Enter a full URL (e.g., http://example.com/blocked/)"
|
6786 |
+
msgstr ""
|
6787 |
+
|
6788 |
+
#: views/common/license.php:15
|
6789 |
+
msgid "Wordfence License Installation Successful"
|
6790 |
+
msgstr ""
|
6791 |
+
|
6792 |
+
#: views/common/license.php:18
|
6793 |
+
msgid "Wordfence License Installation Failed"
|
6794 |
+
msgstr ""
|
6795 |
+
|
6796 |
+
#: views/common/license.php:21
|
6797 |
+
msgid "Install Wordfence License"
|
6798 |
+
msgstr ""
|
6799 |
+
|
6800 |
+
#: views/common/license.php:105
|
6801 |
+
msgid "The Wordfence license provided has been installed."
|
6802 |
+
msgstr ""
|
6803 |
+
|
6804 |
+
#: views/common/license.php:106
|
6805 |
+
msgid "Return to the <a href=\"%s\">Wordfence Admin Page</a>"
|
6806 |
+
msgstr ""
|
6807 |
+
|
6808 |
+
#: views/common/license.php:108
|
6809 |
+
msgid "The Wordfence license could not be installed."
|
6810 |
+
msgstr ""
|
6811 |
+
|
6812 |
+
#: views/common/license.php:110
|
6813 |
+
msgid "Please enter the license to install."
|
6814 |
+
msgstr ""
|
6815 |
+
|
6816 |
+
#: views/common/license.php:118
|
6817 |
+
#: views/common/unsubscribe.php:127
|
6818 |
+
msgid "Generated by Wordfence at "
|
6819 |
+
msgstr ""
|
6820 |
+
|
6821 |
+
#: views/common/license.php:118
|
6822 |
+
#: views/common/unsubscribe.php:127
|
6823 |
+
msgid "Your computer's time: "
|
6824 |
+
msgstr ""
|
6825 |
+
|
6826 |
+
#: views/common/status-tooltip.php:18
|
6827 |
+
msgid "<strong>Congratulations!</strong> You've optimized configurations for this feature! If you want to learn more about how this score is determined, click the link below."
|
6828 |
+
msgstr ""
|
6829 |
+
|
6830 |
+
#: views/common/status-tooltip.php:19
|
6831 |
+
#: views/common/status-tooltip.php:30
|
6832 |
+
msgid "How does Wordfence determine this?"
|
6833 |
+
msgstr ""
|
6834 |
+
|
6835 |
+
#: views/common/status-tooltip.php:21
|
6836 |
+
msgid "How do I get to 100%?"
|
6837 |
+
msgstr ""
|
6838 |
+
|
6839 |
+
#: views/common/unsubscribe.php:16
|
6840 |
+
msgid "Unsubscribe from Security Alerts"
|
6841 |
+
msgstr ""
|
6842 |
+
|
6843 |
+
#: views/common/unsubscribe.php:19
|
6844 |
+
msgid "Unsubscription Confirmation Sent"
|
6845 |
+
msgstr ""
|
6846 |
+
|
6847 |
+
#: views/common/unsubscribe.php:22
|
6848 |
+
msgid "Unsubscribe Successful"
|
6849 |
+
msgstr ""
|
6850 |
+
|
6851 |
+
#: views/common/unsubscribe.php:25
|
6852 |
+
msgid "Confirm Unsubscribe"
|
6853 |
+
msgstr ""
|
6854 |
+
|
6855 |
+
#: views/common/unsubscribe.php:109
|
6856 |
+
msgid "The email address provided has been unsubscribed from future alert emails."
|
6857 |
+
msgstr ""
|
6858 |
+
|
6859 |
+
#: views/common/unsubscribe.php:111
|
6860 |
+
msgid "If the email address provided was on the alert email list, it has been sent an unsubscribe link."
|
6861 |
+
msgstr ""
|
6862 |
+
|
6863 |
+
#: views/common/unsubscribe.php:113
|
6864 |
+
msgid "Please enter an email address to unsubscribe from alerts. If this email address exists on the alert email list, it will receive a confirmation link to unsubscribe."
|
6865 |
+
msgstr ""
|
6866 |
+
|
6867 |
+
#: views/common/unsubscribe.php:120
|
6868 |
+
msgid "Please confirm the unsubscribe request for %s."
|
6869 |
+
msgstr ""
|
6870 |
+
|
6871 |
+
#: views/dashboard/global-status.php:16
|
6872 |
+
msgid "Wordfence Protection Activated"
|
6873 |
+
msgstr ""
|
6874 |
+
|
6875 |
+
#: views/dashboard/option-howgetips.php:8
|
6876 |
+
msgid "Let Wordfence use the most secure method to get visitor IP addresses. Prevents spoofing and works with most sites."
|
6877 |
+
msgstr ""
|
6878 |
+
|
6879 |
+
#: views/dashboard/option-howgetips.php:8
|
6880 |
+
msgid "(Recommended)"
|
6881 |
+
msgstr ""
|
6882 |
+
|
6883 |
+
#: views/dashboard/option-howgetips.php:9
|
6884 |
+
msgid "Use PHP's built in REMOTE_ADDR and don't use anything else. Very secure if this is compatible with your site."
|
6885 |
+
msgstr ""
|
6886 |
+
|
6887 |
+
#: views/dashboard/option-howgetips.php:10
|
6888 |
+
msgid "Use the X-Forwarded-For HTTP header. Only use if you have a front-end proxy or spoofing may result."
|
6889 |
+
msgstr ""
|
6890 |
+
|
6891 |
+
#: views/dashboard/option-howgetips.php:11
|
6892 |
+
msgid "Use the X-Real-IP HTTP header. Only use if you have a front-end proxy or spoofing may result."
|
6893 |
+
msgstr ""
|
6894 |
+
|
6895 |
+
#: views/dashboard/option-howgetips.php:12
|
6896 |
+
msgid "Use the Cloudflare \"CF-Connecting-IP\" HTTP header to get a visitor IP. Only use if you're using Cloudflare."
|
6897 |
+
msgstr ""
|
6898 |
+
|
6899 |
+
#: views/dashboard/option-howgetips.php:51
|
6900 |
+
msgid "These IPs (or CIDR ranges) will be ignored when determining the requesting IP via the X-Forwarded-For HTTP header. Enter one IP or CIDR range per line."
|
6901 |
+
msgstr ""
|
6902 |
+
|
6903 |
+
#: views/dashboard/options-group-alert.php:22
|
6904 |
+
msgid "Email Alert Preferences"
|
6905 |
+
msgstr ""
|
6906 |
+
|
6907 |
+
#: views/dashboard/options-group-alert.php:37
|
6908 |
+
msgid "If you have automatic updates enabled (see above), you'll get an email when an update occurs."
|
6909 |
+
msgstr ""
|
6910 |
+
|
6911 |
+
#: views/dashboard/options-group-alert.php:73
|
6912 |
+
#: views/scanner/issue-base.php:32
|
6913 |
+
#: views/scanner/issue-base.php:41
|
6914 |
+
#: views/scanner/issue-base.php:89
|
6915 |
+
msgid "Critical"
|
6916 |
+
msgstr ""
|
6917 |
+
|
6918 |
+
#: views/dashboard/options-group-alert.php:74
|
6919 |
+
#: views/scanner/issue-base.php:33
|
6920 |
+
#: views/scanner/issue-base.php:42
|
6921 |
+
#: views/scanner/issue-base.php:92
|
6922 |
+
msgid "High"
|
6923 |
+
msgstr ""
|
6924 |
+
|
6925 |
+
#: views/dashboard/options-group-alert.php:75
|
6926 |
+
#: views/scanner/issue-base.php:34
|
6927 |
+
#: views/scanner/issue-base.php:43
|
6928 |
+
#: views/scanner/issue-base.php:95
|
6929 |
+
msgid "Medium"
|
6930 |
+
msgstr ""
|
6931 |
+
|
6932 |
+
#: views/dashboard/options-group-alert.php:76
|
6933 |
+
#: views/scanner/issue-base.php:35
|
6934 |
+
#: views/scanner/issue-base.php:44
|
6935 |
+
#: views/scanner/issue-base.php:98
|
6936 |
+
msgid "Low"
|
6937 |
+
msgstr ""
|
6938 |
+
|
6939 |
+
#: views/dashboard/options-group-alert.php:79
|
6940 |
+
msgid "Alert me with scan results of this severity level or greater:"
|
6941 |
+
msgstr ""
|
6942 |
+
|
6943 |
+
#: views/dashboard/options-group-alert.php:112
|
6944 |
+
msgid "Alert when someone is blocked from logging in for using a password found in a breach"
|
6945 |
+
msgstr ""
|
6946 |
+
|
6947 |
+
#: views/dashboard/options-group-alert.php:178
|
6948 |
+
msgid "0 means unlimited alerts will be sent."
|
6949 |
+
msgstr ""
|
6950 |
+
|
6951 |
+
#: views/dashboard/options-group-dashboard.php:22
|
6952 |
+
msgid "Dashboard Notification Options"
|
6953 |
+
msgstr ""
|
6954 |
+
|
6955 |
+
#: views/dashboard/options-group-dashboard.php:106
|
6956 |
+
msgid "Dashboard notifications will also be displayed for Security Alerts, Promotions, Blog Highlights, and Product Updates. These notifications can be disabled by upgrading to a premium license."
|
6957 |
+
msgstr ""
|
6958 |
+
|
6959 |
+
#: views/dashboard/options-group-email-summary.php:22
|
6960 |
+
msgid "Activity Report"
|
6961 |
+
msgstr ""
|
6962 |
+
|
6963 |
+
#: views/dashboard/options-group-email-summary.php:38
|
6964 |
+
msgid "Once a day"
|
6965 |
+
msgstr ""
|
6966 |
+
|
6967 |
+
#: views/dashboard/options-group-email-summary.php:39
|
6968 |
+
msgid "Once a week"
|
6969 |
+
msgstr ""
|
6970 |
+
|
6971 |
+
#: views/dashboard/options-group-email-summary.php:40
|
6972 |
+
msgid "Once a month"
|
6973 |
+
msgstr ""
|
6974 |
+
|
6975 |
+
#: views/dashboard/options-group-general.php:22
|
6976 |
+
msgid "General Wordfence Options"
|
6977 |
+
msgstr ""
|
6978 |
+
|
6979 |
+
#: views/dashboard/options-group-general.php:31
|
6980 |
+
msgid "Automatically updates Wordfence to the newest version within 24 hours of a new release."
|
6981 |
+
msgstr ""
|
6982 |
+
|
6983 |
+
#: views/dashboard/options-group-general.php:34
|
6984 |
+
msgid "<span class=\"wf-red-dark\">Warning:</span> You are running the LiteSpeed web server and Wordfence can't determine whether \"noabort\" is set. Please verify that the environmental variable \"noabort\" is set for the local site, or the server's global External Application Abort is set to \"No Abort\"."
|
6985 |
+
msgstr ""
|
6986 |
+
|
6987 |
+
#: views/dashboard/options-group-general.php:36
|
6988 |
+
msgid "Please read this article in our FAQ to make an important change that will ensure your site stability during an update."
|
6989 |
+
msgstr ""
|
6990 |
+
|
6991 |
+
#: views/dashboard/options-group-general.php:56
|
6992 |
+
msgid "Separate multiple addresses with commas"
|
6993 |
+
msgstr ""
|
6994 |
+
|
6995 |
+
#: views/dashboard/options-group-general.php:108
|
6996 |
+
msgid "Setting higher will reduce browser traffic but slow scan starts, live traffic & status updates."
|
6997 |
+
msgstr ""
|
6998 |
+
|
6999 |
+
#: views/dashboard/options-group-general.php:133
|
7000 |
+
msgid "Note: This does not include Login Security settings and tables. An option to delete those must be selected separately on the Login Security settings page."
|
7001 |
+
msgstr ""
|
7002 |
+
|
7003 |
+
#: views/dashboard/options-group-import.php:33
|
7004 |
+
msgid "Export<span class=\"wf-hidden-xs\"> Wordfence</span> Options"
|
7005 |
+
msgstr ""
|
7006 |
+
|
7007 |
+
#: views/dashboard/options-group-import.php:56
|
7008 |
+
msgid "Import<span class=\"wf-hidden-xs\"> Wordfence</span> Options"
|
7009 |
+
msgstr ""
|
7010 |
+
|
7011 |
+
#: views/dashboard/options-group-import.php:145
|
7012 |
+
msgid "Export Successful"
|
7013 |
+
msgstr ""
|
7014 |
+
|
7015 |
+
#: views/dashboard/options-group-import.php:146
|
7016 |
+
msgid "We successfully exported your site options. To import your site options on another site, copy and paste the token below into the import text box on the destination site. Keep this token secret — it is like a password. If anyone else discovers the token it will allow them to import your options excluding your license."
|
7017 |
+
msgstr ""
|
7018 |
+
|
7019 |
+
#: views/dashboard/options-group-import.php:155
|
7020 |
+
msgid "Error during Export"
|
7021 |
+
msgstr ""
|
7022 |
+
|
7023 |
+
#: views/dashboard/options-group-import.php:165
|
7024 |
+
msgid "Import Successful"
|
7025 |
+
msgstr ""
|
7026 |
+
|
7027 |
+
#: views/dashboard/options-group-import.php:166
|
7028 |
+
msgid "We successfully imported the site options."
|
7029 |
+
msgstr ""
|
7030 |
+
|
7031 |
+
#: views/dashboard/options-group-import.php:175
|
7032 |
+
msgid "Error during Import"
|
7033 |
+
msgstr ""
|
7034 |
+
|
7035 |
+
#: views/dashboard/options-group-license.php:22
|
7036 |
+
msgid "Wordfence License"
|
7037 |
+
msgstr ""
|
7038 |
+
|
7039 |
+
#: views/dashboard/options-group-license.php:31
|
7040 |
+
msgid "Your Wordfence License"
|
7041 |
+
msgstr ""
|
7042 |
+
|
7043 |
+
#: views/dashboard/options-group-license.php:44
|
7044 |
+
msgid "License Status:"
|
7045 |
+
msgstr ""
|
7046 |
+
|
7047 |
+
#: views/dashboard/options-group-license.php:47
|
7048 |
+
msgid "Premium License already in use"
|
7049 |
+
msgstr ""
|
7050 |
+
|
7051 |
+
#: views/dashboard/options-group-license.php:50
|
7052 |
+
msgid "Premium License Active"
|
7053 |
+
msgstr ""
|
7054 |
+
|
7055 |
+
#: views/dashboard/options-group-license.php:53
|
7056 |
+
msgid "Premium License Expired"
|
7057 |
+
msgstr ""
|
7058 |
+
|
7059 |
+
#: views/dashboard/options-group-license.php:56
|
7060 |
+
msgid "Free License Active"
|
7061 |
+
msgstr ""
|
7062 |
+
|
7063 |
+
#: views/dashboard/options-group-license.php:62
|
7064 |
+
#: views/dashboard/options-group-license.php:64
|
7065 |
+
#: views/dashboard/options-group-license.php:66
|
7066 |
+
#: views/dashboard/options-group-license.php:68
|
7067 |
+
msgid "Downgrade to a free license"
|
7068 |
+
msgstr ""
|
7069 |
+
|
7070 |
+
#: views/dashboard/options-group-license.php:62
|
7071 |
+
msgid "Reset Premium License"
|
7072 |
+
msgstr ""
|
7073 |
+
|
7074 |
+
#: views/dashboard/options-group-license.php:64
|
7075 |
+
#: views/dashboard/options-group-license.php:66
|
7076 |
+
#: views/dashboard/options-group-license.php:68
|
7077 |
+
msgid "Renew Premium License"
|
7078 |
+
msgstr ""
|
7079 |
+
|
7080 |
+
#: views/dashboard/options-group-license.php:72
|
7081 |
+
msgid "Install License"
|
7082 |
+
msgstr ""
|
7083 |
+
|
7084 |
+
#: views/dashboard/options-group-license.php:148
|
7085 |
+
msgid "Confirm Downgrade"
|
7086 |
+
msgstr ""
|
7087 |
+
|
7088 |
+
#: views/dashboard/options-group-license.php:149
|
7089 |
+
msgid "<p>Are you sure you want to downgrade your Wordfence Premium License? This will disable all Premium features and return you to the free version of Wordfence.</p><p>If autorenew is enabled for the current premium license, the license will renew at the next expiration date. If you would like to turn renewal off or assign the license to another site, log into wordfence.com to change it.</p>"
|
7090 |
+
msgstr ""
|
7091 |
+
|
7092 |
+
#: views/dashboard/options-group-license.php:151
|
7093 |
+
msgid "Downgrade"
|
7094 |
+
msgstr ""
|
7095 |
+
|
7096 |
+
#: views/dashboard/options-group-view-customization.php:22
|
7097 |
+
msgid "View Customization"
|
7098 |
+
msgstr ""
|
7099 |
+
|
7100 |
+
#: views/dashboard/options-group-view-customization.php:36
|
7101 |
+
msgid "Display \"All Options\" menu item"
|
7102 |
+
msgstr ""
|
7103 |
+
|
7104 |
+
#: views/dashboard/options-group-view-customization.php:47
|
7105 |
+
msgid "Display \"Blocking\" menu item"
|
7106 |
+
msgstr ""
|
7107 |
+
|
7108 |
+
#: views/dashboard/options-group-view-customization.php:58
|
7109 |
+
msgid "Display \"Live Traffic\" menu item"
|
7110 |
+
msgstr ""
|
7111 |
+
|
7112 |
+
#: views/diagnostics/text.php:187
|
7113 |
+
msgid "Setting Name"
|
7114 |
+
msgstr ""
|
7115 |
+
|
7116 |
+
#: views/diagnostics/text.php:188
|
7117 |
+
#: views/waf/options-group-advanced-firewall.php:138
|
7118 |
+
msgid "Description"
|
7119 |
+
msgstr ""
|
7120 |
+
|
7121 |
+
#: views/diagnostics/text.php:225
|
7122 |
+
#: views/diagnostics/text.php:263
|
7123 |
+
#: views/diagnostics/text.php:317
|
7124 |
+
#: views/diagnostics/text.php:337
|
7125 |
+
msgid "Name"
|
7126 |
+
msgstr ""
|
7127 |
+
|
7128 |
+
#: views/diagnostics/text.php:225
|
7129 |
+
#: views/diagnostics/text.php:263
|
7130 |
+
#: views/diagnostics/text.php:317
|
7131 |
+
#: views/diagnostics/text.php:337
|
7132 |
+
#: views/scanner/issue-base.php:52
|
7133 |
+
#: views/scanner/issue-wafStatus.php:12
|
7134 |
+
#: views/scanner/issue-wafStatus.php:21
|
7135 |
+
msgid "Status"
|
7136 |
+
msgstr ""
|
7137 |
+
|
7138 |
+
#: views/diagnostics/text.php:381
|
7139 |
+
msgid "Run Time"
|
7140 |
+
msgstr ""
|
7141 |
+
|
7142 |
+
#: views/diagnostics/text.php:381
|
7143 |
+
msgid "Job"
|
7144 |
+
msgstr ""
|
7145 |
+
|
7146 |
+
#: views/gdpr/banner.php:8
|
7147 |
+
msgid "Wordfence's terms of use and privacy policy have changed"
|
7148 |
+
msgstr ""
|
7149 |
+
|
7150 |
+
#: views/gdpr/banner.php:9
|
7151 |
+
#: views/gdpr/disabled-overlay.php:8
|
7152 |
+
msgid "Review"
|
7153 |
+
msgstr ""
|
7154 |
+
|
7155 |
+
#: views/gdpr/banner.php:50
|
7156 |
+
msgid "We have updated our Terms of Use and Privacy Policy. To continue using Wordfence, you will need to review and accept the updated <a href=\"https://www.wordfence.com/terms-of-use/\" target=\"_blank\" rel=\"noopener noreferrer\">Terms of Use</a> and <a href=\"https://www.wordfence.com/privacy-policy/\" target=\"_blank\" rel=\"noopener noreferrer\">Privacy Policy</a>."
|
7157 |
+
msgstr ""
|
7158 |
+
|
7159 |
+
#: views/gdpr/banner.php:51
|
7160 |
+
msgid "You can log in to <a href=\"https://www.wordfence.com/\" target=\"_blank\" rel=\"noopener noreferrer\">wordfence.com</a> to accept the updated terms and privacy policy for all of your premium license keys at once."
|
7161 |
+
msgstr ""
|
7162 |
+
|
7163 |
+
#: views/gdpr/banner.php:56
|
7164 |
+
msgid "Agree"
|
7165 |
+
msgstr ""
|
7166 |
+
|
7167 |
+
#: views/gdpr/disabled-overlay.php:7
|
7168 |
+
msgid "Our Terms of Use and Privacy Policy have changed. To continue using Wordfence, you will need to review and accept the updated Terms of Use and Privacy Policy by clicking Review."
|
7169 |
+
msgstr ""
|
7170 |
+
|
7171 |
+
#: views/onboarding/banner.php:8
|
7172 |
+
msgid "Wordfence installation is incomplete"
|
7173 |
+
msgstr ""
|
7174 |
+
|
7175 |
+
#: views/onboarding/disabled-overlay.php:7
|
7176 |
+
msgid "To continue using Wordfence, you will need to review and accept the Terms of Use and Privacy Policy. Click Resume Installation to begin."
|
7177 |
+
msgstr ""
|
7178 |
+
|
7179 |
+
#: views/onboarding/fresh-install.php:9
|
7180 |
+
#: views/onboarding/fresh-install.php:35
|
7181 |
+
msgid "Wordfence - Securing your WordPress Website"
|
7182 |
+
msgstr ""
|
7183 |
+
|
7184 |
+
#: views/onboarding/fresh-install.php:10
|
7185 |
+
msgid "You have successfully installed Wordfence %s"
|
7186 |
+
msgstr ""
|
7187 |
+
|
7188 |
+
#: views/onboarding/fresh-install.php:11
|
7189 |
+
#: views/onboarding/modal-final-attempt.php:18
|
7190 |
+
#: views/onboarding/plugin-header.php:32
|
7191 |
+
msgid "Please tell us where Wordfence should send you security alerts for your website:"
|
7192 |
+
msgstr ""
|
7193 |
+
|
7194 |
+
#: views/onboarding/fresh-install.php:13
|
7195 |
+
#: views/onboarding/modal-final-attempt.php:20
|
7196 |
+
#: views/onboarding/plugin-header.php:34
|
7197 |
+
msgid "We do not use this email address for any other purpose unless you opt-in to receive other mailings. You can turn off alerts in the options."
|
7198 |
+
msgstr ""
|
7199 |
+
|
7200 |
+
#: views/onboarding/fresh-install.php:15
|
7201 |
+
#: views/onboarding/modal-final-attempt.php:22
|
7202 |
+
#: views/onboarding/plugin-header.php:36
|
7203 |
+
msgid "Would you also like to join our WordPress security mailing list to receive WordPress security alerts and Wordfence news?"
|
7204 |
+
msgstr ""
|
7205 |
+
|
7206 |
+
#: views/onboarding/fresh-install.php:21
|
7207 |
+
#: views/onboarding/modal-final-attempt.php:28
|
7208 |
+
#: views/onboarding/plugin-header.php:42
|
7209 |
+
msgid "(Choose One)"
|
7210 |
+
msgstr ""
|
7211 |
+
|
7212 |
+
#: views/onboarding/fresh-install.php:27
|
7213 |
+
#: views/onboarding/modal-final-attempt.php:56
|
7214 |
+
#: views/onboarding/plugin-header.php:58
|
7215 |
+
msgid "By checking this box, I agree to the Wordfence <a href=\"https://www.wordfence.com/terms-of-use/\" target=\"_blank\" rel=\"noopener noreferrer\">terms</a> and <a href=\"https://www.wordfence.com/privacy-policy/\" target=\"_blank\" rel=\"noopener noreferrer\">privacy policy</a>"
|
7216 |
+
msgstr ""
|
7217 |
+
|
7218 |
+
#: views/onboarding/fresh-install.php:28
|
7219 |
+
#: views/onboarding/modal-final-attempt.php:57
|
7220 |
+
#: views/onboarding/plugin-header.php:59
|
7221 |
+
msgid "If you qualify as a data controller under the GDPR and need a data processing agreement, <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">click here</a>."
|
7222 |
+
msgstr ""
|
7223 |
+
|
7224 |
+
#: views/onboarding/fresh-install.php:36
|
7225 |
+
#: views/onboarding/plugin-header.php:47
|
7226 |
+
msgid "Enter Premium License Key"
|
7227 |
+
msgstr ""
|
7228 |
+
|
7229 |
+
#: views/onboarding/fresh-install.php:37
|
7230 |
+
#: views/onboarding/modal-final-attempt.php:34
|
7231 |
+
#: views/onboarding/plugin-header.php:48
|
7232 |
+
msgid "Enter your premium license key to enable real-time protection for your website."
|
7233 |
+
msgstr ""
|
7234 |
+
|
7235 |
+
#: views/onboarding/fresh-install.php:38
|
7236 |
+
#: views/onboarding/modal-final-attempt.php:36
|
7237 |
+
#: views/onboarding/plugin-header.php:49
|
7238 |
+
msgid "Enter Premium Key"
|
7239 |
+
msgstr ""
|
7240 |
+
|
7241 |
+
#: views/onboarding/fresh-install.php:38
|
7242 |
+
#: views/onboarding/modal-final-attempt.php:36
|
7243 |
+
#: views/onboarding/plugin-header.php:49
|
7244 |
+
msgid "Install"
|
7245 |
+
msgstr ""
|
7246 |
+
|
7247 |
+
#: views/onboarding/fresh-install.php:40
|
7248 |
+
#: views/onboarding/modal-final-attempt.php:38
|
7249 |
+
#: views/onboarding/plugin-header.php:64
|
7250 |
+
msgid "If you don't have one, you can purchase one now."
|
7251 |
+
msgstr ""
|
7252 |
+
|
7253 |
+
#: views/onboarding/fresh-install.php:99
|
7254 |
+
#: views/onboarding/plugin-header.php:135
|
7255 |
+
msgid "Configuration Complete"
|
7256 |
+
msgstr ""
|
7257 |
+
|
7258 |
+
#: views/onboarding/fresh-install.php:99
|
7259 |
+
#: views/onboarding/plugin-header.php:135
|
7260 |
+
msgid "Congratulations! Configuration is complete and Wordfence Premium is active on your website."
|
7261 |
+
msgstr ""
|
7262 |
+
|
7263 |
+
#: views/onboarding/fresh-install.php:99
|
7264 |
+
#: views/onboarding/fresh-install.php:131
|
7265 |
+
#: views/onboarding/fresh-install.php:144
|
7266 |
+
#: views/onboarding/plugin-header.php:135
|
7267 |
+
#: views/onboarding/plugin-header.php:167
|
7268 |
+
#: views/onboarding/plugin-header.php:180
|
7269 |
+
msgid "Go To Dashboard"
|
7270 |
+
msgstr ""
|
7271 |
+
|
7272 |
+
#: views/onboarding/fresh-install.php:144
|
7273 |
+
#: views/onboarding/plugin-header.php:180
|
7274 |
+
msgid "Free License Installed"
|
7275 |
+
msgstr ""
|
7276 |
+
|
7277 |
+
#: views/onboarding/fresh-install.php:155
|
7278 |
+
msgid "Error Installing License"
|
7279 |
+
msgstr ""
|
7280 |
+
|
7281 |
+
#: views/onboarding/modal-final-attempt.php:10
|
7282 |
+
#: views/onboarding/plugin-header.php:9
|
7283 |
+
msgid "Please Complete Wordfence Installation"
|
7284 |
+
msgstr ""
|
7285 |
+
|
7286 |
+
#: views/onboarding/modal-final-attempt.php:33
|
7287 |
+
#: views/onboarding/plugin-header.php:24
|
7288 |
+
msgid "Activate Premium"
|
7289 |
+
msgstr ""
|
7290 |
+
|
7291 |
+
#: views/onboarding/plugin-header.php:18
|
7292 |
+
msgid "Admin Contact Info"
|
7293 |
+
msgstr ""
|
7294 |
+
|
7295 |
+
#: views/options/block-all-options-controls.php:39
|
7296 |
+
#: views/options/block-controls.php:37
|
7297 |
+
msgid "<span class=\"wf-hidden-xs\">Restore </span>Defaults"
|
7298 |
+
msgstr ""
|
7299 |
+
|
7300 |
+
#: views/options/block-all-options-controls.php:39
|
7301 |
+
#: views/options/block-controls.php:37
|
7302 |
+
msgid "Cancel<span class=\"wf-hidden-xs wf-hidden-sm\"> Changes</span>"
|
7303 |
+
msgstr ""
|
7304 |
+
|
7305 |
+
#: views/options/block-all-options-controls.php:39
|
7306 |
+
#: views/options/block-controls.php:37
|
7307 |
+
msgid "Save<span class=\"wf-hidden-xs wf-hidden-sm\"> Changes</span>"
|
7308 |
+
msgstr ""
|
7309 |
+
|
7310 |
+
#: views/options/option-select.php:22
|
7311 |
+
#: views/options/option-switch.php:34
|
7312 |
+
#: views/options/option-text.php:30
|
7313 |
+
#: views/options/option-textarea.php:37
|
7314 |
+
#: views/options/option-toggled-boolean-switch.php:32
|
7315 |
+
#: views/options/option-toggled-multiple.php:29
|
7316 |
+
#: views/options/option-toggled-segmented.php:21
|
7317 |
+
#: views/options/option-toggled-select.php:27
|
7318 |
+
#: views/options/option-toggled-sub.php:44
|
7319 |
+
#: views/options/option-toggled-sub.php:52
|
7320 |
+
#: views/options/option-toggled-textarea.php:24
|
7321 |
+
#: views/options/option-toggled.php:36
|
7322 |
+
#: views/options/option-token.php:25
|
7323 |
+
#: views/scanner/scan-scheduling.php:38
|
7324 |
+
#: views/waf/option-rate-limit.php:27
|
7325 |
+
msgid "Premium Feature"
|
7326 |
+
msgstr ""
|
7327 |
+
|
7328 |
+
#: views/options/options-title.php:32
|
7329 |
+
msgid "Expand All"
|
7330 |
+
msgstr ""
|
7331 |
+
|
7332 |
+
#: views/options/options-title.php:32
|
7333 |
+
msgid "Collapse All"
|
7334 |
+
msgstr ""
|
7335 |
+
|
7336 |
+
#: views/reports/activity-report-email-inline.php:11
|
7337 |
+
msgid "Wordfence activity from <br><strong>%s</strong> to <strong>%s</strong>"
|
7338 |
+
msgstr ""
|
7339 |
+
|
7340 |
+
#: views/reports/activity-report-email-inline.php:126
|
7341 |
+
msgid "This email was sent from your website <a href=\"%s\">%s</a> and is a summary of security related activity that Wordfence monitors for the period %s to %s."
|
7342 |
+
msgstr ""
|
7343 |
+
|
7344 |
+
#: views/reports/activity-report-email-inline.php:126
|
7345 |
+
msgid "NOTE: You are using the free version of Wordfence and are missing out on features like cellphone sign-in, country blocking and detecting if your site IP is sending spam. <a href=\"http://www.wordfence.com/zz6/\">Click here to upgrade to Wordfence Premium now</a>."
|
7346 |
+
msgstr ""
|
7347 |
+
|
7348 |
+
#: views/reports/activity-report-email-inline.php:130
|
7349 |
+
msgid "Top 10 IPs Blocked"
|
7350 |
+
msgstr ""
|
7351 |
+
|
7352 |
+
#: views/reports/activity-report-email-inline.php:138
|
7353 |
+
#: views/reports/activity-report.php:16
|
7354 |
+
#: views/waf/option-whitelist.php:110
|
7355 |
+
#: views/waf/options-group-whitelisted.php:87
|
7356 |
+
#: views/waf/options-group-whitelisted.php:100
|
7357 |
+
msgid "IP"
|
7358 |
+
msgstr ""
|
7359 |
+
|
7360 |
+
#: views/reports/activity-report-email-inline.php:166
|
7361 |
+
#: views/reports/activity-report-email-inline.php:220
|
7362 |
+
#: views/reports/activity-report.php:34
|
7363 |
+
#: views/reports/activity-report.php:78
|
7364 |
+
msgid "(Unknown)"
|
7365 |
+
msgstr ""
|
7366 |
+
|
7367 |
+
#: views/reports/activity-report-email-inline.php:175
|
7368 |
+
#: views/reports/activity-report-email-inline.php:230
|
7369 |
+
msgid "No data currently."
|
7370 |
+
msgstr ""
|
7371 |
+
|
7372 |
+
#: views/reports/activity-report-email-inline.php:183
|
7373 |
+
#: views/reports/activity-report.php:51
|
7374 |
+
msgid "Update Blocked IPs"
|
7375 |
+
msgstr ""
|
7376 |
+
|
7377 |
+
#: views/reports/activity-report-email-inline.php:188
|
7378 |
+
msgid "Top 10 Countries Blocked"
|
7379 |
+
msgstr ""
|
7380 |
+
|
7381 |
+
#: views/reports/activity-report-email-inline.php:194
|
7382 |
+
#: views/reports/activity-report.php:62
|
7383 |
+
msgid "Total IPs Blocked"
|
7384 |
+
msgstr ""
|
7385 |
+
|
7386 |
+
#: views/reports/activity-report-email-inline.php:238
|
7387 |
+
#: views/reports/activity-report.php:96
|
7388 |
+
msgid "Update Blocked Countries"
|
7389 |
+
msgstr ""
|
7390 |
+
|
7391 |
+
#: views/reports/activity-report-email-inline.php:243
|
7392 |
+
msgid "Top 10 Failed Logins"
|
7393 |
+
msgstr ""
|
7394 |
+
|
7395 |
+
#: views/reports/activity-report-email-inline.php:248
|
7396 |
+
#: views/reports/activity-report.php:106
|
7397 |
+
msgid "Username"
|
7398 |
+
msgstr ""
|
7399 |
+
|
7400 |
+
#: views/reports/activity-report-email-inline.php:249
|
7401 |
+
#: views/reports/activity-report.php:107
|
7402 |
+
msgid "Login Attempts"
|
7403 |
+
msgstr ""
|
7404 |
+
|
7405 |
+
#: views/reports/activity-report-email-inline.php:250
|
7406 |
+
#: views/reports/activity-report.php:108
|
7407 |
+
msgid "Existing User"
|
7408 |
+
msgstr ""
|
7409 |
+
|
7410 |
+
#: views/reports/activity-report-email-inline.php:268
|
7411 |
+
#: views/reports/activity-report.php:123
|
7412 |
+
msgid "No failed logins yet."
|
7413 |
+
msgstr ""
|
7414 |
+
|
7415 |
+
#: views/reports/activity-report-email-inline.php:276
|
7416 |
+
#: views/reports/activity-report.php:131
|
7417 |
+
msgid "Update Login Security Options"
|
7418 |
+
msgstr ""
|
7419 |
+
|
7420 |
+
#: views/reports/activity-report-email-inline.php:281
|
7421 |
+
msgid "Recently Blocked Attacks"
|
7422 |
+
msgstr ""
|
7423 |
+
|
7424 |
+
#: views/reports/activity-report-email-inline.php:287
|
7425 |
+
msgid "IP / Action"
|
7426 |
+
msgstr ""
|
7427 |
+
|
7428 |
+
#: views/reports/activity-report-email-inline.php:308
|
7429 |
+
msgid "No blocked attacks yet."
|
7430 |
+
msgstr ""
|
7431 |
+
|
7432 |
+
#: views/reports/activity-report-email-inline.php:318
|
7433 |
+
msgid "and %d additional attacks"
|
7434 |
+
msgstr ""
|
7435 |
+
|
7436 |
+
#: views/reports/activity-report-email-inline.php:322
|
7437 |
+
msgid "View Recent Traffic"
|
7438 |
+
msgstr ""
|
7439 |
+
|
7440 |
+
#: views/reports/activity-report-email-inline.php:327
|
7441 |
+
msgid "Recently Modified Files"
|
7442 |
+
msgstr ""
|
7443 |
+
|
7444 |
+
#: views/reports/activity-report-email-inline.php:332
|
7445 |
+
msgid "Modified"
|
7446 |
+
msgstr ""
|
7447 |
+
|
7448 |
+
#: views/reports/activity-report-email-inline.php:353
|
7449 |
+
msgid "This list may include WordPress core/plugin/theme updates, error logs, cache files, and other normal changes."
|
7450 |
+
msgstr ""
|
7451 |
+
|
7452 |
+
#: views/reports/activity-report-email-inline.php:357
|
7453 |
+
#: views/reports/activity-report.php:164
|
7454 |
+
msgid "Updates Needed"
|
7455 |
+
msgstr ""
|
7456 |
+
|
7457 |
+
#: views/reports/activity-report-email-inline.php:365
|
7458 |
+
#: views/reports/activity-report.php:172
|
7459 |
+
msgid "Core"
|
7460 |
+
msgstr ""
|
7461 |
+
|
7462 |
+
#: views/reports/activity-report-email-inline.php:367
|
7463 |
+
#: views/reports/activity-report.php:174
|
7464 |
+
msgid "A new version of WordPress (v%s) is available."
|
7465 |
+
msgstr ""
|
7466 |
+
|
7467 |
+
#: views/reports/activity-report-email-inline.php:371
|
7468 |
+
#: views/reports/activity-report.php:178
|
7469 |
+
msgid "Plugins"
|
7470 |
+
msgstr ""
|
7471 |
+
|
7472 |
+
#: views/reports/activity-report-email-inline.php:378
|
7473 |
+
#: views/reports/activity-report.php:185
|
7474 |
+
msgid "A new version of the plugin \"%s\" is available."
|
7475 |
+
msgstr ""
|
7476 |
+
|
7477 |
+
#: views/reports/activity-report-email-inline.php:378
|
7478 |
+
#: views/reports/activity-report-email-inline.php:391
|
7479 |
+
msgid "<strong>This update includes security-related fixes.</strong>"
|
7480 |
+
msgstr ""
|
7481 |
+
|
7482 |
+
#: views/reports/activity-report-email-inline.php:391
|
7483 |
+
#: views/reports/activity-report.php:198
|
7484 |
+
msgid "A new version of the theme \"%s\" is available."
|
7485 |
+
msgstr ""
|
7486 |
+
|
7487 |
+
#: views/reports/activity-report-email-inline.php:399
|
7488 |
+
#: views/reports/activity-report.php:205
|
7489 |
+
msgid "Update Now"
|
7490 |
+
msgstr ""
|
7491 |
+
|
7492 |
+
#: views/reports/activity-report-email-inline.php:403
|
7493 |
+
#: views/reports/activity-report.php:207
|
7494 |
+
msgid "No updates are available at this time."
|
7495 |
+
msgstr ""
|
7496 |
+
|
7497 |
+
#: views/reports/activity-report-email-inline.php:408
|
7498 |
+
msgid "If you would like to sign-in to <a href=\"%s\">%s</a> please <a href=\"%s\">click here</a> now. You can change the frequency of this email or turn it on and off by visiting your <a href=\"%s\">Wordfence options page</a>."
|
7499 |
+
msgstr ""
|
7500 |
+
|
7501 |
+
#: views/reports/activity-report.php:9
|
7502 |
+
msgid "Top %d IPs Blocked"
|
7503 |
+
msgstr ""
|
7504 |
+
|
7505 |
+
#: views/reports/activity-report.php:43
|
7506 |
+
msgid "No IPs blocked yet."
|
7507 |
+
msgstr ""
|
7508 |
+
|
7509 |
+
#: views/reports/activity-report.php:56
|
7510 |
+
msgid "Top %d Countries Blocked"
|
7511 |
+
msgstr ""
|
7512 |
+
|
7513 |
+
#: views/reports/activity-report.php:88
|
7514 |
+
msgid "No requests blocked yet."
|
7515 |
+
msgstr ""
|
7516 |
+
|
7517 |
+
#: views/reports/activity-report.php:101
|
7518 |
+
msgid "Top %d Failed Logins"
|
7519 |
+
msgstr ""
|
7520 |
+
|
7521 |
+
#: views/reports/activity-report.php:210
|
7522 |
+
msgid "Generated in %.4f seconds"
|
7523 |
+
msgstr ""
|
7524 |
+
|
7525 |
+
#: views/scanner/issue-base.php:29
|
7526 |
+
#: views/scanner/issue-base.php:39
|
7527 |
+
msgid "Type:"
|
7528 |
+
msgstr ""
|
7529 |
+
|
7530 |
+
#: views/scanner/issue-base.php:31
|
7531 |
+
msgid "Issue Found "
|
7532 |
+
msgstr ""
|
7533 |
+
|
7534 |
+
#: views/scanner/issue-base.php:40
|
7535 |
+
msgid "Found "
|
7536 |
+
msgstr ""
|
7537 |
+
|
7538 |
+
#: views/scanner/issue-base.php:52
|
7539 |
+
msgid "New"
|
7540 |
+
msgstr ""
|
7541 |
+
|
7542 |
+
#: views/scanner/issue-base.php:52
|
7543 |
+
#: views/scanner/issue-base.php:83
|
7544 |
+
msgid "Ignored"
|
7545 |
+
msgstr ""
|
7546 |
+
|
7547 |
+
#: views/scanner/issue-base.php:53
|
7548 |
+
msgid "Issue First Detected"
|
7549 |
+
msgstr ""
|
7550 |
+
|
7551 |
+
#: views/scanner/issue-base.php:53
|
7552 |
+
msgid "ago"
|
7553 |
+
msgstr ""
|
7554 |
+
|
7555 |
+
#: views/scanner/issue-base.php:85
|
7556 |
+
msgid "Issue Found: %s"
|
7557 |
+
msgstr ""
|
7558 |
+
|
7559 |
+
#: views/scanner/issue-base.php:105
|
7560 |
+
msgid "Severity: %s"
|
7561 |
+
msgstr ""
|
7562 |
+
|
7563 |
+
#: views/scanner/issue-checkGSB.php:8
|
7564 |
+
#: views/scanner/issue-commentBadURL.php:8
|
7565 |
+
#: views/scanner/issue-configReadable.php:12
|
7566 |
+
#: views/scanner/issue-configReadable.php:23
|
7567 |
+
#: views/scanner/issue-optionBadURL.php:8
|
7568 |
+
#: views/scanner/issue-postBadURL.php:8
|
7569 |
+
#: views/scanner/issue-publiclyAccessible.php:12
|
7570 |
+
#: views/scanner/issue-publiclyAccessible.php:23
|
7571 |
+
#: views/scanner/issue-wpscan_directoryList.php:12
|
7572 |
+
#: views/scanner/issue-wpscan_directoryList.php:23
|
7573 |
+
#: views/scanner/issue-wpscan_fullPathDiscl.php:12
|
7574 |
+
#: views/scanner/issue-wpscan_fullPathDiscl.php:23
|
7575 |
+
#: views/waf/option-whitelist.php:9
|
7576 |
+
#: views/waf/option-whitelist.php:106
|
7577 |
+
#: views/waf/options-group-whitelisted.php:82
|
7578 |
+
#: views/waf/options-group-whitelisted.php:95
|
7579 |
+
msgid "URL"
|
7580 |
+
msgstr ""
|
7581 |
+
|
7582 |
+
#: views/scanner/issue-checkGSB.php:10
|
7583 |
+
#: views/scanner/issue-checkHowGetIPs.php:10
|
7584 |
+
#: views/scanner/issue-checkSpamIP.php:10
|
7585 |
+
#: views/scanner/issue-configReadable.php:10
|
7586 |
+
#: views/scanner/issue-control-ignore.php:7
|
7587 |
+
#: views/scanner/issue-diskSpace.php:10
|
7588 |
+
#: views/scanner/issue-geoipSupport.php:10
|
7589 |
+
#: views/scanner/issue-publiclyAccessible.php:10
|
7590 |
+
#: views/scanner/issue-skippedPaths.php:14
|
7591 |
+
#: views/scanner/issue-spamvertizeCheck.php:10
|
7592 |
+
#: views/scanner/issue-suspiciousAdminUsers.php:10
|
7593 |
+
#: views/scanner/issue-timelimit.php:10
|
7594 |
+
#: views/scanner/issue-wafStatus.php:10
|
7595 |
+
#: views/scanner/issue-wfPluginAbandoned.php:10
|
7596 |
+
#: views/scanner/issue-wfPluginRemoved.php:10
|
7597 |
+
#: views/scanner/issue-wfPluginVulnerable.php:10
|
7598 |
+
#: views/scanner/issue-wfUpgrade.php:10
|
7599 |
+
msgid "Ignore"
|
7600 |
+
msgstr ""
|
7601 |
+
|
7602 |
+
#: views/scanner/issue-checkGSB.php:12
|
7603 |
+
#: views/scanner/issue-checkGSB.php:21
|
7604 |
+
#: views/scanner/issue-commentBadURL.php:13
|
7605 |
+
#: views/scanner/issue-commentBadURL.php:28
|
7606 |
+
#: views/scanner/issue-database.php:13
|
7607 |
+
#: views/scanner/issue-database.php:25
|
7608 |
+
#: views/scanner/issue-file.php:14
|
7609 |
+
#: views/scanner/issue-file.php:30
|
7610 |
+
#: views/scanner/issue-knownfile.php:14
|
7611 |
+
#: views/scanner/issue-knownfile.php:29
|
7612 |
+
#: views/scanner/issue-optionBadURL.php:13
|
7613 |
+
#: views/scanner/issue-optionBadURL.php:27
|
7614 |
+
#: views/scanner/issue-postBadURL.php:13
|
7615 |
+
#: views/scanner/issue-postBadURL.php:28
|
7616 |
+
msgid "Bad URL"
|
7617 |
+
msgstr ""
|
7618 |
+
|
7619 |
+
#: views/scanner/issue-checkGSB.php:14
|
7620 |
+
#: views/scanner/issue-checkGSB.php:23
|
7621 |
+
#: views/scanner/issue-checkHowGetIPs.php:12
|
7622 |
+
#: views/scanner/issue-checkHowGetIPs.php:20
|
7623 |
+
#: views/scanner/issue-checkSpamIP.php:12
|
7624 |
+
#: views/scanner/issue-checkSpamIP.php:19
|
7625 |
+
#: views/scanner/issue-commentBadURL.php:16
|
7626 |
+
#: views/scanner/issue-commentBadURL.php:31
|
7627 |
+
#: views/scanner/issue-configReadable.php:14
|
7628 |
+
#: views/scanner/issue-configReadable.php:25
|
7629 |
+
#: views/scanner/issue-control-show-details.php:4
|
7630 |
+
#: views/scanner/issue-coreUnknown.php:11
|
7631 |
+
#: views/scanner/issue-coreUnknown.php:19
|
7632 |
+
#: views/scanner/issue-database.php:15
|
7633 |
+
#: views/scanner/issue-database.php:27
|
7634 |
+
#: views/scanner/issue-diskSpace.php:14
|
7635 |
+
#: views/scanner/issue-diskSpace.php:23
|
7636 |
+
#: views/scanner/issue-easyPassword.php:16
|
7637 |
+
#: views/scanner/issue-easyPassword.php:27
|
7638 |
+
#: views/scanner/issue-file.php:16
|
7639 |
+
#: views/scanner/issue-file.php:32
|
7640 |
+
#: views/scanner/issue-geoipSupport.php:12
|
7641 |
+
#: views/scanner/issue-geoipSupport.php:19
|
7642 |
+
#: views/scanner/issue-knownfile.php:16
|
7643 |
+
#: views/scanner/issue-knownfile.php:31
|
7644 |
+
#: views/scanner/issue-optionBadURL.php:15
|
7645 |
+
#: views/scanner/issue-optionBadURL.php:29
|
7646 |
+
#: views/scanner/issue-postBadTitle.php:15
|
7647 |
+
#: views/scanner/issue-postBadTitle.php:29
|
7648 |
+
#: views/scanner/issue-postBadURL.php:16
|
7649 |
+
#: views/scanner/issue-postBadURL.php:31
|
7650 |
+
#: views/scanner/issue-publiclyAccessible.php:14
|
7651 |
+
#: views/scanner/issue-publiclyAccessible.php:25
|
7652 |
+
#: views/scanner/issue-skippedPaths.php:16
|
7653 |
+
#: views/scanner/issue-skippedPaths.php:24
|
7654 |
+
#: views/scanner/issue-spamvertizeCheck.php:12
|
7655 |
+
#: views/scanner/issue-spamvertizeCheck.php:19
|
7656 |
+
#: views/scanner/issue-suspiciousAdminUsers.php:12
|
7657 |
+
#: views/scanner/issue-suspiciousAdminUsers.php:21
|
7658 |
+
#: views/scanner/issue-timelimit.php:12
|
7659 |
+
#: views/scanner/issue-timelimit.php:19
|
7660 |
+
#: views/scanner/issue-wafStatus.php:14
|
7661 |
+
#: views/scanner/issue-wafStatus.php:23
|
7662 |
+
#: views/scanner/issue-wfPluginAbandoned.php:16
|
7663 |
+
#: views/scanner/issue-wfPluginAbandoned.php:32
|
7664 |
+
#: views/scanner/issue-wfPluginRemoved.php:15
|
7665 |
+
#: views/scanner/issue-wfPluginRemoved.php:29
|
7666 |
+
#: views/scanner/issue-wfPluginUpgrade.php:16
|
7667 |
+
#: views/scanner/issue-wfPluginUpgrade.php:32
|
7668 |
+
#: views/scanner/issue-wfPluginVulnerable.php:15
|
7669 |
+
#: views/scanner/issue-wfPluginVulnerable.php:30
|
7670 |
+
#: views/scanner/issue-wfThemeUpgrade.php:16
|
7671 |
+
#: views/scanner/issue-wfThemeUpgrade.php:31
|
7672 |
+
#: views/scanner/issue-wfUpgrade.php:15
|
7673 |
+
#: views/scanner/issue-wfUpgrade.php:28
|
7674 |
+
#: views/scanner/issue-wpscan_directoryList.php:14
|
7675 |
+
#: views/scanner/issue-wpscan_directoryList.php:25
|
7676 |
+
#: views/scanner/issue-wpscan_fullPathDiscl.php:14
|
7677 |
+
#: views/scanner/issue-wpscan_fullPathDiscl.php:25
|
7678 |
+
msgid "Details"
|
7679 |
+
msgstr ""
|
7680 |
+
|
7681 |
+
#: views/scanner/issue-checkGSB.php:17
|
7682 |
+
#: views/scanner/issue-checkHowGetIPs.php:16
|
7683 |
+
#: views/scanner/issue-checkSpamIP.php:15
|
7684 |
+
#: views/scanner/issue-commentBadURL.php:23
|
7685 |
+
#: views/scanner/issue-configReadable.php:19
|
7686 |
+
#: views/scanner/issue-coreUnknown.php:15
|
7687 |
+
#: views/scanner/issue-database.php:20
|
7688 |
+
#: views/scanner/issue-diskSpace.php:17
|
7689 |
+
#: views/scanner/issue-easyPassword.php:19
|
7690 |
+
#: views/scanner/issue-file.php:22
|
7691 |
+
#: views/scanner/issue-geoipSupport.php:15
|
7692 |
+
#: views/scanner/issue-knownfile.php:22
|
7693 |
+
#: views/scanner/issue-optionBadURL.php:22
|
7694 |
+
#: views/scanner/issue-postBadTitle.php:22
|
7695 |
+
#: views/scanner/issue-postBadURL.php:23
|
7696 |
+
#: views/scanner/issue-publiclyAccessible.php:19
|
7697 |
+
#: views/scanner/issue-skippedPaths.php:20
|
7698 |
+
#: views/scanner/issue-spamvertizeCheck.php:15
|
7699 |
+
#: views/scanner/issue-suspiciousAdminUsers.php:17
|
7700 |
+
#: views/scanner/issue-timelimit.php:15
|
7701 |
+
#: views/scanner/issue-wafStatus.php:17
|
7702 |
+
#: views/scanner/issue-wfPluginAbandoned.php:23
|
7703 |
+
#: views/scanner/issue-wfPluginRemoved.php:21
|
7704 |
+
#: views/scanner/issue-wfPluginUpgrade.php:23
|
7705 |
+
#: views/scanner/issue-wfPluginVulnerable.php:22
|
7706 |
+
#: views/scanner/issue-wfThemeUpgrade.php:22
|
7707 |
+
#: views/scanner/issue-wfUpgrade.php:20
|
7708 |
+
#: views/scanner/issue-wpscan_directoryList.php:19
|
7709 |
+
#: views/scanner/issue-wpscan_fullPathDiscl.php:19
|
7710 |
+
msgid "Mark as Fixed"
|
7711 |
+
msgstr ""
|
7712 |
+
|
7713 |
+
#: views/scanner/issue-checkHowGetIPs.php:15
|
7714 |
+
msgid "Use Recommended Value"
|
7715 |
+
msgstr ""
|
7716 |
+
|
7717 |
+
#: views/scanner/issue-checkSpamIP.php:8
|
7718 |
+
#: views/scanner/issue-spamvertizeCheck.php:8
|
7719 |
+
msgid "Spam"
|
7720 |
+
msgstr ""
|
7721 |
+
|
7722 |
+
#: views/scanner/issue-commentBadURL.php:12
|
7723 |
+
#: views/scanner/issue-commentBadURL.php:27
|
7724 |
+
msgid "Author"
|
7725 |
+
msgstr ""
|
7726 |
+
|
7727 |
+
#: views/scanner/issue-commentBadURL.php:14
|
7728 |
+
#: views/scanner/issue-commentBadURL.php:29
|
7729 |
+
#: views/scanner/issue-postBadTitle.php:13
|
7730 |
+
#: views/scanner/issue-postBadTitle.php:27
|
7731 |
+
#: views/scanner/issue-postBadURL.php:14
|
7732 |
+
#: views/scanner/issue-postBadURL.php:29
|
7733 |
+
msgid "Posted on"
|
7734 |
+
msgstr ""
|
7735 |
+
|
7736 |
+
#: views/scanner/issue-commentBadURL.php:18
|
7737 |
+
#: views/scanner/issue-commentBadURL.php:33
|
7738 |
+
#: views/scanner/issue-optionBadURL.php:17
|
7739 |
+
#: views/scanner/issue-optionBadURL.php:31
|
7740 |
+
#: views/scanner/issue-postBadTitle.php:17
|
7741 |
+
#: views/scanner/issue-postBadTitle.php:31
|
7742 |
+
#: views/scanner/issue-postBadURL.php:18
|
7743 |
+
#: views/scanner/issue-postBadURL.php:33
|
7744 |
+
msgid "Multisite Blog ID"
|
7745 |
+
msgstr ""
|
7746 |
+
|
7747 |
+
#: views/scanner/issue-commentBadURL.php:19
|
7748 |
+
#: views/scanner/issue-commentBadURL.php:34
|
7749 |
+
#: views/scanner/issue-optionBadURL.php:18
|
7750 |
+
#: views/scanner/issue-optionBadURL.php:32
|
7751 |
+
#: views/scanner/issue-postBadTitle.php:18
|
7752 |
+
#: views/scanner/issue-postBadTitle.php:32
|
7753 |
+
#: views/scanner/issue-postBadURL.php:19
|
7754 |
+
#: views/scanner/issue-postBadURL.php:34
|
7755 |
+
msgid "Multisite Blog Domain"
|
7756 |
+
msgstr ""
|
7757 |
+
|
7758 |
+
#: views/scanner/issue-commentBadURL.php:20
|
7759 |
+
#: views/scanner/issue-commentBadURL.php:35
|
7760 |
+
#: views/scanner/issue-optionBadURL.php:19
|
7761 |
+
#: views/scanner/issue-optionBadURL.php:33
|
7762 |
+
#: views/scanner/issue-postBadTitle.php:19
|
7763 |
+
#: views/scanner/issue-postBadTitle.php:33
|
7764 |
+
#: views/scanner/issue-postBadURL.php:20
|
7765 |
+
#: views/scanner/issue-postBadURL.php:35
|
7766 |
+
msgid "Multisite Blog Path"
|
7767 |
+
msgstr ""
|
7768 |
+
|
7769 |
+
#: views/scanner/issue-configReadable.php:8
|
7770 |
+
msgid "Publicly Accessible Config/Backup/Log"
|
7771 |
+
msgstr ""
|
7772 |
+
|
7773 |
+
#: views/scanner/issue-configReadable.php:17
|
7774 |
+
#: views/scanner/issue-coreUnknown.php:13
|
7775 |
+
#: views/scanner/issue-file.php:19
|
7776 |
+
#: views/scanner/issue-knownfile.php:19
|
7777 |
+
#: views/scanner/issue-publiclyAccessible.php:17
|
7778 |
+
#: views/scanner/issue-wpscan_directoryList.php:17
|
7779 |
+
#: views/scanner/issue-wpscan_fullPathDiscl.php:17
|
7780 |
+
msgid "View File"
|
7781 |
+
msgstr ""
|
7782 |
+
|
7783 |
+
#: views/scanner/issue-configReadable.php:18
|
7784 |
+
#: views/scanner/issue-coreUnknown.php:14
|
7785 |
+
#: views/scanner/issue-file.php:21
|
7786 |
+
#: views/scanner/issue-knownfile.php:21
|
7787 |
+
#: views/scanner/issue-publiclyAccessible.php:18
|
7788 |
+
#: views/scanner/issue-wpscan_directoryList.php:18
|
7789 |
+
#: views/scanner/issue-wpscan_fullPathDiscl.php:18
|
7790 |
+
msgid "Delete File"
|
7791 |
+
msgstr ""
|
7792 |
+
|
7793 |
+
#: views/scanner/issue-control-edit-comment.php:4
|
7794 |
+
#: views/scanner/issue-control-edit-post.php:4
|
7795 |
+
#: views/scanner/issue-control-edit-user.php:4
|
7796 |
+
msgid "Edit"
|
7797 |
+
msgstr ""
|
7798 |
+
|
7799 |
+
#: views/scanner/issue-control-hide-file.php:4
|
7800 |
+
msgid "Hide File"
|
7801 |
+
msgstr ""
|
7802 |
+
|
7803 |
+
#: views/scanner/issue-control-ignore.php:7
|
7804 |
+
msgid "Stop Ignoring"
|
7805 |
+
msgstr ""
|
7806 |
+
|
7807 |
+
#: views/scanner/issue-control-repair.php:4
|
7808 |
+
msgid "Repair"
|
7809 |
+
msgstr ""
|
7810 |
+
|
7811 |
+
#: views/scanner/issue-coreUnknown.php:8
|
7812 |
+
msgid "Unknown Core File"
|
7813 |
+
msgstr ""
|
7814 |
+
|
7815 |
+
#: views/scanner/issue-coreUnknown.php:10
|
7816 |
+
msgid "Always Ignore Version"
|
7817 |
+
msgstr ""
|
7818 |
+
|
7819 |
+
#: views/scanner/issue-coreUnknown.php:10
|
7820 |
+
msgid "Ignore Until Version Changes"
|
7821 |
+
msgstr ""
|
7822 |
+
|
7823 |
+
#: views/scanner/issue-database.php:8
|
7824 |
+
msgid "Option"
|
7825 |
+
msgstr ""
|
7826 |
+
|
7827 |
+
#: views/scanner/issue-database.php:10
|
7828 |
+
msgid "Ignore Value"
|
7829 |
+
msgstr ""
|
7830 |
+
|
7831 |
+
#: views/scanner/issue-database.php:10
|
7832 |
+
#: views/scanner/issue-optionBadURL.php:10
|
7833 |
+
msgid "Ignore Option"
|
7834 |
+
msgstr ""
|
7835 |
+
|
7836 |
+
#: views/scanner/issue-database.php:12
|
7837 |
+
#: views/scanner/issue-database.php:24
|
7838 |
+
#: views/scanner/issue-optionBadURL.php:12
|
7839 |
+
#: views/scanner/issue-optionBadURL.php:26
|
7840 |
+
msgid "Option Name"
|
7841 |
+
msgstr ""
|
7842 |
+
|
7843 |
+
#: views/scanner/issue-database.php:18
|
7844 |
+
msgid "View Option"
|
7845 |
+
msgstr ""
|
7846 |
+
|
7847 |
+
#: views/scanner/issue-database.php:19
|
7848 |
+
msgid "Delete Option"
|
7849 |
+
msgstr ""
|
7850 |
+
|
7851 |
+
#: views/scanner/issue-diskSpace.php:8
|
7852 |
+
msgid "Disk Space"
|
7853 |
+
msgstr ""
|
7854 |
+
|
7855 |
+
#: views/scanner/issue-diskSpace.php:12
|
7856 |
+
#: views/scanner/issue-diskSpace.php:21
|
7857 |
+
msgid "Space Remaining"
|
7858 |
+
msgstr ""
|
7859 |
+
|
7860 |
+
#: views/scanner/issue-easyPassword.php:8
|
7861 |
+
msgid "Insecure Password"
|
7862 |
+
msgstr ""
|
7863 |
+
|
7864 |
+
#: views/scanner/issue-easyPassword.php:10
|
7865 |
+
msgid "Ignore All for User"
|
7866 |
+
msgstr ""
|
7867 |
+
|
7868 |
+
#: views/scanner/issue-easyPassword.php:10
|
7869 |
+
msgid "Ignore Only this Password"
|
7870 |
+
msgstr ""
|
7871 |
+
|
7872 |
+
#: views/scanner/issue-easyPassword.php:12
|
7873 |
+
#: views/scanner/issue-easyPassword.php:23
|
7874 |
+
msgid "Login Name"
|
7875 |
+
msgstr ""
|
7876 |
+
|
7877 |
+
#: views/scanner/issue-easyPassword.php:13
|
7878 |
+
#: views/scanner/issue-easyPassword.php:24
|
7879 |
+
msgid "User Email"
|
7880 |
+
msgstr ""
|
7881 |
+
|
7882 |
+
#: views/scanner/issue-easyPassword.php:14
|
7883 |
+
#: views/scanner/issue-easyPassword.php:25
|
7884 |
+
msgid "Full Name"
|
7885 |
+
msgstr ""
|
7886 |
+
|
7887 |
+
#: views/scanner/issue-file.php:10
|
7888 |
+
#: views/scanner/issue-knownfile.php:10
|
7889 |
+
#: views/scanner/issue-postBadTitle.php:10
|
7890 |
+
#: views/scanner/issue-postBadURL.php:10
|
7891 |
+
msgid "Always Ignore"
|
7892 |
+
msgstr ""
|
7893 |
+
|
7894 |
+
#: views/scanner/issue-file.php:10
|
7895 |
+
#: views/scanner/issue-knownfile.php:10
|
7896 |
+
msgid "Ignore Until File Changes"
|
7897 |
+
msgstr ""
|
7898 |
+
|
7899 |
+
#: views/scanner/issue-file.php:12
|
7900 |
+
#: views/scanner/issue-file.php:26
|
7901 |
+
#: views/scanner/issue-knownfile.php:12
|
7902 |
+
#: views/scanner/issue-knownfile.php:26
|
7903 |
+
msgid "Filename"
|
7904 |
+
msgstr ""
|
7905 |
+
|
7906 |
+
#: views/scanner/issue-file.php:13
|
7907 |
+
#: views/scanner/issue-file.php:27
|
7908 |
+
#: views/scanner/issue-file.php:28
|
7909 |
+
#: views/scanner/issue-file.php:29
|
7910 |
+
#: views/scanner/issue-knownfile.php:13
|
7911 |
+
#: views/scanner/issue-knownfile.php:27
|
7912 |
+
#: views/scanner/issue-knownfile.php:28
|
7913 |
+
msgid "File Type"
|
7914 |
+
msgstr ""
|
7915 |
+
|
7916 |
+
#: views/scanner/issue-file.php:13
|
7917 |
+
msgid "WordPress Configuration File"
|
7918 |
+
msgstr ""
|
7919 |
+
|
7920 |
+
#: views/scanner/issue-file.php:13
|
7921 |
+
#: views/scanner/issue-knownfile.php:13
|
7922 |
+
msgid "Not a core, theme, or plugin file from wordpress.org"
|
7923 |
+
msgstr ""
|
7924 |
+
|
7925 |
+
#: views/scanner/issue-file.php:16
|
7926 |
+
msgid "This is your main configuration file and cannot be deleted. It must be cleaned manually."
|
7927 |
+
msgstr ""
|
7928 |
+
|
7929 |
+
#: views/scanner/issue-file.php:20
|
7930 |
+
#: views/scanner/issue-knownfile.php:20
|
7931 |
+
msgid "View Differences"
|
7932 |
+
msgstr ""
|
7933 |
+
|
7934 |
+
#: views/scanner/issue-geoipSupport.php:8
|
7935 |
+
msgid "Server Update"
|
7936 |
+
msgstr ""
|
7937 |
+
|
7938 |
+
#: views/scanner/issue-optionBadURL.php:10
|
7939 |
+
msgid "Ignore URL"
|
7940 |
+
msgstr ""
|
7941 |
+
|
7942 |
+
#: views/scanner/issue-postBadTitle.php:8
|
7943 |
+
msgid "Post"
|
7944 |
+
msgstr ""
|
7945 |
+
|
7946 |
+
#: views/scanner/issue-postBadTitle.php:10
|
7947 |
+
msgid "Ignore Only this Title"
|
7948 |
+
msgstr ""
|
7949 |
+
|
7950 |
+
#: views/scanner/issue-postBadTitle.php:12
|
7951 |
+
#: views/scanner/issue-postBadTitle.php:26
|
7952 |
+
#: views/scanner/issue-postBadURL.php:12
|
7953 |
+
#: views/scanner/issue-postBadURL.php:27
|
7954 |
+
msgid "Title"
|
7955 |
+
msgstr ""
|
7956 |
+
|
7957 |
+
#: views/scanner/issue-postBadURL.php:10
|
7958 |
+
msgid "Ignore this URL"
|
7959 |
+
msgstr ""
|
7960 |
+
|
7961 |
+
#: views/scanner/issue-publiclyAccessible.php:8
|
7962 |
+
msgid "Quarantined File"
|
7963 |
+
msgstr ""
|
7964 |
+
|
7965 |
+
#: views/scanner/issue-skippedPaths.php:12
|
7966 |
+
msgid "Skipped Paths"
|
7967 |
+
msgstr ""
|
7968 |
+
|
7969 |
+
#: views/scanner/issue-skippedPaths.php:19
|
7970 |
+
msgid "Go To Option"
|
7971 |
+
msgstr ""
|
7972 |
+
|
7973 |
+
#: views/scanner/issue-suspiciousAdminUsers.php:8
|
7974 |
+
msgid "Unknown Administrator"
|
7975 |
+
msgstr ""
|
7976 |
+
|
7977 |
+
#: views/scanner/issue-suspiciousAdminUsers.php:15
|
7978 |
+
msgid "Delete User"
|
7979 |
+
msgstr ""
|
7980 |
+
|
7981 |
+
#: views/scanner/issue-suspiciousAdminUsers.php:16
|
7982 |
+
msgid "Revoke Capabilities"
|
7983 |
+
msgstr ""
|
7984 |
+
|
7985 |
+
#: views/scanner/issue-timelimit.php:8
|
7986 |
+
msgid "Time Limit"
|
7987 |
+
msgstr ""
|
7988 |
+
|
7989 |
+
#: views/scanner/issue-wafStatus.php:8
|
7990 |
+
msgid "WAF Status"
|
7991 |
+
msgstr ""
|
7992 |
+
|
7993 |
+
#: views/scanner/issue-wfPluginAbandoned.php:8
|
7994 |
+
msgid "Plugin Abandoned"
|
7995 |
+
msgstr ""
|
7996 |
+
|
7997 |
+
#: views/scanner/issue-wfPluginAbandoned.php:12
|
7998 |
+
#: views/scanner/issue-wfPluginAbandoned.php:28
|
7999 |
+
#: views/scanner/issue-wfPluginRemoved.php:12
|
8000 |
+
#: views/scanner/issue-wfPluginRemoved.php:26
|
8001 |
+
#: views/scanner/issue-wfPluginUpgrade.php:12
|
8002 |
+
#: views/scanner/issue-wfPluginUpgrade.php:28
|
8003 |
+
#: views/scanner/issue-wfPluginVulnerable.php:12
|
8004 |
+
#: views/scanner/issue-wfPluginVulnerable.php:27
|
8005 |
+
msgid "Plugin Name"
|
8006 |
+
msgstr ""
|
8007 |
+
|
8008 |
+
#: views/scanner/issue-wfPluginAbandoned.php:13
|
8009 |
+
#: views/scanner/issue-wfPluginAbandoned.php:29
|
8010 |
+
#: views/scanner/issue-wfPluginRemoved.php:13
|
8011 |
+
#: views/scanner/issue-wfPluginRemoved.php:27
|
8012 |
+
#: views/scanner/issue-wfPluginUpgrade.php:13
|
8013 |
+
#: views/scanner/issue-wfPluginUpgrade.php:29
|
8014 |
+
#: views/scanner/issue-wfPluginVulnerable.php:13
|
8015 |
+
#: views/scanner/issue-wfPluginVulnerable.php:28
|
8016 |
+
msgid "Current Plugin Version"
|
8017 |
+
msgstr ""
|
8018 |
+
|
8019 |
+
#: views/scanner/issue-wfPluginAbandoned.php:14
|
8020 |
+
#: views/scanner/issue-wfPluginAbandoned.php:30
|
8021 |
+
msgid "Last Updated"
|
8022 |
+
msgstr ""
|
8023 |
+
|
8024 |
+
#: views/scanner/issue-wfPluginAbandoned.php:16
|
8025 |
+
#: views/scanner/issue-wfPluginAbandoned.php:33
|
8026 |
+
msgid "Plugin has unpatched security issues."
|
8027 |
+
msgstr ""
|
8028 |
+
|
8029 |
+
#: views/scanner/issue-wfPluginAbandoned.php:18
|
8030 |
+
#: views/scanner/issue-wfPluginAbandoned.php:35
|
8031 |
+
#: views/scanner/issue-wfPluginRemoved.php:17
|
8032 |
+
#: views/scanner/issue-wfPluginRemoved.php:31
|
8033 |
+
#: views/scanner/issue-wfPluginUpgrade.php:18
|
8034 |
+
#: views/scanner/issue-wfPluginUpgrade.php:35
|
8035 |
+
#: views/scanner/issue-wfPluginVulnerable.php:17
|
8036 |
+
#: views/scanner/issue-wfPluginVulnerable.php:32
|
8037 |
+
msgid "Plugin URL"
|
8038 |
+
msgstr ""
|
8039 |
+
|
8040 |
+
#: views/scanner/issue-wfPluginAbandoned.php:18
|
8041 |
+
#: views/scanner/issue-wfPluginAbandoned.php:19
|
8042 |
+
#: views/scanner/issue-wfPluginAbandoned.php:20
|
8043 |
+
#: views/scanner/issue-wfPluginRemoved.php:17
|
8044 |
+
#: views/scanner/issue-wfPluginRemoved.php:18
|
8045 |
+
#: views/scanner/issue-wfPluginUpgrade.php:18
|
8046 |
+
#: views/scanner/issue-wfPluginUpgrade.php:19
|
8047 |
+
#: views/scanner/issue-wfPluginUpgrade.php:20
|
8048 |
+
#: views/scanner/issue-wfPluginVulnerable.php:17
|
8049 |
+
#: views/scanner/issue-wfPluginVulnerable.php:18
|
8050 |
+
#: views/scanner/issue-wfPluginVulnerable.php:19
|
8051 |
+
#: views/scanner/issue-wfThemeUpgrade.php:18
|
8052 |
+
#: views/scanner/issue-wfThemeUpgrade.php:19
|
8053 |
+
#: views/scanner/issue-wfUpgrade.php:17
|
8054 |
+
msgid "View"
|
8055 |
+
msgstr ""
|
8056 |
+
|
8057 |
+
#: views/scanner/issue-wfPluginAbandoned.php:19
|
8058 |
+
#: views/scanner/issue-wfPluginAbandoned.php:36
|
8059 |
+
#: views/scanner/issue-wfPluginUpgrade.php:36
|
8060 |
+
#: views/scanner/issue-wfPluginVulnerable.php:18
|
8061 |
+
#: views/scanner/issue-wfPluginVulnerable.php:33
|
8062 |
+
msgid "Repository URL"
|
8063 |
+
msgstr ""
|
8064 |
+
|
8065 |
+
#: views/scanner/issue-wfPluginAbandoned.php:24
|
8066 |
+
#: views/scanner/issue-wfPluginRemoved.php:22
|
8067 |
+
#: views/scanner/issue-wfPluginVulnerable.php:23
|
8068 |
+
msgid "Manage Plugins"
|
8069 |
+
msgstr ""
|
8070 |
+
|
8071 |
+
#: views/scanner/issue-wfPluginAbandoned.php:33
|
8072 |
+
#: views/scanner/issue-wfPluginUpgrade.php:33
|
8073 |
+
#: views/scanner/issue-wfThemeUpgrade.php:32
|
8074 |
+
#: views/scanner/issue-wfUpgrade.php:29
|
8075 |
+
msgid "Vulnerability Status"
|
8076 |
+
msgstr ""
|
8077 |
+
|
8078 |
+
#: views/scanner/issue-wfPluginRemoved.php:8
|
8079 |
+
msgid "Plugin Removed"
|
8080 |
+
msgstr ""
|
8081 |
+
|
8082 |
+
#: views/scanner/issue-wfPluginUpgrade.php:8
|
8083 |
+
msgid "Plugin Upgrade"
|
8084 |
+
msgstr ""
|
8085 |
+
|
8086 |
+
#: views/scanner/issue-wfPluginUpgrade.php:10
|
8087 |
+
msgid "Ignore Update"
|
8088 |
+
msgstr ""
|
8089 |
+
|
8090 |
+
#: views/scanner/issue-wfPluginUpgrade.php:14
|
8091 |
+
#: views/scanner/issue-wfPluginUpgrade.php:30
|
8092 |
+
msgid "New Plugin Version"
|
8093 |
+
msgstr ""
|
8094 |
+
|
8095 |
+
#: views/scanner/issue-wfPluginUpgrade.php:16
|
8096 |
+
#: views/scanner/issue-wfThemeUpgrade.php:16
|
8097 |
+
#: views/scanner/issue-wfUpgrade.php:15
|
8098 |
+
msgid "Click here to update now"
|
8099 |
+
msgstr ""
|
8100 |
+
|
8101 |
+
#: views/scanner/issue-wfPluginUpgrade.php:19
|
8102 |
+
msgid "Changelog"
|
8103 |
+
msgstr ""
|
8104 |
+
|
8105 |
+
#: views/scanner/issue-wfPluginUpgrade.php:24
|
8106 |
+
#: views/scanner/issue-wfThemeUpgrade.php:23
|
8107 |
+
#: views/scanner/issue-wfUpgrade.php:21
|
8108 |
+
msgid "View Updates"
|
8109 |
+
msgstr ""
|
8110 |
+
|
8111 |
+
#: views/scanner/issue-wfPluginVulnerable.php:8
|
8112 |
+
msgid "Plugin Vulnerable"
|
8113 |
+
msgstr ""
|
8114 |
+
|
8115 |
+
#: views/scanner/issue-wfThemeUpgrade.php:8
|
8116 |
+
msgid "Theme Upgrade"
|
8117 |
+
msgstr ""
|
8118 |
+
|
8119 |
+
#: views/scanner/issue-wfThemeUpgrade.php:10
|
8120 |
+
msgid "Ignore "
|
8121 |
+
msgstr ""
|
8122 |
+
|
8123 |
+
#: views/scanner/issue-wfThemeUpgrade.php:12
|
8124 |
+
#: views/scanner/issue-wfThemeUpgrade.php:27
|
8125 |
+
msgid "Theme Name"
|
8126 |
+
msgstr ""
|
8127 |
+
|
8128 |
+
#: views/scanner/issue-wfThemeUpgrade.php:13
|
8129 |
+
#: views/scanner/issue-wfThemeUpgrade.php:28
|
8130 |
+
msgid "Current Theme Version"
|
8131 |
+
msgstr ""
|
8132 |
+
|
8133 |
+
#: views/scanner/issue-wfThemeUpgrade.php:14
|
8134 |
+
#: views/scanner/issue-wfThemeUpgrade.php:29
|
8135 |
+
msgid "New Theme Version"
|
8136 |
+
msgstr ""
|
8137 |
+
|
8138 |
+
#: views/scanner/issue-wfThemeUpgrade.php:18
|
8139 |
+
#: views/scanner/issue-wfThemeUpgrade.php:34
|
8140 |
+
msgid "Theme URL"
|
8141 |
+
msgstr ""
|
8142 |
+
|
8143 |
+
#: views/scanner/issue-wfUpgrade.php:8
|
8144 |
+
msgid "Core Upgrade"
|
8145 |
+
msgstr ""
|
8146 |
+
|
8147 |
+
#: views/scanner/issue-wfUpgrade.php:12
|
8148 |
+
#: views/scanner/issue-wfUpgrade.php:25
|
8149 |
+
msgid "Current WordPress Version"
|
8150 |
+
msgstr ""
|
8151 |
+
|
8152 |
+
#: views/scanner/issue-wfUpgrade.php:13
|
8153 |
+
#: views/scanner/issue-wfUpgrade.php:26
|
8154 |
+
msgid "New WordPress Version"
|
8155 |
+
msgstr ""
|
8156 |
+
|
8157 |
+
#: views/scanner/issue-wpscan_directoryList.php:8
|
8158 |
+
msgid "Directory Listing Enabled"
|
8159 |
+
msgstr ""
|
8160 |
+
|
8161 |
+
#: views/scanner/issue-wpscan_fullPathDiscl.php:8
|
8162 |
+
msgid "Full Path Disclosure"
|
8163 |
+
msgstr ""
|
8164 |
+
|
8165 |
+
#: views/scanner/options-group-advanced.php:23
|
8166 |
+
msgid "Advanced Scan Options"
|
8167 |
+
msgstr ""
|
8168 |
+
|
8169 |
+
#: views/scanner/options-group-advanced.php:35
|
8170 |
+
msgid "Exclude files from scan that match these wildcard patterns (one per line)"
|
8171 |
+
msgstr ""
|
8172 |
+
|
8173 |
+
#: views/scanner/options-group-advanced.php:46
|
8174 |
+
msgid "Additional scan signatures (one per line)"
|
8175 |
+
msgstr ""
|
8176 |
+
|
8177 |
+
#: views/scanner/options-group-basic.php:23
|
8178 |
+
msgid "Basic Scan Type Options"
|
8179 |
+
msgstr ""
|
8180 |
+
|
8181 |
+
#: views/scanner/options-group-general.php:23
|
8182 |
+
msgid "General Options"
|
8183 |
+
msgstr ""
|
8184 |
+
|
8185 |
+
#: views/scanner/options-group-general.php:32
|
8186 |
+
#: views/scanner/options-group-general.php:33
|
8187 |
+
#: views/scanner/options-group-general.php:34
|
8188 |
+
msgid "<em>Reputation check</em>"
|
8189 |
+
msgstr ""
|
8190 |
+
|
8191 |
+
#: views/scanner/options-group-general.php:33
|
8192 |
+
msgid "Check if this website is being \"Spamvertised\""
|
8193 |
+
msgstr ""
|
8194 |
+
|
8195 |
+
#: views/scanner/options-group-performance.php:23
|
8196 |
+
msgid "Performance Options"
|
8197 |
+
msgstr ""
|
8198 |
+
|
8199 |
+
#: views/scanner/options-group-performance.php:33
|
8200 |
+
msgid "0 or empty means unlimited issues will be sent"
|
8201 |
+
msgstr ""
|
8202 |
+
|
8203 |
+
#: views/scanner/options-group-performance.php:34
|
8204 |
+
msgid "0 or empty means the default of %s will be used"
|
8205 |
+
msgstr ""
|
8206 |
+
|
8207 |
+
#: views/scanner/options-group-performance.php:35
|
8208 |
+
msgid "Memory size in megabytes"
|
8209 |
+
msgstr ""
|
8210 |
+
|
8211 |
+
#: views/scanner/options-group-performance.php:36
|
8212 |
+
msgid "Maximum execution time for each scan stage "
|
8213 |
+
msgstr ""
|
8214 |
+
|
8215 |
+
#: views/scanner/options-group-performance.php:36
|
8216 |
+
msgid "0 for default. Must be %d or greater and 10-20 or higher is recommended for most servers"
|
8217 |
+
msgstr ""
|
8218 |
+
|
8219 |
+
#: views/scanner/options-group-scan-schedule.php:23
|
8220 |
+
msgid "Scan Scheduling"
|
8221 |
+
msgstr ""
|
8222 |
+
|
8223 |
+
#: views/scanner/scan-failed.php:18
|
8224 |
+
msgid "Scan Failed"
|
8225 |
+
msgstr ""
|
8226 |
+
|
8227 |
+
#: views/scanner/scan-failed.php:21
|
8228 |
+
msgid "The error returned was:"
|
8229 |
+
msgstr ""
|
8230 |
+
|
8231 |
+
#: views/scanner/scan-progress-detailed.php:16
|
8232 |
+
msgid "Email<span class=\"wf-hidden-xs\"> activity</span> log"
|
8233 |
+
msgstr ""
|
8234 |
+
|
8235 |
+
#: views/scanner/scan-progress-detailed.php:16
|
8236 |
+
msgid "View<span class=\"wf-hidden-xs\"> full</span> log"
|
8237 |
+
msgstr ""
|
8238 |
+
|
8239 |
+
#: views/scanner/scan-progress-detailed.php:16
|
8240 |
+
msgid "Hide log"
|
8241 |
+
msgstr ""
|
8242 |
+
|
8243 |
+
#: views/scanner/scan-progress-detailed.php:16
|
8244 |
+
msgid "Show log"
|
8245 |
+
msgstr ""
|
8246 |
+
|
8247 |
+
#: views/scanner/scan-progress-element.php:59
|
8248 |
+
msgid "Upgrade"
|
8249 |
+
msgstr ""
|
8250 |
+
|
8251 |
+
#: views/scanner/scan-progress.php:18
|
8252 |
+
msgid "Spamvertising Checks"
|
8253 |
+
msgstr ""
|
8254 |
+
|
8255 |
+
#: views/scanner/scan-progress.php:25
|
8256 |
+
msgid "Spam Check"
|
8257 |
+
msgstr ""
|
8258 |
+
|
8259 |
+
#: views/scanner/scan-progress.php:32
|
8260 |
+
msgid "Blacklist Check"
|
8261 |
+
msgstr ""
|
8262 |
+
|
8263 |
+
#: views/scanner/scan-progress.php:39
|
8264 |
+
msgid "Server State"
|
8265 |
+
msgstr ""
|
8266 |
+
|
8267 |
+
#: views/scanner/scan-progress.php:46
|
8268 |
+
msgid "File Changes"
|
8269 |
+
msgstr ""
|
8270 |
+
|
8271 |
+
#: views/scanner/scan-progress.php:53
|
8272 |
+
msgid "Malware Scan"
|
8273 |
+
msgstr ""
|
8274 |
+
|
8275 |
+
#: views/scanner/scan-progress.php:60
|
8276 |
+
msgid "Content Safety"
|
8277 |
+
msgstr ""
|
8278 |
+
|
8279 |
+
#: views/scanner/scan-progress.php:67
|
8280 |
+
msgid "Public Files"
|
8281 |
+
msgstr ""
|
8282 |
+
|
8283 |
+
#: views/scanner/scan-progress.php:74
|
8284 |
+
msgid "Password Strength"
|
8285 |
+
msgstr ""
|
8286 |
+
|
8287 |
+
#: views/scanner/scan-progress.php:81
|
8288 |
+
msgid "Vulnerability Scan"
|
8289 |
+
msgstr ""
|
8290 |
+
|
8291 |
+
#: views/scanner/scan-progress.php:88
|
8292 |
+
msgid "User & Option Audit"
|
8293 |
+
msgstr ""
|
8294 |
+
|
8295 |
+
#: views/scanner/scan-results.php:16
|
8296 |
+
msgid "Results<span class=\"wf-hidden-xs\"> Found</span>"
|
8297 |
+
msgstr ""
|
8298 |
+
|
8299 |
+
#: views/scanner/scan-results.php:17
|
8300 |
+
msgid "Ignored<span class=\"wf-hidden-xs\"> Results</span>"
|
8301 |
+
msgstr ""
|
8302 |
+
|
8303 |
+
#: views/scanner/scan-results.php:30
|
8304 |
+
msgid "Delete All Deletable Files"
|
8305 |
+
msgstr ""
|
8306 |
+
|
8307 |
+
#: views/scanner/scan-results.php:30
|
8308 |
+
msgid "Repair All Repairable Files"
|
8309 |
+
msgstr ""
|
8310 |
+
|
8311 |
+
#: views/scanner/scan-results.php:39
|
8312 |
+
#: views/scanner/scan-results.php:71
|
8313 |
+
msgid "Posts, Comments, & Files"
|
8314 |
+
msgstr ""
|
8315 |
+
|
8316 |
+
#: views/scanner/scan-results.php:45
|
8317 |
+
#: views/scanner/scan-results.php:77
|
8318 |
+
msgid "Themes & Plugins"
|
8319 |
+
msgstr ""
|
8320 |
+
|
8321 |
+
#: views/scanner/scan-results.php:51
|
8322 |
+
#: views/scanner/scan-results.php:83
|
8323 |
+
msgid "Users Checked"
|
8324 |
+
msgstr ""
|
8325 |
+
|
8326 |
+
#: views/scanner/scan-results.php:57
|
8327 |
+
#: views/scanner/scan-results.php:89
|
8328 |
+
msgid "URLs Checked"
|
8329 |
+
msgstr ""
|
8330 |
+
|
8331 |
+
#: views/scanner/scan-results.php:63
|
8332 |
+
#: views/scanner/scan-results.php:95
|
8333 |
+
msgid "Results Found"
|
8334 |
+
msgstr ""
|
8335 |
+
|
8336 |
+
#: views/scanner/scan-scheduling.php:29
|
8337 |
+
msgid "Let Wordfence choose when to scan my site (recommended)"
|
8338 |
+
msgstr ""
|
8339 |
+
|
8340 |
+
#: views/scanner/scan-scheduling.php:38
|
8341 |
+
msgid "Manually schedule scans"
|
8342 |
+
msgstr ""
|
8343 |
+
|
8344 |
+
#: views/scanner/scan-scheduling.php:44
|
8345 |
+
msgid "Once Daily"
|
8346 |
+
msgstr ""
|
8347 |
+
|
8348 |
+
#: views/scanner/scan-scheduling.php:45
|
8349 |
+
msgid "Twice Daily"
|
8350 |
+
msgstr ""
|
8351 |
+
|
8352 |
+
#: views/scanner/scan-scheduling.php:46
|
8353 |
+
msgid "Every Other Day"
|
8354 |
+
msgstr ""
|
8355 |
+
|
8356 |
+
#: views/scanner/scan-scheduling.php:47
|
8357 |
+
msgid "Weekdays"
|
8358 |
+
msgstr ""
|
8359 |
+
|
8360 |
+
#: views/scanner/scan-scheduling.php:48
|
8361 |
+
msgid "Weekends"
|
8362 |
+
msgstr ""
|
8363 |
+
|
8364 |
+
#: views/scanner/scan-scheduling.php:49
|
8365 |
+
msgid "Odd Days & Weekends"
|
8366 |
+
msgstr ""
|
8367 |
+
|
8368 |
+
#: views/scanner/scan-scheduling.php:190
|
8369 |
+
msgid "Use preferred start time"
|
8370 |
+
msgstr ""
|
8371 |
+
|
8372 |
+
#: views/scanner/scan-scheduling.php:190
|
8373 |
+
msgid "Start time"
|
8374 |
+
msgstr ""
|
8375 |
+
|
8376 |
+
#: views/scanner/scan-scheduling.php:202
|
8377 |
+
#: views/scanner/scan-scheduling.php:242
|
8378 |
+
msgid "AM"
|
8379 |
+
msgstr ""
|
8380 |
+
|
8381 |
+
#: views/scanner/scan-scheduling.php:205
|
8382 |
+
#: views/scanner/scan-scheduling.php:253
|
8383 |
+
msgid "PM"
|
8384 |
+
msgstr ""
|
8385 |
+
|
8386 |
+
#: views/scanner/scan-scheduling.php:223
|
8387 |
+
msgid "Monday"
|
8388 |
+
msgstr ""
|
8389 |
+
|
8390 |
+
#: views/scanner/scan-scheduling.php:224
|
8391 |
+
msgid "Tuesday"
|
8392 |
+
msgstr ""
|
8393 |
+
|
8394 |
+
#: views/scanner/scan-scheduling.php:225
|
8395 |
+
msgid "Wednesday"
|
8396 |
+
msgstr ""
|
8397 |
+
|
8398 |
+
#: views/scanner/scan-scheduling.php:226
|
8399 |
+
msgid "Thursday"
|
8400 |
+
msgstr ""
|
8401 |
+
|
8402 |
+
#: views/scanner/scan-scheduling.php:227
|
8403 |
+
msgid "Friday"
|
8404 |
+
msgstr ""
|
8405 |
+
|
8406 |
+
#: views/scanner/scan-scheduling.php:228
|
8407 |
+
msgid "Saturday"
|
8408 |
+
msgstr ""
|
8409 |
+
|
8410 |
+
#: views/scanner/scan-scheduling.php:229
|
8411 |
+
msgid "Sunday"
|
8412 |
+
msgstr ""
|
8413 |
+
|
8414 |
+
#: views/scanner/scan-starter.php:13
|
8415 |
+
msgid "Start New Scan"
|
8416 |
+
msgstr ""
|
8417 |
+
|
8418 |
+
#: views/scanner/scan-starter.php:14
|
8419 |
+
msgid "Stop Scan"
|
8420 |
+
msgstr ""
|
8421 |
+
|
8422 |
+
#: views/scanner/scan-starter.php:29
|
8423 |
+
msgid "Scan Stopping"
|
8424 |
+
msgstr ""
|
8425 |
+
|
8426 |
+
#: views/scanner/scan-starter.php:29
|
8427 |
+
msgid "Stop Failed"
|
8428 |
+
msgstr ""
|
8429 |
+
|
8430 |
+
#: views/scanner/scan-starter.php:29
|
8431 |
+
msgid "A termination request has been sent to stop any running scans."
|
8432 |
+
msgstr ""
|
8433 |
+
|
8434 |
+
#: views/scanner/scan-starter.php:29
|
8435 |
+
msgid "We failed to send a termination request."
|
8436 |
+
msgstr ""
|
8437 |
+
|
8438 |
+
#: views/scanner/scan-type.php:20
|
8439 |
+
msgid "Limited Scan"
|
8440 |
+
msgstr ""
|
8441 |
+
|
8442 |
+
#: views/scanner/scan-type.php:21
|
8443 |
+
msgid "For entry-level hosting plans. Provides limited detection capability with very low resource utilization."
|
8444 |
+
msgstr ""
|
8445 |
+
|
8446 |
+
#: views/scanner/scan-type.php:26
|
8447 |
+
msgid "Standard Scan"
|
8448 |
+
msgstr ""
|
8449 |
+
|
8450 |
+
#: views/scanner/scan-type.php:27
|
8451 |
+
msgid "Our recommendation for all websites. Provides the best detection capability in the industry."
|
8452 |
+
msgstr ""
|
8453 |
+
|
8454 |
+
#: views/scanner/scan-type.php:33
|
8455 |
+
msgid "For site owners who think they may have been hacked. More thorough but may produce false positives."
|
8456 |
+
msgstr ""
|
8457 |
+
|
8458 |
+
#: views/scanner/scan-type.php:38
|
8459 |
+
msgid "Custom Scan"
|
8460 |
+
msgstr ""
|
8461 |
+
|
8462 |
+
#: views/scanner/scan-type.php:39
|
8463 |
+
msgid "Selected automatically when General Options have been customized for this website."
|
8464 |
+
msgstr ""
|
8465 |
+
|
8466 |
+
#: views/scanner/scanner-status.php:16
|
8467 |
+
msgid "Wordfence Scan & Premium Enabled"
|
8468 |
+
msgstr ""
|
8469 |
+
|
8470 |
+
#: views/scanner/scanner-status.php:23
|
8471 |
+
msgid "Wordfence Scan Deactivated"
|
8472 |
+
msgstr ""
|
8473 |
+
|
8474 |
+
#: views/scanner/scanner-status.php:24
|
8475 |
+
msgid "A Wordfence scan examines all files, posts, pages, and comments on your WordPress website looking for malware, known malicious URLs, and known patterns of infections. It also does several other reputation and server checks."
|
8476 |
+
msgstr ""
|
8477 |
+
|
8478 |
+
#: views/scanner/scanner-status.php:26
|
8479 |
+
msgid "Enable Automatic Scans"
|
8480 |
+
msgstr ""
|
8481 |
+
|
8482 |
+
#: views/scanner/scanner-status.php:46
|
8483 |
+
msgid "Wordfence Scan Enabled"
|
8484 |
+
msgstr ""
|
8485 |
+
|
8486 |
+
#: views/scanner/scanner-status.php:54
|
8487 |
+
msgid "As a free Wordfence user, you are currently using the Community version of the Threat Defense Feed. Premium users are protected by an additional %d firewall rules and malware signatures as well as the Wordfence real-time IP blacklist. Upgrade to Premium today to improve your protection."
|
8488 |
+
msgstr ""
|
8489 |
+
|
8490 |
+
#: views/scanner/scanner-status.php:60
|
8491 |
+
#: views/waf/firewall-status.php:73
|
8492 |
+
msgid "Premium Protection Enabled"
|
8493 |
+
msgstr ""
|
8494 |
+
|
8495 |
+
#: views/scanner/site-cleaning-beta-sigs.php:13
|
8496 |
+
#: views/scanner/site-cleaning-high-sense.php:13
|
8497 |
+
msgid "The results of your scan may indicate that you could benefit from Wordfence Site Cleaning"
|
8498 |
+
msgstr ""
|
8499 |
+
|
8500 |
+
#: views/scanner/site-cleaning-beta-sigs.php:14
|
8501 |
+
msgid "Since you have the beta threat defense feed enabled, there is a high likelihood that your results could include false positives. If you think you have indeed been hacked, our team of security experts can help."
|
8502 |
+
msgstr ""
|
8503 |
+
|
8504 |
+
#: views/scanner/site-cleaning-beta-sigs.php:16
|
8505 |
+
#: views/scanner/site-cleaning-high-sense.php:16
|
8506 |
+
#: views/scanner/site-cleaning.php:16
|
8507 |
+
msgid "Get Help"
|
8508 |
+
msgstr ""
|
8509 |
+
|
8510 |
+
#: views/scanner/site-cleaning-bottom.php:12
|
8511 |
+
msgid "Need help from a web security expert?"
|
8512 |
+
msgstr ""
|
8513 |
+
|
8514 |
+
#: views/scanner/site-cleaning-bottom.php:13
|
8515 |
+
msgid "Whether you want to proactively lock your site down or it has already been hacked, we're here to help. All services include a detailed report and a 90-day guarantee for an affordable price. <strong class=\"wf-blue\">Includes a 1-year Premium license.</strong>"
|
8516 |
+
msgstr ""
|
8517 |
+
|
8518 |
+
#: views/scanner/site-cleaning-bottom.php:15
|
8519 |
+
msgid "Audit My Site Security"
|
8520 |
+
msgstr ""
|
8521 |
+
|
8522 |
+
#: views/scanner/site-cleaning-bottom.php:17
|
8523 |
+
msgid "Clean My Hacked Site"
|
8524 |
+
msgstr ""
|
8525 |
+
|
8526 |
+
#: views/scanner/site-cleaning-high-sense.php:14
|
8527 |
+
msgid "Since you have High Sensitivity scanning enabled, there is a very high likelihood that your results will include false positives. If you think you have indeed been hacked, our team of security experts can help."
|
8528 |
+
msgstr ""
|
8529 |
+
|
8530 |
+
#: views/scanner/site-cleaning.php:13
|
8531 |
+
msgid "Need help with a hacked website?"
|
8532 |
+
msgstr ""
|
8533 |
+
|
8534 |
+
#: views/scanner/site-cleaning.php:14
|
8535 |
+
msgid "Our team of security experts will clean the infection and remove malicious content. Once your site is restored we will provide a detailed report of our findings."
|
8536 |
+
msgstr ""
|
8537 |
+
|
8538 |
+
#: views/scanner/site-cleaning.php:14
|
8539 |
+
msgid "Includes a 1-year Wordfence Premium license."
|
8540 |
+
msgstr ""
|
8541 |
+
|
8542 |
+
#: views/tools/options-group-2fa.php:24
|
8543 |
+
msgid "Two-Factor Authentication Options"
|
8544 |
+
msgstr ""
|
8545 |
+
|
8546 |
+
#: views/tools/options-group-2fa.php:51
|
8547 |
+
msgid "<strong>Require Cellphone Sign-in for all Administrators<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"wfhelp wf-inline-help\"></a></strong><br><em>Note:</em> This setting requires at least one administrator to have Cellphone Sign-in enabled. On multisite, this option applies only to super admins."
|
8548 |
+
msgstr ""
|
8549 |
+
|
8550 |
+
#: views/tools/options-group-2fa.php:63
|
8551 |
+
msgid "<strong>Enable Separate Prompt for Two-Factor Code<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"wfhelp wf-inline-help\"></a></strong><br><em>Note:</em> This setting changes the behavior for obtaining the two-factor authentication code from using the password field to showing a separate prompt. If your theme overrides the default login page, you may not be able to use this option."
|
8552 |
+
msgstr ""
|
8553 |
+
|
8554 |
+
#: views/tools/options-group-2fa.php:64
|
8555 |
+
msgid "<br><strong>This setting will be ignored because the PHP configuration option <code>output_buffering</code> is off.</strong>"
|
8556 |
+
msgstr ""
|
8557 |
+
|
8558 |
+
#: views/tools/options-group-live-traffic.php:32
|
8559 |
+
msgid "Live Traffic Options"
|
8560 |
+
msgstr ""
|
8561 |
+
|
8562 |
+
#: views/tools/options-group-live-traffic.php:40
|
8563 |
+
msgid "These options let you choose which traffic to log and to ignore certain types of visitors, based on their level of access, usernames, IP address, or browser type. If you run a high-traffic website where it is not feasible to see your visitors in real-time, simply change the <strong>Traffic logging mode</strong> to \"Security Only.\""
|
8564 |
+
msgstr ""
|
8565 |
+
|
8566 |
+
#: views/tools/options-group-live-traffic.php:49
|
8567 |
+
msgid "Are you sure you want to restore the default Live Traffic settings? This will undo any custom changes you have made to the options on this page."
|
8568 |
+
msgstr ""
|
8569 |
+
|
8570 |
+
#: views/tools/options-group-live-traffic.php:61
|
8571 |
+
msgid "Traffic logging mode"
|
8572 |
+
msgstr ""
|
8573 |
+
|
8574 |
+
#: views/tools/options-group-live-traffic.php:63
|
8575 |
+
msgid "Security Only"
|
8576 |
+
msgstr ""
|
8577 |
+
|
8578 |
+
#: views/tools/options-group-live-traffic.php:64
|
8579 |
+
msgid "All Traffic"
|
8580 |
+
msgstr ""
|
8581 |
+
|
8582 |
+
#: views/tools/options-group-live-traffic.php:123
|
8583 |
+
msgid "Maximum days to keep Live Traffic data (minimum: 1)"
|
8584 |
+
msgstr ""
|
8585 |
+
|
8586 |
+
#: views/tools/options-group-live-traffic.php:135
|
8587 |
+
msgid "Display Live Traffic menu option"
|
8588 |
+
msgstr ""
|
8589 |
+
|
8590 |
+
#: views/tours/login-security.php:28
|
8591 |
+
msgid "Introducing the New Wordfence 2FA"
|
8592 |
+
msgstr ""
|
8593 |
+
|
8594 |
+
#: views/tours/login-security.php:29
|
8595 |
+
msgid "We are excited to announce the release of a completely rebuilt two-factor authentication (2FA) feature within Wordfence. 2FA is an important layer of security that protects you from password guessing and credential stuffing attacks. Previously a Premium-only feature, it is now available for sites running the free version of Wordfence. You are now able to enable 2FA for any role, we’ve added a number of important security features, and we’ve significantly improved the admin interface."
|
8596 |
+
msgstr ""
|
8597 |
+
|
8598 |
+
#: views/tours/login-security.php:44
|
8599 |
+
msgid "Individual Whitelisting"
|
8600 |
+
msgstr ""
|
8601 |
+
|
8602 |
+
#: views/tours/login-security.php:45
|
8603 |
+
msgid "Two-factor authentication now has its own IP whitelist. If necessary, you can allow specific IP addresses or ranges to skip 2FA when logging in."
|
8604 |
+
msgstr ""
|
8605 |
+
|
8606 |
+
#: views/tours/login-security.php:60
|
8607 |
+
msgid "New Login Page Captcha Feature"
|
8608 |
+
msgstr ""
|
8609 |
+
|
8610 |
+
#: views/tours/login-security.php:61
|
8611 |
+
msgid "Wordfence now includes the option to enable Google reCaptcha v3 on your WordPress login and registration pages. This adds a powerful new layer of protection against password guessing and credential stuffing attacks from bots without slowing down real users."
|
8612 |
+
msgstr ""
|
8613 |
+
|
8614 |
+
#: views/tours/login-security.php:70
|
8615 |
+
msgid "Done"
|
8616 |
+
msgstr ""
|
8617 |
+
|
8618 |
+
#: views/waf/firewall-status.php:16
|
8619 |
+
msgid "Wordfence Firewall & Premium Enabled"
|
8620 |
+
msgstr ""
|
8621 |
+
|
8622 |
+
#: views/waf/firewall-status.php:23
|
8623 |
+
msgid "Wordfence Firewall Deactivated"
|
8624 |
+
msgstr ""
|
8625 |
+
|
8626 |
+
#: views/waf/firewall-status.php:24
|
8627 |
+
msgid "The Wordfence Web Application Firewall is a PHP-based, application-level firewall that filters out malicious requests to your site. It is designed to run at the beginning of WordPress' initialization to filter any attacks before plugins or themes can run any potentially vulnerable code."
|
8628 |
+
msgstr ""
|
8629 |
+
|
8630 |
+
#: views/waf/firewall-status.php:26
|
8631 |
+
msgid "Enable Firewall"
|
8632 |
+
msgstr ""
|
8633 |
+
|
8634 |
+
#: views/waf/firewall-status.php:47
|
8635 |
+
msgid "Wordfence Firewall Activated"
|
8636 |
+
msgstr ""
|
8637 |
+
|
8638 |
+
#: views/waf/firewall-status.php:56
|
8639 |
+
msgid "Learning Mode Enabled"
|
8640 |
+
msgstr ""
|
8641 |
+
|
8642 |
+
#: views/waf/firewall-status.php:56
|
8643 |
+
msgid "Learning Mode Until %s"
|
8644 |
+
msgstr ""
|
8645 |
+
|
8646 |
+
#: views/waf/firewall-status.php:57
|
8647 |
+
msgid "<i class=\"wf-fa wf-fa-lightbulb-o wf-tip\" aria-hidden=\"true\"></i> When you first install the Wordfence Web Application Firewall, it will be in learning mode. This allows Wordfence to learn about your site so that we can understand how to protect it and how to allow normal visitors through the firewall. We recommend you let Wordfence learn for a week before you enable the firewall."
|
8648 |
+
msgstr ""
|
8649 |
+
|
8650 |
+
#: views/waf/option-rate-limit.php:34
|
8651 |
+
msgid "then"
|
8652 |
+
msgstr ""
|
8653 |
+
|
8654 |
+
#: views/waf/option-rules.php:5
|
8655 |
+
msgid "Rules"
|
8656 |
+
msgstr ""
|
8657 |
+
|
8658 |
+
#: views/waf/option-rules.php:6
|
8659 |
+
msgid "You are currently running the WAF from another WordPress installation. These rules can be disabled or enabled once you configure the firewall to run correctly on this site."
|
8660 |
+
msgstr ""
|
8661 |
+
|
8662 |
+
#: views/waf/option-rules.php:11
|
8663 |
+
msgid "Manually Refresh Rules"
|
8664 |
+
msgstr ""
|
8665 |
+
|
8666 |
+
#: views/waf/option-whitelist.php:5
|
8667 |
+
msgid "Add Whitelisted URL/Param"
|
8668 |
+
msgstr ""
|
8669 |
+
|
8670 |
+
#: views/waf/option-whitelist.php:5
|
8671 |
+
msgid "The URL/parameters in this table will not be tested by the firewall. They are typically added while the firewall is in Learning Mode or by an admin who identifies a particular action/request is a false positive."
|
8672 |
+
msgstr ""
|
8673 |
+
|
8674 |
+
#: views/waf/option-whitelist.php:13
|
8675 |
+
msgid "POST Body"
|
8676 |
+
msgstr ""
|
8677 |
+
|
8678 |
+
#: views/waf/option-whitelist.php:14
|
8679 |
+
msgid "Cookie"
|
8680 |
+
msgstr ""
|
8681 |
+
|
8682 |
+
#: views/waf/option-whitelist.php:15
|
8683 |
+
msgid "File Name"
|
8684 |
+
msgstr ""
|
8685 |
+
|
8686 |
+
#: views/waf/option-whitelist.php:16
|
8687 |
+
msgid "Header"
|
8688 |
+
msgstr ""
|
8689 |
+
|
8690 |
+
#: views/waf/option-whitelist.php:17
|
8691 |
+
msgid "Query String"
|
8692 |
+
msgstr ""
|
8693 |
+
|
8694 |
+
#: views/waf/option-whitelist.php:21
|
8695 |
+
msgid "Param Name"
|
8696 |
+
msgstr ""
|
8697 |
+
|
8698 |
+
#: views/waf/option-whitelist.php:23
|
8699 |
+
msgid "Add"
|
8700 |
+
msgstr ""
|
8701 |
+
|
8702 |
+
#: views/waf/option-whitelist.php:53
|
8703 |
+
msgid "Whitelist Entry Exists"
|
8704 |
+
msgstr ""
|
8705 |
+
|
8706 |
+
#: views/waf/option-whitelist.php:53
|
8707 |
+
msgid "A whitelist entry for this URL and parameter already exists."
|
8708 |
+
msgstr ""
|
8709 |
+
|
8710 |
+
#: views/waf/option-whitelist.php:60
|
8711 |
+
msgid "Whitelisted via Firewall Options page"
|
8712 |
+
msgstr ""
|
8713 |
+
|
8714 |
+
#: views/waf/option-whitelist.php:102
|
8715 |
+
msgid "Delete"
|
8716 |
+
msgstr ""
|
8717 |
+
|
8718 |
+
#: views/waf/option-whitelist.php:102
|
8719 |
+
msgid "Disable"
|
8720 |
+
msgstr ""
|
8721 |
+
|
8722 |
+
#: views/waf/option-whitelist.php:107
|
8723 |
+
#: views/waf/options-group-whitelisted.php:83
|
8724 |
+
#: views/waf/options-group-whitelisted.php:96
|
8725 |
+
msgid "Param"
|
8726 |
+
msgstr ""
|
8727 |
+
|
8728 |
+
#: views/waf/option-whitelist.php:108
|
8729 |
+
#: views/waf/options-group-whitelisted.php:85
|
8730 |
+
#: views/waf/options-group-whitelisted.php:98
|
8731 |
+
msgid "Source"
|
8732 |
+
msgstr ""
|
8733 |
+
|
8734 |
+
#: views/waf/option-whitelist.php:109
|
8735 |
+
#: views/waf/options-group-whitelisted.php:86
|
8736 |
+
#: views/waf/options-group-whitelisted.php:99
|
8737 |
+
msgid "User"
|
8738 |
+
msgstr ""
|
8739 |
+
|
8740 |
+
#: views/waf/option-whitelist.php:112
|
8741 |
+
msgid "Filter Value"
|
8742 |
+
msgstr ""
|
8743 |
+
|
8744 |
+
#: views/waf/options-group-advanced-firewall.php:26
|
8745 |
+
msgid "Advanced Firewall Options"
|
8746 |
+
msgstr ""
|
8747 |
+
|
8748 |
+
#: views/waf/options-group-advanced-firewall.php:41
|
8749 |
+
msgid "You are currently running the WAF from another WordPress installation. This option can be changed once you configure the firewall to run correctly on this site."
|
8750 |
+
msgstr ""
|
8751 |
+
|
8752 |
+
#: views/waf/options-group-advanced-firewall.php:54
|
8753 |
+
msgid "Whitelisted IPs must be separated by commas or placed on separate lines. You can specify ranges using the following formats: 127.0.0.1/24, 127.0.0.[1-100], or 127.0.0.1-127.0.1.100<br/>Wordfence automatically whitelists <a href=\"http://en.wikipedia.org/wiki/Private_network\" target=\"_blank\" rel=\"noopener noreferrer\">private networks</a> because these are not routable on the public Internet."
|
8754 |
+
msgstr ""
|
8755 |
+
|
8756 |
+
#: views/waf/options-group-advanced-firewall.php:101
|
8757 |
+
msgid "Separate multiple URLs with commas or place them on separate lines. Asterisks are wildcards, but use with care. If you see an attacker repeatedly probing your site for a known vulnerability you can use this to immediately block them. All URLs must start with a \"/\" without quotes and must be relative. e.g. /badURLone/, /bannedPage.html, /dont-access/this/URL/, /starts/with-*"
|
8758 |
+
msgstr ""
|
8759 |
+
|
8760 |
+
#: views/waf/options-group-advanced-firewall.php:114
|
8761 |
+
msgid "Ignored IPs must be separated by commas or placed on separate lines. These addresses will be ignored from any alerts about increased attacks and can be used to ignore things like standalone website security scanners."
|
8762 |
+
msgstr ""
|
8763 |
+
|
8764 |
+
#: views/waf/options-group-advanced-firewall.php:137
|
8765 |
+
msgid "Category"
|
8766 |
+
msgstr ""
|
8767 |
+
|
8768 |
+
#: views/waf/options-group-advanced-firewall.php:153
|
8769 |
+
msgid "No rules currently set."
|
8770 |
+
msgstr ""
|
8771 |
+
|
8772 |
+
#: views/waf/options-group-advanced-firewall.php:153
|
8773 |
+
msgid "<a href=\"#\" onclick=\"WFAD.wafUpdateRules();return false;\">Click here</a> to pull down the latest from the Wordfence servers."
|
8774 |
+
msgstr ""
|
8775 |
+
|
8776 |
+
#: views/waf/options-group-advanced-firewall.php:161
|
8777 |
+
msgid "SHOW ALL RULES"
|
8778 |
+
msgstr ""
|
8779 |
+
|
8780 |
+
#: views/waf/options-group-basic-firewall.php:26
|
8781 |
+
msgid "Basic Firewall Options"
|
8782 |
+
msgstr ""
|
8783 |
+
|
8784 |
+
#: views/waf/options-group-basic-firewall.php:36
|
8785 |
+
#: views/waf/options-group-basic-firewall.php:469
|
8786 |
+
#: views/waf/options-group-whitelisted.php:35
|
8787 |
+
msgid "You are currently running the Wordfence Web Application Firewall from another WordPress installation. Please <a href=\"%s\">click here</a> to configure the Firewall to run correctly on this site."
|
8788 |
+
msgstr ""
|
8789 |
+
|
8790 |
+
#: views/waf/options-group-basic-firewall.php:40
|
8791 |
+
msgid "Enabled and Protecting:"
|
8792 |
+
msgstr ""
|
8793 |
+
|
8794 |
+
#: views/waf/options-group-basic-firewall.php:40
|
8795 |
+
msgid "In this mode, the Wordfence Web Application Firewall is actively blocking requests matching known attack patterns and is actively protecting your site from attackers."
|
8796 |
+
msgstr ""
|
8797 |
+
|
8798 |
+
#: views/waf/options-group-basic-firewall.php:41
|
8799 |
+
msgid "Learning Mode:"
|
8800 |
+
msgstr ""
|
8801 |
+
|
8802 |
+
#: views/waf/options-group-basic-firewall.php:41
|
8803 |
+
msgid "When you first install the Wordfence Web Application Firewall, it will be in learning mode. This allows Wordfence to learn about your site so that we can understand how to protect it and how to allow normal visitors through the firewall. We recommend you let Wordfence learn for a week before you enable the firewall. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More</a>"
|
8804 |
+
msgstr ""
|
8805 |
+
|
8806 |
+
#: views/waf/options-group-basic-firewall.php:42
|
8807 |
+
msgid "Disabled:"
|
8808 |
+
msgstr ""
|
8809 |
+
|
8810 |
+
#: views/waf/options-group-basic-firewall.php:42
|
8811 |
+
msgid "In this mode, the Wordfence Web Application Firewall is functionally turned off and does not run any of its rules or analyze the request in any way."
|
8812 |
+
msgstr ""
|
8813 |
+
|
8814 |
+
#: views/waf/options-group-basic-firewall.php:46
|
8815 |
+
msgid "Enabled and Protecting"
|
8816 |
+
msgstr ""
|
8817 |
+
|
8818 |
+
#: views/waf/options-group-basic-firewall.php:161
|
8819 |
+
msgid "Automatically enable on"
|
8820 |
+
msgstr ""
|
8821 |
+
|
8822 |
+
#: views/waf/options-group-basic-firewall.php:165
|
8823 |
+
msgid "Protection Level"
|
8824 |
+
msgstr ""
|
8825 |
+
|
8826 |
+
#: views/waf/options-group-basic-firewall.php:167
|
8827 |
+
msgid "Extended Protection:"
|
8828 |
+
msgstr ""
|
8829 |
+
|
8830 |
+
#: views/waf/options-group-basic-firewall.php:167
|
8831 |
+
msgid "All PHP requests will be processed by the firewall prior to running."
|
8832 |
+
msgstr ""
|
8833 |
+
|
8834 |
+
#: views/waf/options-group-basic-firewall.php:168
|
8835 |
+
msgid "If you're moving to a new host or a new installation location, you may need to temporarily disable extended protection to avoid any file not found errors. Use this action to remove the configuration changes that enable extended protection mode or you can <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">remove them manually</a>."
|
8836 |
+
msgstr ""
|
8837 |
+
|
8838 |
+
#: views/waf/options-group-basic-firewall.php:169
|
8839 |
+
msgid "Remove Extended Protection"
|
8840 |
+
msgstr ""
|
8841 |
+
|
8842 |
+
#: views/waf/options-group-basic-firewall.php:171
|
8843 |
+
msgid "Existing WAF Installation Detected:"
|
8844 |
+
msgstr ""
|
8845 |
+
|
8846 |
+
#: views/waf/options-group-basic-firewall.php:171
|
8847 |
+
msgid "You are currently running the Wordfence Web Application Firewall from another WordPress installation. Please configure the firewall to run correctly on this site."
|
8848 |
+
msgstr ""
|
8849 |
+
|
8850 |
+
#: views/waf/options-group-basic-firewall.php:172
|
8851 |
+
#: views/waf/options-group-basic-firewall.php:175
|
8852 |
+
msgid "Optimize the Wordfence Firewall"
|
8853 |
+
msgstr ""
|
8854 |
+
|
8855 |
+
#: views/waf/options-group-basic-firewall.php:174
|
8856 |
+
msgid "Basic WordPress Protection:"
|
8857 |
+
msgstr ""
|
8858 |
+
|
8859 |
+
#: views/waf/options-group-basic-firewall.php:174
|
8860 |
+
msgid "The plugin will load as a regular plugin after WordPress has been loaded, and while it can block many malicious requests, some vulnerable plugins or WordPress itself may run vulnerable code before all plugins are loaded."
|
8861 |
+
msgstr ""
|
8862 |
+
|
8863 |
+
#: views/waf/options-group-basic-firewall.php:466
|
8864 |
+
msgid "Premium Feature:"
|
8865 |
+
msgstr ""
|
8866 |
+
|
8867 |
+
#: views/waf/options-group-basic-firewall.php:466
|
8868 |
+
#: views/waf/options-group-basic-firewall.php:471
|
8869 |
+
msgid "This feature blocks all traffic from IPs with a high volume of recent malicious activity using Wordfence's real-time blacklist."
|
8870 |
+
msgstr ""
|
8871 |
+
|
8872 |
+
#: views/waf/options-group-brute-force.php:39
|
8873 |
+
msgid "This option enables all \"Brute Force Protection\" options, including strong password enforcement and invalid login throttling. You can modify individual options below."
|
8874 |
+
msgstr ""
|
8875 |
+
|
8876 |
+
#: views/waf/options-group-brute-force.php:140
|
8877 |
+
msgid "Hit enter to add a username"
|
8878 |
+
msgstr ""
|
8879 |
+
|
8880 |
+
#: views/waf/options-group-brute-force.php:153
|
8881 |
+
msgid "For admins only"
|
8882 |
+
msgstr ""
|
8883 |
+
|
8884 |
+
#: views/waf/options-group-brute-force.php:153
|
8885 |
+
msgid "For all users with \"publish posts\" capability"
|
8886 |
+
msgstr ""
|
8887 |
+
|
8888 |
+
#: views/waf/options-group-brute-force.php:163
|
8889 |
+
msgid "Additional Options"
|
8890 |
+
msgstr ""
|
8891 |
+
|
8892 |
+
#: views/waf/options-group-brute-force.php:176
|
8893 |
+
msgid "Force admins and publishers to use strong passwords (recommended)"
|
8894 |
+
msgstr ""
|
8895 |
+
|
8896 |
+
#: views/waf/options-group-brute-force.php:176
|
8897 |
+
msgid "Force all members to use strong passwords"
|
8898 |
+
msgstr ""
|
8899 |
+
|
8900 |
+
#: views/waf/options-group-brute-force.php:202
|
8901 |
+
msgid "Prevent users registering 'admin' username if it doesn't exist"
|
8902 |
+
msgstr ""
|
8903 |
+
|
8904 |
+
#: views/waf/options-group-brute-force.php:214
|
8905 |
+
msgid "Prevent discovery of usernames through '/?author=N' scans, the oEmbed API, the WordPress REST API, and WordPress XML Sitemaps"
|
8906 |
+
msgstr ""
|
8907 |
+
|
8908 |
+
#: views/waf/options-group-brute-force.php:238
|
8909 |
+
msgid "HTML tags will be stripped prior to output and line breaks will be converted into the appropriate tags."
|
8910 |
+
msgstr ""
|
8911 |
+
|
8912 |
+
#: views/waf/options-group-rate-limiting.php:39
|
8913 |
+
msgid "NOTE: This checkbox enables ALL blocking/throttling functions including IP, country and advanced blocking, and the \"Rate Limiting Rules\" below."
|
8914 |
+
msgstr ""
|
8915 |
+
|
8916 |
+
#: views/waf/options-group-rate-limiting.php:55
|
8917 |
+
msgid "Verified Google crawlers will not be rate-limited"
|
8918 |
+
msgstr ""
|
8919 |
+
|
8920 |
+
#: views/waf/options-group-rate-limiting.php:56
|
8921 |
+
msgid "Anyone claiming to be Google will not be rate-limited"
|
8922 |
+
msgstr ""
|
8923 |
+
|
8924 |
+
#: views/waf/options-group-rate-limiting.php:57
|
8925 |
+
msgid "Treat Google like any other Crawler"
|
8926 |
+
msgstr ""
|
8927 |
+
|
8928 |
+
#: views/waf/options-group-rate-limiting.php:68
|
8929 |
+
#: views/waf/options-group-rate-limiting.php:69
|
8930 |
+
#: views/waf/options-group-rate-limiting.php:70
|
8931 |
+
#: views/waf/options-group-rate-limiting.php:71
|
8932 |
+
#: views/waf/options-group-rate-limiting.php:72
|
8933 |
+
#: views/waf/options-group-rate-limiting.php:73
|
8934 |
+
#: views/waf/options-group-rate-limiting.php:74
|
8935 |
+
#: views/waf/options-group-rate-limiting.php:75
|
8936 |
+
#: views/waf/options-group-rate-limiting.php:76
|
8937 |
+
#: views/waf/options-group-rate-limiting.php:77
|
8938 |
+
#: views/waf/options-group-rate-limiting.php:78
|
8939 |
+
#: views/waf/options-group-rate-limiting.php:79
|
8940 |
+
#: views/waf/options-group-rate-limiting.php:80
|
8941 |
+
#: views/waf/options-group-rate-limiting.php:81
|
8942 |
+
msgid "%d per minute"
|
8943 |
+
msgstr ""
|
8944 |
+
|
8945 |
+
#: views/waf/options-group-rate-limiting.php:84
|
8946 |
+
msgid "throttle it"
|
8947 |
+
msgstr ""
|
8948 |
+
|
8949 |
+
#: views/waf/options-group-rate-limiting.php:85
|
8950 |
+
msgid "block it"
|
8951 |
+
msgstr ""
|
8952 |
+
|
8953 |
+
#: views/waf/options-group-rate-limiting.php:195
|
8954 |
+
msgid "These URL patterns will be excluded from the throttling rules used to limit crawlers."
|
8955 |
+
msgstr ""
|
8956 |
+
|
8957 |
+
#: views/waf/options-group-whitelisted.php:26
|
8958 |
+
msgid "Whitelisted URLs"
|
8959 |
+
msgstr ""
|
8960 |
+
|
8961 |
+
#: views/waf/options-group-whitelisted.php:53
|
8962 |
+
msgid "Front-end Website"
|
8963 |
+
msgstr ""
|
8964 |
+
|
8965 |
+
#: views/waf/options-group-whitelisted.php:60
|
8966 |
+
msgid "Admin Panel"
|
8967 |
+
msgstr ""
|
8968 |
+
|
8969 |
+
#: views/waf/options-group-whitelisted.php:64
|
8970 |
+
msgid "Monitor background requests from an administrator's web browser for false positives"
|
8971 |
+
msgstr ""
|
8972 |
+
|
8973 |
+
#: views/waf/options-group-whitelisted.php:80
|
8974 |
+
#: views/waf/options-group-whitelisted.php:93
|
8975 |
+
msgid "Select/deselect all"
|
8976 |
+
msgstr ""
|
8977 |
+
|
8978 |
+
#: views/waf/options-group-whitelisted.php:84
|
8979 |
+
#: views/waf/options-group-whitelisted.php:97
|
8980 |
+
msgid "Created"
|
8981 |
+
msgstr ""
|
8982 |
+
|
8983 |
+
#: views/waf/options-group-whitelisted.php:107
|
8984 |
+
msgid "Select row ${idx}"
|
8985 |
+
msgstr ""
|
8986 |
+
|
8987 |
+
#: views/waf/options-group-whitelisted.php:108
|
8988 |
+
msgid "Toggle row ${idx}"
|
8989 |
+
msgstr ""
|
8990 |
+
|
8991 |
+
#: views/waf/options-group-whitelisted.php:157
|
8992 |
+
msgid "No whitelisted URLs currently set."
|
8993 |
+
msgstr ""
|
8994 |
+
|
8995 |
+
#: views/waf/status-tooltip-learning-mode.php:6
|
8996 |
+
msgid "The Web Application Firewall is currently in Learning Mode. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More</a>"
|
8997 |
+
msgstr ""
|
8998 |
+
|
8999 |
+
#: views/waf/waf-install-manual.php:10
|
9000 |
+
msgid "The required file has been created. You'll need to insert the following code into your <code>php.ini</code> to finish installation:"
|
9001 |
+
msgstr ""
|
9002 |
+
|
9003 |
+
#: views/waf/waf-install-manual.php:12
|
9004 |
+
msgid "You can find more details on alternative setup steps, including installation on SiteGround or for multiple sites sharing a single php.ini, <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%s\">in our documentation</a>."
|
9005 |
+
msgstr ""
|
9006 |
+
|
9007 |
+
#: views/waf/waf-install-success.php:14
|
9008 |
+
msgid "Nice work! The firewall is now optimized."
|
9009 |
+
msgstr ""
|
9010 |
+
|
9011 |
+
#: views/waf/waf-install-success.php:16
|
9012 |
+
#: views/waf/waf-uninstall-success.php:19
|
9013 |
+
msgid "The changes have not yet taken effect. If you are using LiteSpeed or IIS as your web server or CGI/FastCGI interface, you may need to wait a few minutes for the changes to take effect since the configuration files are sometimes cached. You also may need to select a different server configuration in order to complete this step, but wait for a few minutes before trying. You can try refreshing this page."
|
9014 |
+
msgstr ""
|
9015 |
+
|
9016 |
+
#: views/waf/waf-install.php:9
|
9017 |
+
msgid "Optimize Wordfence Firewall"
|
9018 |
+
msgstr ""
|
9019 |
+
|
9020 |
+
#: views/waf/waf-install.php:22
|
9021 |
+
msgid "To make your site as secure as possible, the Wordfence Web Application Firewall is designed to run via a PHP setting called <code>auto_prepend_file</code>, which ensures it runs before any potentially vulnerable code runs."
|
9022 |
+
msgstr ""
|
9023 |
+
|
9024 |
+
#: views/waf/waf-install.php:24
|
9025 |
+
msgid "To make your site as secure as possible, the Wordfence Web Application Firewall is designed to run via a PHP setting called <code>auto_prepend_file</code>, which ensures it runs before any potentially vulnerable code runs. This PHP setting is currently in use, and is including this file:"
|
9026 |
+
msgstr ""
|
9027 |
+
|
9028 |
+
#: views/waf/waf-install.php:26
|
9029 |
+
msgid ""
|
9030 |
+
"If you don't recognize this file, please <a href=\"https://wordpress.org/support/plugin/wordfence\" target=\"_blank\" rel=\"noopener noreferrer\">contact us on the\n"
|
9031 |
+
"\t\t\t\t\tWordPress support forums</a> before proceeding."
|
9032 |
+
msgstr ""
|
9033 |
+
|
9034 |
+
#: views/waf/waf-install.php:28
|
9035 |
+
msgid "You can proceed with the installation and we will include this from within our <code>wordfence-waf.php</code> file which should maintain compatibility with your site, or you can opt to override the existing PHP setting."
|
9036 |
+
msgstr ""
|
9037 |
+
|
9038 |
+
#: views/waf/waf-install.php:29
|
9039 |
+
msgid "Include"
|
9040 |
+
msgstr ""
|
9041 |
+
|
9042 |
+
#: views/waf/waf-install.php:29
|
9043 |
+
msgid "Override"
|
9044 |
+
msgstr ""
|
9045 |
+
|
9046 |
+
#: views/waf/waf-install.php:31
|
9047 |
+
msgid "NOTE:"
|
9048 |
+
msgstr ""
|
9049 |
+
|
9050 |
+
#: views/waf/waf-install.php:31
|
9051 |
+
msgid "If you have separate WordPress installations with Wordfence installed within a subdirectory of this site, it is recommended that you perform the Firewall installation procedure on those sites before this one."
|
9052 |
+
msgstr ""
|
9053 |
+
|
9054 |
+
#: views/waf/waf-install.php:35
|
9055 |
+
#: views/waf/waf-uninstall.php:40
|
9056 |
+
msgid "Apache + mod_php"
|
9057 |
+
msgstr ""
|
9058 |
+
|
9059 |
+
#: views/waf/waf-install.php:36
|
9060 |
+
#: views/waf/waf-uninstall.php:41
|
9061 |
+
msgid "Apache + suPHP"
|
9062 |
+
msgstr ""
|
9063 |
+
|
9064 |
+
#: views/waf/waf-install.php:37
|
9065 |
+
#: views/waf/waf-uninstall.php:42
|
9066 |
+
msgid "Apache + CGI/FastCGI"
|
9067 |
+
msgstr ""
|
9068 |
+
|
9069 |
+
#: views/waf/waf-install.php:38
|
9070 |
+
#: views/waf/waf-uninstall.php:43
|
9071 |
+
msgid "LiteSpeed/lsapi"
|
9072 |
+
msgstr ""
|
9073 |
+
|
9074 |
+
#: views/waf/waf-install.php:39
|
9075 |
+
#: views/waf/waf-uninstall.php:44
|
9076 |
+
msgid "NGINX"
|
9077 |
+
msgstr ""
|
9078 |
+
|
9079 |
+
#: views/waf/waf-install.php:40
|
9080 |
+
#: views/waf/waf-uninstall.php:45
|
9081 |
+
msgid "Windows (IIS)"
|
9082 |
+
msgstr ""
|
9083 |
+
|
9084 |
+
#: views/waf/waf-install.php:41
|
9085 |
+
msgid "Manual Configuration"
|
9086 |
+
msgstr ""
|
9087 |
+
|
9088 |
+
#: views/waf/waf-install.php:55
|
9089 |
+
#: views/waf/waf-uninstall.php:59
|
9090 |
+
msgid "If you know your web server's configuration, please select it from the list below."
|
9091 |
+
msgstr ""
|
9092 |
+
|
9093 |
+
#: views/waf/waf-install.php:57
|
9094 |
+
msgid "We've preselected your server configuration based on our tests, but if you know your web server's configuration, please select it now. You can also choose \"Manual Configuration\" for alternate installation details."
|
9095 |
+
msgstr ""
|
9096 |
+
|
9097 |
+
#: views/waf/waf-install.php:62
|
9098 |
+
msgid "Part of the Firewall configuration procedure for NGINX depends on creating a <code>%s</code> file in the root of your WordPress installation. This file can contain sensitive information and public access to it should be restricted. We have <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">instructions on our documentation site</a> on what directives to put in your nginx.conf to fix this."
|
9099 |
+
msgstr ""
|
9100 |
+
|
9101 |
+
#: views/waf/waf-install.php:62
|
9102 |
+
msgid "(.user.ini)"
|
9103 |
+
msgstr ""
|
9104 |
+
|
9105 |
+
#: views/waf/waf-install.php:64
|
9106 |
+
msgid "If you are using a web server not listed in the dropdown or if file permissions prevent the installer from completing successfully, you will need to perform the change manually. Click Continue below to create the required file and view manual installation instructions."
|
9107 |
+
msgstr ""
|
9108 |
+
|
9109 |
+
#: views/waf/waf-install.php:85
|
9110 |
+
#: views/waf/waf-uninstall.php:85
|
9111 |
+
msgid "Please download a backup of the following files before we make the necessary changes:"
|
9112 |
+
msgstr ""
|
9113 |
+
|
9114 |
+
#: views/waf/waf-install.php:95
|
9115 |
+
#: views/waf/waf-uninstall.php:95
|
9116 |
+
msgid "Download %s"
|
9117 |
+
msgstr ""
|
9118 |
+
|
9119 |
+
#: views/waf/waf-install.php:104
|
9120 |
+
msgid "Once you have downloaded the files, click Continue to complete the setup."
|
9121 |
+
msgstr ""
|
9122 |
+
|
9123 |
+
#: views/waf/waf-uninstall-success.php:15
|
9124 |
+
msgid "Uninstallation was successful!"
|
9125 |
+
msgstr ""
|
9126 |
+
|
9127 |
+
#: views/waf/waf-uninstall-success.php:17
|
9128 |
+
msgid "Uninstallation from this site was successful! The Wordfence Firewall is still active because it is installed in another WordPress installation."
|
9129 |
+
msgstr ""
|
9130 |
+
|
9131 |
+
#: views/waf/waf-uninstall.php:9
|
9132 |
+
msgid "Uninstall Wordfence Firewall"
|
9133 |
+
msgstr ""
|
9134 |
+
|
9135 |
+
#: views/waf/waf-uninstall.php:26
|
9136 |
+
msgid "Extended Protection Mode of the Wordfence Web Application Firewall uses the PHP ini setting called <code>auto_prepend_file</code> in order to ensure it runs before any potentially vulnerable code runs. This PHP setting currently refers to the Wordfence file at:"
|
9137 |
+
msgstr ""
|
9138 |
+
|
9139 |
+
#: views/waf/waf-uninstall.php:34
|
9140 |
+
msgid "Automatic uninstallation cannot be completed, but you may still be able to <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">manually uninstall extended protection</a>."
|
9141 |
+
msgstr ""
|
9142 |
+
|
9143 |
+
#: views/waf/waf-uninstall.php:36
|
9144 |
+
msgid "Before this file can be deleted, the configuration for the <code>auto_prepend_file</code> setting needs to be removed."
|
9145 |
+
msgstr ""
|
9146 |
+
|
9147 |
+
#: views/waf/waf-uninstall.php:61
|
9148 |
+
msgid "We've preselected your server configuration based on our tests, but if you know your web server's configuration, please select it now."
|
9149 |
+
msgstr ""
|
9150 |
+
|
9151 |
+
#: views/waf/waf-uninstall.php:105
|
9152 |
+
msgid "Once you have downloaded the files, click Continue to complete uninstallation."
|
9153 |
+
msgstr ""
|
lib/GeoLite2-Country.mmdb
CHANGED
Binary file
|
lib/menu_tools_diagnostic.php
CHANGED
@@ -631,7 +631,19 @@ if (!isset($sendingDiagnosticEmail)) {
|
|
631 |
$missingTables[] = $t;
|
632 |
}
|
633 |
}
|
634 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
635 |
if ($hasAll): ?>
|
636 |
<div class="wf-result-success"><?php _e('All Tables Exist', 'wordfence'); ?></div>
|
637 |
<?php else: ?>
|
631 |
$missingTables[] = $t;
|
632 |
}
|
633 |
}
|
634 |
+
|
635 |
+
foreach (
|
636 |
+
array(
|
637 |
+
\WordfenceLS\Controller_DB::TABLE_2FA_SECRETS,
|
638 |
+
\WordfenceLS\Controller_DB::TABLE_SETTINGS,
|
639 |
+
) as $t) {
|
640 |
+
$table = \WordfenceLS\Controller_DB::network_table($t);
|
641 |
+
if (!in_array($table, $existingTables)) {
|
642 |
+
$hasAll = false;
|
643 |
+
$missingTables[] = $t;
|
644 |
+
}
|
645 |
+
}
|
646 |
+
|
647 |
if ($hasAll): ?>
|
648 |
<div class="wf-result-success"><?php _e('All Tables Exist', 'wordfence'); ?></div>
|
649 |
<?php else: ?>
|
lib/wf503.php
CHANGED
@@ -328,7 +328,7 @@
|
|
328 |
<hr>
|
329 |
<?php require(dirname(__FILE__) . '/wfUnlockMsg.php'); ?>
|
330 |
|
331 |
-
<h2 class="h3"
|
332 |
<table border="0" cellspacing="0" cellpadding="0" class="block-data">
|
333 |
<tr>
|
334 |
<th class="reason"><?php _e('Block Reason', 'wordfence'); ?>:</th>
|
328 |
<hr>
|
329 |
<?php require(dirname(__FILE__) . '/wfUnlockMsg.php'); ?>
|
330 |
|
331 |
+
<h2 class="h3"><?php _e('Block Technical Data', 'wordfence') ?></h2>
|
332 |
<table border="0" cellspacing="0" cellpadding="0" class="block-data">
|
333 |
<tr>
|
334 |
<th class="reason"><?php _e('Block Reason', 'wordfence'); ?>:</th>
|
lib/wfActivityReport.php
CHANGED
@@ -372,14 +372,15 @@ SQL
|
|
372 |
}
|
373 |
return false;
|
374 |
}
|
375 |
-
|
376 |
/**
|
377 |
* Returns list of firewall activity up to $limit number of entries.
|
378 |
-
*
|
379 |
* @param int $limit Max events to return in results
|
|
|
380 |
* @return array
|
381 |
*/
|
382 |
-
public function getRecentFirewallActivity($limit
|
383 |
$dateRange = wfActivityReport::getReportDateRange();
|
384 |
$recent_firewall_activity = new wfRecentFirewallActivity(null, max(604800, $dateRange[1] - $dateRange[0]));
|
385 |
$recent_firewall_activity->run();
|
372 |
}
|
373 |
return false;
|
374 |
}
|
375 |
+
|
376 |
/**
|
377 |
* Returns list of firewall activity up to $limit number of entries.
|
378 |
+
*
|
379 |
* @param int $limit Max events to return in results
|
380 |
+
* @param int $remainder
|
381 |
* @return array
|
382 |
*/
|
383 |
+
public function getRecentFirewallActivity($limit, &$remainder) {
|
384 |
$dateRange = wfActivityReport::getReportDateRange();
|
385 |
$recent_firewall_activity = new wfRecentFirewallActivity(null, max(604800, $dateRange[1] - $dateRange[0]));
|
386 |
$recent_firewall_activity->run();
|
lib/wfAlerts.php
CHANGED
@@ -50,7 +50,7 @@ class wfAutoUpdatedAlert extends wfBaseAlert {
|
|
50 |
|
51 |
public function send() {
|
52 |
if (wfConfig::get('alertOn_update') == '1' && $this->version) {
|
53 |
-
wordfence::alert("Wordfence Upgraded to version "
|
54 |
}
|
55 |
}
|
56 |
|
@@ -93,7 +93,7 @@ class wfWordfenceDeactivatedAlert extends wfBaseAlert {
|
|
93 |
|
94 |
public function send() {
|
95 |
if (wfConfig::get('alertOn_wordfenceDeactivated')) {
|
96 |
-
wordfence::alert("Wordfence Deactivated", "A user with username \"
|
97 |
}
|
98 |
}
|
99 |
|
@@ -115,7 +115,7 @@ class wfLostPasswdFormAlert extends wfBaseAlert {
|
|
115 |
|
116 |
public function send() {
|
117 |
if (wfConfig::get('alertOn_lostPasswdForm')) {
|
118 |
-
wordfence::alert("Password recovery attempted", "Someone tried to recover the password for user with email address: "
|
119 |
}
|
120 |
}
|
121 |
|
@@ -174,7 +174,7 @@ class wfAdminLoginAlert extends wfBaseAlert {
|
|
174 |
}
|
175 |
|
176 |
if ($shouldAlert) {
|
177 |
-
wordfence::alert("Admin Login", "A user with username \"
|
178 |
}
|
179 |
}
|
180 |
}
|
@@ -208,7 +208,7 @@ class wfNonAdminLoginAlert extends wfBaseAlert {
|
|
208 |
}
|
209 |
|
210 |
if ($shouldAlert) {
|
211 |
-
wordfence::alert("User login", "A non-admin user with username \"
|
212 |
}
|
213 |
}
|
214 |
}
|
@@ -253,6 +253,6 @@ class wfIncreasedAttackRateAlert extends wfBaseAlert {
|
|
253 |
}
|
254 |
|
255 |
public function send() {
|
256 |
-
wordfence::alert('Increased Attack Rate', $this->message, false);
|
257 |
}
|
258 |
}
|
50 |
|
51 |
public function send() {
|
52 |
if (wfConfig::get('alertOn_update') == '1' && $this->version) {
|
53 |
+
wordfence::alert(sprintf(__("Wordfence Upgraded to version %s", 'wordfence'), $this->version), sprintf(__("Your Wordfence installation has been upgraded to version %s", 'wordfence'), $this->version), false);
|
54 |
}
|
55 |
}
|
56 |
|
93 |
|
94 |
public function send() {
|
95 |
if (wfConfig::get('alertOn_wordfenceDeactivated')) {
|
96 |
+
wordfence::alert(__("Wordfence Deactivated", 'wordfence'), sprintf(__("A user with username \"%s\" deactivated Wordfence on your WordPress site.", 'wordfence'), $this->username), $this->IP);
|
97 |
}
|
98 |
}
|
99 |
|
115 |
|
116 |
public function send() {
|
117 |
if (wfConfig::get('alertOn_lostPasswdForm')) {
|
118 |
+
wordfence::alert(__("Password recovery attempted", 'wordfence'), sprintf(__("Someone tried to recover the password for user with email address: %s", 'wordfence'), wp_kses($this->user->user_email, array())), $this->IP);
|
119 |
}
|
120 |
}
|
121 |
|
174 |
}
|
175 |
|
176 |
if ($shouldAlert) {
|
177 |
+
wordfence::alert(__("Admin Login", 'wordfence'), sprintf(__("A user with username \"%s\" who has administrator access signed in to your WordPress site.", 'wordfence'), $this->username), $this->IP);
|
178 |
}
|
179 |
}
|
180 |
}
|
208 |
}
|
209 |
|
210 |
if ($shouldAlert) {
|
211 |
+
wordfence::alert(__("User login", 'wordfence'), sprintf(__("A non-admin user with username \"%s\" signed in to your WordPress site.", 'wordfence'), $this->username), $this->IP);
|
212 |
}
|
213 |
}
|
214 |
}
|
253 |
}
|
254 |
|
255 |
public function send() {
|
256 |
+
wordfence::alert(__('Increased Attack Rate', 'wordfence'), $this->message, false);
|
257 |
}
|
258 |
}
|
lib/wfConfig.php
CHANGED
@@ -948,13 +948,13 @@ class wfConfig {
|
|
948 |
$lastEmail = self::get('lastLiteSpdEmail', false);
|
949 |
if( (! $lastEmail) || (time() - (int)$lastEmail > (86400 * 30))){
|
950 |
self::set('lastLiteSpdEmail', time());
|
951 |
-
wordfence::alert("Wordfence Upgrade not run. Please modify your .htaccess", "To preserve the integrity of your website we are not running Wordfence auto-update.\n" .
|
952 |
"You are running the LiteSpeed web server which has been known to cause a problem with Wordfence auto-update.\n" .
|
953 |
"Please go to your website now and make a minor change to your .htaccess to fix this.\n" .
|
954 |
"You can find out how to make this change at:\n" .
|
955 |
-
|
956 |
-
"\nAlternatively you can disable auto-update on your website to stop receiving this message and upgrade Wordfence manually.\n",
|
957 |
-
|
958 |
);
|
959 |
}
|
960 |
return;
|
@@ -1016,7 +1016,6 @@ class wfConfig {
|
|
1016 |
$alertCallback = array(new wfAutoUpdatedAlert($version), 'send');
|
1017 |
do_action('wordfence_security_event', 'autoUpdate', array(
|
1018 |
'version' => $version,
|
1019 |
-
'ip' => wfUtils::getIP(),
|
1020 |
), $alertCallback);
|
1021 |
|
1022 |
wfConfig::set('autoUpdateAttempts', 0);
|
@@ -1273,6 +1272,18 @@ Options -ExecCGI
|
|
1273 |
$checked = true;
|
1274 |
break;
|
1275 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1276 |
}
|
1277 |
}
|
1278 |
|
@@ -1510,7 +1521,7 @@ Options -ExecCGI
|
|
1510 |
wfConfig::setJSON($key, (array) $value);
|
1511 |
}
|
1512 |
|
1513 |
-
$wafConfig->setConfig('whitelistedServiceIPs', @json_encode(wfUtils::whitelistedServiceIPs()));
|
1514 |
|
1515 |
if (method_exists(wfWAF::getInstance()->getStorageEngine(), 'purgeIPBlocks')) {
|
1516 |
wfWAF::getInstance()->getStorageEngine()->purgeIPBlocks(wfWAFStorageInterface::IP_BLOCKS_BLACKLIST);
|
948 |
$lastEmail = self::get('lastLiteSpdEmail', false);
|
949 |
if( (! $lastEmail) || (time() - (int)$lastEmail > (86400 * 30))){
|
950 |
self::set('lastLiteSpdEmail', time());
|
951 |
+
wordfence::alert(__("Wordfence Upgrade not run. Please modify your .htaccess", 'wordfence'), sprintf(__("To preserve the integrity of your website we are not running Wordfence auto-update.\n" .
|
952 |
"You are running the LiteSpeed web server which has been known to cause a problem with Wordfence auto-update.\n" .
|
953 |
"Please go to your website now and make a minor change to your .htaccess to fix this.\n" .
|
954 |
"You can find out how to make this change at:\n" .
|
955 |
+
"%s\n" .
|
956 |
+
"\nAlternatively you can disable auto-update on your website to stop receiving this message and upgrade Wordfence manually.\n", 'wordfence'), wfSupportController::supportURL(wfSupportController::ITEM_DASHBOARD_OPTION_LITESPEED_WARNING)),
|
957 |
+
false
|
958 |
);
|
959 |
}
|
960 |
return;
|
1016 |
$alertCallback = array(new wfAutoUpdatedAlert($version), 'send');
|
1017 |
do_action('wordfence_security_event', 'autoUpdate', array(
|
1018 |
'version' => $version,
|
|
|
1019 |
), $alertCallback);
|
1020 |
|
1021 |
wfConfig::set('autoUpdateAttempts', 0);
|
1272 |
$checked = true;
|
1273 |
break;
|
1274 |
}
|
1275 |
+
case 'scan_exclude':
|
1276 |
+
{
|
1277 |
+
$exclusionList = explode("\n", trim($value));
|
1278 |
+
foreach ($exclusionList as $exclusion) {
|
1279 |
+
$exclusion = trim($exclusion);
|
1280 |
+
if ($exclusion === '*') {
|
1281 |
+
$errors[] = array('option' => $key, 'error' => __('A wildcard cannot be used to exclude all files from the scan.', 'wordfence'));
|
1282 |
+
}
|
1283 |
+
}
|
1284 |
+
$checked = true;
|
1285 |
+
break;
|
1286 |
+
}
|
1287 |
}
|
1288 |
}
|
1289 |
|
1521 |
wfConfig::setJSON($key, (array) $value);
|
1522 |
}
|
1523 |
|
1524 |
+
$wafConfig->setConfig('whitelistedServiceIPs', @json_encode(wfUtils::whitelistedServiceIPs()), 'synced');
|
1525 |
|
1526 |
if (method_exists(wfWAF::getInstance()->getStorageEngine(), 'purgeIPBlocks')) {
|
1527 |
wfWAF::getInstance()->getStorageEngine()->purgeIPBlocks(wfWAFStorageInterface::IP_BLOCKS_BLACKLIST);
|
lib/wfLog.php
CHANGED
@@ -214,19 +214,19 @@ class wfLog {
|
|
214 |
wfRateLimit::countHit($type, wfUtils::getIP());
|
215 |
|
216 |
if (wfRateLimit::globalRateLimit()->shouldEnforce($type)) {
|
217 |
-
$this->takeBlockingAction('maxGlobalRequests', "Exceeded the maximum global requests per minute for crawlers or humans.");
|
218 |
}
|
219 |
else if (wfRateLimit::crawlerViewsRateLimit()->shouldEnforce($type)) {
|
220 |
-
$this->takeBlockingAction('maxRequestsCrawlers', "Exceeded the maximum number of requests per minute for crawlers."); //may not exit
|
221 |
}
|
222 |
else if (wfRateLimit::crawler404sRateLimit()->shouldEnforce($type)) {
|
223 |
-
$this->takeBlockingAction('max404Crawlers', "Exceeded the maximum number of page not found errors per minute for a crawler.");
|
224 |
}
|
225 |
else if (wfRateLimit::humanViewsRateLimit()->shouldEnforce($type)) {
|
226 |
-
$this->takeBlockingAction('maxRequestsHumans', "Exceeded the maximum number of page requests per minute for humans.");
|
227 |
}
|
228 |
else if (wfRateLimit::human404sRateLimit()->shouldEnforce($type)) {
|
229 |
-
$this->takeBlockingAction('max404Humans', "Exceeded the maximum number of page not found errors per minute for humans.");
|
230 |
}
|
231 |
}
|
232 |
|
@@ -553,7 +553,7 @@ class wfLog {
|
|
553 |
$b->recordBlock();
|
554 |
wfActivityReport::logBlockedIP($IP, null, 'advanced');
|
555 |
$this->currentRequest->actionDescription = 'UA/Referrer/IP Range not allowed';
|
556 |
-
$this->do503(3600, "Advanced blocking in effect."); //exits
|
557 |
}
|
558 |
}
|
559 |
|
@@ -1459,7 +1459,7 @@ class wfLiveTrafficQuery {
|
|
1459 |
* @return string
|
1460 |
* @throws wfLiveTrafficQueryException
|
1461 |
*/
|
1462 |
-
public function buildQuery(&$delayedHumanBotFiltering
|
1463 |
global $wpdb;
|
1464 |
$filters = $this->getFilters();
|
1465 |
$groupBy = $this->getGroupBy();
|
214 |
wfRateLimit::countHit($type, wfUtils::getIP());
|
215 |
|
216 |
if (wfRateLimit::globalRateLimit()->shouldEnforce($type)) {
|
217 |
+
$this->takeBlockingAction('maxGlobalRequests', __("Exceeded the maximum global requests per minute for crawlers or humans.", 'wordfence'));
|
218 |
}
|
219 |
else if (wfRateLimit::crawlerViewsRateLimit()->shouldEnforce($type)) {
|
220 |
+
$this->takeBlockingAction('maxRequestsCrawlers', __("Exceeded the maximum number of requests per minute for crawlers.", 'wordfence')); //may not exit
|
221 |
}
|
222 |
else if (wfRateLimit::crawler404sRateLimit()->shouldEnforce($type)) {
|
223 |
+
$this->takeBlockingAction('max404Crawlers', __("Exceeded the maximum number of page not found errors per minute for a crawler.", 'wordfence'));
|
224 |
}
|
225 |
else if (wfRateLimit::humanViewsRateLimit()->shouldEnforce($type)) {
|
226 |
+
$this->takeBlockingAction('maxRequestsHumans', __("Exceeded the maximum number of page requests per minute for humans.", 'wordfence'));
|
227 |
}
|
228 |
else if (wfRateLimit::human404sRateLimit()->shouldEnforce($type)) {
|
229 |
+
$this->takeBlockingAction('max404Humans', __("Exceeded the maximum number of page not found errors per minute for humans.", 'wordfence'));
|
230 |
}
|
231 |
}
|
232 |
|
553 |
$b->recordBlock();
|
554 |
wfActivityReport::logBlockedIP($IP, null, 'advanced');
|
555 |
$this->currentRequest->actionDescription = 'UA/Referrer/IP Range not allowed';
|
556 |
+
$this->do503(3600, __("Advanced blocking in effect.", 'wordfence')); //exits
|
557 |
}
|
558 |
}
|
559 |
|
1459 |
* @return string
|
1460 |
* @throws wfLiveTrafficQueryException
|
1461 |
*/
|
1462 |
+
public function buildQuery(&$delayedHumanBotFiltering, &$humanOnly) {
|
1463 |
global $wpdb;
|
1464 |
$filters = $this->getFilters();
|
1465 |
$groupBy = $this->getGroupBy();
|
lib/wfScanEngine.php
CHANGED
@@ -230,7 +230,9 @@ class wfScanEngine {
|
|
230 |
$this->recordMetric('scan', 'duration', (time() - $this->startTime));
|
231 |
$this->recordMetric('scan', 'memory', wfConfig::get('wfPeakMemory', 0, false));
|
232 |
$this->submitMetrics();
|
233 |
-
|
|
|
|
|
234 |
wfScanEngine::refreshScanNotification($this->i);
|
235 |
throw $e;
|
236 |
}
|
230 |
$this->recordMetric('scan', 'duration', (time() - $this->startTime));
|
231 |
$this->recordMetric('scan', 'memory', wfConfig::get('wfPeakMemory', 0, false));
|
232 |
$this->submitMetrics();
|
233 |
+
|
234 |
+
$this->deleteNewIssues();
|
235 |
+
|
236 |
wfScanEngine::refreshScanNotification($this->i);
|
237 |
throw $e;
|
238 |
}
|
lib/wordfenceClass.php
CHANGED
@@ -1094,29 +1094,6 @@ SQL
|
|
1094 |
}
|
1095 |
}
|
1096 |
public static function initProtection(){ //Basic protection during WAF learning period
|
1097 |
-
if (preg_match('#/wp\-admin/admin\-ajax\.php$#i', $_SERVER['SCRIPT_FILENAME'])) {
|
1098 |
-
$gAction = isset($_GET['action']) ? $_GET['action'] : '';
|
1099 |
-
$pAction = isset($_POST['action']) ? $_POST['action'] : '';
|
1100 |
-
if (
|
1101 |
-
(($gAction == 'revslider_show_image' || $gAction == 'nopriv_revslider_show_image') && isset($_GET['img']) && preg_match('/\.php$/i', $_GET['img'])) ||
|
1102 |
-
(($pAction == 'revslider_show_image' || $pAction == 'nopriv_revslider_show_image') && isset($_POST['img']) && preg_match('/\.php$/i', $_POST['img']))
|
1103 |
-
) {
|
1104 |
-
self::getLog()->do503(86400, "URL not allowed. Slider Revolution Hack attempt detected. #2");
|
1105 |
-
exit(); //function above exits anyway
|
1106 |
-
}
|
1107 |
-
|
1108 |
-
if (
|
1109 |
-
(
|
1110 |
-
(($gAction == 'revslider_ajax_action' || $gAction == 'nopriv_revslider_ajax_action') && isset($_GET['client_action']) && $_GET['client_action'] == 'update_plugin') ||
|
1111 |
-
(($pAction == 'revslider_ajax_action' || $pAction == 'nopriv_revslider_ajax_action') && isset($_POST['client_action']) && $_POST['client_action'] == 'update_plugin')
|
1112 |
-
) &&
|
1113 |
-
!wfUtils::isAdmin()
|
1114 |
-
) {
|
1115 |
-
self::getLog()->do503(86400, "URL not allowed. Slider Revolution Hack attempt detected. #2");
|
1116 |
-
exit(); //function above exits anyway
|
1117 |
-
}
|
1118 |
-
}
|
1119 |
-
|
1120 |
// Infinite WP Client - Authentication Bypass < 1.9.4.5
|
1121 |
// https://wpvulndb.com/vulnerabilities/10011
|
1122 |
$iwpRule = new wfWAFRule(wfWAF::getInstance(), 0x80000000, null, 'auth-bypass', 100, 'Infinite WP Client - Authentication Bypass < 1.9.4.5', 0, 'block', null);
|
@@ -1820,11 +1797,14 @@ SQL
|
|
1820 |
));
|
1821 |
wp_mail($email, "Unlock email requested", $content, "Content-Type: text/html");
|
1822 |
}
|
1823 |
-
echo "<html><body><h1>Your request was received
|
|
|
|
|
|
|
1824 |
exit();
|
1825 |
} else if($wfFunc == 'unlockAccess'){
|
1826 |
if (!preg_match('/^(?:(?:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9](?::|$)){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))$/i', get_transient('wfunlock_' . $_GET['key']))) {
|
1827 |
-
|
1828 |
exit();
|
1829 |
}
|
1830 |
|
@@ -1835,7 +1815,7 @@ SQL
|
|
1835 |
header('Location: ' . wp_login_url());
|
1836 |
exit();
|
1837 |
} else if($_GET['func'] == 'unlockAllIPs'){
|
1838 |
-
wordfence::status(1, 'info', "Request received via unlock email link to unblock all IPs.");
|
1839 |
wfBlock::removeAllIPBlocks();
|
1840 |
if (class_exists('wfWAFIPBlocksController')) { wfWAFIPBlocksController::setNeedsSynchronizeConfigSettings(); }
|
1841 |
delete_transient('wflginfl_' . bin2hex(wfUtils::inet_pton(wfUtils::getIP()))); //Reset login failure counter
|
@@ -1844,7 +1824,7 @@ SQL
|
|
1844 |
} else if($_GET['func'] == 'disableRules'){
|
1845 |
wfConfig::set('firewallEnabled', 0);
|
1846 |
wfConfig::set('loginSecurityEnabled', 0);
|
1847 |
-
wordfence::status(1, 'info', "Request received via unlock email link to unblock all IPs via disabling firewall rules.");
|
1848 |
wfBlock::removeAllIPBlocks();
|
1849 |
wfBlock::removeAllCountryBlocks();
|
1850 |
if (class_exists('wfWAFIPBlocksController')) { wfWAFIPBlocksController::setNeedsSynchronizeConfigSettings(); }
|
@@ -1852,7 +1832,7 @@ SQL
|
|
1852 |
header('Location: ' . wp_login_url());
|
1853 |
exit();
|
1854 |
} else {
|
1855 |
-
|
1856 |
exit();
|
1857 |
}
|
1858 |
}
|
@@ -1897,7 +1877,7 @@ SQL
|
|
1897 |
'IP' => wfUtils::getIP(),
|
1898 |
'jwt' => wfUtils::generateJWT(array('email' => $email)),
|
1899 |
));
|
1900 |
-
wp_mail($email, "Unsubscribe Requested", $content, "Content-Type: text/html");
|
1901 |
}
|
1902 |
|
1903 |
echo wfView::create('common/unsubscribe', array(
|
@@ -2231,6 +2211,7 @@ SQL
|
|
2231 |
'wordpressVersion' => wfConfig::get('wordpressVersion'),
|
2232 |
'wordpressPluginVersions' => wfConfig::get_ser('wordpressPluginVersions'),
|
2233 |
'wordpressThemeVersions' => wfConfig::get_ser('wordpressThemeVersions'),
|
|
|
2234 |
);
|
2235 |
if (wfUtils::isAdmin()) {
|
2236 |
$errorNonceKey = 'errorNonce_' . get_current_user_id();
|
@@ -2359,7 +2340,7 @@ SQL
|
|
2359 |
wfBlock::createIP($reason, $IP, wfBlock::blockDuration(), time(), time(), 1, wfBlock::TYPE_IP_AUTOMATIC_TEMPORARY);
|
2360 |
wfActivityReport::logBlockedIP($IP, null, 'bannedurl');
|
2361 |
$wfLog->tagRequestForBlock($reason);
|
2362 |
-
$wfLog->do503(3600, "Accessed a banned URL");
|
2363 |
//exits
|
2364 |
}
|
2365 |
}
|
@@ -2370,7 +2351,7 @@ SQL
|
|
2370 |
wfBlock::createIP($reason, $IP, wfBlock::blockDuration(), time(), time(), 1, wfBlock::TYPE_IP_AUTOMATIC_TEMPORARY);
|
2371 |
wfActivityReport::logBlockedIP($IP, null, 'badpost');
|
2372 |
$wfLog->tagRequestForBlock($reason);
|
2373 |
-
$wfLog->do503(3600, "POST received with blank user-agent and referer");
|
2374 |
//exits
|
2375 |
}
|
2376 |
}
|
@@ -3711,7 +3692,7 @@ SQL
|
|
3711 |
'mode' => 'phone'
|
3712 |
);
|
3713 |
}
|
3714 |
-
private static function twoFactorAdd($ID, $phone, $code, $mode
|
3715 |
$twoFactorUsers = wfConfig::get_ser('twoFactorUsers', array());
|
3716 |
if(! is_array($twoFactorUsers)){
|
3717 |
$twoFactorUsers = array();
|
@@ -5733,6 +5714,8 @@ HTML;
|
|
5733 |
}
|
5734 |
|
5735 |
public static function initAction(){
|
|
|
|
|
5736 |
$firewall = new wfFirewall();
|
5737 |
define('WFWAF_OPERATIONAL', $firewall->testConfig());
|
5738 |
|
@@ -6714,14 +6697,14 @@ HTML
|
|
6714 |
|
6715 |
$IPMsg = "";
|
6716 |
if ($IP) {
|
6717 |
-
$IPMsg = "User IP:
|
6718 |
$reverse = wfUtils::reverseLookup($IP);
|
6719 |
if ($reverse) {
|
6720 |
-
$IPMsg .= "User hostname: "
|
6721 |
}
|
6722 |
$userLoc = wfUtils::getIPGeo($IP);
|
6723 |
if ($userLoc) {
|
6724 |
-
$IPMsg .=
|
6725 |
if ($userLoc['city']) {
|
6726 |
$IPMsg .= $userLoc['city'] . ', ';
|
6727 |
}
|
1094 |
}
|
1095 |
}
|
1096 |
public static function initProtection(){ //Basic protection during WAF learning period
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1097 |
// Infinite WP Client - Authentication Bypass < 1.9.4.5
|
1098 |
// https://wpvulndb.com/vulnerabilities/10011
|
1099 |
$iwpRule = new wfWAFRule(wfWAF::getInstance(), 0x80000000, null, 'auth-bypass', 100, 'Infinite WP Client - Authentication Bypass < 1.9.4.5', 0, 'block', null);
|
1797 |
));
|
1798 |
wp_mail($email, "Unlock email requested", $content, "Content-Type: text/html");
|
1799 |
}
|
1800 |
+
echo "<html><body><h1>" . __('Your request was received', 'wordfence') . "</h1><p>" .
|
1801 |
+
sprintf(__("We received a request to email \"%s\" instructions to unlock their access. If that is the email address of a site administrator or someone on the Wordfence alert list, they have been emailed instructions on how to regain access to this system. The instructions we sent will expire 30 minutes from now.", 'wordfence'), wp_kses($email, array()))
|
1802 |
+
. "</p></body></html>";
|
1803 |
+
|
1804 |
exit();
|
1805 |
} else if($wfFunc == 'unlockAccess'){
|
1806 |
if (!preg_match('/^(?:(?:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9](?::|$)){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))$/i', get_transient('wfunlock_' . $_GET['key']))) {
|
1807 |
+
_e("Invalid key provided for authentication.", 'wordfence');
|
1808 |
exit();
|
1809 |
}
|
1810 |
|
1815 |
header('Location: ' . wp_login_url());
|
1816 |
exit();
|
1817 |
} else if($_GET['func'] == 'unlockAllIPs'){
|
1818 |
+
wordfence::status(1, 'info', __("Request received via unlock email link to unblock all IPs.", 'wordfence'));
|
1819 |
wfBlock::removeAllIPBlocks();
|
1820 |
if (class_exists('wfWAFIPBlocksController')) { wfWAFIPBlocksController::setNeedsSynchronizeConfigSettings(); }
|
1821 |
delete_transient('wflginfl_' . bin2hex(wfUtils::inet_pton(wfUtils::getIP()))); //Reset login failure counter
|
1824 |
} else if($_GET['func'] == 'disableRules'){
|
1825 |
wfConfig::set('firewallEnabled', 0);
|
1826 |
wfConfig::set('loginSecurityEnabled', 0);
|
1827 |
+
wordfence::status(1, 'info', __("Request received via unlock email link to unblock all IPs via disabling firewall rules.", 'wordfence'));
|
1828 |
wfBlock::removeAllIPBlocks();
|
1829 |
wfBlock::removeAllCountryBlocks();
|
1830 |
if (class_exists('wfWAFIPBlocksController')) { wfWAFIPBlocksController::setNeedsSynchronizeConfigSettings(); }
|
1832 |
header('Location: ' . wp_login_url());
|
1833 |
exit();
|
1834 |
} else {
|
1835 |
+
_e("Invalid function specified. Please check the link we emailed you and make sure it was not cut-off by your email reader.", 'wordfence');
|
1836 |
exit();
|
1837 |
}
|
1838 |
}
|
1877 |
'IP' => wfUtils::getIP(),
|
1878 |
'jwt' => wfUtils::generateJWT(array('email' => $email)),
|
1879 |
));
|
1880 |
+
wp_mail($email, __("Unsubscribe Requested", 'wordfence'), $content, "Content-Type: text/html");
|
1881 |
}
|
1882 |
|
1883 |
echo wfView::create('common/unsubscribe', array(
|
2211 |
'wordpressVersion' => wfConfig::get('wordpressVersion'),
|
2212 |
'wordpressPluginVersions' => wfConfig::get_ser('wordpressPluginVersions'),
|
2213 |
'wordpressThemeVersions' => wfConfig::get_ser('wordpressThemeVersions'),
|
2214 |
+
'WPLANG' => get_site_option('WPLANG'),
|
2215 |
);
|
2216 |
if (wfUtils::isAdmin()) {
|
2217 |
$errorNonceKey = 'errorNonce_' . get_current_user_id();
|
2340 |
wfBlock::createIP($reason, $IP, wfBlock::blockDuration(), time(), time(), 1, wfBlock::TYPE_IP_AUTOMATIC_TEMPORARY);
|
2341 |
wfActivityReport::logBlockedIP($IP, null, 'bannedurl');
|
2342 |
$wfLog->tagRequestForBlock($reason);
|
2343 |
+
$wfLog->do503(3600, __("Accessed a banned URL", 'wordfence'));
|
2344 |
//exits
|
2345 |
}
|
2346 |
}
|
2351 |
wfBlock::createIP($reason, $IP, wfBlock::blockDuration(), time(), time(), 1, wfBlock::TYPE_IP_AUTOMATIC_TEMPORARY);
|
2352 |
wfActivityReport::logBlockedIP($IP, null, 'badpost');
|
2353 |
$wfLog->tagRequestForBlock($reason);
|
2354 |
+
$wfLog->do503(3600, __("POST received with blank user-agent and referer", 'wordfence'));
|
2355 |
//exits
|
2356 |
}
|
2357 |
}
|
3692 |
'mode' => 'phone'
|
3693 |
);
|
3694 |
}
|
3695 |
+
private static function twoFactorAdd($ID, $phone, $code, $mode, $totpID){
|
3696 |
$twoFactorUsers = wfConfig::get_ser('twoFactorUsers', array());
|
3697 |
if(! is_array($twoFactorUsers)){
|
3698 |
$twoFactorUsers = array();
|
5714 |
}
|
5715 |
|
5716 |
public static function initAction(){
|
5717 |
+
load_plugin_textdomain('wordfence', false, basename(WORDFENCE_PATH) . '/languages');
|
5718 |
+
|
5719 |
$firewall = new wfFirewall();
|
5720 |
define('WFWAF_OPERATIONAL', $firewall->testConfig());
|
5721 |
|
6697 |
|
6698 |
$IPMsg = "";
|
6699 |
if ($IP) {
|
6700 |
+
$IPMsg = sprintf(__("User IP: %s\n", 'wordfence'), $IP);
|
6701 |
$reverse = wfUtils::reverseLookup($IP);
|
6702 |
if ($reverse) {
|
6703 |
+
$IPMsg .= sprintf(__("User hostname: %s\n", 'wordfence'), $reverse);
|
6704 |
}
|
6705 |
$userLoc = wfUtils::getIPGeo($IP);
|
6706 |
if ($userLoc) {
|
6707 |
+
$IPMsg .= __('User location: ', 'wordfence');
|
6708 |
if ($userLoc['city']) {
|
6709 |
$IPMsg .= $userLoc['city'] . ', ';
|
6710 |
}
|
lib/wordfenceScanner.php
CHANGED
@@ -159,8 +159,13 @@ class wordfenceScanner {
|
|
159 |
}
|
160 |
|
161 |
$exParts = array_filter($exParts);
|
162 |
-
foreach ($exParts as &$exPart) {
|
163 |
-
$exPart =
|
|
|
|
|
|
|
|
|
|
|
164 |
$exPart = preg_replace('/\\\\\*/', '.*', $exPart);
|
165 |
}
|
166 |
|
@@ -417,7 +422,7 @@ class wordfenceScanner {
|
|
417 |
'severity' => wfIssues::SEVERITY_CRITICAL,
|
418 |
'ignoreP' => $this->path . $file,
|
419 |
'ignoreC' => $fileSum,
|
420 |
-
'shortMsg' => __('File appears to be malicious: ', 'wordfence') . esc_html($file),
|
421 |
'longMsg' => $customMessage . ' ' . __('The matched text in this file is:', 'wordfence') . ' ' . '<strong style="color: #F00;" class="wf-split-word">' . wfUtils::potentialBinaryStringToHTML((wfUtils::strlen($matchString) > 200 ? wfUtils::substr($matchString, 0, 200) . '...' : $matchString)) . '</strong>' . '<br><br>' . sprintf(__('The issue type is: <strong>%s</strong>', 'wordfence'), esc_html($rule[7])) . '<br>' . sprintf(__('Description: <strong>%s</strong>', 'wordfence'), esc_html($rule[3])) . $extraMsg,
|
422 |
'data' => array_merge(array(
|
423 |
'file' => $file,
|
159 |
}
|
160 |
|
161 |
$exParts = array_filter($exParts);
|
162 |
+
foreach ($exParts as $key => &$exPart) {
|
163 |
+
$exPart = trim($exPart);
|
164 |
+
if ($exPart === '*') {
|
165 |
+
unset($exParts[$key]);
|
166 |
+
continue;
|
167 |
+
}
|
168 |
+
$exPart = preg_quote($exPart, '/');
|
169 |
$exPart = preg_replace('/\\\\\*/', '.*', $exPart);
|
170 |
}
|
171 |
|
422 |
'severity' => wfIssues::SEVERITY_CRITICAL,
|
423 |
'ignoreP' => $this->path . $file,
|
424 |
'ignoreC' => $fileSum,
|
425 |
+
'shortMsg' => __('File appears to be malicious or unsafe: ', 'wordfence') . esc_html($file),
|
426 |
'longMsg' => $customMessage . ' ' . __('The matched text in this file is:', 'wordfence') . ' ' . '<strong style="color: #F00;" class="wf-split-word">' . wfUtils::potentialBinaryStringToHTML((wfUtils::strlen($matchString) > 200 ? wfUtils::substr($matchString, 0, 200) . '...' : $matchString)) . '</strong>' . '<br><br>' . sprintf(__('The issue type is: <strong>%s</strong>', 'wordfence'), esc_html($rule[7])) . '<br>' . sprintf(__('Description: <strong>%s</strong>', 'wordfence'), esc_html($rule[3])) . $extraMsg,
|
427 |
'data' => array_merge(array(
|
428 |
'file' => $file,
|
modules/login-security/css/{admin-global.1598542714.css → admin-global.1603293147.css}
RENAMED
File without changes
|
modules/login-security/css/{admin.1598542714.css → admin.1603293147.css}
RENAMED
File without changes
|
modules/login-security/css/{colorbox.1598542714.css → colorbox.1603293147.css}
RENAMED
File without changes
|
modules/login-security/css/{font-awesome.1598542714.css → font-awesome.1603293147.css}
RENAMED
File without changes
|
modules/login-security/css/{ionicons.1598542714.css → ionicons.1603293147.css}
RENAMED
File without changes
|
modules/login-security/css/{jquery-ui-timepicker-addon.1598542714.css → jquery-ui-timepicker-addon.1603293147.css}
RENAMED
File without changes
|
modules/login-security/css/{jquery-ui.min.1598542714.css → jquery-ui.min.1603293147.css}
RENAMED
File without changes
|
modules/login-security/css/{jquery-ui.structure.min.1598542714.css → jquery-ui.structure.min.1603293147.css}
RENAMED
File without changes
|
modules/login-security/css/{jquery-ui.theme.min.1598542714.css → jquery-ui.theme.min.1603293147.css}
RENAMED
File without changes
|
modules/login-security/css/{login.1598542714.css → login.1603293147.css}
RENAMED
File without changes
|
modules/login-security/js/{admin-global.1598542714.js → admin-global.1603293147.js}
RENAMED
File without changes
|
modules/login-security/js/{admin.1598542714.js → admin.1603293147.js}
RENAMED
File without changes
|
modules/login-security/js/{jquery-ui-timepicker-addon.1598542714.js → jquery-ui-timepicker-addon.1603293147.js}
RENAMED
File without changes
|
modules/login-security/js/{jquery.colorbox.1598542714.js → jquery.colorbox.1603293147.js}
RENAMED
File without changes
|
modules/login-security/js/{jquery.colorbox.min.1598542714.js → jquery.colorbox.min.1603293147.js}
RENAMED
File without changes
|
modules/login-security/js/{jquery.qrcode.min.1598542714.js → jquery.qrcode.min.1603293147.js}
RENAMED
File without changes
|
modules/login-security/js/{jquery.tmpl.min.1598542714.js → jquery.tmpl.min.1603293147.js}
RENAMED
File without changes
|
modules/login-security/js/{login.1598542714.js → login.1603293147.js}
RENAMED
File without changes
|
modules/login-security/wordfence-login-security.php
CHANGED
@@ -27,7 +27,7 @@ else {
|
|
27 |
define('WORDFENCE_LS_FROM_CORE', ($wfCoreActive && isset($wfCoreLoading) && $wfCoreLoading));
|
28 |
|
29 |
define('WORDFENCE_LS_VERSION', '1.0.5');
|
30 |
-
define('WORDFENCE_LS_BUILD_NUMBER', '
|
31 |
|
32 |
if (!defined('WORDFENCE_LS_EMAIL_VALIDITY_DURATION_MINUTES')) { define('WORDFENCE_LS_EMAIL_VALIDITY_DURATION_MINUTES', 15); }
|
33 |
|
27 |
define('WORDFENCE_LS_FROM_CORE', ($wfCoreActive && isset($wfCoreLoading) && $wfCoreLoading));
|
28 |
|
29 |
define('WORDFENCE_LS_VERSION', '1.0.5');
|
30 |
+
define('WORDFENCE_LS_BUILD_NUMBER', '1603293147');
|
31 |
|
32 |
if (!defined('WORDFENCE_LS_EMAIL_VALIDITY_DURATION_MINUTES')) { define('WORDFENCE_LS_EMAIL_VALIDITY_DURATION_MINUTES', 15); }
|
33 |
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: security, firewall, malware scanner, web application firewall, two factor
|
|
4 |
Requires at least: 3.9
|
5 |
Requires PHP: 5.3
|
6 |
Tested up to: 5.5
|
7 |
-
Stable tag: 7.4.
|
8 |
|
9 |
Secure your website with the most comprehensive WordPress security plugin. Firewall, malware scan, blocking, live traffic, login security & more.
|
10 |
|
@@ -183,6 +183,19 @@ Secure your website with Wordfence.
|
|
183 |
|
184 |
== Changelog ==
|
185 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
= 7.4.11 - August 27, 2020 =
|
187 |
|
188 |
* Improvement: Added diagnostic debug button to clear Wordfence Central connection data from the database.
|
4 |
Requires at least: 3.9
|
5 |
Requires PHP: 5.3
|
6 |
Tested up to: 5.5
|
7 |
+
Stable tag: 7.4.12
|
8 |
|
9 |
Secure your website with the most comprehensive WordPress security plugin. Firewall, malware scan, blocking, live traffic, login security & more.
|
10 |
|
183 |
|
184 |
== Changelog ==
|
185 |
|
186 |
+
= 7.4.12 - October 21, 2020 =
|
187 |
+
|
188 |
+
* Improvement: Initial integration of i18n in Wordfence.
|
189 |
+
* Improvement: Prevent Wordfence from loading under <PHP 5.3.
|
190 |
+
* Improvement: Updated GeoIP database.
|
191 |
+
* Improvement: Prevented wildcard from running/saving for scan's excluded files pattern.
|
192 |
+
* Improvement: Included Wordfence Login Security tables in diagnostics missing table list.
|
193 |
+
* Fix: Removed new scan issues when WordPress update occurs mid-scan.
|
194 |
+
* Fix: Specified category when saving `whitelistedServiceIPs` to WAF storage engine.
|
195 |
+
* Fix: Removed localhost IP for auto-update email alerts.
|
196 |
+
* Fix: Fixed broken message in Live Traffic with MySQLi storage engine for blacklisted hits.
|
197 |
+
* Fix: Removed optional parameter values for PHP 8 compatibility.
|
198 |
+
|
199 |
= 7.4.11 - August 27, 2020 =
|
200 |
|
201 |
* Improvement: Added diagnostic debug button to clear Wordfence Central connection data from the database.
|
vendor/wordfence/wf-waf/src/init.php
CHANGED
@@ -17,6 +17,7 @@ define('WFWAF_IS_WINDOWS', strtoupper(substr(PHP_OS, 0, 3)) === 'WIN');
|
|
17 |
|
18 |
require_once WFWAF_LIB_PATH . 'waf.php';
|
19 |
require_once WFWAF_LIB_PATH . 'utils.php';
|
|
|
20 |
require_once WFWAF_LIB_PATH . 'xmlrpc.php';
|
21 |
|
22 |
require_once WFWAF_LIB_PATH . 'storage.php';
|
17 |
|
18 |
require_once WFWAF_LIB_PATH . 'waf.php';
|
19 |
require_once WFWAF_LIB_PATH . 'utils.php';
|
20 |
+
require_once WFWAF_LIB_PATH . 'i18n.php';
|
21 |
require_once WFWAF_LIB_PATH . 'xmlrpc.php';
|
22 |
|
23 |
require_once WFWAF_LIB_PATH . 'storage.php';
|
vendor/wordfence/wf-waf/src/lib/i18n.php
ADDED
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class wfWAFI18n {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @var self
|
7 |
+
*/
|
8 |
+
protected static $instance;
|
9 |
+
|
10 |
+
/**
|
11 |
+
* @param string $text
|
12 |
+
* @return string
|
13 |
+
*/
|
14 |
+
public static function __($text) {
|
15 |
+
return self::getInstance()->getI18nEngine()->__($text);
|
16 |
+
}
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @return self
|
20 |
+
*/
|
21 |
+
public static function getInstance() {
|
22 |
+
if (!self::$instance) {
|
23 |
+
self::$instance = new self(new wfWAFI18nEngineDefault());
|
24 |
+
}
|
25 |
+
return self::$instance;
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* @param self $i18nEngine
|
30 |
+
*/
|
31 |
+
public static function setInstance($i18nEngine) {
|
32 |
+
self::$instance = $i18nEngine;
|
33 |
+
}
|
34 |
+
|
35 |
+
/** @var wfWAFI18nEngine */
|
36 |
+
private $i18nEngine;
|
37 |
+
|
38 |
+
/**
|
39 |
+
* @param wfWAFI18nEngine $i18nEngine
|
40 |
+
*/
|
41 |
+
public function __construct($i18nEngine) {
|
42 |
+
$this->i18nEngine = $i18nEngine;
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* @return wfWAFI18nEngine
|
47 |
+
*/
|
48 |
+
public function getI18nEngine() {
|
49 |
+
return $this->i18nEngine;
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* @param wfWAFI18nEngine $i18nEngine
|
54 |
+
*/
|
55 |
+
public function setI18nEngine($i18nEngine) {
|
56 |
+
$this->i18nEngine = $i18nEngine;
|
57 |
+
}
|
58 |
+
}
|
59 |
+
|
60 |
+
class wfWAFI18nEngineDefault implements wfWAFI18nEngine {
|
61 |
+
|
62 |
+
/**
|
63 |
+
* @param string $text
|
64 |
+
* @return string
|
65 |
+
*/
|
66 |
+
public function __($text) {
|
67 |
+
return $text;
|
68 |
+
}
|
69 |
+
}
|
70 |
+
|
71 |
+
interface wfWAFI18nEngine {
|
72 |
+
|
73 |
+
/**
|
74 |
+
* @param string $text
|
75 |
+
* @return string
|
76 |
+
*/
|
77 |
+
public function __($text);
|
78 |
+
|
79 |
+
}
|
vendor/wordfence/wf-waf/src/lib/storage/mysql.php
CHANGED
@@ -176,7 +176,6 @@ class wfWAFStorageMySQL implements wfWAFStorageInterface {
|
|
176 |
$table = $this->networkTable('wfHits');
|
177 |
|
178 |
$failedRulesString = '';
|
179 |
-
$actionDescription = '';
|
180 |
if (is_array($failedRules)) {
|
181 |
/**
|
182 |
* @var int $index
|
@@ -185,14 +184,11 @@ class wfWAFStorageMySQL implements wfWAFStorageInterface {
|
|
185 |
foreach ($failedRules as $index => $rule) {
|
186 |
if ($rule instanceof wfWAFRule) {
|
187 |
$failedRulesString .= $rule->getRuleID() . '|';
|
188 |
-
$actionDescription .= $rule->getDescription() . ', ';
|
189 |
} else {
|
190 |
$failedRulesString .= $rule . '|';
|
191 |
-
$actionDescription .= $rule . ', ';
|
192 |
}
|
193 |
}
|
194 |
$failedRulesString = wfWAFUtils::substr($failedRulesString, 0, -1);
|
195 |
-
$actionDescription = wfWAFUtils::substr($actionDescription, 0, -2);
|
196 |
}
|
197 |
if (preg_match('/\blogged\b/i', $failedRulesString)) {
|
198 |
$statusCode = 200;
|
@@ -226,7 +222,6 @@ class wfWAFStorageMySQL implements wfWAFStorageInterface {
|
|
226 |
'referer' => $referer,
|
227 |
'UA' => $ua,
|
228 |
'action' => $action,
|
229 |
-
'actionDescription' => $actionDescription,
|
230 |
'actionData' => wfWAFUtils::json_encode(array(
|
231 |
'failedRules' => $failedRulesString,
|
232 |
'paramKey' => base64_encode($failedParamKey),
|
176 |
$table = $this->networkTable('wfHits');
|
177 |
|
178 |
$failedRulesString = '';
|
|
|
179 |
if (is_array($failedRules)) {
|
180 |
/**
|
181 |
* @var int $index
|
184 |
foreach ($failedRules as $index => $rule) {
|
185 |
if ($rule instanceof wfWAFRule) {
|
186 |
$failedRulesString .= $rule->getRuleID() . '|';
|
|
|
187 |
} else {
|
188 |
$failedRulesString .= $rule . '|';
|
|
|
189 |
}
|
190 |
}
|
191 |
$failedRulesString = wfWAFUtils::substr($failedRulesString, 0, -1);
|
|
|
192 |
}
|
193 |
if (preg_match('/\blogged\b/i', $failedRulesString)) {
|
194 |
$statusCode = 200;
|
222 |
'referer' => $referer,
|
223 |
'UA' => $ua,
|
224 |
'action' => $action,
|
|
|
225 |
'actionData' => wfWAFUtils::json_encode(array(
|
226 |
'failedRules' => $failedRulesString,
|
227 |
'paramKey' => base64_encode($failedParamKey),
|
vendor/wordfence/wf-waf/src/views/403-blacklist.php
CHANGED
@@ -76,7 +76,7 @@ $payload = "-----BEGIN REPORT-----\n" . implode("\n", str_split($message, 60)) .
|
|
76 |
<html>
|
77 |
<head>
|
78 |
<meta charset="UTF-8">
|
79 |
-
<title
|
80 |
<style>
|
81 |
html {
|
82 |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
@@ -178,19 +178,19 @@ $payload = "-----BEGIN REPORT-----\n" . implode("\n", str_split($message, 60)) .
|
|
178 |
if (!empty($errorNonce)) { echo '<!-- WFWAF NONCE: ' . htmlentities($errorNonce) . ' -->'; }
|
179 |
?>
|
180 |
|
181 |
-
<h1
|
182 |
|
183 |
-
<h3
|
184 |
|
185 |
-
<p
|
186 |
|
187 |
-
<p
|
188 |
|
189 |
<hr>
|
190 |
|
191 |
-
<h3
|
192 |
|
193 |
-
<h4
|
194 |
|
195 |
<p><textarea id="payload" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" cols="65"><?php echo htmlspecialchars($payload); ?></textarea></p>
|
196 |
<script type="application/javascript">
|
@@ -209,11 +209,11 @@ if (!empty($errorNonce)) { echo '<!-- WFWAF NONCE: ' . htmlentities($errorNonce)
|
|
209 |
})();
|
210 |
</script>
|
211 |
|
212 |
-
<h4
|
213 |
|
214 |
-
<p><a href="#" id="reportButton" class="btn disabled" target="_blank" rel="noopener noreferrer"
|
215 |
|
216 |
-
<p style="color: #999999;margin-top: 2rem;"><em
|
217 |
|
218 |
</body>
|
219 |
</html>
|
76 |
<html>
|
77 |
<head>
|
78 |
<meta charset="UTF-8">
|
79 |
+
<title><?php echo wfWAFI18n::__('403 Forbidden') ?></title>
|
80 |
<style>
|
81 |
html {
|
82 |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
178 |
if (!empty($errorNonce)) { echo '<!-- WFWAF NONCE: ' . htmlentities($errorNonce) . ' -->'; }
|
179 |
?>
|
180 |
|
181 |
+
<h1><?php echo wfWAFI18n::__('403 Forbidden') ?></h1>
|
182 |
|
183 |
+
<h3><?php echo wfWAFI18n::__('WHAT? Why am I seeing this?') ?></h3>
|
184 |
|
185 |
+
<p><?php echo wfWAFI18n::__('Your access to this site was blocked by Wordfence, a security provider, who protects sites from malicious activity.') ?></p>
|
186 |
|
187 |
+
<p><?php echo wfWAFI18n::__('If you believe Wordfence should be allowing you access to this site, please let them know using the steps below so they can investigate why this is happening.') ?></p>
|
188 |
|
189 |
<hr>
|
190 |
|
191 |
+
<h3><?php echo wfWAFI18n::__('Reporting a Problem') ?></h3>
|
192 |
|
193 |
+
<h4><?php echo wfWAFI18n::__('1. Please copy this text. You need to paste it into a form later.') ?></h4>
|
194 |
|
195 |
<p><textarea id="payload" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" cols="65"><?php echo htmlspecialchars($payload); ?></textarea></p>
|
196 |
<script type="application/javascript">
|
209 |
})();
|
210 |
</script>
|
211 |
|
212 |
+
<h4><?php echo wfWAFI18n::__('2. Click this button and you will be prompted to paste the text above.') ?></h4>
|
213 |
|
214 |
+
<p><a href="#" id="reportButton" class="btn disabled" target="_blank" rel="noopener noreferrer"><?php echo wfWAFI18n::__('Report Problem') ?></a></p>
|
215 |
|
216 |
+
<p style="color: #999999;margin-top: 2rem;"><em><?php printf(wfWAFI18n::__('Generated by Wordfence at %s.<br>Your computer\'s time: '), gmdate('D, j M Y G:i:s T', wfWAFUtils::normalizedTime())) ?><script type="application/javascript">document.write(new Date().toUTCString());</script>.</em></p>
|
217 |
|
218 |
</body>
|
219 |
</html>
|
vendor/wordfence/wf-waf/src/views/403-roadblock.php
CHANGED
@@ -37,7 +37,7 @@ foreach ($waf->getFailedRules() as $paramKey => $categories) {
|
|
37 |
<!DOCTYPE html>
|
38 |
<html>
|
39 |
<head>
|
40 |
-
<title
|
41 |
<style>
|
42 |
html {
|
43 |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
@@ -354,29 +354,29 @@ foreach ($waf->getFailedRules() as $paramKey => $categories) {
|
|
354 |
<?php if (!empty($errorNonce)) { echo '<!-- WFWAF NONCE: ' . htmlspecialchars($errorNonce) . ' -->'; } ?>
|
355 |
<div class="top-accent"></div>
|
356 |
<div class="container">
|
357 |
-
<h1
|
358 |
-
<p
|
359 |
-
<p
|
360 |
<?php if (!empty($customText)): ?>
|
361 |
<hr>
|
362 |
<div class="medium"><?php echo $customText; ?></div>
|
363 |
<?php endif; ?>
|
364 |
<?php if ($urlParamsToWhitelist): ?>
|
365 |
<hr>
|
366 |
-
<p
|
367 |
|
368 |
<form id="whitelist-form" action="<?php echo htmlentities($waf->getRequest()->getPath(), ENT_QUOTES, 'utf-8') ?>" method="post">
|
369 |
<input type="hidden" name="wfwaf-false-positive-params" value="<?php echo htmlentities(wfWAFUtils::json_encode($urlParamsToWhitelist), ENT_QUOTES, 'utf-8') ?>">
|
370 |
<input type="hidden" name="wfwaf-false-positive-nonce" value="<?php echo htmlentities($waf->getAuthCookieValue('nonce', ''), ENT_QUOTES, 'utf-8') ?>">
|
371 |
|
372 |
<div id="whitelist-actions">
|
373 |
-
<p><label><input id="verified-false-positive-checkbox" type="checkbox" name="wfwaf-false-positive-verified" value="1"> <em
|
374 |
|
375 |
-
<p><button id="whitelist-button" type="submit"
|
376 |
</div>
|
377 |
|
378 |
-
<p id="success" style="color: #35b13a; font-weight: bold; display: none"><em
|
379 |
-
<p id="error" style="color: #dd422c; font-weight: bold; display: none"><em
|
380 |
</form>
|
381 |
<script>
|
382 |
var whitelistButton = document.getElementById('whitelist-button');
|
@@ -414,14 +414,14 @@ foreach ($waf->getFailedRules() as $paramKey => $categories) {
|
|
414 |
<hr>
|
415 |
<?php endif ?>
|
416 |
|
417 |
-
<h2 class="h3"
|
418 |
<table border="0" cellspacing="0" cellpadding="0" class="block-data">
|
419 |
<tr>
|
420 |
-
<th class="reason"
|
421 |
-
<td class="reason"
|
422 |
</tr>
|
423 |
<tr>
|
424 |
-
<th class="time"
|
425 |
<td class="time"><?php echo htmlspecialchars(gmdate('D, j M Y G:i:s T', wfWAFUtils::normalizedTime())); ?></td>
|
426 |
</tr>
|
427 |
</table>
|
@@ -437,14 +437,14 @@ foreach ($waf->getFailedRules() as $paramKey => $categories) {
|
|
437 |
?>
|
438 |
</div>
|
439 |
<div class="about-text">
|
440 |
-
<h3 class="h4"
|
441 |
-
<p
|
442 |
-
<p
|
443 |
</div>
|
444 |
</div>
|
445 |
|
446 |
-
<p class="documentation small"
|
447 |
-
<p class="generated small"><em
|
448 |
</div>
|
449 |
</body>
|
450 |
</html>
|
37 |
<!DOCTYPE html>
|
38 |
<html>
|
39 |
<head>
|
40 |
+
<title><?php echo wfWAFI18n::__('403 Forbidden') ?></title>
|
41 |
<style>
|
42 |
html {
|
43 |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
354 |
<?php if (!empty($errorNonce)) { echo '<!-- WFWAF NONCE: ' . htmlspecialchars($errorNonce) . ' -->'; } ?>
|
355 |
<div class="top-accent"></div>
|
356 |
<div class="container">
|
357 |
+
<h1><?php echo wfWAFI18n::__('A potentially unsafe operation has been detected in your request to this site') ?></h1>
|
358 |
+
<p><?php echo wfWAFI18n::__('Your access to this service has been limited. (HTTP response code 403)') ?></p>
|
359 |
+
<p><?php echo wfWAFI18n::__('If you think you have been blocked in error, contact the owner of this site for assistance.') ?></p>
|
360 |
<?php if (!empty($customText)): ?>
|
361 |
<hr>
|
362 |
<div class="medium"><?php echo $customText; ?></div>
|
363 |
<?php endif; ?>
|
364 |
<?php if ($urlParamsToWhitelist): ?>
|
365 |
<hr>
|
366 |
+
<p><?php echo wfWAFI18n::__('If you are an administrator and you are certain this is a false positive, you can automatically whitelist this request and repeat the same action.') ?></p>
|
367 |
|
368 |
<form id="whitelist-form" action="<?php echo htmlentities($waf->getRequest()->getPath(), ENT_QUOTES, 'utf-8') ?>" method="post">
|
369 |
<input type="hidden" name="wfwaf-false-positive-params" value="<?php echo htmlentities(wfWAFUtils::json_encode($urlParamsToWhitelist), ENT_QUOTES, 'utf-8') ?>">
|
370 |
<input type="hidden" name="wfwaf-false-positive-nonce" value="<?php echo htmlentities($waf->getAuthCookieValue('nonce', ''), ENT_QUOTES, 'utf-8') ?>">
|
371 |
|
372 |
<div id="whitelist-actions">
|
373 |
+
<p><label><input id="verified-false-positive-checkbox" type="checkbox" name="wfwaf-false-positive-verified" value="1"> <em><?php echo wfWAFI18n::__('I am certain this is a false positive.') ?></em></label></p>
|
374 |
|
375 |
+
<p><button id="whitelist-button" type="submit"><?php echo wfWAFI18n::__('Whitelist This Action') ?></button></p>
|
376 |
</div>
|
377 |
|
378 |
+
<p id="success" style="color: #35b13a; font-weight: bold; display: none"><em><?php echo wfWAFI18n::__('All set! You can refresh the page to try this action again.') ?></em></p>
|
379 |
+
<p id="error" style="color: #dd422c; font-weight: bold; display: none"><em><?php echo wfWAFI18n::__('Something went wrong whitelisting this request. You can try setting the Firewall Status to Learning Mode under Web App Firewall in the Wordfence menu, and retry this same action.') ?></em></p>
|
380 |
</form>
|
381 |
<script>
|
382 |
var whitelistButton = document.getElementById('whitelist-button');
|
414 |
<hr>
|
415 |
<?php endif ?>
|
416 |
|
417 |
+
<h2 class="h3"><?php echo wfWAFI18n::__('Block Technical Data') ?></h2>
|
418 |
<table border="0" cellspacing="0" cellpadding="0" class="block-data">
|
419 |
<tr>
|
420 |
+
<th class="reason"><?php echo wfWAFI18n::__('Block Reason:') ?></th>
|
421 |
+
<td class="reason"><?php echo wfWAFI18n::__('A potentially unsafe operation has been detected in your request to this site') ?></td>
|
422 |
</tr>
|
423 |
<tr>
|
424 |
+
<th class="time"><?php echo wfWAFI18n::__('Time:') ?></th>
|
425 |
<td class="time"><?php echo htmlspecialchars(gmdate('D, j M Y G:i:s T', wfWAFUtils::normalizedTime())); ?></td>
|
426 |
</tr>
|
427 |
</table>
|
437 |
?>
|
438 |
</div>
|
439 |
<div class="about-text">
|
440 |
+
<h3 class="h4"><?php echo wfWAFI18n::__('About Wordfence') ?></h3>
|
441 |
+
<p><?php echo wfWAFI18n::__('Wordfence is a security plugin installed on over 3 million WordPress sites. The owner of this site is using Wordfence to manage access to their site.') ?></p>
|
442 |
+
<p><?php echo wfWAFI18n::__('You can also read the documentation to learn about Wordfence\'s blocking tools, or visit wordfence.com to learn more about Wordfence.') ?></p>
|
443 |
</div>
|
444 |
</div>
|
445 |
|
446 |
+
<p class="documentation small"><?php echo wfWAFI18n::__('Click here to learn more: <a href="https://www.wordfence.com/help/?query=locked-out" target="_blank" rel="noopener noreferrer">Documentation</a>') ?></p>
|
447 |
+
<p class="generated small"><em><?php printf(wfWAFI18n::__('Generated by Wordfence at %s.<br>Your computer\'s time: '), gmdate('D, j M Y G:i:s T', wfWAFUtils::normalizedTime())) ?><script type="application/javascript">document.write(new Date().toUTCString());</script>.</em></p>
|
448 |
</div>
|
449 |
</body>
|
450 |
</html>
|
vendor/wordfence/wf-waf/src/views/403.php
CHANGED
@@ -4,7 +4,7 @@ if (!defined('WFWAF_VIEW_RENDERING')) { exit; }
|
|
4 |
<!DOCTYPE html>
|
5 |
<html>
|
6 |
<head>
|
7 |
-
<title
|
8 |
<style>
|
9 |
html {
|
10 |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
@@ -321,22 +321,22 @@ if (!defined('WFWAF_VIEW_RENDERING')) { exit; }
|
|
321 |
<?php if (!empty($errorNonce)) { echo '<!-- WFWAF NONCE: ' . htmlspecialchars($errorNonce) . ' -->'; } ?>
|
322 |
<div class="top-accent"></div>
|
323 |
<div class="container">
|
324 |
-
<h1
|
325 |
-
<p
|
326 |
-
<p
|
327 |
<?php if (!empty($customText)): ?>
|
328 |
<hr>
|
329 |
<div class="medium"><?php echo $customText; ?></div>
|
330 |
<?php endif; ?>
|
331 |
|
332 |
-
<h2 class="h3"
|
333 |
<table border="0" cellspacing="0" cellpadding="0" class="block-data">
|
334 |
<tr>
|
335 |
-
<th class="reason"
|
336 |
-
<td class="reason"
|
337 |
</tr>
|
338 |
<tr>
|
339 |
-
<th class="time"
|
340 |
<td class="time"><?php echo htmlspecialchars(gmdate('D, j M Y G:i:s T', wfWAFUtils::normalizedTime())); ?></td>
|
341 |
</tr>
|
342 |
</table>
|
@@ -352,14 +352,14 @@ if (!defined('WFWAF_VIEW_RENDERING')) { exit; }
|
|
352 |
?>
|
353 |
</div>
|
354 |
<div class="about-text">
|
355 |
-
<h3 class="h4"
|
356 |
-
<p
|
357 |
-
<p
|
358 |
</div>
|
359 |
</div>
|
360 |
|
361 |
-
<p class="documentation small"
|
362 |
-
<p class="generated small"><em
|
363 |
</div>
|
364 |
</body>
|
365 |
</html>
|
4 |
<!DOCTYPE html>
|
5 |
<html>
|
6 |
<head>
|
7 |
+
<title><?php echo wfWAFI18n::__('403 Forbidden') ?></title>
|
8 |
<style>
|
9 |
html {
|
10 |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
321 |
<?php if (!empty($errorNonce)) { echo '<!-- WFWAF NONCE: ' . htmlspecialchars($errorNonce) . ' -->'; } ?>
|
322 |
<div class="top-accent"></div>
|
323 |
<div class="container">
|
324 |
+
<h1><?php echo wfWAFI18n::__('A potentially unsafe operation has been detected in your request to this site') ?></h1>
|
325 |
+
<p><?php echo wfWAFI18n::__('Your access to this service has been limited. (HTTP response code 403)') ?></p>
|
326 |
+
<p><?php echo wfWAFI18n::__('If you think you have been blocked in error, contact the owner of this site for assistance.') ?></p>
|
327 |
<?php if (!empty($customText)): ?>
|
328 |
<hr>
|
329 |
<div class="medium"><?php echo $customText; ?></div>
|
330 |
<?php endif; ?>
|
331 |
|
332 |
+
<h2 class="h3"><?php echo wfWAFI18n::__('Block Technical Data') ?></h2>
|
333 |
<table border="0" cellspacing="0" cellpadding="0" class="block-data">
|
334 |
<tr>
|
335 |
+
<th class="reason"><?php echo wfWAFI18n::__('Block Reason:') ?></th>
|
336 |
+
<td class="reason"><?php echo wfWAFI18n::__('A potentially unsafe operation has been detected in your request to this site') ?></td>
|
337 |
</tr>
|
338 |
<tr>
|
339 |
+
<th class="time"><?php echo wfWAFI18n::__('Time:') ?></th>
|
340 |
<td class="time"><?php echo htmlspecialchars(gmdate('D, j M Y G:i:s T', wfWAFUtils::normalizedTime())); ?></td>
|
341 |
</tr>
|
342 |
</table>
|
352 |
?>
|
353 |
</div>
|
354 |
<div class="about-text">
|
355 |
+
<h3 class="h4"><?php echo wfWAFI18n::__('About Wordfence') ?></h3>
|
356 |
+
<p><?php echo wfWAFI18n::__('Wordfence is a security plugin installed on over 3 million WordPress sites. The owner of this site is using Wordfence to manage access to their site.') ?></p>
|
357 |
+
<p><?php echo wfWAFI18n::__('You can also read the documentation to learn about Wordfence\'s blocking tools, or visit wordfence.com to learn more about Wordfence.') ?></p>
|
358 |
</div>
|
359 |
</div>
|
360 |
|
361 |
+
<p class="documentation small"><?php echo wfWAFI18n::__('Click here to learn more: <a href="https://www.wordfence.com/help/?query=locked-out" target="_blank" rel="noopener noreferrer">Documentation</a>') ?></p>
|
362 |
+
<p class="generated small"><em><?php printf(wfWAFI18n::__('Generated by Wordfence at %s.<br>Your computer\'s time: '), gmdate('D, j M Y G:i:s T', wfWAFUtils::normalizedTime())) ?><script type="application/javascript">document.write(new Date().toUTCString());</script>.</em></p>
|
363 |
</div>
|
364 |
</body>
|
365 |
</html>
|
vendor/wordfence/wf-waf/src/views/503-lockout.php
CHANGED
@@ -5,7 +5,7 @@ if (!defined('WFWAF_VIEW_RENDERING')) { exit; }
|
|
5 |
<html>
|
6 |
<head>
|
7 |
<meta charset="UTF-8">
|
8 |
-
<title
|
9 |
<style>
|
10 |
html {
|
11 |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
@@ -322,9 +322,9 @@ if (!defined('WFWAF_VIEW_RENDERING')) { exit; }
|
|
322 |
<?php if (!empty($errorNonce)) { echo '<!-- WFWAF NONCE: ' . htmlspecialchars($errorNonce) . ' -->'; } ?>
|
323 |
<div class="top-accent"></div>
|
324 |
<div class="container">
|
325 |
-
<h1
|
326 |
-
<p
|
327 |
-
<p
|
328 |
<?php if (!empty($customText)): ?>
|
329 |
<hr>
|
330 |
<div class="medium"><?php echo $customText; ?></div>
|
@@ -332,18 +332,18 @@ if (!defined('WFWAF_VIEW_RENDERING')) { exit; }
|
|
332 |
<?php if (!empty($homeURL)): ?>
|
333 |
<hr>
|
334 |
<ul>
|
335 |
-
<li><a href="<?php echo $homeURL; ?>"
|
336 |
</ul>
|
337 |
<?php
|
338 |
endif;
|
339 |
$nonce = $waf->createNonce('wf-form');
|
340 |
if (!empty($siteURL) && !empty($nonce)) : ?>
|
341 |
<hr>
|
342 |
-
<p class="medium"
|
343 |
|
344 |
<form method="POST" id="unlock-form" action="#">
|
345 |
<input type="hidden" name="nonce" value="<?php echo $nonce; ?>">
|
346 |
-
<input type="text" size="50" name="email" id="unlock-email" value="" maxlength="255" placeholder="email@example.com"> <input type="submit" class="wf-btn wf-btn-default" id="unlock-submit" name="s" value="Send Unlock Email" disabled>
|
347 |
</form>
|
348 |
<script type="application/javascript">
|
349 |
(function() {
|
@@ -356,14 +356,14 @@ if (!defined('WFWAF_VIEW_RENDERING')) { exit; }
|
|
356 |
</script>
|
357 |
<?php endif; ?>
|
358 |
|
359 |
-
<h2 class="h3"
|
360 |
<table border="0" cellspacing="0" cellpadding="0" class="block-data">
|
361 |
<tr>
|
362 |
-
<th class="reason"
|
363 |
-
<td class="reason"
|
364 |
</tr>
|
365 |
<tr>
|
366 |
-
<th class="time"
|
367 |
<td class="time"><?php echo htmlspecialchars(gmdate('D, j M Y G:i:s T', wfWAFUtils::normalizedTime())); ?></td>
|
368 |
</tr>
|
369 |
</table>
|
@@ -379,14 +379,14 @@ if (!defined('WFWAF_VIEW_RENDERING')) { exit; }
|
|
379 |
?>
|
380 |
</div>
|
381 |
<div class="about-text">
|
382 |
-
<h3 class="h4"
|
383 |
-
<p
|
384 |
-
<p
|
385 |
</div>
|
386 |
</div>
|
387 |
|
388 |
-
<p class="documentation small"
|
389 |
-
<p class="generated small"><em
|
390 |
</div>
|
391 |
</body>
|
392 |
</html>
|
5 |
<html>
|
6 |
<head>
|
7 |
<meta charset="UTF-8">
|
8 |
+
<title><?php echo wfWAFI18n::__('Your access to this site has been limited by the site owner') ?></title>
|
9 |
<style>
|
10 |
html {
|
11 |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
322 |
<?php if (!empty($errorNonce)) { echo '<!-- WFWAF NONCE: ' . htmlspecialchars($errorNonce) . ' -->'; } ?>
|
323 |
<div class="top-accent"></div>
|
324 |
<div class="container">
|
325 |
+
<h1><?php echo wfWAFI18n::__('Your access to this site has been temporarily limited by the site owner') ?></h1>
|
326 |
+
<p><?php echo wfWAFI18n::__('Your access to this service has been temporarily limited. Please try again in a few minutes. (HTTP response code 503)') ?></p>
|
327 |
+
<p><?php echo wfWAFI18n::__('If you think you have been blocked in error, contact the owner of this site for assistance.') ?></p>
|
328 |
<?php if (!empty($customText)): ?>
|
329 |
<hr>
|
330 |
<div class="medium"><?php echo $customText; ?></div>
|
332 |
<?php if (!empty($homeURL)): ?>
|
333 |
<hr>
|
334 |
<ul>
|
335 |
+
<li><a href="<?php echo $homeURL; ?>"><?php echo wfWAFI18n::__('Return to the site home page') ?></a></li>
|
336 |
</ul>
|
337 |
<?php
|
338 |
endif;
|
339 |
$nonce = $waf->createNonce('wf-form');
|
340 |
if (!empty($siteURL) && !empty($nonce)) : ?>
|
341 |
<hr>
|
342 |
+
<p class="medium"><?php echo wfWAFI18n::__('If you are a WordPress user with administrative privileges on this site, please enter your email address in the box below and click "Send". You will then receive an email that helps you regain access.') ?></p>
|
343 |
|
344 |
<form method="POST" id="unlock-form" action="#">
|
345 |
<input type="hidden" name="nonce" value="<?php echo $nonce; ?>">
|
346 |
+
<input type="text" size="50" name="email" id="unlock-email" value="" maxlength="255" placeholder="email@example.com"> <input type="submit" class="wf-btn wf-btn-default" id="unlock-submit" name="s" value="<?php echo wfWAFI18n::__('Send Unlock Email') ?>" disabled>
|
347 |
</form>
|
348 |
<script type="application/javascript">
|
349 |
(function() {
|
356 |
</script>
|
357 |
<?php endif; ?>
|
358 |
|
359 |
+
<h2 class="h3"><?php echo wfWAFI18n::__('Block Technical Data') ?></h2>
|
360 |
<table border="0" cellspacing="0" cellpadding="0" class="block-data">
|
361 |
<tr>
|
362 |
+
<th class="reason"><?php echo wfWAFI18n::__('Block Reason:') ?></th>
|
363 |
+
<td class="reason"><?php echo wfWAFI18n::__('You have been temporarily locked out of this system. This means that you will not be able to log in for a while.') ?></td>
|
364 |
</tr>
|
365 |
<tr>
|
366 |
+
<th class="time"><?php echo wfWAFI18n::__('Time:') ?></th>
|
367 |
<td class="time"><?php echo htmlspecialchars(gmdate('D, j M Y G:i:s T', wfWAFUtils::normalizedTime())); ?></td>
|
368 |
</tr>
|
369 |
</table>
|
379 |
?>
|
380 |
</div>
|
381 |
<div class="about-text">
|
382 |
+
<h3 class="h4"><?php echo wfWAFI18n::__('About Wordfence') ?></h3>
|
383 |
+
<p><?php echo wfWAFI18n::__('Wordfence is a security plugin installed on over 3 million WordPress sites. The owner of this site is using Wordfence to manage access to their site.') ?></p>
|
384 |
+
<p><?php echo wfWAFI18n::__('You can also read the documentation to learn about Wordfence\'s blocking tools, or visit wordfence.com to learn more about Wordfence.') ?></p>
|
385 |
</div>
|
386 |
</div>
|
387 |
|
388 |
+
<p class="documentation small"><?php echo wfWAFI18n::__('Click here to learn more: <a href="https://www.wordfence.com/help/?query=locked-out" target="_blank" rel="noopener noreferrer">Documentation</a>') ?></p>
|
389 |
+
<p class="generated small"><em><?php printf(wfWAFI18n::__('Generated by Wordfence at %s.<br>Your computer\'s time: '), gmdate('D, j M Y G:i:s T', wfWAFUtils::normalizedTime())) ?><script type="application/javascript">document.write(new Date().toUTCString());</script>.</em></p>
|
390 |
</div>
|
391 |
</body>
|
392 |
</html>
|
vendor/wordfence/wf-waf/src/views/503.php
CHANGED
@@ -5,7 +5,7 @@ if (!defined('WFWAF_VIEW_RENDERING')) { exit; }
|
|
5 |
<html>
|
6 |
<head>
|
7 |
<meta charset="UTF-8">
|
8 |
-
<title
|
9 |
<style>
|
10 |
html {
|
11 |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
@@ -322,9 +322,9 @@ if (!defined('WFWAF_VIEW_RENDERING')) { exit; }
|
|
322 |
<?php if (!empty($errorNonce)) { echo '<!-- WFWAF NONCE: ' . htmlspecialchars($errorNonce) . ' -->'; } ?>
|
323 |
<div class="top-accent"></div>
|
324 |
<div class="container">
|
325 |
-
<h1
|
326 |
-
<p
|
327 |
-
<p
|
328 |
<?php if (!empty($customText)): ?>
|
329 |
<hr>
|
330 |
<div class="medium"><?php echo $customText; ?></div>
|
@@ -333,11 +333,11 @@ if (!defined('WFWAF_VIEW_RENDERING')) { exit; }
|
|
333 |
$nonce = $waf->createNonce('wf-form');
|
334 |
if (!empty($siteURL) && !empty($nonce)) : ?>
|
335 |
<hr>
|
336 |
-
<p class="medium"
|
337 |
|
338 |
<form method="POST" id="unlock-form" action="#">
|
339 |
<input type="hidden" name="nonce" value="<?php echo $nonce; ?>">
|
340 |
-
<input type="text" size="50" name="email" id="unlock-email" value="" maxlength="255" placeholder="email@example.com"> <input type="submit" class="wf-btn wf-btn-default" id="unlock-submit" name="s" value="Send Unlock Email" disabled>
|
341 |
</form>
|
342 |
<script type="application/javascript">
|
343 |
(function() {
|
@@ -350,14 +350,14 @@ if (!empty($siteURL) && !empty($nonce)) : ?>
|
|
350 |
</script>
|
351 |
<?php endif; ?>
|
352 |
|
353 |
-
<h2 class="h3"
|
354 |
<table border="0" cellspacing="0" cellpadding="0" class="block-data">
|
355 |
<tr>
|
356 |
-
<th class="reason"
|
357 |
<td class="reason"><?php echo htmlspecialchars($reason); ?></td>
|
358 |
</tr>
|
359 |
<tr>
|
360 |
-
<th class="time"
|
361 |
<td class="time"><?php echo htmlspecialchars(gmdate('D, j M Y G:i:s T', wfWAFUtils::normalizedTime())); ?></td>
|
362 |
</tr>
|
363 |
</table>
|
@@ -373,14 +373,14 @@ if (!empty($siteURL) && !empty($nonce)) : ?>
|
|
373 |
?>
|
374 |
</div>
|
375 |
<div class="about-text">
|
376 |
-
<h3 class="h4"
|
377 |
-
<p
|
378 |
-
<p
|
379 |
</div>
|
380 |
</div>
|
381 |
|
382 |
-
<p class="documentation small"
|
383 |
-
<p class="generated small"><em
|
384 |
</div>
|
385 |
</body>
|
386 |
</html>
|
5 |
<html>
|
6 |
<head>
|
7 |
<meta charset="UTF-8">
|
8 |
+
<title><?php echo wfWAFI18n::__('Your access to this site has been limited by the site owner') ?></title>
|
9 |
<style>
|
10 |
html {
|
11 |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
322 |
<?php if (!empty($errorNonce)) { echo '<!-- WFWAF NONCE: ' . htmlspecialchars($errorNonce) . ' -->'; } ?>
|
323 |
<div class="top-accent"></div>
|
324 |
<div class="container">
|
325 |
+
<h1><?php echo wfWAFI18n::__('Your access to this site has been limited by the site owner') ?></h1>
|
326 |
+
<p><?php echo wfWAFI18n::__('Your access to this service has been limited. (HTTP response code 503)') ?></p>
|
327 |
+
<p><?php echo wfWAFI18n::__('If you think you have been blocked in error, contact the owner of this site for assistance.') ?></p>
|
328 |
<?php if (!empty($customText)): ?>
|
329 |
<hr>
|
330 |
<div class="medium"><?php echo $customText; ?></div>
|
333 |
$nonce = $waf->createNonce('wf-form');
|
334 |
if (!empty($siteURL) && !empty($nonce)) : ?>
|
335 |
<hr>
|
336 |
+
<p class="medium"><?php echo wfWAFI18n::__('If you are a WordPress user with administrative privileges on this site, please enter your email address in the box below and click "Send". You will then receive an email that helps you regain access.') ?></p>
|
337 |
|
338 |
<form method="POST" id="unlock-form" action="#">
|
339 |
<input type="hidden" name="nonce" value="<?php echo $nonce; ?>">
|
340 |
+
<input type="text" size="50" name="email" id="unlock-email" value="" maxlength="255" placeholder="email@example.com"> <input type="submit" class="wf-btn wf-btn-default" id="unlock-submit" name="s" value="<?php echo htmlentities(wfWAFI18n::__('Send Unlock Email'), ENT_QUOTES, 'utf-8') ?>" disabled>
|
341 |
</form>
|
342 |
<script type="application/javascript">
|
343 |
(function() {
|
350 |
</script>
|
351 |
<?php endif; ?>
|
352 |
|
353 |
+
<h2 class="h3"><?php echo wfWAFI18n::__('Block Technical Data') ?></h2>
|
354 |
<table border="0" cellspacing="0" cellpadding="0" class="block-data">
|
355 |
<tr>
|
356 |
+
<th class="reason"><?php echo wfWAFI18n::__('Block Reason:') ?></th>
|
357 |
<td class="reason"><?php echo htmlspecialchars($reason); ?></td>
|
358 |
</tr>
|
359 |
<tr>
|
360 |
+
<th class="time"><?php echo wfWAFI18n::__('Time:') ?></th>
|
361 |
<td class="time"><?php echo htmlspecialchars(gmdate('D, j M Y G:i:s T', wfWAFUtils::normalizedTime())); ?></td>
|
362 |
</tr>
|
363 |
</table>
|
373 |
?>
|
374 |
</div>
|
375 |
<div class="about-text">
|
376 |
+
<h3 class="h4"><?php echo wfWAFI18n::__('About Wordfence') ?></h3>
|
377 |
+
<p><?php echo wfWAFI18n::__('Wordfence is a security plugin installed on over 3 million WordPress sites. The owner of this site is using Wordfence to manage access to their site.') ?></p>
|
378 |
+
<p><?php echo wfWAFI18n::__('You can also read the documentation to learn about Wordfence\'s blocking tools, or visit wordfence.com to learn more about Wordfence.') ?></p>
|
379 |
</div>
|
380 |
</div>
|
381 |
|
382 |
+
<p class="documentation small"><?php echo wfWAFI18n::__('Click here to learn more: <a href="https://www.wordfence.com/help/?query=locked-out" target="_blank" rel="noopener noreferrer">Documentation</a>') ?></p>
|
383 |
+
<p class="generated small"><em><?php printf(wfWAFI18n::__('Generated by Wordfence at %s.<br>Your computer\'s time: '), gmdate('D, j M Y G:i:s T', wfWAFUtils::normalizedTime())) ?><script type="application/javascript">document.write(new Date().toUTCString());</script>.</em></p>
|
384 |
</div>
|
385 |
</body>
|
386 |
</html>
|
views/diagnostics/text.php
CHANGED
@@ -437,6 +437,18 @@ if ($q) {
|
|
437 |
}
|
438 |
}
|
439 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
440 |
if ($hasAll) {
|
441 |
_e('All Tables Exist', 'wordfence');
|
442 |
} else {
|
437 |
}
|
438 |
}
|
439 |
|
440 |
+
foreach (
|
441 |
+
array(
|
442 |
+
\WordfenceLS\Controller_DB::TABLE_2FA_SECRETS,
|
443 |
+
\WordfenceLS\Controller_DB::TABLE_SETTINGS,
|
444 |
+
) as $t) {
|
445 |
+
$table = \WordfenceLS\Controller_DB::network_table($t);
|
446 |
+
if (!in_array($table, $existingTables)) {
|
447 |
+
$hasAll = false;
|
448 |
+
$missingTables[] = $t;
|
449 |
+
}
|
450 |
+
}
|
451 |
+
|
452 |
if ($hasAll) {
|
453 |
_e('All Tables Exist', 'wordfence');
|
454 |
} else {
|
views/unsupported-php/admin-message.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('WORDFENCE_VERSION')) { exit; }
|
3 |
+
/**
|
4 |
+
* Presents the unsupported PHP version modal.
|
5 |
+
*/
|
6 |
+
?>
|
7 |
+
<div style="padding: 10px; border: 2px solid #00709e; background-color: #fff; margin: 20px 20px 10px 0px; color: #00709e">
|
8 |
+
<img style="display: block; float: left; margin: 0 10px 0 0" src="<?php echo plugins_url('', WORDFENCE_FCPATH) . '/' ?>images/wordfence-logo.svg" alt="" width="35" height="35">
|
9 |
+
<p style="margin: 10px">You are running PHP version <?php echo PHP_VERSION ?> that is not supported by Wordfence <?php echo WORDFENCE_VERSION ?>. Wordfence features will not be available until PHP has been upgraded. We recommend using PHP version 7.4, but Wordfence will run on PHP version 5.3 at a minimum.</p>
|
10 |
+
</div>
|
waf/bootstrap.php
CHANGED
@@ -16,6 +16,15 @@ if (!defined('WF_IS_PRESSABLE')) {
|
|
16 |
define('WF_IS_PRESSABLE', (defined('IS_ATOMIC') && IS_ATOMIC) || (defined('IS_PRESSABLE') && IS_PRESSABLE));
|
17 |
}
|
18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
require_once(dirname(__FILE__) . '/wfWAFUserIPRange.php');
|
21 |
require_once(dirname(__FILE__) . '/wfWAFIPBlocksController.php');
|
@@ -734,6 +743,57 @@ class wfWAFWordPressStorageMySQL extends wfWAFStorageMySQL {
|
|
734 |
}
|
735 |
}
|
736 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
737 |
if (!defined('WFWAF_LOG_PATH')) {
|
738 |
if (!defined('WP_CONTENT_DIR')) { //Loading before WordPress
|
739 |
exit();
|
@@ -864,6 +924,8 @@ try {
|
|
864 |
}
|
865 |
}
|
866 |
|
|
|
|
|
867 |
try {
|
868 |
wfWAF::getInstance()->run();
|
869 |
} catch (wfWAFBuildRulesException $e) {
|
16 |
define('WF_IS_PRESSABLE', (defined('IS_ATOMIC') && IS_ATOMIC) || (defined('IS_PRESSABLE') && IS_PRESSABLE));
|
17 |
}
|
18 |
|
19 |
+
if (!defined('WF_PHP_UNSUPPORTED')) {
|
20 |
+
define('WF_PHP_UNSUPPORTED', version_compare(PHP_VERSION, '5.3', '<'));
|
21 |
+
}
|
22 |
+
|
23 |
+
if (WF_PHP_UNSUPPORTED) {
|
24 |
+
return;
|
25 |
+
}
|
26 |
+
|
27 |
+
|
28 |
|
29 |
require_once(dirname(__FILE__) . '/wfWAFUserIPRange.php');
|
30 |
require_once(dirname(__FILE__) . '/wfWAFIPBlocksController.php');
|
743 |
}
|
744 |
}
|
745 |
|
746 |
+
class wfWAFWordPressI18n implements wfWAFI18nEngine {
|
747 |
+
|
748 |
+
protected $translations;
|
749 |
+
|
750 |
+
/** @var wfWAFStorageInterface */
|
751 |
+
private $storageEngine;
|
752 |
+
/**
|
753 |
+
* @var wfMO
|
754 |
+
*/
|
755 |
+
private $mo;
|
756 |
+
|
757 |
+
/**
|
758 |
+
* @param wfWAFStorageInterface $storageEngine
|
759 |
+
*/
|
760 |
+
public function __construct($storageEngine) {
|
761 |
+
$this->storageEngine = $storageEngine;
|
762 |
+
$this->loadTranslations();
|
763 |
+
}
|
764 |
+
|
765 |
+
/**
|
766 |
+
* @param string $text
|
767 |
+
* @return string
|
768 |
+
*/
|
769 |
+
public function __($text) {
|
770 |
+
if ($this->mo) {
|
771 |
+
$translated = $this->mo->translate($text);
|
772 |
+
if ($translated) {
|
773 |
+
return $translated;
|
774 |
+
}
|
775 |
+
}
|
776 |
+
|
777 |
+
return $text;
|
778 |
+
}
|
779 |
+
|
780 |
+
protected function loadTranslations() {
|
781 |
+
require_once dirname(__FILE__) . '/pomo/mo.php';
|
782 |
+
|
783 |
+
$currentLocale = $this->storageEngine->getConfig('WPLANG', '', 'synced');
|
784 |
+
|
785 |
+
// Find translation file for the current language.
|
786 |
+
$mofile = dirname(__FILE__) . '/../languages/wordfence-' . $currentLocale . '.mo';
|
787 |
+
if (!file_exists($mofile)) {
|
788 |
+
// No translation, use the default
|
789 |
+
$mofile = dirname(__FILE__) . '/../languages/wordfence.mo';
|
790 |
+
}
|
791 |
+
|
792 |
+
$this->mo = new wfMO();
|
793 |
+
return $this->mo->import_from_file( $mofile );
|
794 |
+
}
|
795 |
+
}
|
796 |
+
|
797 |
if (!defined('WFWAF_LOG_PATH')) {
|
798 |
if (!defined('WP_CONTENT_DIR')) { //Loading before WordPress
|
799 |
exit();
|
924 |
}
|
925 |
}
|
926 |
|
927 |
+
wfWAFI18n::setInstance(new wfWAFI18n(new wfWAFWordPressI18n($wfWAFStorageEngine)));
|
928 |
+
|
929 |
try {
|
930 |
wfWAF::getInstance()->run();
|
931 |
} catch (wfWAFBuildRulesException $e) {
|
waf/pomo/entry.php
ADDED
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Contains Translation_Entry class
|
4 |
+
*
|
5 |
+
* @version $Id: entry.php 1157 2015-11-20 04:30:11Z dd32 $
|
6 |
+
* @package pomo
|
7 |
+
* @subpackage entry
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! class_exists( 'wfTranslation_Entry', false ) ) :
|
11 |
+
/**
|
12 |
+
* Translation_Entry class encapsulates a translatable string
|
13 |
+
*/
|
14 |
+
class wfTranslation_Entry {
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Whether the entry contains a string and its plural form, default is false
|
18 |
+
*
|
19 |
+
* @var boolean
|
20 |
+
*/
|
21 |
+
var $is_plural = false;
|
22 |
+
|
23 |
+
var $context = null;
|
24 |
+
var $singular = null;
|
25 |
+
var $plural = null;
|
26 |
+
var $translations = array();
|
27 |
+
var $translator_comments = '';
|
28 |
+
var $extracted_comments = '';
|
29 |
+
var $references = array();
|
30 |
+
var $flags = array();
|
31 |
+
|
32 |
+
/**
|
33 |
+
* @param array $args associative array, support following keys:
|
34 |
+
* - singular (string) -- the string to translate, if omitted and empty entry will be created
|
35 |
+
* - plural (string) -- the plural form of the string, setting this will set {@link $is_plural} to true
|
36 |
+
* - translations (array) -- translations of the string and possibly -- its plural forms
|
37 |
+
* - context (string) -- a string differentiating two equal strings used in different contexts
|
38 |
+
* - translator_comments (string) -- comments left by translators
|
39 |
+
* - extracted_comments (string) -- comments left by developers
|
40 |
+
* - references (array) -- places in the code this strings is used, in relative_to_root_path/file.php:linenum form
|
41 |
+
* - flags (array) -- flags like php-format
|
42 |
+
*/
|
43 |
+
function __construct( $args = array() ) {
|
44 |
+
// If no singular -- empty object.
|
45 |
+
if ( ! isset( $args['singular'] ) ) {
|
46 |
+
return;
|
47 |
+
}
|
48 |
+
// Get member variable values from args hash.
|
49 |
+
foreach ( $args as $varname => $value ) {
|
50 |
+
$this->$varname = $value;
|
51 |
+
}
|
52 |
+
if ( isset( $args['plural'] ) && $args['plural'] ) {
|
53 |
+
$this->is_plural = true;
|
54 |
+
}
|
55 |
+
if ( ! is_array( $this->translations ) ) {
|
56 |
+
$this->translations = array();
|
57 |
+
}
|
58 |
+
if ( ! is_array( $this->references ) ) {
|
59 |
+
$this->references = array();
|
60 |
+
}
|
61 |
+
if ( ! is_array( $this->flags ) ) {
|
62 |
+
$this->flags = array();
|
63 |
+
}
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Generates a unique key for this entry
|
68 |
+
*
|
69 |
+
* @return string|bool the key or false if the entry is empty
|
70 |
+
*/
|
71 |
+
function key() {
|
72 |
+
if ( null === $this->singular || '' === $this->singular ) {
|
73 |
+
return false;
|
74 |
+
}
|
75 |
+
|
76 |
+
// Prepend context and EOT, like in MO files.
|
77 |
+
$key = ! $this->context ? $this->singular : $this->context . "\4" . $this->singular;
|
78 |
+
// Standardize on \n line endings.
|
79 |
+
$key = str_replace( array( "\r\n", "\r" ), "\n", $key );
|
80 |
+
|
81 |
+
return $key;
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* @param object $other
|
86 |
+
*/
|
87 |
+
function merge_with( &$other ) {
|
88 |
+
$this->flags = array_unique( array_merge( $this->flags, $other->flags ) );
|
89 |
+
$this->references = array_unique( array_merge( $this->references, $other->references ) );
|
90 |
+
if ( $this->extracted_comments != $other->extracted_comments ) {
|
91 |
+
$this->extracted_comments .= $other->extracted_comments;
|
92 |
+
}
|
93 |
+
|
94 |
+
}
|
95 |
+
}
|
96 |
+
endif;
|
waf/pomo/mo.php
ADDED
@@ -0,0 +1,349 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class for working with MO files
|
4 |
+
*
|
5 |
+
* @version $Id: mo.php 1157 2015-11-20 04:30:11Z dd32 $
|
6 |
+
* @package pomo
|
7 |
+
* @subpackage mo
|
8 |
+
*/
|
9 |
+
|
10 |
+
require_once __DIR__ . '/translations.php';
|
11 |
+
require_once __DIR__ . '/streams.php';
|
12 |
+
|
13 |
+
if ( ! class_exists( 'wfMO', false ) ) :
|
14 |
+
class wfMO extends wfGettext_Translations {
|
15 |
+
|
16 |
+
var $_nplurals = 2;
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Loaded MO file.
|
20 |
+
*
|
21 |
+
* @var string
|
22 |
+
*/
|
23 |
+
private $filename = '';
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Returns the loaded MO file.
|
27 |
+
*
|
28 |
+
* @return string The loaded MO file.
|
29 |
+
*/
|
30 |
+
public function get_filename() {
|
31 |
+
return $this->filename;
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Fills up with the entries from MO file $filename
|
36 |
+
*
|
37 |
+
* @param string $filename MO file to load
|
38 |
+
* @return bool True if the import from file was successful, otherwise false.
|
39 |
+
*/
|
40 |
+
function import_from_file( $filename ) {
|
41 |
+
$reader = new wfPOMO_FileReader( $filename );
|
42 |
+
|
43 |
+
if ( ! $reader->is_resource() ) {
|
44 |
+
return false;
|
45 |
+
}
|
46 |
+
|
47 |
+
$this->filename = (string) $filename;
|
48 |
+
|
49 |
+
return $this->import_from_reader( $reader );
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* @param string $filename
|
54 |
+
* @return bool
|
55 |
+
*/
|
56 |
+
function export_to_file( $filename ) {
|
57 |
+
$fh = fopen( $filename, 'wb' );
|
58 |
+
if ( ! $fh ) {
|
59 |
+
return false;
|
60 |
+
}
|
61 |
+
$res = $this->export_to_file_handle( $fh );
|
62 |
+
fclose( $fh );
|
63 |
+
return $res;
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* @return string|false
|
68 |
+
*/
|
69 |
+
function export() {
|
70 |
+
$tmp_fh = fopen( 'php://temp', 'r+' );
|
71 |
+
if ( ! $tmp_fh ) {
|
72 |
+
return false;
|
73 |
+
}
|
74 |
+
$this->export_to_file_handle( $tmp_fh );
|
75 |
+
rewind( $tmp_fh );
|
76 |
+
return stream_get_contents( $tmp_fh );
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* @param wfTranslation_Entry $entry
|
81 |
+
* @return bool
|
82 |
+
*/
|
83 |
+
function is_entry_good_for_export( $entry ) {
|
84 |
+
if ( empty( $entry->translations ) ) {
|
85 |
+
return false;
|
86 |
+
}
|
87 |
+
|
88 |
+
if ( ! array_filter( $entry->translations ) ) {
|
89 |
+
return false;
|
90 |
+
}
|
91 |
+
|
92 |
+
return true;
|
93 |
+
}
|
94 |
+
|
95 |
+
/**
|
96 |
+
* @param resource $fh
|
97 |
+
* @return true
|
98 |
+
*/
|
99 |
+
function export_to_file_handle( $fh ) {
|
100 |
+
$entries = array_filter( $this->entries, array( $this, 'is_entry_good_for_export' ) );
|
101 |
+
ksort( $entries );
|
102 |
+
$magic = 0x950412de;
|
103 |
+
$revision = 0;
|
104 |
+
$total = count( $entries ) + 1; // All the headers are one entry.
|
105 |
+
$originals_lenghts_addr = 28;
|
106 |
+
$translations_lenghts_addr = $originals_lenghts_addr + 8 * $total;
|
107 |
+
$size_of_hash = 0;
|
108 |
+
$hash_addr = $translations_lenghts_addr + 8 * $total;
|
109 |
+
$current_addr = $hash_addr;
|
110 |
+
fwrite(
|
111 |
+
$fh,
|
112 |
+
pack(
|
113 |
+
'V*',
|
114 |
+
$magic,
|
115 |
+
$revision,
|
116 |
+
$total,
|
117 |
+
$originals_lenghts_addr,
|
118 |
+
$translations_lenghts_addr,
|
119 |
+
$size_of_hash,
|
120 |
+
$hash_addr
|
121 |
+
)
|
122 |
+
);
|
123 |
+
fseek( $fh, $originals_lenghts_addr );
|
124 |
+
|
125 |
+
// Headers' msgid is an empty string.
|
126 |
+
fwrite( $fh, pack( 'VV', 0, $current_addr ) );
|
127 |
+
$current_addr++;
|
128 |
+
$originals_table = "\0";
|
129 |
+
|
130 |
+
$reader = new wfPOMO_Reader();
|
131 |
+
|
132 |
+
foreach ( $entries as $entry ) {
|
133 |
+
$originals_table .= $this->export_original( $entry ) . "\0";
|
134 |
+
$length = $reader->strlen( $this->export_original( $entry ) );
|
135 |
+
fwrite( $fh, pack( 'VV', $length, $current_addr ) );
|
136 |
+
$current_addr += $length + 1; // Account for the NULL byte after.
|
137 |
+
}
|
138 |
+
|
139 |
+
$exported_headers = $this->export_headers();
|
140 |
+
fwrite( $fh, pack( 'VV', $reader->strlen( $exported_headers ), $current_addr ) );
|
141 |
+
$current_addr += strlen( $exported_headers ) + 1;
|
142 |
+
$translations_table = $exported_headers . "\0";
|
143 |
+
|
144 |
+
foreach ( $entries as $entry ) {
|
145 |
+
$translations_table .= $this->export_translations( $entry ) . "\0";
|
146 |
+
$length = $reader->strlen( $this->export_translations( $entry ) );
|
147 |
+
fwrite( $fh, pack( 'VV', $length, $current_addr ) );
|
148 |
+
$current_addr += $length + 1;
|
149 |
+
}
|
150 |
+
|
151 |
+
fwrite( $fh, $originals_table );
|
152 |
+
fwrite( $fh, $translations_table );
|
153 |
+
return true;
|
154 |
+
}
|
155 |
+
|
156 |
+
/**
|
157 |
+
* @param wfTranslation_Entry $entry
|
158 |
+
* @return string
|
159 |
+
*/
|
160 |
+
function export_original( $entry ) {
|
161 |
+
// TODO: Warnings for control characters.
|
162 |
+
$exported = $entry->singular;
|
163 |
+
if ( $entry->is_plural ) {
|
164 |
+
$exported .= "\0" . $entry->plural;
|
165 |
+
}
|
166 |
+
if ( $entry->context ) {
|
167 |
+
$exported = $entry->context . "\4" . $exported;
|
168 |
+
}
|
169 |
+
return $exported;
|
170 |
+
}
|
171 |
+
|
172 |
+
/**
|
173 |
+
* @param wfTranslation_Entry $entry
|
174 |
+
* @return string
|
175 |
+
*/
|
176 |
+
function export_translations( $entry ) {
|
177 |
+
// TODO: Warnings for control characters.
|
178 |
+
return $entry->is_plural ? implode( "\0", $entry->translations ) : $entry->translations[0];
|
179 |
+
}
|
180 |
+
|
181 |
+
/**
|
182 |
+
* @return string
|
183 |
+
*/
|
184 |
+
function export_headers() {
|
185 |
+
$exported = '';
|
186 |
+
foreach ( $this->headers as $header => $value ) {
|
187 |
+
$exported .= "$header: $value\n";
|
188 |
+
}
|
189 |
+
return $exported;
|
190 |
+
}
|
191 |
+
|
192 |
+
/**
|
193 |
+
* @param int $magic
|
194 |
+
* @return string|false
|
195 |
+
*/
|
196 |
+
function get_byteorder( $magic ) {
|
197 |
+
// The magic is 0x950412de.
|
198 |
+
|
199 |
+
// bug in PHP 5.0.2, see https://savannah.nongnu.org/bugs/?func=detailitem&item_id=10565
|
200 |
+
$magic_little = (int) - 1794895138;
|
201 |
+
$magic_little_64 = (int) 2500072158;
|
202 |
+
// 0xde120495
|
203 |
+
$magic_big = ( (int) - 569244523 ) & 0xFFFFFFFF;
|
204 |
+
if ( $magic_little == $magic || $magic_little_64 == $magic ) {
|
205 |
+
return 'little';
|
206 |
+
} elseif ( $magic_big == $magic ) {
|
207 |
+
return 'big';
|
208 |
+
} else {
|
209 |
+
return false;
|
210 |
+
}
|
211 |
+
}
|
212 |
+
|
213 |
+
/**
|
214 |
+
* @param wfPOMO_FileReader $reader
|
215 |
+
* @return bool True if the import was successful, otherwise false.
|
216 |
+
*/
|
217 |
+
function import_from_reader( $reader ) {
|
218 |
+
$endian_string = wfMO::get_byteorder( $reader->readint32() );
|
219 |
+
if ( false === $endian_string ) {
|
220 |
+
return false;
|
221 |
+
}
|
222 |
+
$reader->setEndian( $endian_string );
|
223 |
+
|
224 |
+
$endian = ( 'big' === $endian_string ) ? 'N' : 'V';
|
225 |
+
|
226 |
+
$header = $reader->read( 24 );
|
227 |
+
if ( $reader->strlen( $header ) != 24 ) {
|
228 |
+
return false;
|
229 |
+
}
|
230 |
+
|
231 |
+
// Parse header.
|
232 |
+
$header = unpack( "{$endian}revision/{$endian}total/{$endian}originals_lenghts_addr/{$endian}translations_lenghts_addr/{$endian}hash_length/{$endian}hash_addr", $header );
|
233 |
+
if ( ! is_array( $header ) ) {
|
234 |
+
return false;
|
235 |
+
}
|
236 |
+
|
237 |
+
// Support revision 0 of MO format specs, only.
|
238 |
+
if ( 0 != $header['revision'] ) {
|
239 |
+
return false;
|
240 |
+
}
|
241 |
+
|
242 |
+
// Seek to data blocks.
|
243 |
+
$reader->seekto( $header['originals_lenghts_addr'] );
|
244 |
+
|
245 |
+
// Read originals' indices.
|
246 |
+
$originals_lengths_length = $header['translations_lenghts_addr'] - $header['originals_lenghts_addr'];
|
247 |
+
if ( $originals_lengths_length != $header['total'] * 8 ) {
|
248 |
+
return false;
|
249 |
+
}
|
250 |
+
|
251 |
+
$originals = $reader->read( $originals_lengths_length );
|
252 |
+
if ( $reader->strlen( $originals ) != $originals_lengths_length ) {
|
253 |
+
return false;
|
254 |
+
}
|
255 |
+
|
256 |
+
// Read translations' indices.
|
257 |
+
$translations_lenghts_length = $header['hash_addr'] - $header['translations_lenghts_addr'];
|
258 |
+
if ( $translations_lenghts_length != $header['total'] * 8 ) {
|
259 |
+
return false;
|
260 |
+
}
|
261 |
+
|
262 |
+
$translations = $reader->read( $translations_lenghts_length );
|
263 |
+
if ( $reader->strlen( $translations ) != $translations_lenghts_length ) {
|
264 |
+
return false;
|
265 |
+
}
|
266 |
+
|
267 |
+
// Transform raw data into set of indices.
|
268 |
+
$originals = $reader->str_split( $originals, 8 );
|
269 |
+
$translations = $reader->str_split( $translations, 8 );
|
270 |
+
|
271 |
+
// Skip hash table.
|
272 |
+
$strings_addr = $header['hash_addr'] + $header['hash_length'] * 4;
|
273 |
+
|
274 |
+
$reader->seekto( $strings_addr );
|
275 |
+
|
276 |
+
$strings = $reader->read_all();
|
277 |
+
$reader->close();
|
278 |
+
|
279 |
+
for ( $i = 0; $i < $header['total']; $i++ ) {
|
280 |
+
$o = unpack( "{$endian}length/{$endian}pos", $originals[ $i ] );
|
281 |
+
$t = unpack( "{$endian}length/{$endian}pos", $translations[ $i ] );
|
282 |
+
if ( ! $o || ! $t ) {
|
283 |
+
return false;
|
284 |
+
}
|
285 |
+
|
286 |
+
// Adjust offset due to reading strings to separate space before.
|
287 |
+
$o['pos'] -= $strings_addr;
|
288 |
+
$t['pos'] -= $strings_addr;
|
289 |
+
|
290 |
+
$original = $reader->substr( $strings, $o['pos'], $o['length'] );
|
291 |
+
$translation = $reader->substr( $strings, $t['pos'], $t['length'] );
|
292 |
+
|
293 |
+
if ( '' === $original ) {
|
294 |
+
$this->set_headers( $this->make_headers( $translation ) );
|
295 |
+
} else {
|
296 |
+
$entry = &$this->make_entry( $original, $translation );
|
297 |
+
$this->entries[ $entry->key() ] = &$entry;
|
298 |
+
}
|
299 |
+
}
|
300 |
+
return true;
|
301 |
+
}
|
302 |
+
|
303 |
+
/**
|
304 |
+
* Build a Translation_Entry from original string and translation strings,
|
305 |
+
* found in a MO file
|
306 |
+
*
|
307 |
+
* @static
|
308 |
+
* @param string $original original string to translate from MO file. Might contain
|
309 |
+
* 0x04 as context separator or 0x00 as singular/plural separator
|
310 |
+
* @param string $translation translation string from MO file. Might contain
|
311 |
+
* 0x00 as a plural translations separator
|
312 |
+
* @return wfTranslation_Entry Entry instance.
|
313 |
+
*/
|
314 |
+
function &make_entry( $original, $translation ) {
|
315 |
+
$entry = new wfTranslation_Entry();
|
316 |
+
// Look for context, separated by \4.
|
317 |
+
$parts = explode( "\4", $original );
|
318 |
+
if ( isset( $parts[1] ) ) {
|
319 |
+
$original = $parts[1];
|
320 |
+
$entry->context = $parts[0];
|
321 |
+
}
|
322 |
+
// Look for plural original.
|
323 |
+
$parts = explode( "\0", $original );
|
324 |
+
$entry->singular = $parts[0];
|
325 |
+
if ( isset( $parts[1] ) ) {
|
326 |
+
$entry->is_plural = true;
|
327 |
+
$entry->plural = $parts[1];
|
328 |
+
}
|
329 |
+
// Plural translations are also separated by \0.
|
330 |
+
$entry->translations = explode( "\0", $translation );
|
331 |
+
return $entry;
|
332 |
+
}
|
333 |
+
|
334 |
+
/**
|
335 |
+
* @param int $count
|
336 |
+
* @return string
|
337 |
+
*/
|
338 |
+
function select_plural_form( $count ) {
|
339 |
+
return $this->gettext_select_plural_form( $count );
|
340 |
+
}
|
341 |
+
|
342 |
+
/**
|
343 |
+
* @return int
|
344 |
+
*/
|
345 |
+
function get_plural_forms_count() {
|
346 |
+
return $this->_nplurals;
|
347 |
+
}
|
348 |
+
}
|
349 |
+
endif;
|
waf/pomo/plural-forms.php
ADDED
@@ -0,0 +1,344 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* A gettext Plural-Forms parser.
|
5 |
+
*
|
6 |
+
* @since 4.9.0
|
7 |
+
*/
|
8 |
+
class wfPlural_Forms {
|
9 |
+
/**
|
10 |
+
* Operator characters.
|
11 |
+
*
|
12 |
+
* @since 4.9.0
|
13 |
+
* @var string OP_CHARS Operator characters.
|
14 |
+
*/
|
15 |
+
const OP_CHARS = '|&><!=%?:';
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Valid number characters.
|
19 |
+
*
|
20 |
+
* @since 4.9.0
|
21 |
+
* @var string NUM_CHARS Valid number characters.
|
22 |
+
*/
|
23 |
+
const NUM_CHARS = '0123456789';
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Operator precedence.
|
27 |
+
*
|
28 |
+
* Operator precedence from highest to lowest. Higher numbers indicate
|
29 |
+
* higher precedence, and are executed first.
|
30 |
+
*
|
31 |
+
* @see https://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_precedence
|
32 |
+
*
|
33 |
+
* @since 4.9.0
|
34 |
+
* @var array $op_precedence Operator precedence from highest to lowest.
|
35 |
+
*/
|
36 |
+
protected static $op_precedence = array(
|
37 |
+
'%' => 6,
|
38 |
+
|
39 |
+
'<' => 5,
|
40 |
+
'<=' => 5,
|
41 |
+
'>' => 5,
|
42 |
+
'>=' => 5,
|
43 |
+
|
44 |
+
'==' => 4,
|
45 |
+
'!=' => 4,
|
46 |
+
|
47 |
+
'&&' => 3,
|
48 |
+
|
49 |
+
'||' => 2,
|
50 |
+
|
51 |
+
'?:' => 1,
|
52 |
+
'?' => 1,
|
53 |
+
|
54 |
+
'(' => 0,
|
55 |
+
')' => 0,
|
56 |
+
);
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Tokens generated from the string.
|
60 |
+
*
|
61 |
+
* @since 4.9.0
|
62 |
+
* @var array $tokens List of tokens.
|
63 |
+
*/
|
64 |
+
protected $tokens = array();
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Cache for repeated calls to the function.
|
68 |
+
*
|
69 |
+
* @since 4.9.0
|
70 |
+
* @var array $cache Map of $n => $result
|
71 |
+
*/
|
72 |
+
protected $cache = array();
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Constructor.
|
76 |
+
*
|
77 |
+
* @since 4.9.0
|
78 |
+
*
|
79 |
+
* @param string $str Plural function (just the bit after `plural=` from Plural-Forms)
|
80 |
+
*/
|
81 |
+
public function __construct( $str ) {
|
82 |
+
$this->parse( $str );
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* Parse a Plural-Forms string into tokens.
|
87 |
+
*
|
88 |
+
* Uses the shunting-yard algorithm to convert the string to Reverse Polish
|
89 |
+
* Notation tokens.
|
90 |
+
*
|
91 |
+
* @since 4.9.0
|
92 |
+
*
|
93 |
+
* @param string $str String to parse.
|
94 |
+
*/
|
95 |
+
protected function parse( $str ) {
|
96 |
+
$pos = 0;
|
97 |
+
$len = strlen( $str );
|
98 |
+
|
99 |
+
// Convert infix operators to postfix using the shunting-yard algorithm.
|
100 |
+
$output = array();
|
101 |
+
$stack = array();
|
102 |
+
while ( $pos < $len ) {
|
103 |
+
$next = substr( $str, $pos, 1 );
|
104 |
+
|
105 |
+
switch ( $next ) {
|
106 |
+
// Ignore whitespace.
|
107 |
+
case ' ':
|
108 |
+
case "\t":
|
109 |
+
$pos++;
|
110 |
+
break;
|
111 |
+
|
112 |
+
// Variable (n).
|
113 |
+
case 'n':
|
114 |
+
$output[] = array( 'var' );
|
115 |
+
$pos++;
|
116 |
+
break;
|
117 |
+
|
118 |
+
// Parentheses.
|
119 |
+
case '(':
|
120 |
+
$stack[] = $next;
|
121 |
+
$pos++;
|
122 |
+
break;
|
123 |
+
|
124 |
+
case ')':
|
125 |
+
$found = false;
|
126 |
+
while ( ! empty( $stack ) ) {
|
127 |
+
$o2 = $stack[ count( $stack ) - 1 ];
|
128 |
+
if ( '(' !== $o2 ) {
|
129 |
+
$output[] = array( 'op', array_pop( $stack ) );
|
130 |
+
continue;
|
131 |
+
}
|
132 |
+
|
133 |
+
// Discard open paren.
|
134 |
+
array_pop( $stack );
|
135 |
+
$found = true;
|
136 |
+
break;
|
137 |
+
}
|
138 |
+
|
139 |
+
if ( ! $found ) {
|
140 |
+
throw new Exception( 'Mismatched parentheses' );
|
141 |
+
}
|
142 |
+
|
143 |
+
$pos++;
|
144 |
+
break;
|
145 |
+
|
146 |
+
// Operators.
|
147 |
+
case '|':
|
148 |
+
case '&':
|
149 |
+
case '>':
|
150 |
+
case '<':
|
151 |
+
case '!':
|
152 |
+
case '=':
|
153 |
+
case '%':
|
154 |
+
case '?':
|
155 |
+
$end_operator = strspn( $str, self::OP_CHARS, $pos );
|
156 |
+
$operator = substr( $str, $pos, $end_operator );
|
157 |
+
if ( ! array_key_exists( $operator, self::$op_precedence ) ) {
|
158 |
+
throw new Exception( sprintf( 'Unknown operator "%s"', $operator ) );
|
159 |
+
}
|
160 |
+
|
161 |
+
while ( ! empty( $stack ) ) {
|
162 |
+
$o2 = $stack[ count( $stack ) - 1 ];
|
163 |
+
|
164 |
+
// Ternary is right-associative in C.
|
165 |
+
if ( '?:' === $operator || '?' === $operator ) {
|
166 |
+
if ( self::$op_precedence[ $operator ] >= self::$op_precedence[ $o2 ] ) {
|
167 |
+
break;
|
168 |
+
}
|
169 |
+
} elseif ( self::$op_precedence[ $operator ] > self::$op_precedence[ $o2 ] ) {
|
170 |
+
break;
|
171 |
+
}
|
172 |
+
|
173 |
+
$output[] = array( 'op', array_pop( $stack ) );
|
174 |
+
}
|
175 |
+
$stack[] = $operator;
|
176 |
+
|
177 |
+
$pos += $end_operator;
|
178 |
+
break;
|
179 |
+
|
180 |
+
// Ternary "else".
|
181 |
+
case ':':
|
182 |
+
$found = false;
|
183 |
+
$s_pos = count( $stack ) - 1;
|
184 |
+
while ( $s_pos >= 0 ) {
|
185 |
+
$o2 = $stack[ $s_pos ];
|
186 |
+
if ( '?' !== $o2 ) {
|
187 |
+
$output[] = array( 'op', array_pop( $stack ) );
|
188 |
+
$s_pos--;
|
189 |
+
continue;
|
190 |
+
}
|
191 |
+
|
192 |
+
// Replace.
|
193 |
+
$stack[ $s_pos ] = '?:';
|
194 |
+
$found = true;
|
195 |
+
break;
|
196 |
+
}
|
197 |
+
|
198 |
+
if ( ! $found ) {
|
199 |
+
throw new Exception( 'Missing starting "?" ternary operator' );
|
200 |
+
}
|
201 |
+
$pos++;
|
202 |
+
break;
|
203 |
+
|
204 |
+
// Default - number or invalid.
|
205 |
+
default:
|
206 |
+
if ( $next >= '0' && $next <= '9' ) {
|
207 |
+
$span = strspn( $str, self::NUM_CHARS, $pos );
|
208 |
+
$output[] = array( 'value', intval( substr( $str, $pos, $span ) ) );
|
209 |
+
$pos += $span;
|
210 |
+
break;
|
211 |
+
}
|
212 |
+
|
213 |
+
throw new Exception( sprintf( 'Unknown symbol "%s"', $next ) );
|
214 |
+
}
|
215 |
+
}
|
216 |
+
|
217 |
+
while ( ! empty( $stack ) ) {
|
218 |
+
$o2 = array_pop( $stack );
|
219 |
+
if ( '(' === $o2 || ')' === $o2 ) {
|
220 |
+
throw new Exception( 'Mismatched parentheses' );
|
221 |
+
}
|
222 |
+
|
223 |
+
$output[] = array( 'op', $o2 );
|
224 |
+
}
|
225 |
+
|
226 |
+
$this->tokens = $output;
|
227 |
+
}
|
228 |
+
|
229 |
+
/**
|
230 |
+
* Get the plural form for a number.
|
231 |
+
*
|
232 |
+
* Caches the value for repeated calls.
|
233 |
+
*
|
234 |
+
* @since 4.9.0
|
235 |
+
*
|
236 |
+
* @param int $num Number to get plural form for.
|
237 |
+
* @return int Plural form value.
|
238 |
+
*/
|
239 |
+
public function get( $num ) {
|
240 |
+
if ( isset( $this->cache[ $num ] ) ) {
|
241 |
+
return $this->cache[ $num ];
|
242 |
+
}
|
243 |
+
$this->cache[ $num ] = $this->execute( $num );
|
244 |
+
return $this->cache[ $num ];
|
245 |
+
}
|
246 |
+
|
247 |
+
/**
|
248 |
+
* Execute the plural form function.
|
249 |
+
*
|
250 |
+
* @since 4.9.0
|
251 |
+
*
|
252 |
+
* @param int $n Variable "n" to substitute.
|
253 |
+
* @return int Plural form value.
|
254 |
+
*/
|
255 |
+
public function execute( $n ) {
|
256 |
+
$stack = array();
|
257 |
+
$i = 0;
|
258 |
+
$total = count( $this->tokens );
|
259 |
+
while ( $i < $total ) {
|
260 |
+
$next = $this->tokens[ $i ];
|
261 |
+
$i++;
|
262 |
+
if ( 'var' === $next[0] ) {
|
263 |
+
$stack[] = $n;
|
264 |
+
continue;
|
265 |
+
} elseif ( 'value' === $next[0] ) {
|
266 |
+
$stack[] = $next[1];
|
267 |
+
continue;
|
268 |
+
}
|
269 |
+
|
270 |
+
// Only operators left.
|
271 |
+
switch ( $next[1] ) {
|
272 |
+
case '%':
|
273 |
+
$v2 = array_pop( $stack );
|
274 |
+
$v1 = array_pop( $stack );
|
275 |
+
$stack[] = $v1 % $v2;
|
276 |
+
break;
|
277 |
+
|
278 |
+
case '||':
|
279 |
+
$v2 = array_pop( $stack );
|
280 |
+
$v1 = array_pop( $stack );
|
281 |
+
$stack[] = $v1 || $v2;
|
282 |
+
break;
|
283 |
+
|
284 |
+
case '&&':
|
285 |
+
$v2 = array_pop( $stack );
|
286 |
+
$v1 = array_pop( $stack );
|
287 |
+
$stack[] = $v1 && $v2;
|
288 |
+
break;
|
289 |
+
|
290 |
+
case '<':
|
291 |
+
$v2 = array_pop( $stack );
|
292 |
+
$v1 = array_pop( $stack );
|
293 |
+
$stack[] = $v1 < $v2;
|
294 |
+
break;
|
295 |
+
|
296 |
+
case '<=':
|
297 |
+
$v2 = array_pop( $stack );
|
298 |
+
$v1 = array_pop( $stack );
|
299 |
+
$stack[] = $v1 <= $v2;
|
300 |
+
break;
|
301 |
+
|
302 |
+
case '>':
|
303 |
+
$v2 = array_pop( $stack );
|
304 |
+
$v1 = array_pop( $stack );
|
305 |
+
$stack[] = $v1 > $v2;
|
306 |
+
break;
|
307 |
+
|
308 |
+
case '>=':
|
309 |
+
$v2 = array_pop( $stack );
|
310 |
+
$v1 = array_pop( $stack );
|
311 |
+
$stack[] = $v1 >= $v2;
|
312 |
+
break;
|
313 |
+
|
314 |
+
case '!=':
|
315 |
+
$v2 = array_pop( $stack );
|
316 |
+
$v1 = array_pop( $stack );
|
317 |
+
$stack[] = $v1 != $v2;
|
318 |
+
break;
|
319 |
+
|
320 |
+
case '==':
|
321 |
+
$v2 = array_pop( $stack );
|
322 |
+
$v1 = array_pop( $stack );
|
323 |
+
$stack[] = $v1 == $v2;
|
324 |
+
break;
|
325 |
+
|
326 |
+
case '?:':
|
327 |
+
$v3 = array_pop( $stack );
|
328 |
+
$v2 = array_pop( $stack );
|
329 |
+
$v1 = array_pop( $stack );
|
330 |
+
$stack[] = $v1 ? $v2 : $v3;
|
331 |
+
break;
|
332 |
+
|
333 |
+
default:
|
334 |
+
throw new Exception( sprintf( 'Unknown operator "%s"', $next[1] ) );
|
335 |
+
}
|
336 |
+
}
|
337 |
+
|
338 |
+
if ( count( $stack ) !== 1 ) {
|
339 |
+
throw new Exception( 'Too many values remaining on the stack' );
|
340 |
+
}
|
341 |
+
|
342 |
+
return (int) $stack[0];
|
343 |
+
}
|
344 |
+
}
|
waf/pomo/po.php
ADDED
@@ -0,0 +1,509 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class for working with PO files
|
4 |
+
*
|
5 |
+
* @version $Id: po.php 1158 2015-11-20 04:31:23Z dd32 $
|
6 |
+
* @package pomo
|
7 |
+
* @subpackage po
|
8 |
+
*/
|
9 |
+
|
10 |
+
require_once __DIR__ . '/translations.php';
|
11 |
+
|
12 |
+
if ( ! defined( 'WF_PO_MAX_LINE_LEN' ) ) {
|
13 |
+
define( 'WF_PO_MAX_LINE_LEN', 79 );
|
14 |
+
}
|
15 |
+
|
16 |
+
ini_set( 'auto_detect_line_endings', 1 );
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Routines for working with PO files
|
20 |
+
*/
|
21 |
+
if ( ! class_exists( 'wfPO', false ) ) :
|
22 |
+
class wfPO extends wfGettext_Translations {
|
23 |
+
|
24 |
+
var $comments_before_headers = '';
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Exports headers to a PO entry
|
28 |
+
*
|
29 |
+
* @return string msgid/msgstr PO entry for this PO file headers, doesn't contain newline at the end
|
30 |
+
*/
|
31 |
+
function export_headers() {
|
32 |
+
$header_string = '';
|
33 |
+
foreach ( $this->headers as $header => $value ) {
|
34 |
+
$header_string .= "$header: $value\n";
|
35 |
+
}
|
36 |
+
$poified = wfPO::poify( $header_string );
|
37 |
+
if ( $this->comments_before_headers ) {
|
38 |
+
$before_headers = $this->prepend_each_line( rtrim( $this->comments_before_headers ) . "\n", '# ' );
|
39 |
+
} else {
|
40 |
+
$before_headers = '';
|
41 |
+
}
|
42 |
+
return rtrim( "{$before_headers}msgid \"\"\nmsgstr $poified" );
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Exports all entries to PO format
|
47 |
+
*
|
48 |
+
* @return string sequence of mgsgid/msgstr PO strings, doesn't containt newline at the end
|
49 |
+
*/
|
50 |
+
function export_entries() {
|
51 |
+
// TODO: Sorting.
|
52 |
+
return implode( "\n\n", array_map( array('wfPO', 'export_entry' ), $this->entries ) );
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Exports the whole PO file as a string
|
57 |
+
*
|
58 |
+
* @param bool $include_headers whether to include the headers in the export
|
59 |
+
* @return string ready for inclusion in PO file string for headers and all the enrtries
|
60 |
+
*/
|
61 |
+
function export( $include_headers = true ) {
|
62 |
+
$res = '';
|
63 |
+
if ( $include_headers ) {
|
64 |
+
$res .= $this->export_headers();
|
65 |
+
$res .= "\n\n";
|
66 |
+
}
|
67 |
+
$res .= $this->export_entries();
|
68 |
+
return $res;
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Same as {@link export}, but writes the result to a file
|
73 |
+
*
|
74 |
+
* @param string $filename Where to write the PO string.
|
75 |
+
* @param bool $include_headers Whether to include the headers in the export.
|
76 |
+
* @return bool true on success, false on error
|
77 |
+
*/
|
78 |
+
function export_to_file( $filename, $include_headers = true ) {
|
79 |
+
$fh = fopen( $filename, 'w' );
|
80 |
+
if ( false === $fh ) {
|
81 |
+
return false;
|
82 |
+
}
|
83 |
+
$export = $this->export( $include_headers );
|
84 |
+
$res = fwrite( $fh, $export );
|
85 |
+
if ( false === $res ) {
|
86 |
+
return false;
|
87 |
+
}
|
88 |
+
return fclose( $fh );
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Text to include as a comment before the start of the PO contents
|
93 |
+
*
|
94 |
+
* Doesn't need to include # in the beginning of lines, these are added automatically
|
95 |
+
*
|
96 |
+
* @param string $text Text to include as a comment.
|
97 |
+
*/
|
98 |
+
function set_comment_before_headers( $text ) {
|
99 |
+
$this->comments_before_headers = $text;
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Formats a string in PO-style
|
104 |
+
*
|
105 |
+
* @param string $string the string to format
|
106 |
+
* @return string the poified string
|
107 |
+
*/
|
108 |
+
public static function poify( $string ) {
|
109 |
+
$quote = '"';
|
110 |
+
$slash = '\\';
|
111 |
+
$newline = "\n";
|
112 |
+
|
113 |
+
$replaces = array(
|
114 |
+
"$slash" => "$slash$slash",
|
115 |
+
"$quote" => "$slash$quote",
|
116 |
+
"\t" => '\t',
|
117 |
+
);
|
118 |
+
|
119 |
+
$string = str_replace( array_keys( $replaces ), array_values( $replaces ), $string );
|
120 |
+
|
121 |
+
$po = $quote . implode( "${slash}n$quote$newline$quote", explode( $newline, $string ) ) . $quote;
|
122 |
+
// Add empty string on first line for readbility.
|
123 |
+
if ( false !== strpos( $string, $newline ) &&
|
124 |
+
( substr_count( $string, $newline ) > 1 || substr( $string, -strlen( $newline ) ) !== $newline ) ) {
|
125 |
+
$po = "$quote$quote$newline$po";
|
126 |
+
}
|
127 |
+
// Remove empty strings.
|
128 |
+
$po = str_replace( "$newline$quote$quote", '', $po );
|
129 |
+
return $po;
|
130 |
+
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* Gives back the original string from a PO-formatted string
|
134 |
+
*
|
135 |
+
* @param string $string PO-formatted string
|
136 |
+
* @return string enascaped string
|
137 |
+
*/
|
138 |
+
public static function unpoify( $string ) {
|
139 |
+
$escapes = array(
|
140 |
+
't' => "\t",
|
141 |
+
'n' => "\n",
|
142 |
+
'r' => "\r",
|
143 |
+
'\\' => '\\',
|
144 |
+
);
|
145 |
+
$lines = array_map( 'trim', explode( "\n", $string ) );
|
146 |
+
$lines = array_map( array('wfPO', 'trim_quotes' ), $lines );
|
147 |
+
$unpoified = '';
|
148 |
+
$previous_is_backslash = false;
|
149 |
+
foreach ( $lines as $line ) {
|
150 |
+
preg_match_all( '/./u', $line, $chars );
|
151 |
+
$chars = $chars[0];
|
152 |
+
foreach ( $chars as $char ) {
|
153 |
+
if ( ! $previous_is_backslash ) {
|
154 |
+
if ( '\\' === $char ) {
|
155 |
+
$previous_is_backslash = true;
|
156 |
+
} else {
|
157 |
+
$unpoified .= $char;
|
158 |
+
}
|
159 |
+
} else {
|
160 |
+
$previous_is_backslash = false;
|
161 |
+
$unpoified .= isset( $escapes[ $char ] ) ? $escapes[ $char ] : $char;
|
162 |
+
}
|
163 |
+
}
|
164 |
+
}
|
165 |
+
|
166 |
+
// Standardise the line endings on imported content, technically PO files shouldn't contain \r.
|
167 |
+
$unpoified = str_replace( array( "\r\n", "\r" ), "\n", $unpoified );
|
168 |
+
|
169 |
+
return $unpoified;
|
170 |
+
}
|
171 |
+
|
172 |
+
/**
|
173 |
+
* Inserts $with in the beginning of every new line of $string and
|
174 |
+
* returns the modified string
|
175 |
+
*
|
176 |
+
* @param string $string prepend lines in this string
|
177 |
+
* @param string $with prepend lines with this string
|
178 |
+
*/
|
179 |
+
public static function prepend_each_line( $string, $with ) {
|
180 |
+
$lines = explode( "\n", $string );
|
181 |
+
$append = '';
|
182 |
+
if ( "\n" === substr( $string, -1 ) && '' === end( $lines ) ) {
|
183 |
+
/*
|
184 |
+
* Last line might be empty because $string was terminated
|
185 |
+
* with a newline, remove it from the $lines array,
|
186 |
+
* we'll restore state by re-terminating the string at the end.
|
187 |
+
*/
|
188 |
+
array_pop( $lines );
|
189 |
+
$append = "\n";
|
190 |
+
}
|
191 |
+
foreach ( $lines as &$line ) {
|
192 |
+
$line = $with . $line;
|
193 |
+
}
|
194 |
+
unset( $line );
|
195 |
+
return implode( "\n", $lines ) . $append;
|
196 |
+
}
|
197 |
+
|
198 |
+
/**
|
199 |
+
* Prepare a text as a comment -- wraps the lines and prepends #
|
200 |
+
* and a special character to each line
|
201 |
+
*
|
202 |
+
* @access private
|
203 |
+
* @param string $text the comment text
|
204 |
+
* @param string $char character to denote a special PO comment,
|
205 |
+
* like :, default is a space
|
206 |
+
*/
|
207 |
+
public static function comment_block( $text, $char = ' ' ) {
|
208 |
+
$text = wordwrap( $text, WF_PO_MAX_LINE_LEN - 3 );
|
209 |
+
return wfPO::prepend_each_line( $text, "#$char " );
|
210 |
+
}
|
211 |
+
|
212 |
+
/**
|
213 |
+
* Builds a string from the entry for inclusion in PO file
|
214 |
+
*
|
215 |
+
* @param wfTranslation_Entry $entry the entry to convert to po string (passed by reference).
|
216 |
+
* @return string|false PO-style formatted string for the entry or
|
217 |
+
* false if the entry is empty
|
218 |
+
*/
|
219 |
+
public static function export_entry( &$entry ) {
|
220 |
+
if ( null === $entry->singular || '' === $entry->singular ) {
|
221 |
+
return false;
|
222 |
+
}
|
223 |
+
$po = array();
|
224 |
+
if ( ! empty( $entry->translator_comments ) ) {
|
225 |
+
$po[] = wfPO::comment_block( $entry->translator_comments );
|
226 |
+
}
|
227 |
+
if ( ! empty( $entry->extracted_comments ) ) {
|
228 |
+
$po[] = wfPO::comment_block( $entry->extracted_comments, '.' );
|
229 |
+
}
|
230 |
+
if ( ! empty( $entry->references ) ) {
|
231 |
+
$po[] = wfPO::comment_block( implode( ' ', $entry->references ), ':' );
|
232 |
+
}
|
233 |
+
if ( ! empty( $entry->flags ) ) {
|
234 |
+
$po[] = wfPO::comment_block( implode( ', ', $entry->flags ), ',' );
|
235 |
+
}
|
236 |
+
if ( $entry->context ) {
|
237 |
+
$po[] = 'msgctxt ' . wfPO::poify( $entry->context );
|
238 |
+
}
|
239 |
+
$po[] = 'msgid ' . wfPO::poify( $entry->singular );
|
240 |
+
if ( ! $entry->is_plural ) {
|
241 |
+
$translation = empty( $entry->translations ) ? '' : $entry->translations[0];
|
242 |
+
$translation = wfPO::match_begin_and_end_newlines( $translation, $entry->singular );
|
243 |
+
$po[] = 'msgstr ' . wfPO::poify( $translation );
|
244 |
+
} else {
|
245 |
+
$po[] = 'msgid_plural ' . wfPO::poify( $entry->plural );
|
246 |
+
$translations = empty( $entry->translations ) ? array( '', '' ) : $entry->translations;
|
247 |
+
foreach ( $translations as $i => $translation ) {
|
248 |
+
$translation = wfPO::match_begin_and_end_newlines( $translation, $entry->plural );
|
249 |
+
$po[] = "msgstr[$i] " . wfPO::poify( $translation );
|
250 |
+
}
|
251 |
+
}
|
252 |
+
return implode( "\n", $po );
|
253 |
+
}
|
254 |
+
|
255 |
+
public static function match_begin_and_end_newlines( $translation, $original ) {
|
256 |
+
if ( '' === $translation ) {
|
257 |
+
return $translation;
|
258 |
+
}
|
259 |
+
|
260 |
+
$original_begin = "\n" === substr( $original, 0, 1 );
|
261 |
+
$original_end = "\n" === substr( $original, -1 );
|
262 |
+
$translation_begin = "\n" === substr( $translation, 0, 1 );
|
263 |
+
$translation_end = "\n" === substr( $translation, -1 );
|
264 |
+
|
265 |
+
if ( $original_begin ) {
|
266 |
+
if ( ! $translation_begin ) {
|
267 |
+
$translation = "\n" . $translation;
|
268 |
+
}
|
269 |
+
} elseif ( $translation_begin ) {
|
270 |
+
$translation = ltrim( $translation, "\n" );
|
271 |
+
}
|
272 |
+
|
273 |
+
if ( $original_end ) {
|
274 |
+
if ( ! $translation_end ) {
|
275 |
+
$translation .= "\n";
|
276 |
+
}
|
277 |
+
} elseif ( $translation_end ) {
|
278 |
+
$translation = rtrim( $translation, "\n" );
|
279 |
+
}
|
280 |
+
|
281 |
+
return $translation;
|
282 |
+
}
|
283 |
+
|
284 |
+
/**
|
285 |
+
* @param string $filename
|
286 |
+
* @return boolean
|
287 |
+
*/
|
288 |
+
function import_from_file( $filename ) {
|
289 |
+
$f = fopen( $filename, 'r' );
|
290 |
+
if ( ! $f ) {
|
291 |
+
return false;
|
292 |
+
}
|
293 |
+
$lineno = 0;
|
294 |
+
while ( true ) {
|
295 |
+
$res = $this->read_entry( $f, $lineno );
|
296 |
+
if ( ! $res ) {
|
297 |
+
break;
|
298 |
+
}
|
299 |
+
if ( '' === $res['entry']->singular ) {
|
300 |
+
$this->set_headers( $this->make_headers( $res['entry']->translations[0] ) );
|
301 |
+
} else {
|
302 |
+
$this->add_entry( $res['entry'] );
|
303 |
+
}
|
304 |
+
}
|
305 |
+
wfPO::read_line( $f, 'clear' );
|
306 |
+
if ( false === $res ) {
|
307 |
+
return false;
|
308 |
+
}
|
309 |
+
if ( ! $this->headers && ! $this->entries ) {
|
310 |
+
return false;
|
311 |
+
}
|
312 |
+
return true;
|
313 |
+
}
|
314 |
+
|
315 |
+
/**
|
316 |
+
* Helper function for read_entry
|
317 |
+
*
|
318 |
+
* @param string $context
|
319 |
+
* @return bool
|
320 |
+
*/
|
321 |
+
protected static function is_final( $context ) {
|
322 |
+
return ( 'msgstr' === $context ) || ( 'msgstr_plural' === $context );
|
323 |
+
}
|
324 |
+
|
325 |
+
/**
|
326 |
+
* @param resource $f
|
327 |
+
* @param int $lineno
|
328 |
+
* @return null|false|array
|
329 |
+
*/
|
330 |
+
function read_entry( $f, $lineno = 0 ) {
|
331 |
+
$entry = new wfTranslation_Entry();
|
332 |
+
// Where were we in the last step.
|
333 |
+
// Can be: comment, msgctxt, msgid, msgid_plural, msgstr, msgstr_plural.
|
334 |
+
$context = '';
|
335 |
+
$msgstr_index = 0;
|
336 |
+
while ( true ) {
|
337 |
+
$lineno++;
|
338 |
+
$line = wfPO::read_line( $f );
|
339 |
+
if ( ! $line ) {
|
340 |
+
if ( feof( $f ) ) {
|
341 |
+
if ( self::is_final( $context ) ) {
|
342 |
+
break;
|
343 |
+
} elseif ( ! $context ) { // We haven't read a line and EOF came.
|
344 |
+
return null;
|
345 |
+
} else {
|
346 |
+
return false;
|
347 |
+
}
|
348 |
+
} else {
|
349 |
+
return false;
|
350 |
+
}
|
351 |
+
}
|
352 |
+
if ( "\n" === $line ) {
|
353 |
+
continue;
|
354 |
+
}
|
355 |
+
$line = trim( $line );
|
356 |
+
if ( preg_match( '/^#/', $line, $m ) ) {
|
357 |
+
// The comment is the start of a new entry.
|
358 |
+
if ( self::is_final( $context ) ) {
|
359 |
+
wfPO::read_line( $f, 'put-back' );
|
360 |
+
$lineno--;
|
361 |
+
break;
|
362 |
+
}
|
363 |
+
// Comments have to be at the beginning.
|
364 |
+
if ( $context && 'comment' !== $context ) {
|
365 |
+
return false;
|
366 |
+
}
|
367 |
+
// Add comment.
|
368 |
+
$this->add_comment_to_entry( $entry, $line );
|
369 |
+
} elseif ( preg_match( '/^msgctxt\s+(".*")/', $line, $m ) ) {
|
370 |
+
if ( self::is_final( $context ) ) {
|
371 |
+
wfPO::read_line( $f, 'put-back' );
|
372 |
+
$lineno--;
|
373 |
+
break;
|
374 |
+
}
|
375 |
+
if ( $context && 'comment' !== $context ) {
|
376 |
+
return false;
|
377 |
+
}
|
378 |
+
$context = 'msgctxt';
|
379 |
+
$entry->context .= wfPO::unpoify( $m[1] );
|
380 |
+
} elseif ( preg_match( '/^msgid\s+(".*")/', $line, $m ) ) {
|
381 |
+
if ( self::is_final( $context ) ) {
|
382 |
+
wfPO::read_line( $f, 'put-back' );
|
383 |
+
$lineno--;
|
384 |
+
break;
|
385 |
+
}
|
386 |
+
if ( $context && 'msgctxt' !== $context && 'comment' !== $context ) {
|
387 |
+
return false;
|
388 |
+
}
|
389 |
+
$context = 'msgid';
|
390 |
+
$entry->singular .= wfPO::unpoify( $m[1] );
|
391 |
+
} elseif ( preg_match( '/^msgid_plural\s+(".*")/', $line, $m ) ) {
|
392 |
+
if ( 'msgid' !== $context ) {
|
393 |
+
return false;
|
394 |
+
}
|
395 |
+
$context = 'msgid_plural';
|
396 |
+
$entry->is_plural = true;
|
397 |
+
$entry->plural .= wfPO::unpoify( $m[1] );
|
398 |
+
} elseif ( preg_match( '/^msgstr\s+(".*")/', $line, $m ) ) {
|
399 |
+
if ( 'msgid' !== $context ) {
|
400 |
+
return false;
|
401 |
+
}
|
402 |
+
$context = 'msgstr';
|
403 |
+
$entry->translations = array( wfPO::unpoify( $m[1] ) );
|
404 |
+
} elseif ( preg_match( '/^msgstr\[(\d+)\]\s+(".*")/', $line, $m ) ) {
|
405 |
+
if ( 'msgid_plural' !== $context && 'msgstr_plural' !== $context ) {
|
406 |
+
return false;
|
407 |
+
}
|
408 |
+
$context = 'msgstr_plural';
|
409 |
+
$msgstr_index = $m[1];
|
410 |
+
$entry->translations[ $m[1] ] = wfPO::unpoify( $m[2] );
|
411 |
+
} elseif ( preg_match( '/^".*"$/', $line ) ) {
|
412 |
+
$unpoified = wfPO::unpoify( $line );
|
413 |
+
switch ( $context ) {
|
414 |
+
case 'msgid':
|
415 |
+
$entry->singular .= $unpoified;
|
416 |
+
break;
|
417 |
+
case 'msgctxt':
|
418 |
+
$entry->context .= $unpoified;
|
419 |
+
break;
|
420 |
+
case 'msgid_plural':
|
421 |
+
$entry->plural .= $unpoified;
|
422 |
+
break;
|
423 |
+
case 'msgstr':
|
424 |
+
$entry->translations[0] .= $unpoified;
|
425 |
+
break;
|
426 |
+
case 'msgstr_plural':
|
427 |
+
$entry->translations[ $msgstr_index ] .= $unpoified;
|
428 |
+
break;
|
429 |
+
default:
|
430 |
+
return false;
|
431 |
+
}
|
432 |
+
} else {
|
433 |
+
return false;
|
434 |
+
}
|
435 |
+
}
|
436 |
+
|
437 |
+
$have_translations = false;
|
438 |
+
foreach ( $entry->translations as $t ) {
|
439 |
+
if ( $t || ( '0' === $t ) ) {
|
440 |
+
$have_translations = true;
|
441 |
+
break;
|
442 |
+
}
|
443 |
+
}
|
444 |
+
if ( false === $have_translations ) {
|
445 |
+
$entry->translations = array();
|
446 |
+
}
|
447 |
+
|
448 |
+
return array(
|
449 |
+
'entry' => $entry,
|
450 |
+
'lineno' => $lineno,
|
451 |
+
);
|
452 |
+
}
|
453 |
+
|
454 |
+
/**
|
455 |
+
* @param resource $f
|
456 |
+
* @param string $action
|
457 |
+
* @return boolean
|
458 |
+
*/
|
459 |
+
function read_line( $f, $action = 'read' ) {
|
460 |
+
static $last_line = '';
|
461 |
+
static $use_last_line = false;
|
462 |
+
if ( 'clear' === $action ) {
|
463 |
+
$last_line = '';
|
464 |
+
return true;
|
465 |
+
}
|
466 |
+
if ( 'put-back' === $action ) {
|
467 |
+
$use_last_line = true;
|
468 |
+
return true;
|
469 |
+
}
|
470 |
+
$line = $use_last_line ? $last_line : fgets( $f );
|
471 |
+
$line = ( "\r\n" === substr( $line, -2 ) ) ? rtrim( $line, "\r\n" ) . "\n" : $line;
|
472 |
+
$last_line = $line;
|
473 |
+
$use_last_line = false;
|
474 |
+
return $line;
|
475 |
+
}
|
476 |
+
|
477 |
+
/**
|
478 |
+
* @param wfTranslation_Entry $entry
|
479 |
+
* @param string $po_comment_line
|
480 |
+
*/
|
481 |
+
function add_comment_to_entry( &$entry, $po_comment_line ) {
|
482 |
+
$first_two = substr( $po_comment_line, 0, 2 );
|
483 |
+
$comment = trim( substr( $po_comment_line, 2 ) );
|
484 |
+
if ( '#:' === $first_two ) {
|
485 |
+
$entry->references = array_merge( $entry->references, preg_split( '/\s+/', $comment ) );
|
486 |
+
} elseif ( '#.' === $first_two ) {
|
487 |
+
$entry->extracted_comments = trim( $entry->extracted_comments . "\n" . $comment );
|
488 |
+
} elseif ( '#,' === $first_two ) {
|
489 |
+
$entry->flags = array_merge( $entry->flags, preg_split( '/,\s*/', $comment ) );
|
490 |
+
} else {
|
491 |
+
$entry->translator_comments = trim( $entry->translator_comments . "\n" . $comment );
|
492 |
+
}
|
493 |
+
}
|
494 |
+
|
495 |
+
/**
|
496 |
+
* @param string $s
|
497 |
+
* @return string
|
498 |
+
*/
|
499 |
+
public static function trim_quotes( $s ) {
|
500 |
+
if ( '"' === substr( $s, 0, 1 ) ) {
|
501 |
+
$s = substr( $s, 1 );
|
502 |
+
}
|
503 |
+
if ( '"' === substr( $s, -1, 1 ) ) {
|
504 |
+
$s = substr( $s, 0, -1 );
|
505 |
+
}
|
506 |
+
return $s;
|
507 |
+
}
|
508 |
+
}
|
509 |
+
endif;
|
waf/pomo/streams.php
ADDED
@@ -0,0 +1,290 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Classes, which help reading streams of data from files.
|
4 |
+
* Based on the classes from Danilo Segan <danilo@kvota.net>
|
5 |
+
*
|
6 |
+
* @version $Id: streams.php 1157 2015-11-20 04:30:11Z dd32 $
|
7 |
+
* @package pomo
|
8 |
+
* @subpackage streams
|
9 |
+
*/
|
10 |
+
|
11 |
+
if ( ! class_exists( 'wfPOMO_Reader', false ) ) :
|
12 |
+
class wfPOMO_Reader {
|
13 |
+
|
14 |
+
var $endian = 'little';
|
15 |
+
var $_post = '';
|
16 |
+
|
17 |
+
/**
|
18 |
+
* PHP5 constructor.
|
19 |
+
*/
|
20 |
+
function __construct() {
|
21 |
+
$this->is_overloaded = ( ( ini_get( 'mbstring.func_overload' ) & 2 ) != 0 ) && function_exists( 'mb_substr' ); // phpcs:ignore PHPCompatibility.IniDirectives.RemovedIniDirectives.mbstring_func_overloadDeprecated
|
22 |
+
$this->_pos = 0;
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Sets the endianness of the file.
|
27 |
+
*
|
28 |
+
* @param string $endian Set the endianness of the file. Accepts 'big', or 'little'.
|
29 |
+
*/
|
30 |
+
function setEndian( $endian ) { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid
|
31 |
+
$this->endian = $endian;
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Reads a 32bit Integer from the Stream
|
36 |
+
*
|
37 |
+
* @return mixed The integer, corresponding to the next 32 bits from
|
38 |
+
* the stream of false if there are not enough bytes or on error
|
39 |
+
*/
|
40 |
+
function readint32() {
|
41 |
+
$bytes = $this->read( 4 );
|
42 |
+
if ( 4 != $this->strlen( $bytes ) ) {
|
43 |
+
return false;
|
44 |
+
}
|
45 |
+
$endian_letter = ( 'big' === $this->endian ) ? 'N' : 'V';
|
46 |
+
$int = unpack( $endian_letter, $bytes );
|
47 |
+
return reset( $int );
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Reads an array of 32-bit Integers from the Stream
|
52 |
+
*
|
53 |
+
* @param integer $count How many elements should be read
|
54 |
+
* @return mixed Array of integers or false if there isn't
|
55 |
+
* enough data or on error
|
56 |
+
*/
|
57 |
+
function readint32array( $count ) {
|
58 |
+
$bytes = $this->read( 4 * $count );
|
59 |
+
if ( 4 * $count != $this->strlen( $bytes ) ) {
|
60 |
+
return false;
|
61 |
+
}
|
62 |
+
$endian_letter = ( 'big' === $this->endian ) ? 'N' : 'V';
|
63 |
+
return unpack( $endian_letter . $count, $bytes );
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* @param string $string
|
68 |
+
* @param int $start
|
69 |
+
* @param int $length
|
70 |
+
* @return string
|
71 |
+
*/
|
72 |
+
function substr( $string, $start, $length ) {
|
73 |
+
if ( $this->is_overloaded ) {
|
74 |
+
return mb_substr( $string, $start, $length, 'ascii' );
|
75 |
+
} else {
|
76 |
+
return substr( $string, $start, $length );
|
77 |
+
}
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* @param string $string
|
82 |
+
* @return int
|
83 |
+
*/
|
84 |
+
function strlen( $string ) {
|
85 |
+
if ( $this->is_overloaded ) {
|
86 |
+
return mb_strlen( $string, 'ascii' );
|
87 |
+
} else {
|
88 |
+
return strlen( $string );
|
89 |
+
}
|
90 |
+
}
|
91 |
+
|
92 |
+
/**
|
93 |
+
* @param string $string
|
94 |
+
* @param int $chunk_size
|
95 |
+
* @return array
|
96 |
+
*/
|
97 |
+
function str_split( $string, $chunk_size ) {
|
98 |
+
if ( ! function_exists( 'str_split' ) ) {
|
99 |
+
$length = $this->strlen( $string );
|
100 |
+
$out = array();
|
101 |
+
for ( $i = 0; $i < $length; $i += $chunk_size ) {
|
102 |
+
$out[] = $this->substr( $string, $i, $chunk_size );
|
103 |
+
}
|
104 |
+
return $out;
|
105 |
+
} else {
|
106 |
+
return str_split( $string, $chunk_size );
|
107 |
+
}
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* @return int
|
112 |
+
*/
|
113 |
+
function pos() {
|
114 |
+
return $this->_pos;
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* @return true
|
119 |
+
*/
|
120 |
+
function is_resource() {
|
121 |
+
return true;
|
122 |
+
}
|
123 |
+
|
124 |
+
/**
|
125 |
+
* @return true
|
126 |
+
*/
|
127 |
+
function close() {
|
128 |
+
return true;
|
129 |
+
}
|
130 |
+
}
|
131 |
+
endif;
|
132 |
+
|
133 |
+
if ( ! class_exists( 'wfPOMO_FileReader', false ) ) :
|
134 |
+
class wfPOMO_FileReader extends wfPOMO_Reader {
|
135 |
+
|
136 |
+
/**
|
137 |
+
* @param string $filename
|
138 |
+
*/
|
139 |
+
function __construct( $filename ) {
|
140 |
+
parent::__construct();
|
141 |
+
$this->_f = fopen( $filename, 'rb' );
|
142 |
+
}
|
143 |
+
|
144 |
+
/**
|
145 |
+
* @param int $bytes
|
146 |
+
* @return string|false Returns read string, otherwise false.
|
147 |
+
*/
|
148 |
+
function read( $bytes ) {
|
149 |
+
return fread( $this->_f, $bytes );
|
150 |
+
}
|
151 |
+
|
152 |
+
/**
|
153 |
+
* @param int $pos
|
154 |
+
* @return boolean
|
155 |
+
*/
|
156 |
+
function seekto( $pos ) {
|
157 |
+
if ( -1 == fseek( $this->_f, $pos, SEEK_SET ) ) {
|
158 |
+
return false;
|
159 |
+
}
|
160 |
+
$this->_pos = $pos;
|
161 |
+
return true;
|
162 |
+
}
|
163 |
+
|
164 |
+
/**
|
165 |
+
* @return bool
|
166 |
+
*/
|
167 |
+
function is_resource() {
|
168 |
+
return is_resource( $this->_f );
|
169 |
+
}
|
170 |
+
|
171 |
+
/**
|
172 |
+
* @return bool
|
173 |
+
*/
|
174 |
+
function feof() {
|
175 |
+
return feof( $this->_f );
|
176 |
+
}
|
177 |
+
|
178 |
+
/**
|
179 |
+
* @return bool
|
180 |
+
*/
|
181 |
+
function close() {
|
182 |
+
return fclose( $this->_f );
|
183 |
+
}
|
184 |
+
|
185 |
+
/**
|
186 |
+
* @return string
|
187 |
+
*/
|
188 |
+
function read_all() {
|
189 |
+
$all = '';
|
190 |
+
while ( ! $this->feof() ) {
|
191 |
+
$all .= $this->read( 4096 );
|
192 |
+
}
|
193 |
+
return $all;
|
194 |
+
}
|
195 |
+
}
|
196 |
+
endif;
|
197 |
+
|
198 |
+
if ( ! class_exists( 'wfPOMO_StringReader', false ) ) :
|
199 |
+
/**
|
200 |
+
* Provides file-like methods for manipulating a string instead
|
201 |
+
* of a physical file.
|
202 |
+
*/
|
203 |
+
class wfPOMO_StringReader extends wfPOMO_Reader {
|
204 |
+
|
205 |
+
var $_str = '';
|
206 |
+
|
207 |
+
/**
|
208 |
+
* PHP5 constructor.
|
209 |
+
*/
|
210 |
+
function __construct( $str = '' ) {
|
211 |
+
parent::__construct();
|
212 |
+
$this->_str = $str;
|
213 |
+
$this->_pos = 0;
|
214 |
+
}
|
215 |
+
|
216 |
+
/**
|
217 |
+
* @param string $bytes
|
218 |
+
* @return string
|
219 |
+
*/
|
220 |
+
function read( $bytes ) {
|
221 |
+
$data = $this->substr( $this->_str, $this->_pos, $bytes );
|
222 |
+
$this->_pos += $bytes;
|
223 |
+
if ( $this->strlen( $this->_str ) < $this->_pos ) {
|
224 |
+
$this->_pos = $this->strlen( $this->_str );
|
225 |
+
}
|
226 |
+
return $data;
|
227 |
+
}
|
228 |
+
|
229 |
+
/**
|
230 |
+
* @param int $pos
|
231 |
+
* @return int
|
232 |
+
*/
|
233 |
+
function seekto( $pos ) {
|
234 |
+
$this->_pos = $pos;
|
235 |
+
if ( $this->strlen( $this->_str ) < $this->_pos ) {
|
236 |
+
$this->_pos = $this->strlen( $this->_str );
|
237 |
+
}
|
238 |
+
return $this->_pos;
|
239 |
+
}
|
240 |
+
|
241 |
+
/**
|
242 |
+
* @return int
|
243 |
+
*/
|
244 |
+
function length() {
|
245 |
+
return $this->strlen( $this->_str );
|
246 |
+
}
|
247 |
+
|
248 |
+
/**
|
249 |
+
* @return string
|
250 |
+
*/
|
251 |
+
function read_all() {
|
252 |
+
return $this->substr( $this->_str, $this->_pos, $this->strlen( $this->_str ) );
|
253 |
+
}
|
254 |
+
|
255 |
+
}
|
256 |
+
endif;
|
257 |
+
|
258 |
+
if ( ! class_exists( 'wfPOMO_CachedFileReader', false ) ) :
|
259 |
+
/**
|
260 |
+
* Reads the contents of the file in the beginning.
|
261 |
+
*/
|
262 |
+
class wfPOMO_CachedFileReader extends wfPOMO_StringReader {
|
263 |
+
/**
|
264 |
+
* PHP5 constructor.
|
265 |
+
*/
|
266 |
+
function __construct( $filename ) {
|
267 |
+
parent::__construct();
|
268 |
+
$this->_str = file_get_contents( $filename );
|
269 |
+
if ( false === $this->_str ) {
|
270 |
+
return false;
|
271 |
+
}
|
272 |
+
$this->_pos = 0;
|
273 |
+
}
|
274 |
+
}
|
275 |
+
endif;
|
276 |
+
|
277 |
+
if ( ! class_exists( 'wfPOMO_CachedIntFileReader', false ) ) :
|
278 |
+
/**
|
279 |
+
* Reads the contents of the file in the beginning.
|
280 |
+
*/
|
281 |
+
class wfPOMO_CachedIntFileReader extends wfPOMO_CachedFileReader {
|
282 |
+
/**
|
283 |
+
* PHP5 constructor.
|
284 |
+
*/
|
285 |
+
public function __construct( $filename ) {
|
286 |
+
parent::__construct( $filename );
|
287 |
+
}
|
288 |
+
}
|
289 |
+
endif;
|
290 |
+
|
waf/pomo/translations.php
ADDED
@@ -0,0 +1,379 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class for a set of entries for translation and their associated headers
|
4 |
+
*
|
5 |
+
* @version $Id: translations.php 1157 2015-11-20 04:30:11Z dd32 $
|
6 |
+
* @package pomo
|
7 |
+
* @subpackage translations
|
8 |
+
*/
|
9 |
+
|
10 |
+
require_once __DIR__ . '/plural-forms.php';
|
11 |
+
require_once __DIR__ . '/entry.php';
|
12 |
+
|
13 |
+
if ( ! class_exists( 'wfTranslations', false ) ) :
|
14 |
+
class wfTranslations {
|
15 |
+
var $entries = array();
|
16 |
+
var $headers = array();
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Add entry to the PO structure
|
20 |
+
*
|
21 |
+
* @param array|wfTranslation_Entry $entry
|
22 |
+
* @return bool true on success, false if the entry doesn't have a key
|
23 |
+
*/
|
24 |
+
function add_entry( $entry ) {
|
25 |
+
if ( is_array( $entry ) ) {
|
26 |
+
$entry = new wfTranslation_Entry( $entry );
|
27 |
+
}
|
28 |
+
$key = $entry->key();
|
29 |
+
if ( false === $key ) {
|
30 |
+
return false;
|
31 |
+
}
|
32 |
+
$this->entries[ $key ] = &$entry;
|
33 |
+
return true;
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* @param array|wfTranslation_Entry $entry
|
38 |
+
* @return bool
|
39 |
+
*/
|
40 |
+
function add_entry_or_merge( $entry ) {
|
41 |
+
if ( is_array( $entry ) ) {
|
42 |
+
$entry = new wfTranslation_Entry( $entry );
|
43 |
+
}
|
44 |
+
$key = $entry->key();
|
45 |
+
if ( false === $key ) {
|
46 |
+
return false;
|
47 |
+
}
|
48 |
+
if ( isset( $this->entries[ $key ] ) ) {
|
49 |
+
$this->entries[ $key ]->merge_with( $entry );
|
50 |
+
} else {
|
51 |
+
$this->entries[ $key ] = &$entry;
|
52 |
+
}
|
53 |
+
return true;
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Sets $header PO header to $value
|
58 |
+
*
|
59 |
+
* If the header already exists, it will be overwritten
|
60 |
+
*
|
61 |
+
* TODO: this should be out of this class, it is gettext specific
|
62 |
+
*
|
63 |
+
* @param string $header header name, without trailing :
|
64 |
+
* @param string $value header value, without trailing \n
|
65 |
+
*/
|
66 |
+
function set_header( $header, $value ) {
|
67 |
+
$this->headers[ $header ] = $value;
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* @param array $headers
|
72 |
+
*/
|
73 |
+
function set_headers( $headers ) {
|
74 |
+
foreach ( $headers as $header => $value ) {
|
75 |
+
$this->set_header( $header, $value );
|
76 |
+
}
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* @param string $header
|
81 |
+
*/
|
82 |
+
function get_header( $header ) {
|
83 |
+
return isset( $this->headers[ $header ] ) ? $this->headers[ $header ] : false;
|
84 |
+
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* @param wfTranslation_Entry $entry
|
88 |
+
*/
|
89 |
+
function translate_entry( &$entry ) {
|
90 |
+
$key = $entry->key();
|
91 |
+
return isset( $this->entries[ $key ] ) ? $this->entries[ $key ] : false;
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* @param string $singular
|
96 |
+
* @param string $context
|
97 |
+
* @return string
|
98 |
+
*/
|
99 |
+
function translate( $singular, $context = null ) {
|
100 |
+
$entry = new wfTranslation_Entry(
|
101 |
+
array(
|
102 |
+
'singular' => $singular,
|
103 |
+
'context' => $context,
|
104 |
+
)
|
105 |
+
);
|
106 |
+
$translated = $this->translate_entry( $entry );
|
107 |
+
return ( $translated && ! empty( $translated->translations ) ) ? $translated->translations[0] : $singular;
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* Given the number of items, returns the 0-based index of the plural form to use
|
112 |
+
*
|
113 |
+
* Here, in the base Translations class, the common logic for English is implemented:
|
114 |
+
* 0 if there is one element, 1 otherwise
|
115 |
+
*
|
116 |
+
* This function should be overridden by the subclasses. For example MO/PO can derive the logic
|
117 |
+
* from their headers.
|
118 |
+
*
|
119 |
+
* @param integer $count number of items
|
120 |
+
*/
|
121 |
+
function select_plural_form( $count ) {
|
122 |
+
return 1 == $count ? 0 : 1;
|
123 |
+
}
|
124 |
+
|
125 |
+
/**
|
126 |
+
* @return int
|
127 |
+
*/
|
128 |
+
function get_plural_forms_count() {
|
129 |
+
return 2;
|
130 |
+
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* @param string $singular
|
134 |
+
* @param string $plural
|
135 |
+
* @param int $count
|
136 |
+
* @param string $context
|
137 |
+
*/
|
138 |
+
function translate_plural( $singular, $plural, $count, $context = null ) {
|
139 |
+
$entry = new wfTranslation_Entry(
|
140 |
+
array(
|
141 |
+
'singular' => $singular,
|
142 |
+
'plural' => $plural,
|
143 |
+
'context' => $context,
|
144 |
+
)
|
145 |
+
);
|
146 |
+
$translated = $this->translate_entry( $entry );
|
147 |
+
$index = $this->select_plural_form( $count );
|
148 |
+
$total_plural_forms = $this->get_plural_forms_count();
|
149 |
+
if ( $translated && 0 <= $index && $index < $total_plural_forms &&
|
150 |
+
is_array( $translated->translations ) &&
|
151 |
+
isset( $translated->translations[ $index ] ) ) {
|
152 |
+
return $translated->translations[ $index ];
|
153 |
+
} else {
|
154 |
+
return 1 == $count ? $singular : $plural;
|
155 |
+
}
|
156 |
+
}
|
157 |
+
|
158 |
+
/**
|
159 |
+
* Merge $other in the current object.
|
160 |
+
*
|
161 |
+
* @param Object $other Another Translation object, whose translations will be merged in this one (passed by reference).
|
162 |
+
* @return void
|
163 |
+
*/
|
164 |
+
function merge_with( &$other ) {
|
165 |
+
foreach ( $other->entries as $entry ) {
|
166 |
+
$this->entries[ $entry->key() ] = $entry;
|
167 |
+
}
|
168 |
+
}
|
169 |
+
|
170 |
+
/**
|
171 |
+
* @param object $other
|
172 |
+
*/
|
173 |
+
function merge_originals_with( &$other ) {
|
174 |
+
foreach ( $other->entries as $entry ) {
|
175 |
+
if ( ! isset( $this->entries[ $entry->key() ] ) ) {
|
176 |
+
$this->entries[ $entry->key() ] = $entry;
|
177 |
+
} else {
|
178 |
+
$this->entries[ $entry->key() ]->merge_with( $entry );
|
179 |
+
}
|
180 |
+
}
|
181 |
+
}
|
182 |
+
}
|
183 |
+
|
184 |
+
class wfGettext_Translations extends wfTranslations {
|
185 |
+
/**
|
186 |
+
* The gettext implementation of select_plural_form.
|
187 |
+
*
|
188 |
+
* It lives in this class, because there are more than one descendand, which will use it and
|
189 |
+
* they can't share it effectively.
|
190 |
+
*
|
191 |
+
* @param int $count
|
192 |
+
*/
|
193 |
+
function gettext_select_plural_form( $count ) {
|
194 |
+
if ( ! isset( $this->_gettext_select_plural_form ) || is_null( $this->_gettext_select_plural_form ) ) {
|
195 |
+
list( $nplurals, $expression ) = $this->nplurals_and_expression_from_header( $this->get_header( 'Plural-Forms' ) );
|
196 |
+
$this->_nplurals = $nplurals;
|
197 |
+
$this->_gettext_select_plural_form = $this->make_plural_form_function( $nplurals, $expression );
|
198 |
+
}
|
199 |
+
return call_user_func( $this->_gettext_select_plural_form, $count );
|
200 |
+
}
|
201 |
+
|
202 |
+
/**
|
203 |
+
* @param string $header
|
204 |
+
* @return array
|
205 |
+
*/
|
206 |
+
function nplurals_and_expression_from_header( $header ) {
|
207 |
+
if ( preg_match( '/^\s*nplurals\s*=\s*(\d+)\s*;\s+plural\s*=\s*(.+)$/', $header, $matches ) ) {
|
208 |
+
$nplurals = (int) $matches[1];
|
209 |
+
$expression = trim( $matches[2] );
|
210 |
+
return array( $nplurals, $expression );
|
211 |
+
} else {
|
212 |
+
return array( 2, 'n != 1' );
|
213 |
+
}
|
214 |
+
}
|
215 |
+
|
216 |
+
/**
|
217 |
+
* Makes a function, which will return the right translation index, according to the
|
218 |
+
* plural forms header
|
219 |
+
*
|
220 |
+
* @param int $nplurals
|
221 |
+
* @param string $expression
|
222 |
+
*/
|
223 |
+
function make_plural_form_function( $nplurals, $expression ) {
|
224 |
+
try {
|
225 |
+
$handler = new wfPlural_Forms( rtrim( $expression, ';' ) );
|
226 |
+
return array( $handler, 'get' );
|
227 |
+
} catch ( Exception $e ) {
|
228 |
+
// Fall back to default plural-form function.
|
229 |
+
return $this->make_plural_form_function( 2, 'n != 1' );
|
230 |
+
}
|
231 |
+
}
|
232 |
+
|
233 |
+
/**
|
234 |
+
* Adds parentheses to the inner parts of ternary operators in
|
235 |
+
* plural expressions, because PHP evaluates ternary oerators from left to right
|
236 |
+
*
|
237 |
+
* @param string $expression the expression without parentheses
|
238 |
+
* @return string the expression with parentheses added
|
239 |
+
*/
|
240 |
+
function parenthesize_plural_exression( $expression ) {
|
241 |
+
$expression .= ';';
|
242 |
+
$res = '';
|
243 |
+
$depth = 0;
|
244 |
+
for ( $i = 0; $i < strlen( $expression ); ++$i ) {
|
245 |
+
$char = $expression[ $i ];
|
246 |
+
switch ( $char ) {
|
247 |
+
case '?':
|
248 |
+
$res .= ' ? (';
|
249 |
+
$depth++;
|
250 |
+
break;
|
251 |
+
case ':':
|
252 |
+
$res .= ') : (';
|
253 |
+
break;
|
254 |
+
case ';':
|
255 |
+
$res .= str_repeat( ')', $depth ) . ';';
|
256 |
+
$depth = 0;
|
257 |
+
break;
|
258 |
+
default:
|
259 |
+
$res .= $char;
|
260 |
+
}
|
261 |
+
}
|
262 |
+
return rtrim( $res, ';' );
|
263 |
+
}
|
264 |
+
|
265 |
+
/**
|
266 |
+
* @param string $translation
|
267 |
+
* @return array
|
268 |
+
*/
|
269 |
+
function make_headers( $translation ) {
|
270 |
+
$headers = array();
|
271 |
+
// Sometimes \n's are used instead of real new lines.
|
272 |
+
$translation = str_replace( '\n', "\n", $translation );
|
273 |
+
$lines = explode( "\n", $translation );
|
274 |
+
foreach ( $lines as $line ) {
|
275 |
+
$parts = explode( ':', $line, 2 );
|
276 |
+
if ( ! isset( $parts[1] ) ) {
|
277 |
+
continue;
|
278 |
+
}
|
279 |
+
$headers[ trim( $parts[0] ) ] = trim( $parts[1] );
|
280 |
+
}
|
281 |
+
return $headers;
|
282 |
+
}
|
283 |
+
|
284 |
+
/**
|
285 |
+
* @param string $header
|
286 |
+
* @param string $value
|
287 |
+
*/
|
288 |
+
function set_header( $header, $value ) {
|
289 |
+
parent::set_header( $header, $value );
|
290 |
+
if ( 'Plural-Forms' === $header ) {
|
291 |
+
list( $nplurals, $expression ) = $this->nplurals_and_expression_from_header( $this->get_header( 'Plural-Forms' ) );
|
292 |
+
$this->_nplurals = $nplurals;
|
293 |
+
$this->_gettext_select_plural_form = $this->make_plural_form_function( $nplurals, $expression );
|
294 |
+
}
|
295 |
+
}
|
296 |
+
}
|
297 |
+
endif;
|
298 |
+
|
299 |
+
if ( ! class_exists( 'wfNOOP_Translations', false ) ) :
|
300 |
+
/**
|
301 |
+
* Provides the same interface as Translations, but doesn't do anything
|
302 |
+
*/
|
303 |
+
class wfNOOP_Translations {
|
304 |
+
var $entries = array();
|
305 |
+
var $headers = array();
|
306 |
+
|
307 |
+
function add_entry( $entry ) {
|
308 |
+
return true;
|
309 |
+
}
|
310 |
+
|
311 |
+
/**
|
312 |
+
* @param string $header
|
313 |
+
* @param string $value
|
314 |
+
*/
|
315 |
+
function set_header( $header, $value ) {
|
316 |
+
}
|
317 |
+
|
318 |
+
/**
|
319 |
+
* @param array $headers
|
320 |
+
*/
|
321 |
+
function set_headers( $headers ) {
|
322 |
+
}
|
323 |
+
|
324 |
+
/**
|
325 |
+
* @param string $header
|
326 |
+
* @return false
|
327 |
+
*/
|
328 |
+
function get_header( $header ) {
|
329 |
+
return false;
|
330 |
+
}
|
331 |
+
|
332 |
+
/**
|
333 |
+
* @param wfTranslation_Entry $entry
|
334 |
+
* @return false
|
335 |
+
*/
|
336 |
+
function translate_entry( &$entry ) {
|
337 |
+
return false;
|
338 |
+
}
|
339 |
+
|
340 |
+
/**
|
341 |
+
* @param string $singular
|
342 |
+
* @param string $context
|
343 |
+
*/
|
344 |
+
function translate( $singular, $context = null ) {
|
345 |
+
return $singular;
|
346 |
+
}
|
347 |
+
|
348 |
+
/**
|
349 |
+
* @param int $count
|
350 |
+
* @return bool
|
351 |
+
*/
|
352 |
+
function select_plural_form( $count ) {
|
353 |
+
return 1 == $count ? 0 : 1;
|
354 |
+
}
|
355 |
+
|
356 |
+
/**
|
357 |
+
* @return int
|
358 |
+
*/
|
359 |
+
function get_plural_forms_count() {
|
360 |
+
return 2;
|
361 |
+
}
|
362 |
+
|
363 |
+
/**
|
364 |
+
* @param string $singular
|
365 |
+
* @param string $plural
|
366 |
+
* @param int $count
|
367 |
+
* @param string $context
|
368 |
+
*/
|
369 |
+
function translate_plural( $singular, $plural, $count, $context = null ) {
|
370 |
+
return 1 == $count ? $singular : $plural;
|
371 |
+
}
|
372 |
+
|
373 |
+
/**
|
374 |
+
* @param object $other
|
375 |
+
*/
|
376 |
+
function merge_with( &$other ) {
|
377 |
+
}
|
378 |
+
}
|
379 |
+
endif;
|
wordfence.php
CHANGED
@@ -4,8 +4,10 @@ Plugin Name: Wordfence Security
|
|
4 |
Plugin URI: http://www.wordfence.com/
|
5 |
Description: Wordfence Security - Anti-virus, Firewall and Malware Scan
|
6 |
Author: Wordfence
|
7 |
-
Version: 7.4.
|
8 |
Author URI: http://www.wordfence.com/
|
|
|
|
|
9 |
Network: true
|
10 |
*/
|
11 |
if(defined('WP_INSTALLING') && WP_INSTALLING){
|
@@ -15,8 +17,8 @@ if(defined('WP_INSTALLING') && WP_INSTALLING){
|
|
15 |
if (!defined('ABSPATH')) {
|
16 |
exit;
|
17 |
}
|
18 |
-
define('WORDFENCE_VERSION', '7.4.
|
19 |
-
define('WORDFENCE_BUILD_NUMBER', '
|
20 |
define('WORDFENCE_BASENAME', function_exists('plugin_basename') ? plugin_basename(__FILE__) :
|
21 |
basename(dirname(__FILE__)) . '/' . basename(__FILE__));
|
22 |
|
@@ -40,6 +42,18 @@ if (!defined('WF_IS_WP_ENGINE')) {
|
|
40 |
if (!defined('WF_IS_PRESSABLE')) {
|
41 |
define('WF_IS_PRESSABLE', (defined('IS_ATOMIC') && IS_ATOMIC) || (defined('IS_PRESSABLE') && IS_PRESSABLE));
|
42 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
|
44 |
if(get_option('wordfenceActivated') != 1){
|
45 |
add_action('activated_plugin','wordfence_save_activation_error'); function wordfence_save_activation_error(){ update_option('wf_plugin_act_error', ob_get_contents()); }
|
4 |
Plugin URI: http://www.wordfence.com/
|
5 |
Description: Wordfence Security - Anti-virus, Firewall and Malware Scan
|
6 |
Author: Wordfence
|
7 |
+
Version: 7.4.12
|
8 |
Author URI: http://www.wordfence.com/
|
9 |
+
Text Domain: wordfence
|
10 |
+
Domain Path: /languages
|
11 |
Network: true
|
12 |
*/
|
13 |
if(defined('WP_INSTALLING') && WP_INSTALLING){
|
17 |
if (!defined('ABSPATH')) {
|
18 |
exit;
|
19 |
}
|
20 |
+
define('WORDFENCE_VERSION', '7.4.12');
|
21 |
+
define('WORDFENCE_BUILD_NUMBER', '1603293147');
|
22 |
define('WORDFENCE_BASENAME', function_exists('plugin_basename') ? plugin_basename(__FILE__) :
|
23 |
basename(dirname(__FILE__)) . '/' . basename(__FILE__));
|
24 |
|
42 |
if (!defined('WF_IS_PRESSABLE')) {
|
43 |
define('WF_IS_PRESSABLE', (defined('IS_ATOMIC') && IS_ATOMIC) || (defined('IS_PRESSABLE') && IS_PRESSABLE));
|
44 |
}
|
45 |
+
if (!defined('WF_PHP_UNSUPPORTED')) {
|
46 |
+
define('WF_PHP_UNSUPPORTED', version_compare(PHP_VERSION, '5.3', '<'));
|
47 |
+
}
|
48 |
+
|
49 |
+
if (WF_PHP_UNSUPPORTED) {
|
50 |
+
add_action('all_admin_notices', 'wfUnsupportedPHPOverlay');
|
51 |
+
|
52 |
+
function wfUnsupportedPHPOverlay() {
|
53 |
+
include "views/unsupported-php/admin-message.php";
|
54 |
+
}
|
55 |
+
return;
|
56 |
+
}
|
57 |
|
58 |
if(get_option('wordfenceActivated') != 1){
|
59 |
add_action('activated_plugin','wordfence_save_activation_error'); function wordfence_save_activation_error(){ update_option('wf_plugin_act_error', ob_get_contents()); }
|