Version Description
- New: Data Shield module for advanced protection of user data and vital settings in the website database. Available in the PRO version.
- Improvement: Compatibility with WooCommerce significantly improved.
- Update: Strict filtering for the Custom login URL setting.
- Update: Chinese (Taiwan) translation has been added. Thanks to Sid Lo.
- Bug fixed: Custom login URL doesn't work after updating WordPress to 5.2.3.
- Bug fixed: User Policies tabs are not switchable if a user role was declared with a hyphen instead of the underscore.
- Bug fixed: A PHP warning while adding a network to the Black IP Access List from the Activity tab.
- Bug fixed: An anti-spam false positive: some WordPress DB updates can't be completed.
- Read more
Download this release
Release Info
Developer | Gioni |
Plugin | Cerber Security & Antispam |
Version | 8.5 |
Comparing to | |
See all releases |
Code changes from version 8.4 to 8.5
- assets/admin.css +37 -6
- cerber-ds.php +934 -0
- cerber-lab.php +55 -14
- cerber-load.php +162 -48
- cerber-news.php +7 -0
- cerber-scanner.php +1 -1
- cerber-tools.php +89 -52
- cerber-users.php +1 -1
- changelog.txt +11 -0
- common.php +159 -29
- dashboard.php +13 -1
- languages/wp-cerber-fr_CA.mo +0 -0
- languages/wp-cerber-fr_CA.po +30 -30
- languages/wp-cerber-fr_FR.mo +0 -0
- languages/wp-cerber-fr_FR.po +1 -1
- languages/wp-cerber-sv_SE.mo +0 -0
- languages/wp-cerber-sv_SE.po +9 -9
- languages/wp-cerber-zh_TW.mo +0 -0
- languages/wp-cerber-zh_TW.po +3299 -0
- languages/wp-cerber.pot +727 -592
- readme.txt +19 -8
- settings.php +195 -25
- wp-cerber.php +2 -2
assets/admin.css
CHANGED
@@ -32,6 +32,10 @@
|
|
32 |
vertical-align: middle;
|
33 |
}
|
34 |
|
|
|
|
|
|
|
|
|
35 |
.crb-main a:focus,
|
36 |
#crb-aside a:focus {
|
37 |
-webkit-box-shadow: none !important;
|
@@ -109,6 +113,17 @@
|
|
109 |
border-radius: 0 !important;
|
110 |
}
|
111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
/* Dashboard */
|
113 |
|
114 |
#crb-kpi {
|
@@ -1336,10 +1351,10 @@ div#whois:hover {
|
|
1336 |
margin-top: 0;
|
1337 |
}
|
1338 |
#diagnostic .diag-section {
|
1339 |
-
background-color: #
|
1340 |
-
border: 2px solid #
|
1341 |
-
width: 90%;
|
1342 |
-
max-width:1000px
|
1343 |
margin-bottom: 1em;
|
1344 |
padding: 1em;
|
1345 |
}
|
@@ -1373,12 +1388,28 @@ div#whois:hover {
|
|
1373 |
}
|
1374 |
|
1375 |
.crb-plain-table {
|
|
|
|
|
|
|
|
|
1376 |
border-collapse: collapse;
|
1377 |
-
margin-
|
1378 |
}
|
1379 |
-
.crb-plain-table td{
|
1380 |
border: 1px solid #eee;
|
1381 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1382 |
|
1383 |
.cerber-button span.dashicons-before {
|
1384 |
display: inline-block;
|
32 |
vertical-align: middle;
|
33 |
}
|
34 |
|
35 |
+
#crb-admin .select2-search__field {
|
36 |
+
width: 300px !important;
|
37 |
+
}
|
38 |
+
|
39 |
.crb-main a:focus,
|
40 |
#crb-aside a:focus {
|
41 |
-webkit-box-shadow: none !important;
|
113 |
border-radius: 0 !important;
|
114 |
}
|
115 |
|
116 |
+
.crb-settings .crb-label-above {
|
117 |
+
color: #333;
|
118 |
+
font-weight: bold;
|
119 |
+
padding-bottom: 0.7em;
|
120 |
+
}
|
121 |
+
|
122 |
+
#crb-form-user_shield th,
|
123 |
+
#crb-form-opt_shield th{
|
124 |
+
display: none;
|
125 |
+
}
|
126 |
+
|
127 |
/* Dashboard */
|
128 |
|
129 |
#crb-kpi {
|
1351 |
margin-top: 0;
|
1352 |
}
|
1353 |
#diagnostic .diag-section {
|
1354 |
+
background-color: #fafafa;
|
1355 |
+
border-top: 2px solid #ddd;
|
1356 |
+
/*width: 90%;
|
1357 |
+
max-width:1000px;*/
|
1358 |
margin-bottom: 1em;
|
1359 |
padding: 1em;
|
1360 |
}
|
1388 |
}
|
1389 |
|
1390 |
.crb-plain-table {
|
1391 |
+
max-height: 440px;
|
1392 |
+
overflow: auto;
|
1393 |
+
}
|
1394 |
+
.crb-plain-table table {
|
1395 |
border-collapse: collapse;
|
1396 |
+
margin-bottom: 1em;
|
1397 |
}
|
1398 |
+
.crb-plain-table td {
|
1399 |
border: 1px solid #eee;
|
1400 |
}
|
1401 |
+
.crb-plain-fcw td:first-of-type {
|
1402 |
+
width: 30%;
|
1403 |
+
}
|
1404 |
+
.crb-plain-table td:not(:first-of-type) {
|
1405 |
+
color: #000;
|
1406 |
+
}
|
1407 |
+
.crb-plain-header,
|
1408 |
+
.crb-plain-fh td:first-of-type {
|
1409 |
+
color: #000;
|
1410 |
+
font-weight: bold;
|
1411 |
+
}
|
1412 |
+
|
1413 |
|
1414 |
.cerber-button span.dashicons-before {
|
1415 |
display: inline-block;
|
cerber-ds.php
ADDED
@@ -0,0 +1,934 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
Copyright (C) 2015-19 CERBER TECH INC., https://cerber.tech
|
4 |
+
Copyright (C) 2015-19 CERBER TECH INC., https://wpcerber.com
|
5 |
+
|
6 |
+
Licenced under the GNU GPL.
|
7 |
+
|
8 |
+
This program is free software; you can redistribute it and/or modify
|
9 |
+
it under the terms of the GNU General Public License as published by
|
10 |
+
the Free Software Foundation; either version 3 of the License, or
|
11 |
+
(at your option) any later version.
|
12 |
+
|
13 |
+
This program is distributed in the hope that it will be useful,
|
14 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16 |
+
GNU General Public License for more details.
|
17 |
+
|
18 |
+
You should have received a copy of the GNU General Public License
|
19 |
+
along with this program; if not, write to the Free Software
|
20 |
+
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21 |
+
*/
|
22 |
+
|
23 |
+
if ( ! defined( 'WPINC' ) ) { exit; }
|
24 |
+
|
25 |
+
final class CRB_DS {
|
26 |
+
private static $setting = '_crb_ds_shadowing';
|
27 |
+
private static $config = null;
|
28 |
+
private static $the_user = null;
|
29 |
+
private static $update_user = null;
|
30 |
+
private static $acc_owner = false;
|
31 |
+
private static $user_blocked = false;
|
32 |
+
private static $user_fields = array( 'user_login' => 'lgn', 'user_pass' => 'pwd', 'user_email' => 'eml' );
|
33 |
+
private static $opt_cache = array();
|
34 |
+
//private static $user_metas = array( 'capabilities' );
|
35 |
+
|
36 |
+
static function enable_shadowing( $type ) {
|
37 |
+
|
38 |
+
if ( self::get_config( $type ) || ! lab_lab() ) {
|
39 |
+
return;
|
40 |
+
}
|
41 |
+
|
42 |
+
$conf = self::get_config();
|
43 |
+
|
44 |
+
if ( ! $conf ) {
|
45 |
+
$conf = array();
|
46 |
+
}
|
47 |
+
|
48 |
+
$data = array();
|
49 |
+
$data[0] = time();
|
50 |
+
$data[1] = 0;
|
51 |
+
$data[2] = get_current_user_id();
|
52 |
+
$data[3] = get_wp_cerber()->getSessionID();
|
53 |
+
|
54 |
+
switch ( $type ) {
|
55 |
+
case 1: // Users data
|
56 |
+
|
57 |
+
if ( defined( 'CRB_USHD_KEY' ) && is_string( CRB_USHD_KEY ) ) {
|
58 |
+
$data[5] = CRB_USHD_KEY; // If users' tables are shared among mutiple websites, define it in the wp-config.php on all websites before (!) activation shadowing
|
59 |
+
}
|
60 |
+
else {
|
61 |
+
$data[5] = substr( str_shuffle( 'abcdefghijklmnopqrstuvwxyz' ), 0, rand( 14, 16 ) );
|
62 |
+
}
|
63 |
+
|
64 |
+
$conf[ $type ] = $data;
|
65 |
+
self::save_config( $conf );
|
66 |
+
|
67 |
+
self::update_user_shadow( get_current_user_id(), null, null, self::is_meta_preserve() );
|
68 |
+
|
69 |
+
cerber_bg_task_add( array( 'func' => '_crb_ds_background', 'exec_until' => 'done' ) );
|
70 |
+
|
71 |
+
break;
|
72 |
+
|
73 |
+
case 2: // Roles
|
74 |
+
case 3: // Settings
|
75 |
+
|
76 |
+
$data[1] = time(); // Should be set after all shadows has created
|
77 |
+
$data[5] = substr( str_shuffle( 'abcdefghijklmnopqrstuvwxyz' ), 0, rand( 10, 12 ) );
|
78 |
+
$data[6] = substr( str_shuffle( '0123456789abcdefghijklmnopqrstuvwxyz' ), 0, rand( 8, 14 ) );
|
79 |
+
|
80 |
+
$conf[ $type ] = $data;
|
81 |
+
self::save_config( $conf );
|
82 |
+
|
83 |
+
foreach ( self::get_protected_settings()[ $type ] as $item ) {
|
84 |
+
self::update_setting_shadow( $item, get_option( $item ) );
|
85 |
+
}
|
86 |
+
|
87 |
+
break;
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
static function disable_shadowing( $type ) {
|
92 |
+
global $wpdb;
|
93 |
+
|
94 |
+
if ( ! $type_conf = self::get_config( $type ) ) {
|
95 |
+
return;
|
96 |
+
}
|
97 |
+
|
98 |
+
if ( ! is_super_admin() && ! nexus_is_valid_request() ) {
|
99 |
+
return;
|
100 |
+
}
|
101 |
+
|
102 |
+
$conf = self::get_config();
|
103 |
+
unset( $conf[ $type ] );
|
104 |
+
self::save_config( $conf );
|
105 |
+
|
106 |
+
switch ( $type ) {
|
107 |
+
case 1:
|
108 |
+
cerber_db_query( 'DELETE FROM ' . $wpdb->usermeta . ' WHERE meta_key ="' . $type_conf[5] . '"' );
|
109 |
+
break;
|
110 |
+
case 2:
|
111 |
+
case 3:
|
112 |
+
cerber_db_query( 'DELETE FROM ' . cerber_get_db_prefix() . CERBER_SETS_TABLE . ' WHERE the_key LIKE "' . $type_conf[5] . '%"' );
|
113 |
+
break;
|
114 |
+
}
|
115 |
+
|
116 |
+
}
|
117 |
+
|
118 |
+
static function is_ready( $type ) {
|
119 |
+
|
120 |
+
if ( lab_lab() && ( $conf = self::get_config( $type ) ) && $conf[1] ) {
|
121 |
+
return true;
|
122 |
+
}
|
123 |
+
|
124 |
+
return false;
|
125 |
+
}
|
126 |
+
|
127 |
+
private static function save_config( $conf ) {
|
128 |
+
self::$config = $conf;
|
129 |
+
|
130 |
+
// Encoding
|
131 |
+
|
132 |
+
reset( $conf );
|
133 |
+
$lenght = count( $conf );
|
134 |
+
|
135 |
+
$b = rand( 1, 10 );
|
136 |
+
//$config = array_fill( $b, rand( 12, 14 ), 0 );
|
137 |
+
$config = array_fill( $b, rand( $lenght + 8, $lenght + 10 ), 0 );
|
138 |
+
$s = rand( 3, 5 );
|
139 |
+
$config[ $b + 1 ] = $s; // crucial for extracting
|
140 |
+
$config[ $b + $s ] = $conf;
|
141 |
+
$config[ $b + $s + 1 ] = array( array( $b ) ); // is not used
|
142 |
+
$config[] = $b + 3; // crucial for verification
|
143 |
+
|
144 |
+
update_site_option( self::$setting, $config );
|
145 |
+
}
|
146 |
+
|
147 |
+
private static function get_config( $type = null ) {
|
148 |
+
|
149 |
+
if ( ! isset( self::$config ) ) {
|
150 |
+
|
151 |
+
$s = get_site_option( self::$setting );
|
152 |
+
|
153 |
+
if ( ! $s || ! is_array( $s ) ) {
|
154 |
+
return false;
|
155 |
+
}
|
156 |
+
|
157 |
+
reset( $s );
|
158 |
+
if ( key( $s ) != ( end( $s ) - 3 ) ) {
|
159 |
+
return false;
|
160 |
+
}
|
161 |
+
|
162 |
+
$s = array_values( $s );
|
163 |
+
|
164 |
+
self::$config = $s[ $s[1] ];
|
165 |
+
}
|
166 |
+
|
167 |
+
if ( $type ) {
|
168 |
+
if ( isset( self::$config[ $type ] ) ) {
|
169 |
+
return self::$config[ $type ];
|
170 |
+
}
|
171 |
+
|
172 |
+
return false;
|
173 |
+
}
|
174 |
+
|
175 |
+
return self::$config;
|
176 |
+
}
|
177 |
+
|
178 |
+
/**
|
179 |
+
* Creating shadow in bulk
|
180 |
+
*
|
181 |
+
* @return bool true if not completed, false = completed or nothing to do
|
182 |
+
*/
|
183 |
+
static function iterate_users() {
|
184 |
+
global $wpdb;
|
185 |
+
|
186 |
+
if ( ( ! $type_conf = self::get_config( 1 ) ) || self::is_ready( 1 ) ) {
|
187 |
+
return false;
|
188 |
+
}
|
189 |
+
|
190 |
+
$to_do = cerber_db_get_col( 'SELECT DISTINCT ID FROM ' . $wpdb->users . ' WHERE ID NOT IN (SELECT DISTINCT user_id FROM ' . $wpdb->usermeta . ' WHERE meta_key = "' . $type_conf[5] . '")' );
|
191 |
+
|
192 |
+
if ( ! $to_do ) { // Creating shadow completed
|
193 |
+
$conf = self::get_config();
|
194 |
+
$conf[1][1] = time();
|
195 |
+
self::save_config( $conf );
|
196 |
+
//cerber_diag_log( 'Create shadow completed' );
|
197 |
+
|
198 |
+
return false;
|
199 |
+
}
|
200 |
+
|
201 |
+
foreach ( $to_do as $user_id ) {
|
202 |
+
self::update_user_shadow( $user_id, null, null, self::is_meta_preserve() );
|
203 |
+
//wp_cache_delete( $user_id, 'user_meta' );
|
204 |
+
}
|
205 |
+
|
206 |
+
return true;
|
207 |
+
}
|
208 |
+
|
209 |
+
private static function get_user_shadow( $user_id ) {
|
210 |
+
if ( ! $user_id || ! $conf = self::get_config( 1 ) ) {
|
211 |
+
return false;
|
212 |
+
}
|
213 |
+
|
214 |
+
$um = get_user_meta( $user_id, $conf[5], true );
|
215 |
+
|
216 |
+
if ( ! $um ) {
|
217 |
+
return array();
|
218 |
+
}
|
219 |
+
|
220 |
+
$ret = @unserialize( self::decode( $um ) );
|
221 |
+
|
222 |
+
if ( ! $ret || ! is_array( $ret ) ) {
|
223 |
+
$ret = array();
|
224 |
+
}
|
225 |
+
|
226 |
+
return $ret;
|
227 |
+
}
|
228 |
+
|
229 |
+
private static function update_user_shadow( $user_id, $fields = array(), $meta_data = array(), $meta_keys = array() ) {
|
230 |
+
|
231 |
+
if ( ! $user_id || ! $conf = self::get_config( 1 ) ) {
|
232 |
+
return false;
|
233 |
+
}
|
234 |
+
|
235 |
+
if ( ! $data = get_userdata( $user_id ) ) {
|
236 |
+
return false; // Not a valid user
|
237 |
+
}
|
238 |
+
|
239 |
+
$sh = self::get_user_shadow( $user_id );
|
240 |
+
|
241 |
+
$sh[0] = $user_id;
|
242 |
+
|
243 |
+
if ( empty( $sh[1] ) ) {
|
244 |
+
$sh[1] = array();
|
245 |
+
}
|
246 |
+
|
247 |
+
if ( $fields ) {
|
248 |
+
$list = array_intersect_key( self::$user_fields, array_flip( $fields ) );
|
249 |
+
}
|
250 |
+
else {
|
251 |
+
$list = self::$user_fields;
|
252 |
+
}
|
253 |
+
|
254 |
+
foreach ( $list as $user_field => $key ) {
|
255 |
+
$sh[1][ $key ] = $data->data->$user_field;
|
256 |
+
}
|
257 |
+
|
258 |
+
if ( empty( $sh[2] ) ) {
|
259 |
+
$sh[2] = array();
|
260 |
+
}
|
261 |
+
|
262 |
+
/*if ( ! $fields ) { // We use $fields only for updating password
|
263 |
+
if ( empty( $sh[2] ) ) { // New user
|
264 |
+
foreach ( self::is_meta_preserve() as $key ) {
|
265 |
+
$sh[2][ $key ] = get_user_meta( $user_id, $key, true );
|
266 |
+
}
|
267 |
+
}
|
268 |
+
}*/
|
269 |
+
|
270 |
+
if ( ! empty( $meta_keys ) ) {
|
271 |
+
foreach ( $meta_keys as $key ) {
|
272 |
+
$sh[2][ $key ] = get_user_meta( $user_id, $key, true );
|
273 |
+
}
|
274 |
+
}
|
275 |
+
|
276 |
+
if ( $meta_data ) {
|
277 |
+
$sh[2] = array_merge( $sh[2], $meta_data );
|
278 |
+
}
|
279 |
+
|
280 |
+
return update_user_meta( $user_id, $conf[5], self::encode( serialize( $sh ) ) );
|
281 |
+
}
|
282 |
+
|
283 |
+
static function is_user_valid( $user_id = null ) {
|
284 |
+
if ( ! self::is_ready( 1 ) ) {
|
285 |
+
return true;
|
286 |
+
}
|
287 |
+
|
288 |
+
if ( ! $user_id ) {
|
289 |
+
$user_id = get_current_user_id();
|
290 |
+
}
|
291 |
+
|
292 |
+
if ( ( $sh = self::get_user_shadow( $user_id ) )
|
293 |
+
&& $sh[0] == $user_id ) {
|
294 |
+
return true;
|
295 |
+
}
|
296 |
+
|
297 |
+
return false;
|
298 |
+
}
|
299 |
+
|
300 |
+
/**
|
301 |
+
* Return the password hash of a given user.
|
302 |
+
* Make sure that CRB_DS::is_ready() returns true before using result
|
303 |
+
*
|
304 |
+
* @param null $user_id
|
305 |
+
*
|
306 |
+
* @return string
|
307 |
+
*/
|
308 |
+
static function get_user_pass( $user_id ) {
|
309 |
+
if ( ! $user_id ) {
|
310 |
+
return '';
|
311 |
+
}
|
312 |
+
|
313 |
+
if ( ! ( $sh = self::get_user_shadow( $user_id ) )
|
314 |
+
|| $sh[0] != $user_id
|
315 |
+
|| ! ( $ret = crb_array_get( $sh[1], self::$user_fields['user_pass'] ) ) ) {
|
316 |
+
return '';
|
317 |
+
}
|
318 |
+
|
319 |
+
return $ret;
|
320 |
+
}
|
321 |
+
|
322 |
+
static function acc_processor( $mode, $user_id ) {
|
323 |
+
|
324 |
+
if ( $mode == 'pass' ) {
|
325 |
+
self::update_user_shadow( $user_id, array( 'user_pass' ) );
|
326 |
+
|
327 |
+
return;
|
328 |
+
}
|
329 |
+
|
330 |
+
$update_shadow = false;
|
331 |
+
|
332 |
+
if ( crb_get_settings( 'ds_4acc_acl' ) && crb_acl_is_white() ) {
|
333 |
+
$update_shadow = true;
|
334 |
+
}
|
335 |
+
|
336 |
+
switch ( $mode ) {
|
337 |
+
case 'new':
|
338 |
+
self::$update_user = null;
|
339 |
+
if ( ! $update_shadow ) {
|
340 |
+
$update_shadow = self::acc_new( $user_id );
|
341 |
+
}
|
342 |
+
if ( $update_shadow ) {
|
343 |
+
self::update_user_shadow( $user_id );
|
344 |
+
}
|
345 |
+
break;
|
346 |
+
case 'update':
|
347 |
+
self::$update_user = $user_id;
|
348 |
+
self::acc_update( $user_id );
|
349 |
+
// Must be deferred till user's data is saved to DB
|
350 |
+
add_action( 'profile_update', function ( $user_id ) {
|
351 |
+
CRB_DS::update_helper( $user_id );
|
352 |
+
} );
|
353 |
+
break;
|
354 |
+
}
|
355 |
+
|
356 |
+
}
|
357 |
+
|
358 |
+
static function update_helper( $user_id ) {
|
359 |
+
if ( ( self::$update_user != $user_id )
|
360 |
+
|| ( self::$user_blocked && ! self::$acc_owner ) ) {
|
361 |
+
return;
|
362 |
+
}
|
363 |
+
|
364 |
+
self::update_user_shadow( $user_id );
|
365 |
+
}
|
366 |
+
|
367 |
+
/**
|
368 |
+
* Protect DB from an authorized user creation
|
369 |
+
*
|
370 |
+
* @param $user_id
|
371 |
+
*
|
372 |
+
* @return bool true if this operation is permitted
|
373 |
+
*/
|
374 |
+
private static function acc_new( $user_id ) {
|
375 |
+
global $cerber_status;
|
376 |
+
|
377 |
+
$set = crb_get_settings();
|
378 |
+
self::$user_blocked = false;
|
379 |
+
|
380 |
+
// Due to lack of a hook in the wp_insert_user() we are forced to check permissions and use wp_delete_user() after the user was created
|
381 |
+
if ( ! is_user_logged_in() ) {
|
382 |
+
if ( ! crb_user_has_role_strict( $set['ds_regs_roles'], $user_id ) ) {
|
383 |
+
$cerber_status = 32;
|
384 |
+
self::$user_blocked = true;
|
385 |
+
}
|
386 |
+
}
|
387 |
+
else {
|
388 |
+
if ( ! cerber_user_has_role( $set['ds_add_acc'] ) ) {
|
389 |
+
$cerber_status = 33;
|
390 |
+
self::$user_blocked = true;
|
391 |
+
}
|
392 |
+
}
|
393 |
+
|
394 |
+
if ( self::$user_blocked ) {
|
395 |
+
require_once( ABSPATH . 'wp-admin/includes/user.php' );
|
396 |
+
wp_delete_user( $user_id );
|
397 |
+
cerber_log( 72 );
|
398 |
+
remove_action( 'register_new_user', 'wp_send_new_user_notifications' );
|
399 |
+
remove_action( 'edit_user_created_user', 'wp_send_new_user_notifications', 10 );
|
400 |
+
}
|
401 |
+
elseif ( ! has_filter( 'register_new_user', 'wp_send_new_user_notifications' ) ) {
|
402 |
+
// this is needed in the case of a bulk user import
|
403 |
+
add_action( 'register_new_user', 'wp_send_new_user_notifications' );
|
404 |
+
add_action( 'edit_user_created_user', 'wp_send_new_user_notifications', 10 );
|
405 |
+
}
|
406 |
+
|
407 |
+
return ( ! self::$user_blocked );
|
408 |
+
}
|
409 |
+
|
410 |
+
/**
|
411 |
+
* Protect user's data from authorized modification
|
412 |
+
*
|
413 |
+
* @param $user_id
|
414 |
+
*
|
415 |
+
* @return bool true if this operation is permitted
|
416 |
+
*/
|
417 |
+
private static function acc_update( $user_id ) {
|
418 |
+
global $cerber_status;
|
419 |
+
|
420 |
+
$cid = get_current_user_id();
|
421 |
+
|
422 |
+
self::$acc_owner = ( $user_id == $cid ) ? true : false;
|
423 |
+
self::$user_blocked = false;
|
424 |
+
|
425 |
+
if ( ! cerber_user_has_role( crb_get_settings( 'ds_edit_acc' ) ) ) {
|
426 |
+
|
427 |
+
self::$user_blocked = true;
|
428 |
+
|
429 |
+
if ( ! self::$acc_owner ) {
|
430 |
+
// Protect the user's row in the users table
|
431 |
+
add_filter( 'query', 'crb_empty_query', PHP_INT_MAX );
|
432 |
+
add_filter( 'pre_get_col_charset', 'crb_return_wp_error', PHP_INT_MAX );
|
433 |
+
$cerber_status = ( ! $cid ) ? 34 : 33;
|
434 |
+
cerber_log( 73 );
|
435 |
+
}
|
436 |
+
|
437 |
+
if ( ! has_filter( 'insert_user_meta', array( 'CRB_DS', 'user_meta' ) ) ) {
|
438 |
+
add_filter( 'insert_user_meta', array( 'CRB_DS', 'user_meta' ), 0, 3 );
|
439 |
+
}
|
440 |
+
|
441 |
+
}
|
442 |
+
|
443 |
+
return ( ! self::$user_blocked );
|
444 |
+
}
|
445 |
+
|
446 |
+
static function user_meta( $meta, $user, $update ) {
|
447 |
+
self::$the_user = $user;
|
448 |
+
|
449 |
+
if ( self::$user_blocked == true ) {
|
450 |
+
if ( ! self::$acc_owner ) {
|
451 |
+
// Must be removed after a single use for a given user
|
452 |
+
remove_filter( 'query', 'crb_empty_query', PHP_INT_MAX );
|
453 |
+
remove_filter( 'pre_get_col_charset', 'crb_return_wp_error', PHP_INT_MAX );
|
454 |
+
}
|
455 |
+
|
456 |
+
//return array(); // No user meta to update
|
457 |
+
}
|
458 |
+
|
459 |
+
return $meta;
|
460 |
+
}
|
461 |
+
|
462 |
+
/**
|
463 |
+
* Protect/process users metas and roles from being updated
|
464 |
+
*
|
465 |
+
* @param $var
|
466 |
+
* @param $user_id
|
467 |
+
* @param $meta_key
|
468 |
+
* @param $meta_value
|
469 |
+
* @param $prev_value
|
470 |
+
*
|
471 |
+
* @return bool|null
|
472 |
+
*/
|
473 |
+
static function protect_user_meta( $var, $user_id, $meta_key, $meta_value, $prev_value ) {
|
474 |
+
global $cerber_status;
|
475 |
+
|
476 |
+
// A user is not permitted to be created or updated?
|
477 |
+
if ( self::$user_blocked ) {
|
478 |
+
if ( self::is_meta_protected( $meta_key ) ) { // User roles are here
|
479 |
+
$cerber_status = ( ! is_user_logged_in() ) ? 34 : 33;
|
480 |
+
cerber_log( 73 );
|
481 |
+
|
482 |
+
return false;
|
483 |
+
}
|
484 |
+
}
|
485 |
+
|
486 |
+
if ( true === self::is_meta_preserve( $meta_key ) ) {
|
487 |
+
$ok = false;
|
488 |
+
|
489 |
+
//if ( ( self::$update_user == $user_id )
|
490 |
+
if ( cerber_user_has_role( crb_get_settings( 'ds_edit_acc' ) ) ) {
|
491 |
+
$ok = true;
|
492 |
+
}
|
493 |
+
// Makes sense for user's role meta ONLY
|
494 |
+
elseif ( is_array( $meta_value ) && ! array_diff_key( $meta_value, array_flip( crb_get_settings( 'ds_regs_roles' ) ) ) ) {
|
495 |
+
$ok = true;
|
496 |
+
}
|
497 |
+
|
498 |
+
if ( $ok ) {
|
499 |
+
self::update_user_shadow( $user_id, null, array( $meta_key => $meta_value ) );
|
500 |
+
}
|
501 |
+
}
|
502 |
+
|
503 |
+
return $var;
|
504 |
+
}
|
505 |
+
|
506 |
+
private static function is_meta_preserve( $meta_key = null ) {
|
507 |
+
global $wpdb;
|
508 |
+
|
509 |
+
// TODO: add support for multisite via $wpdb->get_blog_prefix()
|
510 |
+
|
511 |
+
$list = array( $wpdb->base_prefix . 'capabilities', $wpdb->base_prefix . 'user_level' );
|
512 |
+
|
513 |
+
if ( $meta_key && in_array( $meta_key, $list ) ) {
|
514 |
+
return true;
|
515 |
+
}
|
516 |
+
|
517 |
+
return $list;
|
518 |
+
}
|
519 |
+
|
520 |
+
private static function is_meta_protected( $meta_key ) {
|
521 |
+
global $wpdb;
|
522 |
+
|
523 |
+
if ( ( isset( self::$the_user ) && ( $meta_key == self::$the_user->cap_key ) ) // User roles are here
|
524 |
+
|| $meta_key == $wpdb->get_blog_prefix() . 'user_level' ) {
|
525 |
+
return true;
|
526 |
+
}
|
527 |
+
|
528 |
+
/*
|
529 |
+
$metas = array();
|
530 |
+
if ( in_array( $meta_key, $metas ) ) {
|
531 |
+
return true;
|
532 |
+
}*/
|
533 |
+
|
534 |
+
return false;
|
535 |
+
}
|
536 |
+
|
537 |
+
static function get_user_meta( $user_id, $meta_key, $single ) {
|
538 |
+
|
539 |
+
if ( ( $conf = self::get_config( 1 ) )
|
540 |
+
&& $conf[5] == $meta_key ) {
|
541 |
+
return false; // Skip use shadow meta (infinite loop protection)
|
542 |
+
}
|
543 |
+
|
544 |
+
$sh = self::get_user_shadow( $user_id );
|
545 |
+
if ( isset( $sh[2][ $meta_key ] ) ) {
|
546 |
+
return array( $sh[2][ $meta_key ] );
|
547 |
+
}
|
548 |
+
|
549 |
+
return false;
|
550 |
+
}
|
551 |
+
|
552 |
+
/**
|
553 |
+
* Process settings updates. Updates shadow if permitted.
|
554 |
+
*
|
555 |
+
* @param $value
|
556 |
+
* @param $option
|
557 |
+
* @param $old_value
|
558 |
+
*
|
559 |
+
* @return mixed The old value if update is not permitted
|
560 |
+
*/
|
561 |
+
static function setting_processor( &$value, $option, &$old_value ) {
|
562 |
+
global $cerber_status;
|
563 |
+
|
564 |
+
if ( empty( self::get_protected_settings()[3][ $option ] ) ) {
|
565 |
+
return $value;
|
566 |
+
}
|
567 |
+
|
568 |
+
if ( $value == $old_value
|
569 |
+
|| ( is_array( $value ) && is_array( $old_value )
|
570 |
+
&& ( serialize( $value ) === serialize( $old_value ) ) ) ) {
|
571 |
+
return $value;
|
572 |
+
}
|
573 |
+
|
574 |
+
if ( crb_get_settings( 'ds_4opts_acl' ) && crb_acl_is_white() ) {
|
575 |
+
self::update_setting_shadow( $option, $value );
|
576 |
+
|
577 |
+
return $value;
|
578 |
+
}
|
579 |
+
|
580 |
+
if ( ! cerber_is_ip_allowed() ) {
|
581 |
+
cerber_log( 75 );
|
582 |
+
|
583 |
+
return $old_value;
|
584 |
+
}
|
585 |
+
|
586 |
+
$roles = crb_get_settings( 'ds_4opts_roles' );
|
587 |
+
|
588 |
+
if ( ! $roles || ! cerber_user_has_role( $roles ) ) {
|
589 |
+
$cerber_status = ( is_user_logged_in() ) ? 33 : 34;
|
590 |
+
cerber_log( 75 );
|
591 |
+
|
592 |
+
return $old_value;
|
593 |
+
}
|
594 |
+
|
595 |
+
self::update_setting_shadow( $option, $value );
|
596 |
+
|
597 |
+
return $value;
|
598 |
+
}
|
599 |
+
|
600 |
+
static function role_processor( &$value, $option, &$old_value ) {
|
601 |
+
global $cerber_status;
|
602 |
+
|
603 |
+
if ( ! is_array( $value )
|
604 |
+
|| ( substr( $option, - 11 ) != '_user_roles' ) ) {
|
605 |
+
return $value;
|
606 |
+
}
|
607 |
+
|
608 |
+
if ( serialize( $value ) === serialize( $old_value ) ) {
|
609 |
+
return $value;
|
610 |
+
}
|
611 |
+
|
612 |
+
$cerber_status = 0;
|
613 |
+
|
614 |
+
if ( ! self::role_update_permitted( $value, $old_value ) ) {
|
615 |
+
if ( ! $cerber_status ) {
|
616 |
+
$cerber_status = ( is_user_logged_in() ) ? 33 : 34;
|
617 |
+
}
|
618 |
+
cerber_log( 74 );
|
619 |
+
|
620 |
+
return $old_value;
|
621 |
+
}
|
622 |
+
|
623 |
+
self::update_setting_shadow( $option, $value );
|
624 |
+
|
625 |
+
return $value;
|
626 |
+
}
|
627 |
+
|
628 |
+
/**
|
629 |
+
* Check if role data can be updated
|
630 |
+
*
|
631 |
+
* @param $value
|
632 |
+
* @param $old_value
|
633 |
+
*
|
634 |
+
* @return bool True if update is permitted
|
635 |
+
*/
|
636 |
+
static function role_update_permitted( &$value, &$old_value ) {
|
637 |
+
|
638 |
+
if ( crb_get_settings( 'ds_4roles_acl' ) && crb_acl_is_white() ) {
|
639 |
+
return true;
|
640 |
+
}
|
641 |
+
|
642 |
+
if ( ! cerber_is_ip_allowed() ) {
|
643 |
+
return false;
|
644 |
+
}
|
645 |
+
|
646 |
+
$add = crb_get_settings( 'ds_add_role' );
|
647 |
+
$edit = crb_get_settings( 'ds_edit_role' );
|
648 |
+
|
649 |
+
if ( ! $add && ! $edit ) {
|
650 |
+
return false;
|
651 |
+
}
|
652 |
+
|
653 |
+
// Are there new or deleted roles?
|
654 |
+
|
655 |
+
if ( crb_array_diff_keys( $value, $old_value ) ) {
|
656 |
+
if ( ! $add || ! cerber_user_has_role( $add ) ) {
|
657 |
+
return false;
|
658 |
+
}
|
659 |
+
|
660 |
+
return true;
|
661 |
+
}
|
662 |
+
|
663 |
+
// There are some changes in capabilities or names
|
664 |
+
|
665 |
+
if ( ! $edit || ! cerber_user_has_role( $edit ) ) {
|
666 |
+
return false;
|
667 |
+
}
|
668 |
+
|
669 |
+
return true;
|
670 |
+
}
|
671 |
+
|
672 |
+
/**
|
673 |
+
* Install hooks for retrieving data of protected settings
|
674 |
+
*
|
675 |
+
*/
|
676 |
+
static function settings_hooks( $type ) {
|
677 |
+
|
678 |
+
if ( ! self::is_ready( $type ) ) {
|
679 |
+
return;
|
680 |
+
}
|
681 |
+
|
682 |
+
$list = self::get_protected_settings()[ $type ];
|
683 |
+
|
684 |
+
foreach ( $list as $option ) {
|
685 |
+
|
686 |
+
add_filter( "pre_option_{$option}", function ( $var, $option, $default ) {
|
687 |
+
|
688 |
+
$value = CRB_DS::get_setting_shadow( $option );
|
689 |
+
|
690 |
+
if ( $value ) {
|
691 |
+
return $value;
|
692 |
+
}
|
693 |
+
|
694 |
+
/*add_filter( "option_{$option}", function ( $value, $option ) {
|
695 |
+
CRB_DS::update_setting_shadow( $option, $value );
|
696 |
+
|
697 |
+
return $value;
|
698 |
+
}, 10, 2 );*/
|
699 |
+
|
700 |
+
return $var;
|
701 |
+
|
702 |
+
}, PHP_INT_MAX, 3 );
|
703 |
+
|
704 |
+
}
|
705 |
+
|
706 |
+
}
|
707 |
+
|
708 |
+
static function get_setting_shadow( $option ) {
|
709 |
+
// TODO: implement WP caching via wp_cache_add() / wp_cache_set()?
|
710 |
+
if ( ! isset( self::$opt_cache[ $option ] ) ) {
|
711 |
+
self::$opt_cache[ $option ] = cerber_get_set( self::get_setting_key( $option ) );
|
712 |
+
}
|
713 |
+
|
714 |
+
return self::$opt_cache[ $option ];
|
715 |
+
}
|
716 |
+
|
717 |
+
private static function update_setting_shadow( $option, $value ) {
|
718 |
+
self::$opt_cache[ $option ] = $value;
|
719 |
+
|
720 |
+
return cerber_update_set( self::get_setting_key( $option ), $value );
|
721 |
+
}
|
722 |
+
|
723 |
+
private static function get_setting_key( $option ) {
|
724 |
+
global $wpdb;
|
725 |
+
if ( $conf = self::get_config( 2 ) ) {
|
726 |
+
return $conf[5] . sha1( $option . $conf[6] . $wpdb->get_blog_prefix() );
|
727 |
+
}
|
728 |
+
|
729 |
+
return '';
|
730 |
+
}
|
731 |
+
|
732 |
+
/**
|
733 |
+
* @return array
|
734 |
+
*/
|
735 |
+
private static function get_protected_settings() {
|
736 |
+
global $wpdb;
|
737 |
+
|
738 |
+
$list = array();
|
739 |
+
|
740 |
+
$list[2] = array( $wpdb->get_blog_prefix() . 'user_roles' );
|
741 |
+
|
742 |
+
if ( $set = crb_get_settings( 'ds_4opts_list' ) ) {
|
743 |
+
$list[3] = $set;
|
744 |
+
}
|
745 |
+
else {
|
746 |
+
$list[3] = array();
|
747 |
+
}
|
748 |
+
|
749 |
+
return $list;
|
750 |
+
|
751 |
+
}
|
752 |
+
|
753 |
+
/**
|
754 |
+
* A list of settings to protect
|
755 |
+
*
|
756 |
+
* @param bool $ui_labels
|
757 |
+
*
|
758 |
+
* @return array
|
759 |
+
*/
|
760 |
+
static function get_settings_list( $ui_labels = true ) {
|
761 |
+
$set = array(
|
762 |
+
'admin_email' => __( 'Administration Email Address' ),
|
763 |
+
'default_role' => __( 'New User Default Role' ),
|
764 |
+
'home' => __( 'Site Address (URL)' ),
|
765 |
+
'siteurl' => __( 'WordPress Address (URL)' ),
|
766 |
+
'users_can_register' => __( 'Anyone can register' ),
|
767 |
+
'active_plugins' => __( 'Active Plugins' ),
|
768 |
+
'template' => __( 'Active Theme' ),
|
769 |
+
);
|
770 |
+
|
771 |
+
if ( $ui_labels ) {
|
772 |
+
return $set;
|
773 |
+
}
|
774 |
+
|
775 |
+
array_walk( $set, function ( &$e ) {
|
776 |
+
$e = 1; // Default value is ON
|
777 |
+
} );
|
778 |
+
|
779 |
+
return $set;
|
780 |
+
}
|
781 |
+
|
782 |
+
private static function encode( $str ) {
|
783 |
+
$str = base64_encode( $str );
|
784 |
+
$s = strlen( $str );
|
785 |
+
$str = rtrim( $str, '=' );
|
786 |
+
$num = $s - strlen( $str );
|
787 |
+
$ret = $num . $str;
|
788 |
+
|
789 |
+
return $ret;
|
790 |
+
}
|
791 |
+
|
792 |
+
private static function decode( $str ) {
|
793 |
+
static $equs = array( '', '=', '==' );
|
794 |
+
$num = substr( $str, 0, 1 );
|
795 |
+
$str = ltrim( $str, (string) $num );
|
796 |
+
|
797 |
+
return base64_decode( $str . $equs[ $num ] );
|
798 |
+
}
|
799 |
+
|
800 |
+
static function get_status() {
|
801 |
+
$ret = '';
|
802 |
+
|
803 |
+
if ( crb_get_settings( 'ds_4acc' ) ) {
|
804 |
+
self::get_type_status( 1, $msg );
|
805 |
+
$ret .= 'Enabled for user accounts. ' . $msg;
|
806 |
+
}
|
807 |
+
if ( crb_get_settings( 'ds_4roles' ) ) {
|
808 |
+
self::get_type_status( 2, $msg );
|
809 |
+
$ret .= '<p>Enabled for user roles. ' . $msg;
|
810 |
+
}
|
811 |
+
if ( crb_get_settings( 'ds_4opts' ) ) {
|
812 |
+
self::get_type_status( 3, $msg );
|
813 |
+
$ret .= '<p>Enabled for site settings. ' . $msg;
|
814 |
+
}
|
815 |
+
|
816 |
+
return $ret;
|
817 |
+
}
|
818 |
+
|
819 |
+
private static function get_type_status( $n, &$msg = '' ) {
|
820 |
+
if ( $conf = self::get_config( $n ) ) {
|
821 |
+
if ( $conf[1] ) {
|
822 |
+
$msg = 'Active since ' . cerber_date( $conf[1] ) . '.';
|
823 |
+
return true;
|
824 |
+
}
|
825 |
+
else {
|
826 |
+
$msg = 'Creating shadow data in progress. ';
|
827 |
+
return true;
|
828 |
+
}
|
829 |
+
}
|
830 |
+
|
831 |
+
$msg = 'Configuration has been corrupted. Please re-enable protection in the Data Shield settings.';
|
832 |
+
return false;
|
833 |
+
}
|
834 |
+
|
835 |
+
// TODO: implement error notification
|
836 |
+
static function check_errors( &$msg ) {
|
837 |
+
$msg = '...';
|
838 |
+
return false;
|
839 |
+
}
|
840 |
+
}
|
841 |
+
|
842 |
+
if ( crb_get_settings( 'ds_4acc' ) && CRB_DS::is_ready( 1 ) ) {
|
843 |
+
|
844 |
+
add_action( 'user_register', function ( $user_id ) {
|
845 |
+
|
846 |
+
CRB_DS::acc_processor( 'new', $user_id );
|
847 |
+
|
848 |
+
}, 0 );
|
849 |
+
|
850 |
+
add_filter( 'wp_pre_insert_user_data', function ( $data, $update, $user_id ) {
|
851 |
+
|
852 |
+
if ( $update ) {
|
853 |
+
CRB_DS::acc_processor( 'update', $user_id );
|
854 |
+
}
|
855 |
+
|
856 |
+
return $data;
|
857 |
+
}, PHP_INT_MAX, 3 );
|
858 |
+
|
859 |
+
add_filter( 'update_user_metadata', function ( $var, $object_id, $meta_key, $meta_value, $prev_value ) {
|
860 |
+
// apply_filters( "update_{$meta_type}_metadata", null, $object_id, $meta_key, $meta_value, $prev_value );
|
861 |
+
|
862 |
+
return CRB_DS::protect_user_meta( $var, $object_id, $meta_key, $meta_value, $prev_value );
|
863 |
+
|
864 |
+
}, PHP_INT_MAX, 5 );
|
865 |
+
|
866 |
+
add_filter( 'get_user_metadata', function ( $var, $object_id, $meta_key, $single ) {
|
867 |
+
//$check = apply_filters( "get_{$meta_type}_metadata", null, $object_id, $meta_key, $single );
|
868 |
+
|
869 |
+
if ( $meta = CRB_DS::get_user_meta( $object_id, $meta_key, $single ) ) {
|
870 |
+
return $meta;
|
871 |
+
}
|
872 |
+
|
873 |
+
return $var;
|
874 |
+
|
875 |
+
}, PHP_INT_MAX, 4 );
|
876 |
+
|
877 |
+
add_action( 'crb_after_reset', function ( $null, $user_id ) {
|
878 |
+
|
879 |
+
CRB_DS::acc_processor( 'pass', $user_id );
|
880 |
+
|
881 |
+
}, 10, 2 );
|
882 |
+
}
|
883 |
+
|
884 |
+
if ( crb_get_settings( 'ds_4roles' ) && CRB_DS::is_ready( 2 ) ) {
|
885 |
+
|
886 |
+
CRB_DS::settings_hooks( 2 );
|
887 |
+
|
888 |
+
add_filter( 'pre_update_option', function ( $value, $option, $old_value ) {
|
889 |
+
|
890 |
+
return CRB_DS::role_processor( $value, $option, $old_value );
|
891 |
+
|
892 |
+
}, PHP_INT_MAX, 3 );
|
893 |
+
|
894 |
+
}
|
895 |
+
|
896 |
+
if ( crb_get_settings( 'ds_4opts' ) && CRB_DS::is_ready( 3 ) ) {
|
897 |
+
|
898 |
+
CRB_DS::settings_hooks( 3 );
|
899 |
+
|
900 |
+
add_filter( 'pre_update_option', function ( $value, $option, $old_value ) {
|
901 |
+
|
902 |
+
return CRB_DS::setting_processor( $value, $option, $old_value );
|
903 |
+
|
904 |
+
}, PHP_INT_MAX, 3 );
|
905 |
+
|
906 |
+
}
|
907 |
+
|
908 |
+
/**
|
909 |
+
* A special SQL clause that produces empty result
|
910 |
+
*
|
911 |
+
* @return string
|
912 |
+
*/
|
913 |
+
function crb_empty_query() {
|
914 |
+
global $wpdb;
|
915 |
+
|
916 |
+
return 'SELECT 0 FROM ' . $wpdb->users;
|
917 |
+
}
|
918 |
+
|
919 |
+
/**
|
920 |
+
* This helps to get rid of PHP warnings
|
921 |
+
*
|
922 |
+
* @return WP_Error
|
923 |
+
*/
|
924 |
+
function crb_return_wp_error() {
|
925 |
+
return new WP_Error();
|
926 |
+
}
|
927 |
+
|
928 |
+
function _crb_ds_background() {
|
929 |
+
if ( ! CRB_DS::iterate_users() ) {
|
930 |
+
return 'done';
|
931 |
+
}
|
932 |
+
|
933 |
+
return 1;
|
934 |
+
}
|
cerber-lab.php
CHANGED
@@ -493,17 +493,16 @@ function lab_status() {
|
|
493 |
return $ret . '<p>No information. No request has been made yet.</p>';
|
494 |
}
|
495 |
|
496 |
-
$
|
|
|
497 |
foreach ( $nodes['nodes'] as $id => $node ) {
|
498 |
$delay = round( 1000 * $node['last'][0] ) . ' ms';
|
499 |
$ago = cerber_ago_time( $node['last'][3] );
|
500 |
$status = $node['last'][1];
|
501 |
if ( $status ) {
|
502 |
-
$class = 'node-ok';
|
503 |
$status = '<span style = "color:green;">' . $status . '</span>';
|
504 |
}
|
505 |
else {
|
506 |
-
$class = 'node-error';
|
507 |
$status = 'Down';
|
508 |
$delay = 'Unknown';
|
509 |
}
|
@@ -513,9 +512,28 @@ function lab_status() {
|
|
513 |
else {
|
514 |
$country = '';
|
515 |
}
|
516 |
-
$
|
517 |
-
|
518 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
519 |
|
520 |
if ( ! empty( $nodes['best'] ) ) {
|
521 |
$ret .= '<p>Closest (fastest) node: ' . $nodes['best'] . '</p>';
|
@@ -559,19 +577,26 @@ function lab_is_cloud_ok(){
|
|
559 |
* @param $reason_id integer Why IP is malicious
|
560 |
* @param $details
|
561 |
*/
|
562 |
-
function lab_save_push( $ip, $reason_id, $details ) {
|
|
|
563 |
$ip = filter_var( $ip, FILTER_VALIDATE_IP );
|
564 |
if ( ! $ip || is_ip_private( $ip ) || crb_acl_is_white( $ip ) || ! ( crb_get_settings( 'cerberlab' ) || lab_lab() ) ) {
|
565 |
return;
|
566 |
}
|
|
|
567 |
$reason_id = absint( $reason_id );
|
568 |
if ( $reason_id == 8 || $reason_id == 9 ) {
|
569 |
$details = array( 'uri' => $_SERVER['REQUEST_URI'] );
|
570 |
}
|
|
|
|
|
|
|
|
|
571 |
if ( is_array( $details ) ) {
|
572 |
$details = serialize( $details );
|
573 |
}
|
574 |
$details = cerber_real_escape( $details );
|
|
|
575 |
cerber_db_query( 'INSERT INTO ' . CERBER_LAB_TABLE . ' (ip, reason_id, details, stamp) VALUES ("' . $ip . '",' . $reason_id . ',"' . $details . '",' . time() . ')' );
|
576 |
}
|
577 |
/**
|
@@ -674,12 +699,14 @@ function lab_update_key( $lic, $expires = 0 ) {
|
|
674 |
lab_get_key( false, true ); // reload the static cache
|
675 |
}
|
676 |
|
677 |
-
function lab_validate_lic( $lic = '' ) {
|
678 |
|
|
|
679 |
$key = lab_get_key();
|
680 |
|
681 |
if ( ! $lic ) {
|
682 |
if ( empty( $key[2] ) ) {
|
|
|
683 |
return false;
|
684 |
}
|
685 |
$lic = $key[2];
|
@@ -691,24 +718,38 @@ function lab_validate_lic( $lic = '' ) {
|
|
691 |
$i --;
|
692 |
}
|
693 |
|
694 |
-
if ( ! $ret || !isset( $ret['response']['expires_gmt'] ) ) {
|
695 |
cerber_admin_notice( 'A network error occurred while verifying the license key. Please try again in a couple of minutes.' );
|
|
|
696 |
$expires = 0;
|
697 |
}
|
698 |
else {
|
|
|
699 |
$expires = absint( $ret['response']['expires_gmt'] );
|
700 |
}
|
701 |
|
702 |
-
lab_update_key($lic, $expires);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
703 |
|
704 |
-
if ( !$expires || time() > $expires ) {
|
705 |
return false;
|
706 |
}
|
707 |
|
708 |
-
|
709 |
-
|
|
|
|
|
|
|
710 |
|
711 |
-
|
|
|
712 |
}
|
713 |
|
714 |
function lab_lab( $with_date = false ) {
|
493 |
return $ret . '<p>No information. No request has been made yet.</p>';
|
494 |
}
|
495 |
|
496 |
+
$tb = array();
|
497 |
+
|
498 |
foreach ( $nodes['nodes'] as $id => $node ) {
|
499 |
$delay = round( 1000 * $node['last'][0] ) . ' ms';
|
500 |
$ago = cerber_ago_time( $node['last'][3] );
|
501 |
$status = $node['last'][1];
|
502 |
if ( $status ) {
|
|
|
503 |
$status = '<span style = "color:green;">' . $status . '</span>';
|
504 |
}
|
505 |
else {
|
|
|
506 |
$status = 'Down';
|
507 |
$delay = 'Unknown';
|
508 |
}
|
512 |
else {
|
513 |
$country = '';
|
514 |
}
|
515 |
+
$tb[] = array(
|
516 |
+
$id,
|
517 |
+
$delay,
|
518 |
+
$status,
|
519 |
+
$node['last'][2],
|
520 |
+
$node['last'][5],
|
521 |
+
$country,
|
522 |
+
$ago,
|
523 |
+
$node['last'][4],
|
524 |
+
);
|
525 |
+
}
|
526 |
+
|
527 |
+
$ret .= cerber_make_plain_table( $tb, array(
|
528 |
+
'Node',
|
529 |
+
'Processing time',
|
530 |
+
'Operational status',
|
531 |
+
'Info',
|
532 |
+
'IP address',
|
533 |
+
'Location',
|
534 |
+
'Last request',
|
535 |
+
'Protocol'
|
536 |
+
), false, true );
|
537 |
|
538 |
if ( ! empty( $nodes['best'] ) ) {
|
539 |
$ret .= '<p>Closest (fastest) node: ' . $nodes['best'] . '</p>';
|
577 |
* @param $reason_id integer Why IP is malicious
|
578 |
* @param $details
|
579 |
*/
|
580 |
+
function lab_save_push( $ip, $reason_id, $details = null ) {
|
581 |
+
global $cerber_status;
|
582 |
$ip = filter_var( $ip, FILTER_VALIDATE_IP );
|
583 |
if ( ! $ip || is_ip_private( $ip ) || crb_acl_is_white( $ip ) || ! ( crb_get_settings( 'cerberlab' ) || lab_lab() ) ) {
|
584 |
return;
|
585 |
}
|
586 |
+
|
587 |
$reason_id = absint( $reason_id );
|
588 |
if ( $reason_id == 8 || $reason_id == 9 ) {
|
589 |
$details = array( 'uri' => $_SERVER['REQUEST_URI'] );
|
590 |
}
|
591 |
+
elseif ( $reason_id == 100 ) {
|
592 |
+
$details = absint( $cerber_status );
|
593 |
+
}
|
594 |
+
|
595 |
if ( is_array( $details ) ) {
|
596 |
$details = serialize( $details );
|
597 |
}
|
598 |
$details = cerber_real_escape( $details );
|
599 |
+
|
600 |
cerber_db_query( 'INSERT INTO ' . CERBER_LAB_TABLE . ' (ip, reason_id, details, stamp) VALUES ("' . $ip . '",' . $reason_id . ',"' . $details . '",' . time() . ')' );
|
601 |
}
|
602 |
/**
|
699 |
lab_get_key( false, true ); // reload the static cache
|
700 |
}
|
701 |
|
702 |
+
function lab_validate_lic( $lic = '', &$msg = '' ) {
|
703 |
|
704 |
+
$msg = '';
|
705 |
$key = lab_get_key();
|
706 |
|
707 |
if ( ! $lic ) {
|
708 |
if ( empty( $key[2] ) ) {
|
709 |
+
$msg = '(1)';
|
710 |
return false;
|
711 |
}
|
712 |
$lic = $key[2];
|
718 |
$i --;
|
719 |
}
|
720 |
|
721 |
+
if ( ! $ret || ! isset( $ret['response']['expires_gmt'] ) ) {
|
722 |
cerber_admin_notice( 'A network error occurred while verifying the license key. Please try again in a couple of minutes.' );
|
723 |
+
$msg = '(2)';
|
724 |
$expires = 0;
|
725 |
}
|
726 |
else {
|
727 |
+
$msg = '(3)';
|
728 |
$expires = absint( $ret['response']['expires_gmt'] );
|
729 |
}
|
730 |
|
731 |
+
lab_update_key( $lic, $expires );
|
732 |
+
|
733 |
+
if ( ! $expires ) {
|
734 |
+
$msg = '(4)';
|
735 |
+
|
736 |
+
return false;
|
737 |
+
}
|
738 |
+
|
739 |
+
if ( time() > ( $expires + LAB_LICENSE_GRACE ) ) {
|
740 |
+
$msg = '(5)';
|
741 |
|
|
|
742 |
return false;
|
743 |
}
|
744 |
|
745 |
+
//$df = cerber_get_site_option( 'date_format', false );
|
746 |
+
//$gmt_offset = cerber_get_site_option( 'gmt_offset', false ) * 3600;
|
747 |
+
|
748 |
+
$df = get_site_option( 'date_format', false );
|
749 |
+
$gmt_offset = get_site_option( 'gmt_offset', false ) * 3600;
|
750 |
|
751 |
+
$msg = date_i18n( $df, $gmt_offset + $expires );
|
752 |
+
return true;
|
753 |
}
|
754 |
|
755 |
function lab_lab( $with_date = false ) {
|
cerber-load.php
CHANGED
@@ -86,6 +86,7 @@ require_once( dirname( __FILE__ ) . '/jetflow.php' );
|
|
86 |
require_once( dirname( __FILE__ ) . '/cerber-news.php' );
|
87 |
require_once( dirname( __FILE__ ) . '/cerber-scanner.php' );
|
88 |
require_once( dirname( __FILE__ ) . '/cerber-2fa.php' );
|
|
|
89 |
require_once( dirname( __FILE__ ) . '/nexus/cerber-nexus.php' );
|
90 |
|
91 |
if ( defined( 'WP_ADMIN' ) || defined( 'WP_NETWORK_ADMIN' ) ) {
|
@@ -923,13 +924,18 @@ function cerber_is_login_request() {
|
|
923 |
$ret = false;
|
924 |
|
925 |
if ( $path = crb_get_settings( 'loginpath' ) ) {
|
926 |
-
|
927 |
-
|
928 |
-
|
|
|
|
|
929 |
}
|
930 |
-
|
931 |
-
$
|
932 |
-
|
|
|
|
|
|
|
933 |
$ret = true;
|
934 |
}
|
935 |
}
|
@@ -1027,19 +1033,39 @@ function cerber_authenticate( $user, $username, $password ) {
|
|
1027 |
|
1028 |
// Check for prohibited username
|
1029 |
if ( $username && cerber_is_prohibited( $username ) ) {
|
1030 |
-
cerber_log( 52, $username );
|
|
|
1031 |
cerber_block_add( null, 704, $username );
|
1032 |
|
|
|
|
|
1033 |
// Create with message that is identical the default WP
|
1034 |
-
return new WP_Error( 'incorrect_password', sprintf(
|
1035 |
__( '<strong>ERROR</strong>: The password you entered for the username %s is incorrect.' ),
|
1036 |
'<strong>' . $username . '</strong>'
|
1037 |
-
) )
|
1038 |
}
|
1039 |
|
1040 |
$user = wp_authenticate_username_password( $user, $username, $password );
|
1041 |
$user = wp_authenticate_email_password( $user, $username, $password );
|
1042 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1043 |
// @since 4.18 it is replacement for 'wp_login_failed' action hook
|
1044 |
// see WP function wp_authenticate()
|
1045 |
$ignore_codes = array( 'empty_username', 'empty_password', 'cerber_denied' );
|
@@ -1101,6 +1127,19 @@ add_filter( 'wp_authenticate_user', function ( $user, $password ) {
|
|
1101 |
return $user;
|
1102 |
}, PHP_INT_MAX, 2 );
|
1103 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1104 |
add_action( 'wp_login', function ( $login, $user ) {
|
1105 |
cerber_user_login( $login, $user );
|
1106 |
}, 0, 2 );
|
@@ -1290,7 +1329,12 @@ function crb_update_session_data( $user_id, $sessions = null ) {
|
|
1290 |
|
1291 |
$exist = cerber_db_get_col( 'SELECT wp_session_token FROM ' . $table . ' WHERE user_id = ' . $user_id );
|
1292 |
|
1293 |
-
|
|
|
|
|
|
|
|
|
|
|
1294 |
|
1295 |
foreach ( $new as $id ) {
|
1296 |
$data = $sessions[ $id ];
|
@@ -1352,7 +1396,7 @@ add_action( 'set_current_user', function () { // the normal way
|
|
1352 |
global $current_user;
|
1353 |
cerber_restrict_user( $current_user->ID );
|
1354 |
}, 0 );
|
1355 |
-
add_action( 'init', function () { // backup for 'set_current_user'
|
1356 |
cerber_restrict_user( get_current_user_id() );
|
1357 |
}, 0 );
|
1358 |
|
@@ -1366,6 +1410,7 @@ function cerber_restrict_user( $user_id ) {
|
|
1366 |
$done = true;
|
1367 |
|
1368 |
if ( crb_is_user_blocked( $user_id )
|
|
|
1369 |
|| crb_acl_is_black() // @since 8.2.4
|
1370 |
|| ! cerber_geo_allowed( 'geo_login', $user_id ) ) { // @since 8.2.3
|
1371 |
|
@@ -1413,9 +1458,39 @@ add_filter( 'logout_redirect', function ( $redirect_to, $requested_redirect_to,
|
|
1413 |
$redirect_to = cerber_parse_redir( $to, $user );
|
1414 |
}
|
1415 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1416 |
return $redirect_to;
|
1417 |
}, PHP_INT_MAX, 3 );
|
1418 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1419 |
function cerber_parse_redir( $url, $user ) {
|
1420 |
if ( strpos( $url, '{{' ) ) {
|
1421 |
$url = preg_replace( '/{{user_id}}/', $user->ID, $url );
|
@@ -1584,7 +1659,7 @@ function crb_is_reg_limit_reached() {
|
|
1584 |
$stamp = absint( time() - 60 * crb_get_settings( 'reglimit_min' ) );
|
1585 |
$count = cerber_db_get_var( 'SELECT count(ip) FROM ' . CERBER_LOG_TABLE . ' WHERE ip = "' . $ip . '" AND activity = 2 AND stamp > ' . $stamp );
|
1586 |
if ( $count >= crb_get_settings( 'reglimit_num' ) ) {
|
1587 |
-
lab_save_push( $ip, 344
|
1588 |
|
1589 |
return true;
|
1590 |
}
|
@@ -1968,12 +2043,12 @@ function cerber_auth_access() {
|
|
1968 |
|
1969 |
$opt = crb_get_settings();
|
1970 |
|
1971 |
-
if ( $opt['authonlyacl']
|
1972 |
&& crb_acl_is_white() ) {
|
1973 |
return;
|
1974 |
}
|
1975 |
|
1976 |
-
if ( $opt['authonly']
|
1977 |
&& ! is_user_logged_in()
|
1978 |
&& cerber_auth_required( $opt['authonlyredir'] ) ) {
|
1979 |
if ( $opt['authonlyredir'] ) {
|
@@ -2049,9 +2124,19 @@ function cerber_is_antibot_exception(){
|
|
2049 |
// Admin || AJAX requests by unauthorized users
|
2050 |
if ( is_admin() ) {
|
2051 |
if ( cerber_is_wp_ajax() ) {
|
2052 |
-
if (is_user_logged_in()) {
|
2053 |
return true;
|
2054 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2055 |
}
|
2056 |
else {
|
2057 |
return true;
|
@@ -2078,15 +2163,6 @@ function cerber_is_antibot_exception(){
|
|
2078 |
return true;
|
2079 |
}
|
2080 |
|
2081 |
-
// Cloud Scanner
|
2082 |
-
if ( cerber_is_cloud_request() ) {
|
2083 |
-
return true;
|
2084 |
-
}
|
2085 |
-
|
2086 |
-
if ( nexus_is_valid_request() ) {
|
2087 |
-
return true;
|
2088 |
-
}
|
2089 |
-
|
2090 |
// REST API (except Contact Form 7 submission)
|
2091 |
if ( cerber_is_rest_url() ) {
|
2092 |
if ( false === strpos( $_SERVER['REQUEST_URI'], 'contact-form-7' ) ) {
|
@@ -2096,8 +2172,6 @@ function cerber_is_antibot_exception(){
|
|
2096 |
|
2097 |
if ( class_exists( 'WooCommerce' ) ) {
|
2098 |
if ( cerber_is_permalink_enabled() ) {
|
2099 |
-
//if ( 0 === strpos( cerber_get_site_root() . cerber_purify_uri(), get_home_url() . '/wc-api/' ) ) {
|
2100 |
-
//if ( 0 === strpos( CRB_Request::full_url(), cerber_get_home_url() . '/wc-api/' ) ) {
|
2101 |
if ( CRB_Request::is_url_start_with( cerber_get_home_url() . '/wc-api/' ) ) {
|
2102 |
return true;
|
2103 |
}
|
@@ -2109,6 +2183,24 @@ function cerber_is_antibot_exception(){
|
|
2109 |
}
|
2110 |
}
|
2111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2112 |
return false;
|
2113 |
}
|
2114 |
|
@@ -2145,7 +2237,7 @@ function cerber_antibot_mode() {
|
|
2145 |
if ( ! empty( $_GET['wc-ajax'] ) &&
|
2146 |
//$_GET['wc-ajax'] == 'get_refreshed_fragments' &&
|
2147 |
count( $_GET ) == 1 &&
|
2148 |
-
|
2149 |
) {
|
2150 |
|
2151 |
return 2;
|
@@ -2368,6 +2460,7 @@ function cerber_antibot_enabled( $location ) {
|
|
2368 |
* @param $location string|array Location (setting)
|
2369 |
*/
|
2370 |
function cerber_antibot_code($location) {
|
|
|
2371 |
if ( ! cerber_antibot_enabled( $location ) ) {
|
2372 |
return;
|
2373 |
}
|
@@ -2583,7 +2676,7 @@ function cerber_is_bot( $location = '' ) {
|
|
2583 |
|
2584 |
if ( $ret ) {
|
2585 |
$cerber_status = 11;
|
2586 |
-
lab_save_push( $remote_ip, 333
|
2587 |
}
|
2588 |
}
|
2589 |
|
@@ -2981,8 +3074,8 @@ function cerber_calc_duration( $ip ) {
|
|
2981 |
*
|
2982 |
* @return int Allowed attempts for present moment
|
2983 |
*/
|
2984 |
-
function cerber_get_remain_count( $ip = '', $check_acl = true, $activity = array(
|
2985 |
-
global $
|
2986 |
if ( ! $ip ) {
|
2987 |
$ip = $wp_cerber->getRemoteIp();
|
2988 |
}
|
@@ -3030,6 +3123,7 @@ function cerber_get_remain_count( $ip = '', $check_acl = true, $activity = array
|
|
3030 |
* @return bool
|
3031 |
*/
|
3032 |
function cerber_is_ip_allowed( $ip = '', $allowed = array(), $ignore_citadel = false ) {
|
|
|
3033 |
|
3034 |
if ( ! $ip ) {
|
3035 |
$ip = cerber_get_remote_ip();
|
@@ -3044,15 +3138,15 @@ function cerber_is_ip_allowed( $ip = '', $allowed = array(), $ignore_citadel = f
|
|
3044 |
return true;
|
3045 |
}
|
3046 |
if ( $tag == 'B' ) {
|
|
|
3047 |
return false;
|
3048 |
}
|
3049 |
|
3050 |
// @since 4.7.9
|
3051 |
if ( $b = cerber_get_block( $ip ) ) {
|
3052 |
-
if ( empty( $allowed ) ) {
|
3053 |
-
|
3054 |
-
|
3055 |
-
elseif ( ! in_array( $b->reason_id, $allowed ) ) {
|
3056 |
return false;
|
3057 |
}
|
3058 |
}
|
@@ -3067,6 +3161,7 @@ function cerber_is_ip_allowed( $ip = '', $allowed = array(), $ignore_citadel = f
|
|
3067 |
}
|
3068 |
|
3069 |
if ( lab_is_blocked( $ip, false ) ) {
|
|
|
3070 |
return false;
|
3071 |
}
|
3072 |
|
@@ -3231,16 +3326,28 @@ function cerber_acl_remove( $ip ) {
|
|
3231 |
*/
|
3232 |
function cerber_can_be_listed( $ip, $list = 'B' ) {
|
3233 |
if ( $list == 'B' ) {
|
|
|
3234 |
if ( crb_acl_is_white( cerber_get_remote_ip() ) ) {
|
3235 |
return true;
|
3236 |
}
|
3237 |
-
|
3238 |
-
|
3239 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
3240 |
}
|
|
|
|
|
3241 |
}
|
3242 |
-
|
3243 |
-
|
|
|
|
|
|
|
3244 |
return false;
|
3245 |
}
|
3246 |
|
@@ -3590,12 +3697,12 @@ function cerber_is_myip( $ip ) {
|
|
3590 |
}
|
3591 |
|
3592 |
function cerber_is_ip_in_range( $range, $ip = null ) {
|
3593 |
-
|
3594 |
if ( ! is_array( $range ) ) {
|
3595 |
return false;
|
3596 |
}
|
3597 |
if ( ! $ip ) {
|
3598 |
-
$ip =
|
3599 |
}
|
3600 |
$long = ip2long( $ip );
|
3601 |
if ( $range['begin'] <= $long && $long <= $range['end'] ) {
|
@@ -4290,7 +4397,7 @@ function cerber_bg_task_launcher( $filter = null ) {
|
|
4290 |
return $ret;
|
4291 |
}
|
4292 |
|
4293 |
-
$safe_func = array( 'nexus_send', 'nexus_do_upgrade' );
|
4294 |
|
4295 |
foreach ( $exec_it as $task_id => $task ) {
|
4296 |
|
@@ -4551,7 +4658,7 @@ function cerber_log( $activity, $login = '', $user_id = 0, $ip = null ) {
|
|
4551 |
}
|
4552 |
|
4553 |
if ( in_array( $activity, array( 16, 17, 40, 56, 100 ) ) ) {
|
4554 |
-
lab_save_push( $ip, $activity
|
4555 |
}
|
4556 |
|
4557 |
return $ret;
|
@@ -4571,16 +4678,19 @@ function cerber_get_log($activity = array(), $user = array(), $order = array(),
|
|
4571 |
global $wpdb;
|
4572 |
|
4573 |
$where = array();
|
|
|
4574 |
if ( $activity ) {
|
4575 |
$activity = array_map( 'absint', $activity );
|
4576 |
$where[] = 'activity IN (' . implode( ', ', $activity ) . ')';
|
4577 |
}
|
4578 |
|
4579 |
if ( ! empty( $user['email'] ) ) {
|
4580 |
-
$user
|
|
|
|
|
4581 |
$where[] = 'user_id = ' . absint( $user->ID );
|
4582 |
}
|
4583 |
-
|
4584 |
$where[] = 'user_id = ' . absint( $user['id'] );
|
4585 |
}
|
4586 |
|
@@ -5313,7 +5423,7 @@ function cerber_login_scripts() {
|
|
5313 |
add_action( 'wp_enqueue_scripts', 'cerber_scripts' );
|
5314 |
function cerber_scripts() {
|
5315 |
global $wp_cerber;
|
5316 |
-
if ( ( is_singular() && cerber_antibot_enabled( array( 'botscomm', 'botsany' ) ) )
|
5317 |
|| ( $wp_cerber->getSettings( 'sitekey' ) && $wp_cerber->getSettings( 'secretkey' ) )
|
5318 |
) {
|
5319 |
wp_enqueue_script( 'jquery' );
|
@@ -5385,7 +5495,9 @@ add_action( 'wp_footer', 'cerber_foo', 1000 );
|
|
5385 |
function cerber_foo() {
|
5386 |
global $wp_cerber;
|
5387 |
|
5388 |
-
if (is_singular()
|
|
|
|
|
5389 |
|
5390 |
if (!$wp_cerber->recaptcha_here) return;
|
5391 |
|
@@ -5456,6 +5568,8 @@ register_shutdown_function( function () {
|
|
5456 |
function cerber_error_shield( $mode = 1 ) {
|
5457 |
global $cerber_status, $cerber_blocked;
|
5458 |
|
|
|
|
|
5459 |
if ( ! $mode || ( crb_get_settings( 'tierrnoauth' ) && is_user_logged_in() ) ) {
|
5460 |
return;
|
5461 |
}
|
@@ -5680,7 +5794,7 @@ function cerber_traffic_log(){
|
|
5680 |
//$details[5] = file_get_contents('php://input');
|
5681 |
}
|
5682 |
if ( crb_get_settings( 'tihdrs' ) ) {
|
5683 |
-
$hds =
|
5684 |
unset( $hds['Cookie'] );
|
5685 |
$details[6] = $hds;
|
5686 |
}
|
86 |
require_once( dirname( __FILE__ ) . '/cerber-news.php' );
|
87 |
require_once( dirname( __FILE__ ) . '/cerber-scanner.php' );
|
88 |
require_once( dirname( __FILE__ ) . '/cerber-2fa.php' );
|
89 |
+
require_once( dirname( __FILE__ ) . '/cerber-ds.php' );
|
90 |
require_once( dirname( __FILE__ ) . '/nexus/cerber-nexus.php' );
|
91 |
|
92 |
if ( defined( 'WP_ADMIN' ) || defined( 'WP_NETWORK_ADMIN' ) ) {
|
924 |
$ret = false;
|
925 |
|
926 |
if ( $path = crb_get_settings( 'loginpath' ) ) {
|
927 |
+
|
928 |
+
$uri = $_SERVER['REQUEST_URI'];
|
929 |
+
|
930 |
+
if ( $pos = strpos( $uri, '?' ) ) {
|
931 |
+
$uri = substr( $uri, 0, $pos );
|
932 |
}
|
933 |
+
|
934 |
+
$components = explode( '/', rtrim( $uri, '/' ) );
|
935 |
+
$last = end( $components );
|
936 |
+
|
937 |
+
if ( $path === $last
|
938 |
+
&& ! cerber_is_rest_url() ) {
|
939 |
$ret = true;
|
940 |
}
|
941 |
}
|
1033 |
|
1034 |
// Check for prohibited username
|
1035 |
if ( $username && cerber_is_prohibited( $username ) ) {
|
1036 |
+
//cerber_log( 52, $username );
|
1037 |
+
$ret = crb_login_error( $username, 52 );
|
1038 |
cerber_block_add( null, 704, $username );
|
1039 |
|
1040 |
+
return $ret;
|
1041 |
+
|
1042 |
// Create with message that is identical the default WP
|
1043 |
+
/*return new WP_Error( 'incorrect_password', sprintf(
|
1044 |
__( '<strong>ERROR</strong>: The password you entered for the username %s is incorrect.' ),
|
1045 |
'<strong>' . $username . '</strong>'
|
1046 |
+
) );*/
|
1047 |
}
|
1048 |
|
1049 |
$user = wp_authenticate_username_password( $user, $username, $password );
|
1050 |
$user = wp_authenticate_email_password( $user, $username, $password );
|
1051 |
|
1052 |
+
// @since 8.4.2
|
1053 |
+
// Should be moved under 'wp_authenticate_user' hook see below?
|
1054 |
+
if ( ( $user instanceof WP_User ) && $user->ID ) {
|
1055 |
+
|
1056 |
+
if ( crb_get_settings( 'ds_4acc' ) && CRB_DS::is_ready( 1 ) ) {
|
1057 |
+
|
1058 |
+
if ( ! CRB_DS::is_user_valid( $user->ID ) ) {
|
1059 |
+
return crb_login_error( $username, 53, 35 );
|
1060 |
+
}
|
1061 |
+
|
1062 |
+
$pwd = CRB_DS::get_user_pass( $user->ID );
|
1063 |
+
if ( ! $pwd || ! wp_check_password( $password, $pwd, $user->ID ) ) {
|
1064 |
+
return crb_login_error( $username, 53, 36 );
|
1065 |
+
}
|
1066 |
+
}
|
1067 |
+
}
|
1068 |
+
|
1069 |
// @since 4.18 it is replacement for 'wp_login_failed' action hook
|
1070 |
// see WP function wp_authenticate()
|
1071 |
$ignore_codes = array( 'empty_username', 'empty_password', 'cerber_denied' );
|
1127 |
return $user;
|
1128 |
}, PHP_INT_MAX, 2 );
|
1129 |
|
1130 |
+
function crb_login_error( $username, $act = null, $status = null ) {
|
1131 |
+
global $cerber_status;
|
1132 |
+
$cerber_status = $status;
|
1133 |
+
if ( $act ) {
|
1134 |
+
cerber_log( $act, $username );
|
1135 |
+
}
|
1136 |
+
// Create with message that is identical the default WP
|
1137 |
+
return new WP_Error( 'incorrect_password', sprintf(
|
1138 |
+
__( '<strong>ERROR</strong>: The password you entered for the username %s is incorrect.' ),
|
1139 |
+
'<strong>' . $username . '</strong>'
|
1140 |
+
) );
|
1141 |
+
}
|
1142 |
+
|
1143 |
add_action( 'wp_login', function ( $login, $user ) {
|
1144 |
cerber_user_login( $login, $user );
|
1145 |
}, 0, 2 );
|
1329 |
|
1330 |
$exist = cerber_db_get_col( 'SELECT wp_session_token FROM ' . $table . ' WHERE user_id = ' . $user_id );
|
1331 |
|
1332 |
+
if ( $exist ) {
|
1333 |
+
$new = array_diff( $list, $exist ); // Should be just one element or none
|
1334 |
+
}
|
1335 |
+
else {
|
1336 |
+
$new = $list;
|
1337 |
+
}
|
1338 |
|
1339 |
foreach ( $new as $id ) {
|
1340 |
$data = $sessions[ $id ];
|
1396 |
global $current_user;
|
1397 |
cerber_restrict_user( $current_user->ID );
|
1398 |
}, 0 );
|
1399 |
+
add_action( 'init', function () { // backup for 'set_current_user' hook which might not be invoked
|
1400 |
cerber_restrict_user( get_current_user_id() );
|
1401 |
}, 0 );
|
1402 |
|
1410 |
$done = true;
|
1411 |
|
1412 |
if ( crb_is_user_blocked( $user_id )
|
1413 |
+
|| ! CRB_DS::is_user_valid( $user_id )
|
1414 |
|| crb_acl_is_black() // @since 8.2.4
|
1415 |
|| ! cerber_geo_allowed( 'geo_login', $user_id ) ) { // @since 8.2.3
|
1416 |
|
1458 |
$redirect_to = cerber_parse_redir( $to, $user );
|
1459 |
}
|
1460 |
|
1461 |
+
if ( ( $path = crb_get_settings( 'loginpath' ) )
|
1462 |
+
&& empty( $requested_redirect_to )
|
1463 |
+
&& cerber_is_login_request() ) {
|
1464 |
+
$redirect_to = '/' . $path . '/?loggedout=true'; // Replace the default WP logout redirection
|
1465 |
+
}
|
1466 |
+
|
1467 |
return $redirect_to;
|
1468 |
}, PHP_INT_MAX, 3 );
|
1469 |
|
1470 |
+
if ( crb_get_settings( 'loginpath' ) ) {
|
1471 |
+
|
1472 |
+
add_filter( 'lostpassword_redirect', function ( $redirect_to ) {
|
1473 |
+
|
1474 |
+
if ( ( $path = crb_get_settings( 'loginpath' ) )
|
1475 |
+
&& cerber_is_login_request() ) {
|
1476 |
+
$redirect_to = '/' . $path . '/?checkemail=confirm'; // Replace the default WP logout redirection
|
1477 |
+
}
|
1478 |
+
|
1479 |
+
return $redirect_to;
|
1480 |
+
}, PHP_INT_MAX );
|
1481 |
+
|
1482 |
+
add_filter( 'registration_redirect', function ( $redirect_to ) {
|
1483 |
+
|
1484 |
+
if ( ( $path = crb_get_settings( 'loginpath' ) )
|
1485 |
+
&& cerber_is_login_request() ) {
|
1486 |
+
$redirect_to = '/' . $path . '/?checkemail=registered'; // Replace the default WP logout redirection
|
1487 |
+
}
|
1488 |
+
|
1489 |
+
return $redirect_to;
|
1490 |
+
}, PHP_INT_MAX );
|
1491 |
+
|
1492 |
+
}
|
1493 |
+
|
1494 |
function cerber_parse_redir( $url, $user ) {
|
1495 |
if ( strpos( $url, '{{' ) ) {
|
1496 |
$url = preg_replace( '/{{user_id}}/', $user->ID, $url );
|
1659 |
$stamp = absint( time() - 60 * crb_get_settings( 'reglimit_min' ) );
|
1660 |
$count = cerber_db_get_var( 'SELECT count(ip) FROM ' . CERBER_LOG_TABLE . ' WHERE ip = "' . $ip . '" AND activity = 2 AND stamp > ' . $stamp );
|
1661 |
if ( $count >= crb_get_settings( 'reglimit_num' ) ) {
|
1662 |
+
lab_save_push( $ip, 344 );
|
1663 |
|
1664 |
return true;
|
1665 |
}
|
2043 |
|
2044 |
$opt = crb_get_settings();
|
2045 |
|
2046 |
+
if ( ! empty( $opt['authonlyacl'] )
|
2047 |
&& crb_acl_is_white() ) {
|
2048 |
return;
|
2049 |
}
|
2050 |
|
2051 |
+
if ( ! empty( $opt['authonly'] )
|
2052 |
&& ! is_user_logged_in()
|
2053 |
&& cerber_auth_required( $opt['authonlyredir'] ) ) {
|
2054 |
if ( $opt['authonlyredir'] ) {
|
2124 |
// Admin || AJAX requests by unauthorized users
|
2125 |
if ( is_admin() ) {
|
2126 |
if ( cerber_is_wp_ajax() ) {
|
2127 |
+
if ( is_user_logged_in() ) {
|
2128 |
return true;
|
2129 |
}
|
2130 |
+
if ( class_exists( 'WooCommerce' ) ) {
|
2131 |
+
// Background processes launcher? P.S. wc_privacy_cleanup
|
2132 |
+
if ( crb_arrays_similar( $_GET, array(
|
2133 |
+
'nonce' => 'crb_is_alphanumeric',
|
2134 |
+
'action' => 'crb_is_alphanumeric'
|
2135 |
+
) )
|
2136 |
+
&& ! preg_grep( '/[^\d]/', array_keys( $_POST ) ) ) { // If other than numeric keys in array
|
2137 |
+
return true;
|
2138 |
+
}
|
2139 |
+
}
|
2140 |
}
|
2141 |
else {
|
2142 |
return true;
|
2163 |
return true;
|
2164 |
}
|
2165 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2166 |
// REST API (except Contact Form 7 submission)
|
2167 |
if ( cerber_is_rest_url() ) {
|
2168 |
if ( false === strpos( $_SERVER['REQUEST_URI'], 'contact-form-7' ) ) {
|
2172 |
|
2173 |
if ( class_exists( 'WooCommerce' ) ) {
|
2174 |
if ( cerber_is_permalink_enabled() ) {
|
|
|
|
|
2175 |
if ( CRB_Request::is_url_start_with( cerber_get_home_url() . '/wc-api/' ) ) {
|
2176 |
return true;
|
2177 |
}
|
2183 |
}
|
2184 |
}
|
2185 |
|
2186 |
+
// Upgrading WP, see update-core.php
|
2187 |
+
if ( count( $_GET ) == 1
|
2188 |
+
&& count( $_POST ) == 0
|
2189 |
+
&& ( $p = cerber_get_get( 'step' ) )
|
2190 |
+
&& ( $p == 'upgrade_db' )
|
2191 |
+
&& substr( cerber_script_filename(), - 21 ) == '/wp-admin/upgrade.php' ) {
|
2192 |
+
return true;
|
2193 |
+
}
|
2194 |
+
|
2195 |
+
// Cloud Scanner
|
2196 |
+
if ( cerber_is_cloud_request() ) {
|
2197 |
+
return true;
|
2198 |
+
}
|
2199 |
+
|
2200 |
+
if ( nexus_is_valid_request() ) {
|
2201 |
+
return true;
|
2202 |
+
}
|
2203 |
+
|
2204 |
return false;
|
2205 |
}
|
2206 |
|
2237 |
if ( ! empty( $_GET['wc-ajax'] ) &&
|
2238 |
//$_GET['wc-ajax'] == 'get_refreshed_fragments' &&
|
2239 |
count( $_GET ) == 1 &&
|
2240 |
+
( count( $_POST ) <= 1 )
|
2241 |
) {
|
2242 |
|
2243 |
return 2;
|
2460 |
* @param $location string|array Location (setting)
|
2461 |
*/
|
2462 |
function cerber_antibot_code($location) {
|
2463 |
+
|
2464 |
if ( ! cerber_antibot_enabled( $location ) ) {
|
2465 |
return;
|
2466 |
}
|
2676 |
|
2677 |
if ( $ret ) {
|
2678 |
$cerber_status = 11;
|
2679 |
+
lab_save_push( $remote_ip, 333 );
|
2680 |
}
|
2681 |
}
|
2682 |
|
3074 |
*
|
3075 |
* @return int Allowed attempts for present moment
|
3076 |
*/
|
3077 |
+
function cerber_get_remain_count( $ip = '', $check_acl = true, $activity = array( 7, 51, 52 ), $allowed = null, $period = null ) {
|
3078 |
+
global $wp_cerber;
|
3079 |
if ( ! $ip ) {
|
3080 |
$ip = $wp_cerber->getRemoteIp();
|
3081 |
}
|
3123 |
* @return bool
|
3124 |
*/
|
3125 |
function cerber_is_ip_allowed( $ip = '', $allowed = array(), $ignore_citadel = false ) {
|
3126 |
+
global $cerber_status;
|
3127 |
|
3128 |
if ( ! $ip ) {
|
3129 |
$ip = cerber_get_remote_ip();
|
3138 |
return true;
|
3139 |
}
|
3140 |
if ( $tag == 'B' ) {
|
3141 |
+
$cerber_status = 14;
|
3142 |
return false;
|
3143 |
}
|
3144 |
|
3145 |
// @since 4.7.9
|
3146 |
if ( $b = cerber_get_block( $ip ) ) {
|
3147 |
+
if ( empty( $allowed ) || ! in_array( $b->reason_id, $allowed ) ) {
|
3148 |
+
$cerber_status = 13;
|
3149 |
+
|
|
|
3150 |
return false;
|
3151 |
}
|
3152 |
}
|
3161 |
}
|
3162 |
|
3163 |
if ( lab_is_blocked( $ip, false ) ) {
|
3164 |
+
$cerber_status = 15;
|
3165 |
return false;
|
3166 |
}
|
3167 |
|
3326 |
*/
|
3327 |
function cerber_can_be_listed( $ip, $list = 'B' ) {
|
3328 |
if ( $list == 'B' ) {
|
3329 |
+
|
3330 |
if ( crb_acl_is_white( cerber_get_remote_ip() ) ) {
|
3331 |
return true;
|
3332 |
}
|
3333 |
+
|
3334 |
+
if ( is_string( $ip ) ) {
|
3335 |
+
|
3336 |
+
if ( filter_var( $ip, FILTER_VALIDATE_IP ) ) {
|
3337 |
+
if ( cerber_is_myip( $ip ) ) {
|
3338 |
+
return false;
|
3339 |
+
}
|
3340 |
+
|
3341 |
+
return true;
|
3342 |
}
|
3343 |
+
|
3344 |
+
$ip = cerber_any2range( $ip );
|
3345 |
}
|
3346 |
+
elseif ( ! isset( $ip['range'] )) {
|
3347 |
+
return false;
|
3348 |
+
}
|
3349 |
+
|
3350 |
+
if ( cerber_is_ip_in_range( $ip ) ) {
|
3351 |
return false;
|
3352 |
}
|
3353 |
|
3697 |
}
|
3698 |
|
3699 |
function cerber_is_ip_in_range( $range, $ip = null ) {
|
3700 |
+
|
3701 |
if ( ! is_array( $range ) ) {
|
3702 |
return false;
|
3703 |
}
|
3704 |
if ( ! $ip ) {
|
3705 |
+
$ip = cerber_get_remote_ip();
|
3706 |
}
|
3707 |
$long = ip2long( $ip );
|
3708 |
if ( $range['begin'] <= $long && $long <= $range['end'] ) {
|
4397 |
return $ret;
|
4398 |
}
|
4399 |
|
4400 |
+
$safe_func = array( 'nexus_send', 'nexus_do_upgrade', '_crb_ds_background' );
|
4401 |
|
4402 |
foreach ( $exec_it as $task_id => $task ) {
|
4403 |
|
4658 |
}
|
4659 |
|
4660 |
if ( in_array( $activity, array( 16, 17, 40, 56, 100 ) ) ) {
|
4661 |
+
lab_save_push( $ip, $activity );
|
4662 |
}
|
4663 |
|
4664 |
return $ret;
|
4678 |
global $wpdb;
|
4679 |
|
4680 |
$where = array();
|
4681 |
+
|
4682 |
if ( $activity ) {
|
4683 |
$activity = array_map( 'absint', $activity );
|
4684 |
$where[] = 'activity IN (' . implode( ', ', $activity ) . ')';
|
4685 |
}
|
4686 |
|
4687 |
if ( ! empty( $user['email'] ) ) {
|
4688 |
+
if ( ! $user = get_user_by( 'email', $user['email'] ) ) {
|
4689 |
+
return null;
|
4690 |
+
}
|
4691 |
$where[] = 'user_id = ' . absint( $user->ID );
|
4692 |
}
|
4693 |
+
elseif ( ! empty( $user['id'] ) ) {
|
4694 |
$where[] = 'user_id = ' . absint( $user['id'] );
|
4695 |
}
|
4696 |
|
5423 |
add_action( 'wp_enqueue_scripts', 'cerber_scripts' );
|
5424 |
function cerber_scripts() {
|
5425 |
global $wp_cerber;
|
5426 |
+
if ( ( ( is_singular() || is_archive() ) && cerber_antibot_enabled( array( 'botscomm', 'botsany' ) ) )
|
5427 |
|| ( $wp_cerber->getSettings( 'sitekey' ) && $wp_cerber->getSettings( 'secretkey' ) )
|
5428 |
) {
|
5429 |
wp_enqueue_script( 'jquery' );
|
5495 |
function cerber_foo() {
|
5496 |
global $wp_cerber;
|
5497 |
|
5498 |
+
if ( is_singular() || is_archive() ) {
|
5499 |
+
cerber_antibot_code( array( 'botscomm', 'botsany' ) );
|
5500 |
+
}
|
5501 |
|
5502 |
if (!$wp_cerber->recaptcha_here) return;
|
5503 |
|
5568 |
function cerber_error_shield( $mode = 1 ) {
|
5569 |
global $cerber_status, $cerber_blocked;
|
5570 |
|
5571 |
+
require_once( ABSPATH . WPINC . '/pluggable.php' ); // @since 8.5 for is_user_logged_in()
|
5572 |
+
|
5573 |
if ( ! $mode || ( crb_get_settings( 'tierrnoauth' ) && is_user_logged_in() ) ) {
|
5574 |
return;
|
5575 |
}
|
5794 |
//$details[5] = file_get_contents('php://input');
|
5795 |
}
|
5796 |
if ( crb_get_settings( 'tihdrs' ) ) {
|
5797 |
+
$hds = crb_getallheaders();
|
5798 |
unset( $hds['Cookie'] );
|
5799 |
$details[6] = $hds;
|
5800 |
}
|
cerber-news.php
CHANGED
@@ -123,6 +123,13 @@ function cerber_push_the_news( $version ) {
|
|
123 |
$news['8.4'][] = 'Improvement: The custom login page feature has been updated to eliminate possible conflicts with themes and other plugins.';
|
124 |
$news['8.4'][] = 'Improvement: Compatibility with operating systems that natively doesn’t support the PHP GLOB_BRACE constant.';
|
125 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
if ( ! empty( $news[ $version ] ) ) {
|
127 |
//$text = '<h3>What\'s new in WP Cerber '.$version.'</h3>';
|
128 |
|
123 |
$news['8.4'][] = 'Improvement: The custom login page feature has been updated to eliminate possible conflicts with themes and other plugins.';
|
124 |
$news['8.4'][] = 'Improvement: Compatibility with operating systems that natively doesn’t support the PHP GLOB_BRACE constant.';
|
125 |
|
126 |
+
$news['8.5'][] = 'A new Data Shield module for advanced protection of user data and vital settings in the website database. Available in the PRO version.';
|
127 |
+
$news['8.5'][] = 'Improvement: Compatibility with WooCommerce significantly improved.';
|
128 |
+
$news['8.5'][] = 'Bug fixed: Custom login URL doesn\'t work after updating WordPress to 5.2.3.';
|
129 |
+
$news['8.5'][] = 'Bug fixed: User Policies tabs are not switchable if a user role was declared with a hyphen instead of the underscore.';
|
130 |
+
$news['8.5'][] = 'Bug fixed: A PHP warning while adding a network to the Black IP Access List from the Activity tab.';
|
131 |
+
$news['8.5'][] = 'Bug fixed: An anti-spam false positive: some WordPress DB updates can\'t be completed.';
|
132 |
+
|
133 |
if ( ! empty( $news[ $version ] ) ) {
|
134 |
//$text = '<h3>What\'s new in WP Cerber '.$version.'</h3>';
|
135 |
|
cerber-scanner.php
CHANGED
@@ -329,7 +329,7 @@ function cerber_scanner( $control, $mode ) {
|
|
329 |
if ( crb_get_settings( 'scan_debug' ) ) {
|
330 |
register_shutdown_function( function () {
|
331 |
if ( http_response_code() != 200 ) {
|
332 |
-
crb_scan_debug( '
|
333 |
if ( $err = error_get_last() ) {
|
334 |
crb_scan_debug( print_r( $err, 1 ) );
|
335 |
}
|
329 |
if ( crb_get_settings( 'scan_debug' ) ) {
|
330 |
register_shutdown_function( function () {
|
331 |
if ( http_response_code() != 200 ) {
|
332 |
+
crb_scan_debug( 'ERROR: Unexpected software errors detected. Check the server error log.' );
|
333 |
if ( $err = error_get_last() ) {
|
334 |
crb_scan_debug( print_r( $err, 1 ) );
|
335 |
}
|
cerber-tools.php
CHANGED
@@ -183,19 +183,24 @@ function cerber_show_diag(){
|
|
183 |
<div class="diag-section">
|
184 |
<h3>Database Info</h3>
|
185 |
<?php echo cerber_db_diag(); ?>
|
186 |
-
<?php echo '<p style="text-align: right;"><a class="button button-secondary" href="' . wp_nonce_url( add_query_arg( array( 'force_repair_db' => 1 ) ), 'control', 'cerber_nonce' ) . '"><span class="dashicons dashicons-admin-tools" style="vertical-align: middle;"></span> Repair
|
187 |
</div>
|
188 |
<div class="diag-section">
|
189 |
-
<h3>Server
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
|
|
|
|
|
|
|
|
|
|
199 |
</div>
|
200 |
<div class="diag-section">
|
201 |
<h3>Cerber Security Cloud Status</h3>
|
@@ -203,8 +208,8 @@ function cerber_show_diag(){
|
|
203 |
echo lab_status();
|
204 |
?>
|
205 |
<p style="text-align: right;">
|
206 |
-
<a class="button button-secondary" href="<?php echo wp_nonce_url( add_query_arg( array( 'clean_up_the_cache' => 1 ) ), 'control', 'cerber_nonce' ); ?>">Clear
|
207 |
-
<a class="button button-secondary" href="<?php echo wp_nonce_url( add_query_arg( array( 'force_check_nodes' => 1 ) ), 'control', 'cerber_nonce' ); ?>">Recheck
|
208 |
</p>
|
209 |
</div>
|
210 |
<?php
|
@@ -235,6 +240,15 @@ function cerber_show_diag(){
|
|
235 |
echo '</ol>';
|
236 |
echo '</div>';
|
237 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
?>
|
239 |
</form>
|
240 |
<script type="text/javascript">
|
@@ -254,13 +268,13 @@ function cerber_show_lic() {
|
|
254 |
$valid = '';
|
255 |
if ( ! empty( $key[2] ) ) {
|
256 |
$lic = $key[2];
|
257 |
-
if (
|
258 |
$valid = '
|
259 |
-
<p><span style="color: green;">This key is valid until '
|
260 |
<p>To move the key to another website or web server, please follow these steps: <a href="https://my.wpcerber.com/how-to-move-license-key/" target="_blank">https://my.wpcerber.com/how-to-move-license-key/</a></p>';
|
261 |
}
|
262 |
else {
|
263 |
-
$valid = '<p><span style="color: red;">This license key is invalid or expired</span></p>
|
264 |
<p>If you believe this key is valid, please follow these steps: <a href="https://my.wpcerber.com/how-to-fix-invalid-or-expired-key/" target="_blank">https://my.wpcerber.com/how-to-fix-invalid-or-expired-key/</a></p>';
|
265 |
}
|
266 |
}
|
@@ -308,22 +322,26 @@ function cerber_show_wp_diag(){
|
|
308 |
$tz = ( $tz !== 'UTC' ) ? '<span style="color: red;">' . $tz . '!</span>' : $tz;
|
309 |
|
310 |
$sys = array(
|
311 |
-
array( 'Server
|
312 |
-
array( 'PHP version
|
313 |
-
array( 'Server API
|
314 |
-
array( 'WordPress version', cerber_get_wp_version() ),
|
315 |
-
array( 'WordPress locale', get_locale() ),
|
316 |
-
array( 'Options DB table', $wpdb->prefix . 'options' ),
|
317 |
array( 'Server platform', PHP_OS ),
|
318 |
array( 'Memory limit', @ini_get( 'memory_limit' ) ),
|
319 |
array( 'Default PHP timezone', $tz ),
|
|
|
|
|
|
|
320 |
);
|
321 |
|
|
|
|
|
|
|
|
|
322 |
if ( nexus_is_valid_request() ) {
|
323 |
$sys[] = array( 'The IP address of the master is detected as', cerber_get_remote_ip() );
|
324 |
}
|
325 |
else {
|
326 |
-
$sys[] = array( 'Your IP address is detected as', cerber_get_remote_ip() );
|
327 |
}
|
328 |
|
329 |
$ret[] = cerber_make_plain_table( $sys );
|
@@ -336,7 +354,15 @@ function cerber_show_wp_diag(){
|
|
336 |
$folder .= 'quarantine' . DIRECTORY_SEPARATOR;
|
337 |
}
|
338 |
|
339 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
340 |
|
341 |
$folders = array(
|
342 |
array( 'WordPress root folder (ABSPATH) ', ABSPATH ),
|
@@ -345,23 +371,15 @@ function cerber_show_wp_diag(){
|
|
345 |
array( 'WordPress plugins folder', cerber_get_plugins_dir() ),
|
346 |
array( 'WordPress themes folder', cerber_get_themes_dir() ),
|
347 |
array( 'WordPress must use plugin folder (WPMU_PLUGIN_DIR) ', WPMU_PLUGIN_DIR ),
|
|
|
348 |
array( 'PHP folder for uploading files', ini_get( 'upload_tmp_dir' ) ),
|
349 |
array( 'Server folder for temporary files', sys_get_temp_dir() ),
|
350 |
array( 'Server folder for user session data', session_save_path() ),
|
351 |
-
array( '
|
352 |
array( 'Cerber\'s diagnostic log', cerber_get_diag_log() )
|
353 |
);
|
354 |
|
355 |
-
|
356 |
-
$config = ABSPATH . 'wp-config.php';
|
357 |
-
}
|
358 |
-
elseif ( file_exists( dirname( ABSPATH ) . '/wp-config.php' ) ) {
|
359 |
-
$config = dirname( ABSPATH ) . '/wp-config.php';
|
360 |
-
}
|
361 |
-
else {
|
362 |
-
$config = 'None?';
|
363 |
-
}
|
364 |
-
$folders[] = array( 'WordPress config file', $config );
|
365 |
|
366 |
if ( file_exists( ABSPATH . '.htaccess' ) ) {
|
367 |
$folders[] = array( 'Main .htaccess file', ABSPATH . '.htaccess' );
|
@@ -413,17 +431,27 @@ function cerber_show_wp_diag(){
|
|
413 |
$pls[] = array($data['Name'], $data['Version']);
|
414 |
}
|
415 |
|
416 |
-
$ret[] = 'Active plugins
|
417 |
|
418 |
-
echo implode("
|
419 |
}
|
420 |
|
421 |
-
function cerber_make_plain_table( $data ) {
|
422 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
423 |
foreach ( $data as $row ) {
|
424 |
$ret .= '<tr><td>' . implode( '</td><td>', $row ) . '</td></tr>';
|
425 |
}
|
426 |
-
$ret .= '</table>';
|
427 |
|
428 |
return $ret;
|
429 |
}
|
@@ -442,24 +470,28 @@ function cerber_db_diag(){
|
|
442 |
|
443 |
$ret = array();
|
444 |
|
445 |
-
$
|
|
|
|
|
446 |
|
447 |
$var = crb_get_mysql_var( 'innodb_buffer_pool_size' );
|
448 |
$pool_size = round( $var / 1048576 );
|
449 |
-
$inno =
|
450 |
if ( $pool_size < 16 ) {
|
451 |
$inno .= ' Your pool size is extremely small!';
|
452 |
}
|
453 |
elseif ( $pool_size < 64 ) {
|
454 |
$inno .= ' It seems your pool size is too small.';
|
455 |
}
|
456 |
-
$
|
457 |
|
458 |
$var = crb_get_mysql_var( 'max_allowed_packet' );
|
459 |
-
$
|
|
|
|
|
|
|
460 |
|
461 |
-
$ret[] =
|
462 |
-
$ret[] = 'Collate: '.$wpdb->collate;
|
463 |
|
464 |
$ret[] = cerber_table_info( CERBER_LOG_TABLE );
|
465 |
$ret[] = cerber_table_info( CERBER_ACL_TABLE );
|
@@ -493,24 +525,29 @@ function cerber_table_info( $table ) {
|
|
493 |
}
|
494 |
$cols = $wpdb->get_results( "SHOW FULL COLUMNS FROM " . $table );
|
495 |
|
496 |
-
$
|
|
|
497 |
foreach ( $cols as $column ) {
|
498 |
$column = obj_to_arr_deep( $column );
|
499 |
$field = array_shift( $column );
|
500 |
$type = array_shift( $column );
|
501 |
$collation = array_shift( $column );
|
502 |
-
$
|
|
|
|
|
503 |
}
|
504 |
-
|
|
|
|
|
505 |
|
506 |
$rows = absint( cerber_db_get_var( 'SELECT COUNT(*) FROM ' . $table ) );
|
507 |
|
508 |
$sts = $wpdb->get_row( 'SHOW TABLE STATUS WHERE NAME = "' . $table .'"');
|
509 |
-
$
|
510 |
foreach ( $sts as $key => $value ) {
|
511 |
-
$
|
512 |
}
|
513 |
-
$status
|
514 |
|
515 |
$truncate = '';
|
516 |
if ($rows) {
|
183 |
<div class="diag-section">
|
184 |
<h3>Database Info</h3>
|
185 |
<?php echo cerber_db_diag(); ?>
|
186 |
+
<?php echo '<p style="text-align: right;"><a class="button button-secondary" href="' . wp_nonce_url( add_query_arg( array( 'force_repair_db' => 1 ) ), 'control', 'cerber_nonce' ) . '"><span class="dashicons dashicons-admin-tools" style="vertical-align: middle;"></span> Repair Cerber\'s Tables</a></p>'; ?>
|
187 |
</div>
|
188 |
<div class="diag-section">
|
189 |
+
<h3>Server Environment Variables</h3>
|
190 |
+
<?php
|
191 |
+
$server = $_SERVER;
|
192 |
+
if ( ! empty( $server['HTTP_COOKIE'] ) ) {
|
193 |
+
unset( $server['HTTP_COOKIE'] );
|
194 |
+
}
|
195 |
+
if ( ! empty( $server['HTTP_X_COOKIES'] ) ) {
|
196 |
+
unset( $server['HTTP_X_COOKIES'] );
|
197 |
+
}
|
198 |
+
$se = array();
|
199 |
+
foreach ( $server as $key => $value ) {
|
200 |
+
$se[] = array( $key, @strip_tags( $value ) );
|
201 |
+
}
|
202 |
+
echo cerber_make_plain_table( $se );
|
203 |
+
?>
|
204 |
</div>
|
205 |
<div class="diag-section">
|
206 |
<h3>Cerber Security Cloud Status</h3>
|
208 |
echo lab_status();
|
209 |
?>
|
210 |
<p style="text-align: right;">
|
211 |
+
<a class="button button-secondary" href="<?php echo wp_nonce_url( add_query_arg( array( 'clean_up_the_cache' => 1 ) ), 'control', 'cerber_nonce' ); ?>">Clear Up Cache</a>
|
212 |
+
<a class="button button-secondary" href="<?php echo wp_nonce_url( add_query_arg( array( 'force_check_nodes' => 1 ) ), 'control', 'cerber_nonce' ); ?>">Recheck Node Statuses</a>
|
213 |
</p>
|
214 |
</div>
|
215 |
<?php
|
240 |
echo '</ol>';
|
241 |
echo '</div>';
|
242 |
}
|
243 |
+
|
244 |
+
if ( $status = CRB_DS::get_status() ) {
|
245 |
+
echo '
|
246 |
+
<div class="diag-section">
|
247 |
+
<h3>Data Shield Status</h3>';
|
248 |
+
echo $status;
|
249 |
+
echo '</div>';
|
250 |
+
}
|
251 |
+
|
252 |
?>
|
253 |
</form>
|
254 |
<script type="text/javascript">
|
268 |
$valid = '';
|
269 |
if ( ! empty( $key[2] ) ) {
|
270 |
$lic = $key[2];
|
271 |
+
if ( lab_validate_lic( $lic, $expires ) ) {
|
272 |
$valid = '
|
273 |
+
<p><span style="color: green;">This key is valid until ' . $expires . '</span></p>
|
274 |
<p>To move the key to another website or web server, please follow these steps: <a href="https://my.wpcerber.com/how-to-move-license-key/" target="_blank">https://my.wpcerber.com/how-to-move-license-key/</a></p>';
|
275 |
}
|
276 |
else {
|
277 |
+
$valid = '<p><span style="color: red;">This license key is invalid or expired ' . $expires . '</span></p>
|
278 |
<p>If you believe this key is valid, please follow these steps: <a href="https://my.wpcerber.com/how-to-fix-invalid-or-expired-key/" target="_blank">https://my.wpcerber.com/how-to-fix-invalid-or-expired-key/</a></p>';
|
279 |
}
|
280 |
}
|
322 |
$tz = ( $tz !== 'UTC' ) ? '<span style="color: red;">' . $tz . '!</span>' : $tz;
|
323 |
|
324 |
$sys = array(
|
325 |
+
array( 'Web Server', $_SERVER['SERVER_SOFTWARE'] ),
|
326 |
+
array( 'PHP version', phpversion() ),
|
327 |
+
array( 'Server API', php_sapi_name() ),
|
|
|
|
|
|
|
328 |
array( 'Server platform', PHP_OS ),
|
329 |
array( 'Memory limit', @ini_get( 'memory_limit' ) ),
|
330 |
array( 'Default PHP timezone', $tz ),
|
331 |
+
array( 'WordPress version', cerber_get_wp_version() ),
|
332 |
+
array( 'WordPress locale', get_locale() ),
|
333 |
+
array( 'WordPress options DB table', $wpdb->prefix . 'options' ),
|
334 |
);
|
335 |
|
336 |
+
if ( 2 < substr_count( cerber_get_site_url(), '/' ) ) {
|
337 |
+
$sys[] = array( 'Subfolder WP installation', 'YES' );
|
338 |
+
}
|
339 |
+
|
340 |
if ( nexus_is_valid_request() ) {
|
341 |
$sys[] = array( 'The IP address of the master is detected as', cerber_get_remote_ip() );
|
342 |
}
|
343 |
else {
|
344 |
+
$sys[] = array( 'Your IP address is detected as', cerber_get_remote_ip() . ' (<a href="https://wpcerber.com/what-is-my-ip/" target="_blank">check it on the what is my IP address page</a>)' );
|
345 |
}
|
346 |
|
347 |
$ret[] = cerber_make_plain_table( $sys );
|
354 |
$folder .= 'quarantine' . DIRECTORY_SEPARATOR;
|
355 |
}
|
356 |
|
357 |
+
if ( file_exists( ABSPATH . 'wp-config.php' )) {
|
358 |
+
$config = ABSPATH . 'wp-config.php';
|
359 |
+
}
|
360 |
+
elseif ( file_exists( dirname( ABSPATH ) . '/wp-config.php' ) ) {
|
361 |
+
$config = dirname( ABSPATH ) . '/wp-config.php';
|
362 |
+
}
|
363 |
+
else {
|
364 |
+
$config = 'None?';
|
365 |
+
}
|
366 |
|
367 |
$folders = array(
|
368 |
array( 'WordPress root folder (ABSPATH) ', ABSPATH ),
|
371 |
array( 'WordPress plugins folder', cerber_get_plugins_dir() ),
|
372 |
array( 'WordPress themes folder', cerber_get_themes_dir() ),
|
373 |
array( 'WordPress must use plugin folder (WPMU_PLUGIN_DIR) ', WPMU_PLUGIN_DIR ),
|
374 |
+
array( 'WordPress config file', $config ),
|
375 |
array( 'PHP folder for uploading files', ini_get( 'upload_tmp_dir' ) ),
|
376 |
array( 'Server folder for temporary files', sys_get_temp_dir() ),
|
377 |
array( 'Server folder for user session data', session_save_path() ),
|
378 |
+
array( 'Cerber\'s quarantine folder', $folder ),
|
379 |
array( 'Cerber\'s diagnostic log', cerber_get_diag_log() )
|
380 |
);
|
381 |
|
382 |
+
//$folders[] = array( 'WordPress config file', $config );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
383 |
|
384 |
if ( file_exists( ABSPATH . '.htaccess' ) ) {
|
385 |
$folders[] = array( 'Main .htaccess file', ABSPATH . '.htaccess' );
|
431 |
$pls[] = array($data['Name'], $data['Version']);
|
432 |
}
|
433 |
|
434 |
+
$ret[] = '<p>Active plugins</p>' . cerber_make_plain_table( $pls );
|
435 |
|
436 |
+
echo implode("\n",$ret);
|
437 |
}
|
438 |
|
439 |
+
function cerber_make_plain_table( $data, $header = null, $first_header = false, $eq = false ) {
|
440 |
+
$class = 'crb-monospace ';
|
441 |
+
if ( $first_header ) {
|
442 |
+
$class .= ' crb-plain-fh ';
|
443 |
+
}
|
444 |
+
if ( ! $eq ) {
|
445 |
+
$class .= ' crb-plain-fcw ';
|
446 |
+
}
|
447 |
+
$ret = '<div class="crb-plain-table"><table class="' . $class . '">';
|
448 |
+
if ( $header ) {
|
449 |
+
$ret .= '<tr class="crb-plain-header"><td>' . implode( '</td><td>', $header ) . '</td></tr>';
|
450 |
+
}
|
451 |
foreach ( $data as $row ) {
|
452 |
$ret .= '<tr><td>' . implode( '</td><td>', $row ) . '</td></tr>';
|
453 |
}
|
454 |
+
$ret .= '</table></div>';
|
455 |
|
456 |
return $ret;
|
457 |
}
|
470 |
|
471 |
$ret = array();
|
472 |
|
473 |
+
$db_info = array();
|
474 |
+
|
475 |
+
$db_info[] = array( 'Database name', DB_NAME );
|
476 |
|
477 |
$var = crb_get_mysql_var( 'innodb_buffer_pool_size' );
|
478 |
$pool_size = round( $var / 1048576 );
|
479 |
+
$inno = $pool_size . ' MB';
|
480 |
if ( $pool_size < 16 ) {
|
481 |
$inno .= ' Your pool size is extremely small!';
|
482 |
}
|
483 |
elseif ( $pool_size < 64 ) {
|
484 |
$inno .= ' It seems your pool size is too small.';
|
485 |
}
|
486 |
+
$db_info[] = array( 'InnoDB buffer pool size', $inno );
|
487 |
|
488 |
$var = crb_get_mysql_var( 'max_allowed_packet' );
|
489 |
+
$db_info[] = array( 'Max allowed packet size', round( $var / 1048576 ) . ' MB' );
|
490 |
+
|
491 |
+
$db_info[] = array( 'Charset', $wpdb->charset );
|
492 |
+
$db_info[] = array( 'Collate', $wpdb->collate );
|
493 |
|
494 |
+
$ret[] = cerber_make_plain_table($db_info);
|
|
|
495 |
|
496 |
$ret[] = cerber_table_info( CERBER_LOG_TABLE );
|
497 |
$ret[] = cerber_table_info( CERBER_ACL_TABLE );
|
525 |
}
|
526 |
$cols = $wpdb->get_results( "SHOW FULL COLUMNS FROM " . $table );
|
527 |
|
528 |
+
$tb = array();
|
529 |
+
//$columns = '<table><tr><th style="width: 30%">Field</th><th style="width: 30%">Type</th><th style="width: 30%">Collation</th></tr>';
|
530 |
foreach ( $cols as $column ) {
|
531 |
$column = obj_to_arr_deep( $column );
|
532 |
$field = array_shift( $column );
|
533 |
$type = array_shift( $column );
|
534 |
$collation = array_shift( $column );
|
535 |
+
$tb[] = array( $field, $type, $collation );
|
536 |
+
|
537 |
+
//$columns .= '<tr><td><b>' . $field . '</b></td><td>' . $type . '</td><td>' . $collation . '</td></tr>';
|
538 |
}
|
539 |
+
//$columns .= '</table>';
|
540 |
+
|
541 |
+
$columns = cerber_make_plain_table( $tb, array( 'Field', 'Type', 'Collation' ) );
|
542 |
|
543 |
$rows = absint( cerber_db_get_var( 'SELECT COUNT(*) FROM ' . $table ) );
|
544 |
|
545 |
$sts = $wpdb->get_row( 'SHOW TABLE STATUS WHERE NAME = "' . $table .'"');
|
546 |
+
$tb = array();
|
547 |
foreach ( $sts as $key => $value ) {
|
548 |
+
$tb[] = array( $key, $value );
|
549 |
}
|
550 |
+
$status = cerber_make_plain_table( $tb, null, true );
|
551 |
|
552 |
$truncate = '';
|
553 |
if ($rows) {
|
cerber-users.php
CHANGED
@@ -267,7 +267,7 @@ function crb_admin_show_role_policies() {
|
|
267 |
$tabs_config[ $role_id ] = array(
|
268 |
'title' => $name,
|
269 |
//'desc' => $info,
|
270 |
-
'content' => crb_admin_role_form( $role_id, $policies
|
271 |
);
|
272 |
}
|
273 |
|
267 |
$tabs_config[ $role_id ] = array(
|
268 |
'title' => $name,
|
269 |
//'desc' => $info,
|
270 |
+
'content' => crb_admin_role_form( $role_id, crb_array_get( $policies, $role_id ) ),
|
271 |
);
|
272 |
}
|
273 |
|
changelog.txt
CHANGED
@@ -1,3 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
= 8.4 =
|
2 |
* New: More flexible role-based GEO access policies.
|
3 |
* New: A logged in users' sessions manager.
|
1 |
+
= 8.5 =
|
2 |
+
* New: Data Shield module for advanced protection of user data and vital settings in the website database. Available in the PRO version.
|
3 |
+
* Improvement: Compatibility with WooCommerce significantly improved.
|
4 |
+
* Update: Strict filtering for the Custom login URL setting.
|
5 |
+
* Update: Chinese (Taiwan) translation has been added. Thanks to Sid Lo.
|
6 |
+
* Bug fixed: Custom login URL doesn't work after updating WordPress to 5.2.3.
|
7 |
+
* Bug fixed: User Policies tabs are not switchable if a user role was declared with a hyphen instead of the underscore.
|
8 |
+
* Bug fixed: A PHP warning while adding a network to the Black IP Access List from the Activity tab.
|
9 |
+
* Bug fixed: An anti-spam false positive: some WordPress DB updates can't be completed.
|
10 |
+
* [Read more](https://wpcerber.com/wp-cerber-security-8-5/)
|
11 |
+
|
12 |
= 8.4 =
|
13 |
* New: More flexible role-based GEO access policies.
|
14 |
* New: A logged in users' sessions manager.
|
common.php
CHANGED
@@ -74,6 +74,9 @@ function cerber_admin_link( $tab = '', $args = array(), $add_nonce = false ) {
|
|
74 |
elseif ( in_array( $tab, array( 'traffic', 'ti_settings' ) ) ) {
|
75 |
$page = 'cerber-traffic';
|
76 |
}
|
|
|
|
|
|
|
77 |
elseif ( in_array( $tab, array( 'geo' ) ) ) {
|
78 |
$page = 'cerber-rules';
|
79 |
}
|
@@ -389,6 +392,12 @@ function cerber_check_environment(){
|
|
389 |
cerber_admin_notice('Warning: Traffic Inspector is disabled');
|
390 |
}
|
391 |
|
|
|
|
|
|
|
|
|
|
|
|
|
392 |
$ex_list = get_loaded_extensions();
|
393 |
|
394 |
if ( ! in_array( 'curl', $ex_list ) ) {
|
@@ -697,6 +706,28 @@ function crb_array_get( &$arr, $key, $default = false, $pattern = '' ) {
|
|
697 |
return array_filter( $ret );
|
698 |
}
|
699 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
700 |
/**
|
701 |
* Return true if a REST API URL has been requested
|
702 |
*
|
@@ -1028,6 +1059,14 @@ function cerber_is_rest_permitted() {
|
|
1028 |
return false;
|
1029 |
}
|
1030 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1031 |
function cerber_user_has_role( $roles = array(), $user_id = null ) {
|
1032 |
if ( ! $user_id ) {
|
1033 |
$user = wp_get_current_user();
|
@@ -1035,9 +1074,15 @@ function cerber_user_has_role( $roles = array(), $user_id = null ) {
|
|
1035 |
else {
|
1036 |
$user = get_userdata( $user_id );
|
1037 |
}
|
|
|
1038 |
if ( ! $user || empty( $user->roles ) ) {
|
1039 |
return false;
|
1040 |
}
|
|
|
|
|
|
|
|
|
|
|
1041 |
if ( array_intersect( $user->roles, $roles ) ) {
|
1042 |
return true;
|
1043 |
}
|
@@ -1045,6 +1090,28 @@ function cerber_user_has_role( $roles = array(), $user_id = null ) {
|
|
1045 |
return false;
|
1046 |
}
|
1047 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1048 |
function crb_get_rest_path() {
|
1049 |
static $ret;
|
1050 |
if ( isset( $ret ) ) {
|
@@ -1075,7 +1142,8 @@ function crb_get_rest_url() {
|
|
1075 |
}
|
1076 |
|
1077 |
function crb_is_user_blocked( $uid ) {
|
1078 |
-
if (
|
|
|
1079 |
&& ! empty( $m['blocked'] )
|
1080 |
&& $m[ 'u' . $uid ] == $uid ) {
|
1081 |
return $m;
|
@@ -1145,33 +1213,32 @@ function cerber_get_uri_script() {
|
|
1145 |
* @return bool|string An extension if it's found, false otherwise
|
1146 |
*/
|
1147 |
function cerber_detect_exec_extension( $line, $extra = array() ) {
|
1148 |
-
$executable = array( 'php', 'phtm', 'phtml', 'phps', 'shtm', 'shtml', 'jsp', 'asp', 'aspx', 'exe', 'com', 'cgi', 'pl', 'py', 'pyc', 'pyo' );
|
1149 |
|
1150 |
-
if ( empty( $line ) ) {
|
1151 |
return false;
|
1152 |
}
|
1153 |
|
1154 |
if ( $extra ) {
|
1155 |
-
$
|
|
|
|
|
|
|
1156 |
}
|
1157 |
|
1158 |
$line = trim( $line );
|
1159 |
$line = trim( $line, '/' );
|
1160 |
|
1161 |
-
|
1162 |
-
|
1163 |
-
}
|
1164 |
-
|
1165 |
-
$parts = explode('.', $line);
|
1166 |
-
array_shift($parts);
|
1167 |
|
1168 |
// First and last are critical for most server environments
|
1169 |
-
$first_ext = array_shift($parts);
|
1170 |
-
$last_ext
|
1171 |
|
1172 |
if ( $first_ext ) {
|
1173 |
$first_ext = strtolower( $first_ext );
|
1174 |
-
if ( in_array( $first_ext, $
|
1175 |
return $first_ext;
|
1176 |
}
|
1177 |
if ( preg_match( '/php\d+/', $first_ext ) ) {
|
@@ -1181,7 +1248,7 @@ function cerber_detect_exec_extension( $line, $extra = array() ) {
|
|
1181 |
|
1182 |
if ( $last_ext ) {
|
1183 |
$last_ext = strtolower( $last_ext );
|
1184 |
-
if ( in_array( $last_ext, $
|
1185 |
return $last_ext;
|
1186 |
}
|
1187 |
if ( preg_match( '/php\d+/', $last_ext ) ) {
|
@@ -1272,6 +1339,10 @@ function cerber_get_labels( $type = 'activity', $all = true ) {
|
|
1272 |
|
1273 |
$labels[70] = __( 'Request to REST API denied', 'wp-cerber' );
|
1274 |
$labels[71] = __( 'XML-RPC request denied', 'wp-cerber' );
|
|
|
|
|
|
|
|
|
1275 |
|
1276 |
$labels[100] = __( 'Malicious request denied', 'wp-cerber' );
|
1277 |
|
@@ -1309,6 +1380,11 @@ function cerber_get_labels( $type = 'activity', $all = true ) {
|
|
1309 |
|
1310 |
$labels[30] = 'Username is prohibited';
|
1311 |
$labels[31] = __( 'Email address is not permitted', 'wp-cerber' );
|
|
|
|
|
|
|
|
|
|
|
1312 |
}
|
1313 |
|
1314 |
return $labels;
|
@@ -1319,7 +1395,7 @@ function crb_get_activity_set( $slice = 'malicious' ) {
|
|
1319 |
case 'malicious':
|
1320 |
return array( 10, 11, 16, 17, 40, 50, 51, 52, 53, 54, 55, 56, 100 );
|
1321 |
case 'suspicious':
|
1322 |
-
return array( 10, 11, 16, 17, 20, 40, 50, 51, 52, 53, 54, 55, 56, 100, 70, 71, 300 );
|
1323 |
case 'black':
|
1324 |
return array( 16, 17, 40, 50, 51, 52, 55, 56, 100, 300 );
|
1325 |
case 'dashboard':
|
@@ -1851,20 +1927,30 @@ function cerber_db_use_mysqli() {
|
|
1851 |
* Natively escape a string for use in an SQL statement
|
1852 |
* The reason: https://make.wordpress.org/core/2017/10/31/changed-behaviour-of-esc_sql-in-wordpress-4-8-3/
|
1853 |
*
|
1854 |
-
* @param $
|
1855 |
*
|
1856 |
* @return string
|
1857 |
* @since 6.0
|
1858 |
*/
|
1859 |
-
function cerber_real_escape( $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1860 |
|
1861 |
$db = cerber_get_db();
|
1862 |
|
1863 |
if ( cerber_db_use_mysqli() ) {
|
1864 |
-
$escaped = mysqli_real_escape_string( $db->dbh, $
|
1865 |
}
|
1866 |
else {
|
1867 |
-
$escaped = mysql_real_escape_string( $
|
1868 |
}
|
1869 |
|
1870 |
return $escaped;
|
@@ -2140,6 +2226,10 @@ function crb_get_mysql_var( $var ) {
|
|
2140 |
* @return bool|array
|
2141 |
*/
|
2142 |
function cerber_get_set( $key, $id = null, $unserialize = true ) {
|
|
|
|
|
|
|
|
|
2143 |
$key = preg_replace( '/[^a-z_\-\d]/i', '', $key );
|
2144 |
|
2145 |
$and = '';
|
@@ -2184,6 +2274,10 @@ function cerber_get_set( $key, $id = null, $unserialize = true ) {
|
|
2184 |
*/
|
2185 |
function cerber_update_set( $key, $value, $id = null, $serialize = true, $expires = null ) {
|
2186 |
|
|
|
|
|
|
|
|
|
2187 |
$key = preg_replace( '/[^a-z_\-\d]/i', '', $key );
|
2188 |
|
2189 |
$id = ( $id !== null ) ? absint( $id ) : 0;
|
@@ -2728,6 +2822,37 @@ function cerber_is_base64_encoded( $val ) {
|
|
2728 |
return false;
|
2729 |
}
|
2730 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2731 |
function cerber_get_html_label( $iid ) {
|
2732 |
$css['scan-ilabel'] = '
|
2733 |
color: #fff;
|
@@ -2749,20 +2874,25 @@ function cerber_get_html_label( $iid ) {
|
|
2749 |
|
2750 |
}
|
2751 |
|
2752 |
-
|
2753 |
-
|
2754 |
-
|
2755 |
-
|
2756 |
-
|
2757 |
-
|
2758 |
-
|
2759 |
-
}
|
2760 |
-
}
|
2761 |
|
2762 |
-
|
|
|
|
|
|
|
|
|
2763 |
}
|
|
|
|
|
2764 |
}
|
2765 |
|
|
|
2766 |
/**
|
2767 |
* Write message to the diagnostic log
|
2768 |
*
|
74 |
elseif ( in_array( $tab, array( 'traffic', 'ti_settings' ) ) ) {
|
75 |
$page = 'cerber-traffic';
|
76 |
}
|
77 |
+
elseif ( in_array( $tab, array( 'user_shield', 'opt_shield' ) ) ) {
|
78 |
+
$page = 'cerber-shield';
|
79 |
+
}
|
80 |
elseif ( in_array( $tab, array( 'geo' ) ) ) {
|
81 |
$page = 'cerber-rules';
|
82 |
}
|
392 |
cerber_admin_notice('Warning: Traffic Inspector is disabled');
|
393 |
}
|
394 |
|
395 |
+
if ( cerber_is_admin_page( false, array( 'page' => 'cerber-shield' ) ) ) {
|
396 |
+
if ( CRB_DS::check_errors( $msg ) ) {
|
397 |
+
cerber_admin_notice( $msg );
|
398 |
+
}
|
399 |
+
}
|
400 |
+
|
401 |
$ex_list = get_loaded_extensions();
|
402 |
|
403 |
if ( ! in_array( 'curl', $ex_list ) ) {
|
706 |
return array_filter( $ret );
|
707 |
}
|
708 |
|
709 |
+
/**
|
710 |
+
* Compare two arrays by using keys: check if two arrays have different set of keys
|
711 |
+
*
|
712 |
+
* @param $arr1 array
|
713 |
+
* @param $arr2 array
|
714 |
+
*
|
715 |
+
* @return bool true if arrays have different set of keys
|
716 |
+
*/
|
717 |
+
function crb_array_diff_keys( &$arr1, &$arr2 ) {
|
718 |
+
if ( count( $arr1 ) != count( $arr2 ) ) {
|
719 |
+
return true;
|
720 |
+
}
|
721 |
+
if ( array_diff_key( $arr1, $arr2 ) ) {
|
722 |
+
return true;
|
723 |
+
}
|
724 |
+
if ( array_diff_key( $arr2, $arr1 ) ) {
|
725 |
+
return true;
|
726 |
+
}
|
727 |
+
|
728 |
+
return false;
|
729 |
+
}
|
730 |
+
|
731 |
/**
|
732 |
* Return true if a REST API URL has been requested
|
733 |
*
|
1059 |
return false;
|
1060 |
}
|
1061 |
|
1062 |
+
/**
|
1063 |
+
* Check if a user has at least one role from the list
|
1064 |
+
*
|
1065 |
+
* @param array $roles
|
1066 |
+
* @param null $user_id
|
1067 |
+
*
|
1068 |
+
* @return bool
|
1069 |
+
*/
|
1070 |
function cerber_user_has_role( $roles = array(), $user_id = null ) {
|
1071 |
if ( ! $user_id ) {
|
1072 |
$user = wp_get_current_user();
|
1074 |
else {
|
1075 |
$user = get_userdata( $user_id );
|
1076 |
}
|
1077 |
+
|
1078 |
if ( ! $user || empty( $user->roles ) ) {
|
1079 |
return false;
|
1080 |
}
|
1081 |
+
|
1082 |
+
if ( ! is_array( $roles ) ) {
|
1083 |
+
$roles = array( $roles );
|
1084 |
+
}
|
1085 |
+
|
1086 |
if ( array_intersect( $user->roles, $roles ) ) {
|
1087 |
return true;
|
1088 |
}
|
1090 |
return false;
|
1091 |
}
|
1092 |
|
1093 |
+
/**
|
1094 |
+
* Check if all user roles are in the list
|
1095 |
+
*
|
1096 |
+
* @param array|string $roles
|
1097 |
+
* @param int $user_id
|
1098 |
+
*
|
1099 |
+
* @return bool false if the user has role(s) other than listed in $roles
|
1100 |
+
*/
|
1101 |
+
function crb_user_has_role_strict( $roles, $user_id ) {
|
1102 |
+
if ( ! $user_id || ! $user = get_userdata( $user_id ) ) {
|
1103 |
+
return false;
|
1104 |
+
}
|
1105 |
+
|
1106 |
+
if ( ! is_array( $roles ) ) {
|
1107 |
+
$roles = array( $roles );
|
1108 |
+
}
|
1109 |
+
|
1110 |
+
$user_roles = ( is_array( $user->roles ) ) ? $user->roles : array();
|
1111 |
+
|
1112 |
+
return ( ! array_diff( $user_roles, $roles ) );
|
1113 |
+
}
|
1114 |
+
|
1115 |
function crb_get_rest_path() {
|
1116 |
static $ret;
|
1117 |
if ( isset( $ret ) ) {
|
1142 |
}
|
1143 |
|
1144 |
function crb_is_user_blocked( $uid ) {
|
1145 |
+
if ( $uid
|
1146 |
+
&& ( $m = get_user_meta( $uid, CERBER_BUKEY, 1 ) )
|
1147 |
&& ! empty( $m['blocked'] )
|
1148 |
&& $m[ 'u' . $uid ] == $uid ) {
|
1149 |
return $m;
|
1213 |
* @return bool|string An extension if it's found, false otherwise
|
1214 |
*/
|
1215 |
function cerber_detect_exec_extension( $line, $extra = array() ) {
|
1216 |
+
static $executable = array( 'php', 'phtm', 'phtml', 'phps', 'shtm', 'shtml', 'jsp', 'asp', 'aspx', 'exe', 'com', 'cgi', 'pl', 'py', 'pyc', 'pyo' );
|
1217 |
|
1218 |
+
if ( empty( $line ) || ! strrpos( $line, '.' ) ) {
|
1219 |
return false;
|
1220 |
}
|
1221 |
|
1222 |
if ( $extra ) {
|
1223 |
+
$ex_list = array_merge( $executable, $extra );
|
1224 |
+
}
|
1225 |
+
else {
|
1226 |
+
$ex_list = $executable;
|
1227 |
}
|
1228 |
|
1229 |
$line = trim( $line );
|
1230 |
$line = trim( $line, '/' );
|
1231 |
|
1232 |
+
$parts = explode( '.', $line );
|
1233 |
+
array_shift( $parts );
|
|
|
|
|
|
|
|
|
1234 |
|
1235 |
// First and last are critical for most server environments
|
1236 |
+
$first_ext = array_shift( $parts );
|
1237 |
+
$last_ext = array_pop( $parts );
|
1238 |
|
1239 |
if ( $first_ext ) {
|
1240 |
$first_ext = strtolower( $first_ext );
|
1241 |
+
if ( in_array( $first_ext, $ex_list ) ) {
|
1242 |
return $first_ext;
|
1243 |
}
|
1244 |
if ( preg_match( '/php\d+/', $first_ext ) ) {
|
1248 |
|
1249 |
if ( $last_ext ) {
|
1250 |
$last_ext = strtolower( $last_ext );
|
1251 |
+
if ( in_array( $last_ext, $ex_list ) ) {
|
1252 |
return $last_ext;
|
1253 |
}
|
1254 |
if ( preg_match( '/php\d+/', $last_ext ) ) {
|
1339 |
|
1340 |
$labels[70] = __( 'Request to REST API denied', 'wp-cerber' );
|
1341 |
$labels[71] = __( 'XML-RPC request denied', 'wp-cerber' );
|
1342 |
+
$labels[72] = __( 'User creation denied', 'wp-cerber' );
|
1343 |
+
$labels[73] = __( 'User update denied', 'wp-cerber' );
|
1344 |
+
$labels[74] = __( 'Role update denied', 'wp-cerber' );
|
1345 |
+
$labels[75] = __( 'Setting update denied', 'wp-cerber' );
|
1346 |
|
1347 |
$labels[100] = __( 'Malicious request denied', 'wp-cerber' );
|
1348 |
|
1380 |
|
1381 |
$labels[30] = 'Username is prohibited';
|
1382 |
$labels[31] = __( 'Email address is not permitted', 'wp-cerber' );
|
1383 |
+
$labels[32] = 'User role is prohibited';
|
1384 |
+
$labels[33] = __( 'Permission denied', 'wp-cerber' );
|
1385 |
+
$labels[34] = 'Unauthorized access denied';
|
1386 |
+
$labels[35] = __( 'Invalid user', 'wp-cerber' );
|
1387 |
+
$labels[36] = __( 'Incorrect password', 'wp-cerber' );
|
1388 |
}
|
1389 |
|
1390 |
return $labels;
|
1395 |
case 'malicious':
|
1396 |
return array( 10, 11, 16, 17, 40, 50, 51, 52, 53, 54, 55, 56, 100 );
|
1397 |
case 'suspicious':
|
1398 |
+
return array( 10, 11, 16, 17, 20, 40, 50, 51, 52, 53, 54, 55, 56, 100, 70, 71, 72, 300 );
|
1399 |
case 'black':
|
1400 |
return array( 16, 17, 40, 50, 51, 52, 55, 56, 100, 300 );
|
1401 |
case 'dashboard':
|
1927 |
* Natively escape a string for use in an SQL statement
|
1928 |
* The reason: https://make.wordpress.org/core/2017/10/31/changed-behaviour-of-esc_sql-in-wordpress-4-8-3/
|
1929 |
*
|
1930 |
+
* @param string $str
|
1931 |
*
|
1932 |
* @return string
|
1933 |
* @since 6.0
|
1934 |
*/
|
1935 |
+
function cerber_real_escape( $str ) {
|
1936 |
+
|
1937 |
+
$str = (string) $str;
|
1938 |
+
|
1939 |
+
if ( empty( $str ) ) { // @since 8.4.1
|
1940 |
+
if ( $str === '0' ) {
|
1941 |
+
return '0';
|
1942 |
+
}
|
1943 |
+
|
1944 |
+
return '';
|
1945 |
+
}
|
1946 |
|
1947 |
$db = cerber_get_db();
|
1948 |
|
1949 |
if ( cerber_db_use_mysqli() ) {
|
1950 |
+
$escaped = mysqli_real_escape_string( $db->dbh, $str );
|
1951 |
}
|
1952 |
else {
|
1953 |
+
$escaped = mysql_real_escape_string( $str, $db->dbh );
|
1954 |
}
|
1955 |
|
1956 |
return $escaped;
|
2226 |
* @return bool|array
|
2227 |
*/
|
2228 |
function cerber_get_set( $key, $id = null, $unserialize = true ) {
|
2229 |
+
if ( ! $key ) {
|
2230 |
+
return false;
|
2231 |
+
}
|
2232 |
+
|
2233 |
$key = preg_replace( '/[^a-z_\-\d]/i', '', $key );
|
2234 |
|
2235 |
$and = '';
|
2274 |
*/
|
2275 |
function cerber_update_set( $key, $value, $id = null, $serialize = true, $expires = null ) {
|
2276 |
|
2277 |
+
if ( ! $key ) {
|
2278 |
+
return false;
|
2279 |
+
}
|
2280 |
+
|
2281 |
$key = preg_replace( '/[^a-z_\-\d]/i', '', $key );
|
2282 |
|
2283 |
$id = ( $id !== null ) ? absint( $id ) : 0;
|
2822 |
return false;
|
2823 |
}
|
2824 |
|
2825 |
+
function crb_is_alphanumeric( $str ) {
|
2826 |
+
return ! preg_match( '/[^\w\-]/', $str );
|
2827 |
+
}
|
2828 |
+
|
2829 |
+
/**
|
2830 |
+
* @param array $arr
|
2831 |
+
* @param array $fields
|
2832 |
+
*
|
2833 |
+
* @return bool
|
2834 |
+
*/
|
2835 |
+
function crb_arrays_similar( &$arr, $fields ) {
|
2836 |
+
if ( crb_array_diff_keys( $arr, $fields ) ) {
|
2837 |
+
return false;
|
2838 |
+
}
|
2839 |
+
|
2840 |
+
foreach ( $fields as $field => $pattern ) {
|
2841 |
+
if ( is_callable( $pattern ) ) {
|
2842 |
+
if ( ! call_user_func( $pattern, $arr[ $field ] ) ) {
|
2843 |
+
return false;
|
2844 |
+
}
|
2845 |
+
}
|
2846 |
+
else {
|
2847 |
+
if ( ! preg_match( $pattern, $arr[ $field ] ) ) {
|
2848 |
+
return false;
|
2849 |
+
}
|
2850 |
+
}
|
2851 |
+
}
|
2852 |
+
|
2853 |
+
return true;
|
2854 |
+
}
|
2855 |
+
|
2856 |
function cerber_get_html_label( $iid ) {
|
2857 |
$css['scan-ilabel'] = '
|
2858 |
color: #fff;
|
2874 |
|
2875 |
}
|
2876 |
|
2877 |
+
function crb_getallheaders() {
|
2878 |
+
|
2879 |
+
if ( function_exists( 'getallheaders' ) ) {
|
2880 |
+
return getallheaders();
|
2881 |
+
}
|
2882 |
+
|
2883 |
+
// @since v. 7.7 for PHP-FPM
|
|
|
|
|
2884 |
|
2885 |
+
$headers = array();
|
2886 |
+
foreach ( $_SERVER as $name => $value ) {
|
2887 |
+
if ( substr( $name, 0, 5 ) == 'HTTP_' ) {
|
2888 |
+
$headers[ str_replace( ' ', '-', ucwords( strtolower( str_replace( '_', ' ', substr( $name, 5 ) ) ) ) ) ] = $value;
|
2889 |
+
}
|
2890 |
}
|
2891 |
+
|
2892 |
+
return $headers;
|
2893 |
}
|
2894 |
|
2895 |
+
|
2896 |
/**
|
2897 |
* Write message to the diagnostic log
|
2898 |
*
|
dashboard.php
CHANGED
@@ -57,6 +57,7 @@ function cerber_admin_menu() {
|
|
57 |
add_action( 'load-' . $hook, 'crb_admin_screen_options' );
|
58 |
|
59 |
if ( lab_lab() ) {
|
|
|
60 |
add_submenu_page( 'cerber-security', __( 'Cerber Security Rules', 'wp-cerber' ), __( 'Security Rules', 'wp-cerber' ), 'manage_options', 'cerber-rules', 'cerber_render_admin_page' );
|
61 |
}
|
62 |
|
@@ -2768,7 +2769,7 @@ function cerber_admin_head() {
|
|
2768 |
#crb-activity td.acinfo div {
|
2769 |
padding: 0.1em 0 0.1em 0.7em;
|
2770 |
}
|
2771 |
-
.crb12, .crb16, .crb17, .crb18, .crb19, .crb41, .crb42, .crb50, .crb51, .crb52, .crb53, .crb54, .crb55, .crb56, .crb70, .crb71, .crb100 {
|
2772 |
/*border-left: 4px solid #FF5733;*/
|
2773 |
/*font-weight: bold;*/
|
2774 |
border-left: 0.4em solid #FF5733;
|
@@ -3101,6 +3102,7 @@ function crb_admin_show_vtabs( $tabs_config, $submit = '', $hidden = array(), $f
|
|
3101 |
$callbacks = array();
|
3102 |
|
3103 |
foreach ( $tabs_config as $tab_id => $tab ) {
|
|
|
3104 |
$tablinks .= '<div class="tablinks ' . $b_class . '" data-tab-id="' . $tab_id . '">' . $tab['title'] . '<br/><span>' . crb_array_get( $tab, 'desc', '' ) . '</span></div>';
|
3105 |
$tabs .= '<div id="tab-' . $tab_id . '" class="vtabcontent" ' . $t_style . '>' . $tab['content'] . '</div>';
|
3106 |
if ( $b_class ) {
|
@@ -4538,6 +4540,16 @@ function cerber_get_admin_page_config( $page = '' ) {
|
|
4538 |
}
|
4539 |
}
|
4540 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4541 |
'cerber-users' => array(
|
4542 |
'title' => __( 'User Policies', 'wp-cerber' ),
|
4543 |
'tabs' => array(
|
57 |
add_action( 'load-' . $hook, 'crb_admin_screen_options' );
|
58 |
|
59 |
if ( lab_lab() ) {
|
60 |
+
add_submenu_page( 'cerber-security', __( 'Cerber Data Shield Policies', 'wp-cerber' ), __( 'Data Shield', 'wp-cerber' ), 'manage_options', 'cerber-shield', 'cerber_render_admin_page' );
|
61 |
add_submenu_page( 'cerber-security', __( 'Cerber Security Rules', 'wp-cerber' ), __( 'Security Rules', 'wp-cerber' ), 'manage_options', 'cerber-rules', 'cerber_render_admin_page' );
|
62 |
}
|
63 |
|
2769 |
#crb-activity td.acinfo div {
|
2770 |
padding: 0.1em 0 0.1em 0.7em;
|
2771 |
}
|
2772 |
+
.crb12, .crb16, .crb17, .crb18, .crb19, .crb41, .crb42, .crb50, .crb51, .crb52, .crb53, .crb54, .crb55, .crb56, .crb70, .crb71, .crb72, .crb100 {
|
2773 |
/*border-left: 4px solid #FF5733;*/
|
2774 |
/*font-weight: bold;*/
|
2775 |
border-left: 0.4em solid #FF5733;
|
3102 |
$callbacks = array();
|
3103 |
|
3104 |
foreach ( $tabs_config as $tab_id => $tab ) {
|
3105 |
+
$tab_id = str_replace( '-', '_', $tab_id );
|
3106 |
$tablinks .= '<div class="tablinks ' . $b_class . '" data-tab-id="' . $tab_id . '">' . $tab['title'] . '<br/><span>' . crb_array_get( $tab, 'desc', '' ) . '</span></div>';
|
3107 |
$tabs .= '<div id="tab-' . $tab_id . '" class="vtabcontent" ' . $t_style . '>' . $tab['content'] . '</div>';
|
3108 |
if ( $b_class ) {
|
4540 |
}
|
4541 |
}
|
4542 |
),
|
4543 |
+
'cerber-shield' => array(
|
4544 |
+
'title' => __( 'Data Shield Policies', 'wp-cerber' ),
|
4545 |
+
'tabs' => array(
|
4546 |
+
'user_shield' => array( 'bx-group', __( 'Accounts & Roles', 'wp-cerber' ) ),
|
4547 |
+
'opt_shield' => array( 'bx-slider', __( 'Site Settings', 'wp-cerber' ) ),
|
4548 |
+
),
|
4549 |
+
'callback' => function ( $tab ) {
|
4550 |
+
cerber_show_settings_form( $tab );
|
4551 |
+
}
|
4552 |
+
),
|
4553 |
'cerber-users' => array(
|
4554 |
'title' => __( 'User Policies', 'wp-cerber' ),
|
4555 |
'tabs' => array(
|
languages/wp-cerber-fr_CA.mo
CHANGED
Binary file
|
languages/wp-cerber-fr_CA.po
CHANGED
@@ -58,7 +58,7 @@ msgstr "URL de connexion personnalisée"
|
|
58 |
|
59 |
#: ../settings.php:226
|
60 |
msgid "must not overlap with the existing pages or posts slug"
|
61 |
-
msgstr "ne doit pas chevaucher l’URL d’une page ou d’un
|
62 |
|
63 |
#: ../settings.php:233
|
64 |
msgid "Disable wp-login.php"
|
@@ -133,7 +133,7 @@ msgstr "Affichage de %d derniers enregistrements sur %d"
|
|
133 |
|
134 |
#: ../common.php:1233
|
135 |
msgid "Logged in"
|
136 |
-
msgstr "
|
137 |
|
138 |
#: ../common.php:1234
|
139 |
msgid "Logged out"
|
@@ -166,7 +166,7 @@ msgstr "IP blacklistées"
|
|
166 |
|
167 |
#: ../common.php:1256
|
168 |
msgid "Password changed"
|
169 |
-
msgstr "
|
170 |
|
171 |
#: ../dashboard.php:179 ../dashboard.php:262
|
172 |
msgid "Remove"
|
@@ -758,7 +758,7 @@ msgstr "En savoir plus"
|
|
758 |
|
759 |
#: ../common.php:1231
|
760 |
msgid "User created"
|
761 |
-
msgstr "
|
762 |
|
763 |
#: ../common.php:1232
|
764 |
msgid "User registered"
|
@@ -778,7 +778,7 @@ msgstr "Tentative d’accès à une URL interdite"
|
|
778 |
|
779 |
#: ../common.php:1265 ../common.php:1338
|
780 |
msgid "Attempt to log in with prohibited username"
|
781 |
-
msgstr "
|
782 |
|
783 |
#: ../settings.php:296
|
784 |
msgid "Cerber Lab connection"
|
@@ -995,15 +995,15 @@ msgstr "Événement"
|
|
995 |
|
996 |
#: ../common.php:266
|
997 |
msgid "Spam comments denied"
|
998 |
-
msgstr "
|
999 |
|
1000 |
#: ../common.php:268
|
1001 |
msgid "Malicious IP addresses detected"
|
1002 |
-
msgstr "
|
1003 |
|
1004 |
#: ../common.php:269
|
1005 |
msgid "Lockouts occurred"
|
1006 |
-
msgstr "
|
1007 |
|
1008 |
#: ../cerber-load.php:1465 ../cerber-load.php:1471 ../cerber-load.php:1496 ..
|
1009 |
#: /cerber-load.php:1503
|
@@ -1012,7 +1012,7 @@ msgstr "Vous n'êtes pas autorisé à vous inscrire."
|
|
1012 |
|
1013 |
#: ../common.php:1242
|
1014 |
msgid "Spam comment denied"
|
1015 |
-
msgstr "
|
1016 |
|
1017 |
#: ../common.php:1267
|
1018 |
msgid "Attempt to log in denied"
|
@@ -1024,7 +1024,7 @@ msgstr "Tentative d'enregistrement refusée"
|
|
1024 |
|
1025 |
#: ../common.php:263
|
1026 |
msgid "Malicious activities mitigated"
|
1027 |
-
msgstr "
|
1028 |
|
1029 |
#: ../dashboard.php:70
|
1030 |
msgid "Cerber antispam settings"
|
@@ -1153,7 +1153,7 @@ msgstr "Vous"
|
|
1153 |
|
1154 |
#: ../common.php:267
|
1155 |
msgid "Spam form submissions denied"
|
1156 |
-
msgstr "
|
1157 |
|
1158 |
#: ../dashboard.php:2316 ../cerber-load.php:3880 ../cerber-load.php:4798
|
1159 |
msgid "Getting Started Guide"
|
@@ -1184,7 +1184,7 @@ msgstr "https://wpcerber.com"
|
|
1184 |
|
1185 |
#: ../common.php:1244
|
1186 |
msgid "Form submission denied"
|
1187 |
-
msgstr "
|
1188 |
|
1189 |
#: ../common.php:1245
|
1190 |
msgid "Comment denied"
|
@@ -1192,7 +1192,7 @@ msgstr "Commentaire refusé"
|
|
1192 |
|
1193 |
#: ../common.php:1273
|
1194 |
msgid "Request to REST API denied"
|
1195 |
-
msgstr "
|
1196 |
|
1197 |
#: ../common.php:1274
|
1198 |
msgid "XML-RPC request denied"
|
@@ -1228,7 +1228,7 @@ msgstr "Plusieurs activités suspectes ont été détectées"
|
|
1228 |
|
1229 |
#: ../settings.php:387
|
1230 |
msgid "Allow REST API for logged in users"
|
1231 |
-
msgstr "Autoriser l'REST
|
1232 |
|
1233 |
#: ../settings.php:399
|
1234 |
msgid "Specify REST API namespaces to be allowed if REST API is disabled. One string per line."
|
@@ -1344,7 +1344,7 @@ msgstr "Rapport hebdomadaire"
|
|
1344 |
|
1345 |
#: ../cerber-load.php:3898 ../cerber-load.php:3908
|
1346 |
msgid "To change reporting settings visit"
|
1347 |
-
msgstr "Pour modifier les paramètres
|
1348 |
|
1349 |
#: ../cerber-load.php:3931
|
1350 |
msgid "Your login page:"
|
@@ -2940,59 +2940,59 @@ msgstr ""
|
|
2940 |
|
2941 |
#: ../settings.php:783
|
2942 |
msgid "Automatic recovery of modified and infected files"
|
2943 |
-
msgstr ""
|
2944 |
|
2945 |
#: ../settings.php:786
|
2946 |
msgid "Recover WordPress files"
|
2947 |
-
msgstr ""
|
2948 |
|
2949 |
#: ../settings.php:790
|
2950 |
msgid "Recover plugins files"
|
2951 |
-
msgstr ""
|
2952 |
|
2953 |
#: ../cerber-scanner.php:1605
|
2954 |
msgid "File deleted"
|
2955 |
-
msgstr ""
|
2956 |
|
2957 |
#: ../cerber-scanner.php:1606
|
2958 |
msgid "File recovered"
|
2959 |
-
msgstr ""
|
2960 |
|
2961 |
#: ../cerber-scanner.php:3860
|
2962 |
msgid "Recovering WordPress files"
|
2963 |
-
msgstr ""
|
2964 |
|
2965 |
#: ../cerber-scanner.php:3862
|
2966 |
msgid "Recovering plugins files"
|
2967 |
-
msgstr ""
|
2968 |
|
2969 |
#: ../cerber-scanner.php:5353
|
2970 |
msgid "Recovered"
|
2971 |
-
msgstr ""
|
2972 |
|
2973 |
#: ../cerber-scanner.php:5403
|
2974 |
msgid "Automatically deleted"
|
2975 |
-
msgstr ""
|
2976 |
|
2977 |
#: ../cerber-scanner.php:5406
|
2978 |
msgid "Automatically recovered"
|
2979 |
-
msgstr ""
|
2980 |
|
2981 |
#: ../dashboard.php:63
|
2982 |
msgid "Cerber User Security"
|
2983 |
-
msgstr ""
|
2984 |
|
2985 |
#: ../dashboard.php:63 ../dashboard.php:4542
|
2986 |
msgid "User Policies"
|
2987 |
-
msgstr ""
|
2988 |
|
2989 |
#: ../dashboard.php:1717
|
2990 |
msgid "A new version is available"
|
2991 |
-
msgstr ""
|
2992 |
|
2993 |
#: ../dashboard.php:4544
|
2994 |
msgid "Role-based"
|
2995 |
-
msgstr ""
|
2996 |
|
2997 |
#: ../dashboard.php:4545
|
2998 |
msgid "Global"
|
@@ -3076,7 +3076,7 @@ msgstr ""
|
|
3076 |
|
3077 |
#: ../cerber-users.php:433
|
3078 |
msgid "Advanced mode"
|
3079 |
-
msgstr ""
|
3080 |
|
3081 |
#: ../cerber-users.php:437
|
3082 |
msgid "Enforce two-factor authentication if any of the following conditions is true"
|
58 |
|
59 |
#: ../settings.php:226
|
60 |
msgid "must not overlap with the existing pages or posts slug"
|
61 |
+
msgstr "ne doit pas chevaucher l’URL d’une page ou d’un contenu existant"
|
62 |
|
63 |
#: ../settings.php:233
|
64 |
msgid "Disable wp-login.php"
|
133 |
|
134 |
#: ../common.php:1233
|
135 |
msgid "Logged in"
|
136 |
+
msgstr "Connexions réussies"
|
137 |
|
138 |
#: ../common.php:1234
|
139 |
msgid "Logged out"
|
166 |
|
167 |
#: ../common.php:1256
|
168 |
msgid "Password changed"
|
169 |
+
msgstr "Changements de mot de passe"
|
170 |
|
171 |
#: ../dashboard.php:179 ../dashboard.php:262
|
172 |
msgid "Remove"
|
758 |
|
759 |
#: ../common.php:1231
|
760 |
msgid "User created"
|
761 |
+
msgstr "Utilisateurs créés"
|
762 |
|
763 |
#: ../common.php:1232
|
764 |
msgid "User registered"
|
778 |
|
779 |
#: ../common.php:1265 ../common.php:1338
|
780 |
msgid "Attempt to log in with prohibited username"
|
781 |
+
msgstr "Tentatives de connexion avec un identifiant interdit"
|
782 |
|
783 |
#: ../settings.php:296
|
784 |
msgid "Cerber Lab connection"
|
995 |
|
996 |
#: ../common.php:266
|
997 |
msgid "Spam comments denied"
|
998 |
+
msgstr "commentaires de spam refusés"
|
999 |
|
1000 |
#: ../common.php:268
|
1001 |
msgid "Malicious IP addresses detected"
|
1002 |
+
msgstr "adresses IP malveillantes détectées"
|
1003 |
|
1004 |
#: ../common.php:269
|
1005 |
msgid "Lockouts occurred"
|
1006 |
+
msgstr "visiteurs ont été bannis"
|
1007 |
|
1008 |
#: ../cerber-load.php:1465 ../cerber-load.php:1471 ../cerber-load.php:1496 ..
|
1009 |
#: /cerber-load.php:1503
|
1012 |
|
1013 |
#: ../common.php:1242
|
1014 |
msgid "Spam comment denied"
|
1015 |
+
msgstr "commentaire de spam refusé"
|
1016 |
|
1017 |
#: ../common.php:1267
|
1018 |
msgid "Attempt to log in denied"
|
1024 |
|
1025 |
#: ../common.php:263
|
1026 |
msgid "Malicious activities mitigated"
|
1027 |
+
msgstr "activités malveillantes bloquées"
|
1028 |
|
1029 |
#: ../dashboard.php:70
|
1030 |
msgid "Cerber antispam settings"
|
1153 |
|
1154 |
#: ../common.php:267
|
1155 |
msgid "Spam form submissions denied"
|
1156 |
+
msgstr "envois de spam refusés"
|
1157 |
|
1158 |
#: ../dashboard.php:2316 ../cerber-load.php:3880 ../cerber-load.php:4798
|
1159 |
msgid "Getting Started Guide"
|
1184 |
|
1185 |
#: ../common.php:1244
|
1186 |
msgid "Form submission denied"
|
1187 |
+
msgstr "envois de formulaire bloqué"
|
1188 |
|
1189 |
#: ../common.php:1245
|
1190 |
msgid "Comment denied"
|
1192 |
|
1193 |
#: ../common.php:1273
|
1194 |
msgid "Request to REST API denied"
|
1195 |
+
msgstr "Demandes d'API REST refusées"
|
1196 |
|
1197 |
#: ../common.php:1274
|
1198 |
msgid "XML-RPC request denied"
|
1228 |
|
1229 |
#: ../settings.php:387
|
1230 |
msgid "Allow REST API for logged in users"
|
1231 |
+
msgstr "Autoriser l'API REST pour les utilisateurs connectés"
|
1232 |
|
1233 |
#: ../settings.php:399
|
1234 |
msgid "Specify REST API namespaces to be allowed if REST API is disabled. One string per line."
|
1344 |
|
1345 |
#: ../cerber-load.php:3898 ../cerber-load.php:3908
|
1346 |
msgid "To change reporting settings visit"
|
1347 |
+
msgstr "Pour modifier les paramètres du rapport, visitez : "
|
1348 |
|
1349 |
#: ../cerber-load.php:3931
|
1350 |
msgid "Your login page:"
|
2940 |
|
2941 |
#: ../settings.php:783
|
2942 |
msgid "Automatic recovery of modified and infected files"
|
2943 |
+
msgstr "Rétablissement automatique des fichiers modifiés et infectés"
|
2944 |
|
2945 |
#: ../settings.php:786
|
2946 |
msgid "Recover WordPress files"
|
2947 |
+
msgstr "Rétablir les fichiers de WordPress"
|
2948 |
|
2949 |
#: ../settings.php:790
|
2950 |
msgid "Recover plugins files"
|
2951 |
+
msgstr "Rétablir les fichiers des extensions"
|
2952 |
|
2953 |
#: ../cerber-scanner.php:1605
|
2954 |
msgid "File deleted"
|
2955 |
+
msgstr "Fichier supprimé"
|
2956 |
|
2957 |
#: ../cerber-scanner.php:1606
|
2958 |
msgid "File recovered"
|
2959 |
+
msgstr "Fichier rétabli"
|
2960 |
|
2961 |
#: ../cerber-scanner.php:3860
|
2962 |
msgid "Recovering WordPress files"
|
2963 |
+
msgstr "Rétablissement des fichiers de WordPress"
|
2964 |
|
2965 |
#: ../cerber-scanner.php:3862
|
2966 |
msgid "Recovering plugins files"
|
2967 |
+
msgstr "Rétablissement des fichiers d'extensions"
|
2968 |
|
2969 |
#: ../cerber-scanner.php:5353
|
2970 |
msgid "Recovered"
|
2971 |
+
msgstr "Rétabli"
|
2972 |
|
2973 |
#: ../cerber-scanner.php:5403
|
2974 |
msgid "Automatically deleted"
|
2975 |
+
msgstr "Supprimé automatiquement"
|
2976 |
|
2977 |
#: ../cerber-scanner.php:5406
|
2978 |
msgid "Automatically recovered"
|
2979 |
+
msgstr "Rétabli automatiquement"
|
2980 |
|
2981 |
#: ../dashboard.php:63
|
2982 |
msgid "Cerber User Security"
|
2983 |
+
msgstr "Sécurité Cerber de l'utilisateur"
|
2984 |
|
2985 |
#: ../dashboard.php:63 ../dashboard.php:4542
|
2986 |
msgid "User Policies"
|
2987 |
+
msgstr "Politiques de l'utilisateur"
|
2988 |
|
2989 |
#: ../dashboard.php:1717
|
2990 |
msgid "A new version is available"
|
2991 |
+
msgstr "Une nouvelle version est disponible"
|
2992 |
|
2993 |
#: ../dashboard.php:4544
|
2994 |
msgid "Role-based"
|
2995 |
+
msgstr "Basé sur les rôles"
|
2996 |
|
2997 |
#: ../dashboard.php:4545
|
2998 |
msgid "Global"
|
3076 |
|
3077 |
#: ../cerber-users.php:433
|
3078 |
msgid "Advanced mode"
|
3079 |
+
msgstr "Mode avancé"
|
3080 |
|
3081 |
#: ../cerber-users.php:437
|
3082 |
msgid "Enforce two-factor authentication if any of the following conditions is true"
|
languages/wp-cerber-fr_FR.mo
CHANGED
Binary file
|
languages/wp-cerber-fr_FR.po
CHANGED
@@ -1024,7 +1024,7 @@ msgstr "La tentative d'enregistrement a été refusée"
|
|
1024 |
|
1025 |
#: ../common.php:263
|
1026 |
msgid "Malicious activities mitigated"
|
1027 |
-
msgstr "
|
1028 |
|
1029 |
#: ../dashboard.php:70
|
1030 |
msgid "Cerber antispam settings"
|
1024 |
|
1025 |
#: ../common.php:263
|
1026 |
msgid "Malicious activities mitigated"
|
1027 |
+
msgstr "atténuations d'activités malveillantes"
|
1028 |
|
1029 |
#: ../dashboard.php:70
|
1030 |
msgid "Cerber antispam settings"
|
languages/wp-cerber-sv_SE.mo
CHANGED
Binary file
|
languages/wp-cerber-sv_SE.po
CHANGED
@@ -2232,7 +2232,7 @@ msgstr "Use comma to separate items."
|
|
2232 |
|
2233 |
#: ../dashboard.php:4582
|
2234 |
msgid "Cleaning up"
|
2235 |
-
msgstr "
|
2236 |
|
2237 |
#: ../cerber-scanner.php:1593
|
2238 |
msgid "Malicious code found"
|
@@ -2525,7 +2525,7 @@ msgstr "Tillämpa inte denna policy på IP-adresser i den vita IP-åtkomstlistan
|
|
2525 |
|
2526 |
#: ../settings.php:428 ../settings.php:2028
|
2527 |
msgid "Only registered and logged in users are allowed to view this website"
|
2528 |
-
msgstr "Endast registrerade och inloggade användare
|
2529 |
|
2530 |
#: ../settings.php:433
|
2531 |
msgid "Redirect to URL"
|
@@ -2557,7 +2557,7 @@ msgstr "Master-inställningar"
|
|
2557 |
|
2558 |
#: ../settings.php:959
|
2559 |
msgid "Return to the website list"
|
2560 |
-
msgstr "
|
2561 |
|
2562 |
#: ../settings.php:963
|
2563 |
msgid "Show \"Switched to\" notification"
|
@@ -2928,7 +2928,7 @@ msgstr "Aviseringar för utlåsning"
|
|
2928 |
|
2929 |
#: ../settings.php:518
|
2930 |
msgid "Pushbullet access token"
|
2931 |
-
msgstr ""
|
2932 |
|
2933 |
#: ../settings.php:521
|
2934 |
msgid "Pushbullet device"
|
@@ -3020,7 +3020,7 @@ msgstr "En ny version av %s är tillgänglig. Vänligen installera den."
|
|
3020 |
|
3021 |
#: ../cerber-load.php:1490
|
3022 |
msgid "Email address is not permitted."
|
3023 |
-
msgstr "E-postadress är inte
|
3024 |
|
3025 |
#: ../cerber-load.php:1490
|
3026 |
msgid "Please choose another one."
|
@@ -3289,14 +3289,14 @@ msgstr "Avsluta"
|
|
3289 |
#: ../dashboard.php:1674
|
3290 |
msgid "user"
|
3291 |
msgid_plural "users"
|
3292 |
-
msgstr[0] ""
|
3293 |
-
msgstr[1] ""
|
3294 |
|
3295 |
#: ../settings.php:377
|
3296 |
msgid "Block access to users' data via REST API"
|
3297 |
-
msgstr ""
|
3298 |
|
3299 |
#: ../cerber-scanner.php:1604
|
3300 |
msgid "Unable to delete"
|
3301 |
-
msgstr ""
|
3302 |
|
2232 |
|
2233 |
#: ../dashboard.php:4582
|
2234 |
msgid "Cleaning up"
|
2235 |
+
msgstr "Uppstädning"
|
2236 |
|
2237 |
#: ../cerber-scanner.php:1593
|
2238 |
msgid "Malicious code found"
|
2525 |
|
2526 |
#: ../settings.php:428 ../settings.php:2028
|
2527 |
msgid "Only registered and logged in users are allowed to view this website"
|
2528 |
+
msgstr "Endast registrerade och inloggade användare har tillåtelse visa denna webbplats"
|
2529 |
|
2530 |
#: ../settings.php:433
|
2531 |
msgid "Redirect to URL"
|
2557 |
|
2558 |
#: ../settings.php:959
|
2559 |
msgid "Return to the website list"
|
2560 |
+
msgstr "Tillbaka till webbplatslistan"
|
2561 |
|
2562 |
#: ../settings.php:963
|
2563 |
msgid "Show \"Switched to\" notification"
|
2928 |
|
2929 |
#: ../settings.php:518
|
2930 |
msgid "Pushbullet access token"
|
2931 |
+
msgstr "Pushbullet åtkomst-token"
|
2932 |
|
2933 |
#: ../settings.php:521
|
2934 |
msgid "Pushbullet device"
|
3020 |
|
3021 |
#: ../cerber-load.php:1490
|
3022 |
msgid "Email address is not permitted."
|
3023 |
+
msgstr "E-postadress är inte tillåten."
|
3024 |
|
3025 |
#: ../cerber-load.php:1490
|
3026 |
msgid "Please choose another one."
|
3289 |
#: ../dashboard.php:1674
|
3290 |
msgid "user"
|
3291 |
msgid_plural "users"
|
3292 |
+
msgstr[0] "användare"
|
3293 |
+
msgstr[1] "användare"
|
3294 |
|
3295 |
#: ../settings.php:377
|
3296 |
msgid "Block access to users' data via REST API"
|
3297 |
+
msgstr "Blockera åtkomst till användarnas data via REST API"
|
3298 |
|
3299 |
#: ../cerber-scanner.php:1604
|
3300 |
msgid "Unable to delete"
|
3301 |
+
msgstr "Kan inte ta bort"
|
3302 |
|
languages/wp-cerber-zh_TW.mo
ADDED
Binary file
|
languages/wp-cerber-zh_TW.po
ADDED
@@ -0,0 +1,3299 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"MIME-Version: 1.0\n"
|
4 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
5 |
+
"Content-Transfer-Encoding: 8bit\n"
|
6 |
+
"X-Generator: POEditor.com\n"
|
7 |
+
"Project-Id-Version: WP Cerber Security\n"
|
8 |
+
"Language: zh-TW\n"
|
9 |
+
"Plural-Forms: nplurals=1; plural=0;\n"
|
10 |
+
|
11 |
+
#: ../settings.php:163
|
12 |
+
msgid "Limit login attempts"
|
13 |
+
msgstr "限制登入嘗試"
|
14 |
+
|
15 |
+
#: ../settings.php:166
|
16 |
+
msgid "Attempts"
|
17 |
+
msgstr "嘗試"
|
18 |
+
|
19 |
+
#: ../settings.php:170
|
20 |
+
msgid "Lockout duration"
|
21 |
+
msgstr "鎖定期間"
|
22 |
+
|
23 |
+
#: ../settings.php:171 ../settings.php:266
|
24 |
+
msgid "minutes"
|
25 |
+
msgstr "分鐘"
|
26 |
+
|
27 |
+
#: ../settings.php:175
|
28 |
+
msgid "Aggressive lockout"
|
29 |
+
msgstr "主動鎖定"
|
30 |
+
|
31 |
+
#: ../settings.php:243
|
32 |
+
msgid "Site connection"
|
33 |
+
msgstr "網站連線"
|
34 |
+
|
35 |
+
#: ../settings.php:186
|
36 |
+
msgid "Proactive security rules"
|
37 |
+
msgstr "主動式安全規則"
|
38 |
+
|
39 |
+
#: ../settings.php:190
|
40 |
+
msgid "Block subnet"
|
41 |
+
msgstr "封鎖子網路"
|
42 |
+
|
43 |
+
#: ../settings.php:205
|
44 |
+
msgid "Request wp-login.php"
|
45 |
+
msgstr "對 wp-login.php發出請求"
|
46 |
+
|
47 |
+
#: ../settings.php:206
|
48 |
+
msgid "Immediately block IP after any request to wp-login.php"
|
49 |
+
msgstr "立即封鎖任何發送請求 wp-login.php的 IP"
|
50 |
+
|
51 |
+
#: ../settings.php:221
|
52 |
+
msgid "Custom login page"
|
53 |
+
msgstr "自訂登入頁面"
|
54 |
+
|
55 |
+
#: ../settings.php:225
|
56 |
+
msgid "Custom login URL"
|
57 |
+
msgstr "自訂登入網址"
|
58 |
+
|
59 |
+
#: ../settings.php:226
|
60 |
+
msgid "must not overlap with the existing pages or posts slug"
|
61 |
+
msgstr "不能與現存的頁面或文章代稱重疊"
|
62 |
+
|
63 |
+
#: ../settings.php:233
|
64 |
+
msgid "Disable wp-login.php"
|
65 |
+
msgstr "停用 wp-login.php"
|
66 |
+
|
67 |
+
#: ../settings.php:234
|
68 |
+
msgid "Block direct access to wp-login.php and return HTTP 404 Not Found Error"
|
69 |
+
msgstr "封鎖直接存取 wp-login.php 並顯示 HTTP 404 錯誤"
|
70 |
+
|
71 |
+
#: ../dashboard.php:1678 ../settings.php:257
|
72 |
+
msgid "Citadel mode"
|
73 |
+
msgstr "堡壘模式"
|
74 |
+
|
75 |
+
#: ../settings.php:261
|
76 |
+
msgid "Threshold"
|
77 |
+
msgstr "門檻"
|
78 |
+
|
79 |
+
#: ../settings.php:265 ../cerber-scanner.php:3948
|
80 |
+
msgid "Duration"
|
81 |
+
msgstr "期間"
|
82 |
+
|
83 |
+
#: ../dashboard.php:4468 ../cerber-load.php:4811 ../settings.php:270
|
84 |
+
msgid "Notifications"
|
85 |
+
msgstr "通知"
|
86 |
+
|
87 |
+
#: ../settings.php:272
|
88 |
+
msgid "Send notification to admin email"
|
89 |
+
msgstr "傳送通知至管理員郵件"
|
90 |
+
|
91 |
+
#: ../dashboard.php:4465 ../cerber-load.php:4808 ../cerber-tools.php:38 ../cerber-
|
92 |
+
#: tools.php:47 ../cerber-tools.php:139
|
93 |
+
msgid "Access Lists"
|
94 |
+
msgstr "存取清單"
|
95 |
+
|
96 |
+
#: ../dashboard.php:1712 ../dashboard.php:2263 ../dashboard.php:4461 ../cerber-
|
97 |
+
#: load.php:4503 ../cerber-users.php:922 ../settings.php:282
|
98 |
+
msgid "Activity"
|
99 |
+
msgstr "活動"
|
100 |
+
|
101 |
+
#: ../dashboard.php:4463
|
102 |
+
msgid "Lockouts"
|
103 |
+
msgstr "鎖定"
|
104 |
+
|
105 |
+
#: ../settings.php:1284
|
106 |
+
msgid "%s allowed retries in %s minutes"
|
107 |
+
msgstr "允許 %s次重試於 %s分鐘內"
|
108 |
+
|
109 |
+
#: ../settings.php:1310
|
110 |
+
msgid "Enable after %s failed login attempts in last %s minutes"
|
111 |
+
msgstr "於 %s次嘗試登入失敗後的 %s分鐘內啟用"
|
112 |
+
|
113 |
+
#: ../dashboard.php:184 ../cerber-load.php:4512
|
114 |
+
msgid "IP"
|
115 |
+
msgstr "IP"
|
116 |
+
|
117 |
+
#: ../dashboard.php:805 ../dashboard.php:1074 ../dashboard.php:3527 ../dashboard.
|
118 |
+
#: php:3902
|
119 |
+
msgid "Date"
|
120 |
+
msgstr "日期"
|
121 |
+
|
122 |
+
#: ../dashboard.php:808 ../dashboard.php:1076 ../dashboard.php:3907
|
123 |
+
msgid "Local User"
|
124 |
+
msgstr "本機使用者"
|
125 |
+
|
126 |
+
#: ../cerber-load.php:4520
|
127 |
+
msgid "Username used"
|
128 |
+
msgstr "使用的帳號"
|
129 |
+
|
130 |
+
#: ../dashboard.php:205
|
131 |
+
msgid "Showing last %d records from %d"
|
132 |
+
msgstr "顯示上次 %d 記錄自 %d"
|
133 |
+
|
134 |
+
#: ../common.php:1233
|
135 |
+
msgid "Logged in"
|
136 |
+
msgstr "登入"
|
137 |
+
|
138 |
+
#: ../common.php:1234
|
139 |
+
msgid "Logged out"
|
140 |
+
msgstr "登出"
|
141 |
+
|
142 |
+
#: ../common.php:1235
|
143 |
+
msgid "Login failed"
|
144 |
+
msgstr "登入失敗"
|
145 |
+
|
146 |
+
#: ../dashboard.php:905 ../common.php:1238
|
147 |
+
msgid "IP blocked"
|
148 |
+
msgstr "已封鎖的 IP"
|
149 |
+
|
150 |
+
#: ../common.php:1239
|
151 |
+
msgid "Subnet blocked"
|
152 |
+
msgstr "已封鎖的子網路"
|
153 |
+
|
154 |
+
#: ../common.php:1241
|
155 |
+
msgid "Citadel activated!"
|
156 |
+
msgstr "已啟用堡壘模式!"
|
157 |
+
|
158 |
+
#: ../dashboard.php:1295 ../dashboard.php:1331 ../dashboard.php:3701 ../common.
|
159 |
+
#: php:1291
|
160 |
+
msgid "Locked out"
|
161 |
+
msgstr "已鎖定"
|
162 |
+
|
163 |
+
#: ../common.php:1293
|
164 |
+
msgid "IP blacklisted"
|
165 |
+
msgstr "黑名單的 IP"
|
166 |
+
|
167 |
+
#: ../common.php:1256
|
168 |
+
msgid "Password changed"
|
169 |
+
msgstr "已變更密碼"
|
170 |
+
|
171 |
+
#: ../dashboard.php:179 ../dashboard.php:262
|
172 |
+
msgid "Remove"
|
173 |
+
msgstr "移除"
|
174 |
+
|
175 |
+
#: ../dashboard.php:546
|
176 |
+
msgid "Lockout for %s was removed"
|
177 |
+
msgstr "已移除對 %s的鎖定"
|
178 |
+
|
179 |
+
#: ../dashboard.php:234 ../dashboard.php:1287 ../dashboard.php:1324 ../dashboard.
|
180 |
+
#: php:1676 ../dashboard.php:3696 ../cerber-load.php:4796
|
181 |
+
msgid "White IP Access List"
|
182 |
+
msgstr "IP 存取白名單"
|
183 |
+
|
184 |
+
#: ../dashboard.php:236 ../dashboard.php:1290 ../dashboard.php:1327 ../dashboard.
|
185 |
+
#: php:1677 ../dashboard.php:3697
|
186 |
+
msgid "Black IP Access List"
|
187 |
+
msgstr "IP 存取黑名單"
|
188 |
+
|
189 |
+
#: ../dashboard.php:268
|
190 |
+
msgid "List is empty"
|
191 |
+
msgstr "清單無資料"
|
192 |
+
|
193 |
+
#: ../cerber-load.php:3815
|
194 |
+
msgid "Citadel mode is activated after %d failed login attempts in %d minutes."
|
195 |
+
msgstr "堡壘模式啟用後發生 %d次失敗的登入嘗試於 %d分鐘內。"
|
196 |
+
|
197 |
+
#: ../dashboard.php:2423 ../dashboard.php:2861
|
198 |
+
msgid "View Activity"
|
199 |
+
msgstr "檢視活動"
|
200 |
+
|
201 |
+
#: ../dashboard.php:4529 ../dashboard.php:4580 ../cerber-tools.php:37 ../cerber-
|
202 |
+
#: tools.php:46 ../nexus/cerber-nexus.php:90
|
203 |
+
msgid "Settings"
|
204 |
+
msgstr "設定"
|
205 |
+
|
206 |
+
#: ../dashboard.php:1532
|
207 |
+
msgid "Last login"
|
208 |
+
msgstr "上次登入"
|
209 |
+
|
210 |
+
#: ../dashboard.php:1565 ../dashboard.php:1656 ../common.php:1494 ../nexus/cerber-
|
211 |
+
#: slave-list.php:297
|
212 |
+
msgid "Never"
|
213 |
+
msgstr "從未"
|
214 |
+
|
215 |
+
#: ../dashboard.php:2309 ../cerber-users.php:945 ../cerber-tools.php:649 ..
|
216 |
+
#: /nexus/cerber-slave-list.php:230 ../cerber-scanner.php:5746 ../cerber-scanner.
|
217 |
+
#: php:5904
|
218 |
+
msgid "Are you sure?"
|
219 |
+
msgstr "你確定嗎?"
|
220 |
+
|
221 |
+
#: ../dashboard.php:2080 ../settings.php:244
|
222 |
+
msgid "My site is behind a reverse proxy"
|
223 |
+
msgstr "我的網站位於反向代理中"
|
224 |
+
|
225 |
+
#: ../settings.php:187
|
226 |
+
msgid "Make your protection smarter!"
|
227 |
+
msgstr "讓你的防護更智慧!"
|
228 |
+
|
229 |
+
#: ../settings.php:140
|
230 |
+
msgid "Please enable Permalinks to use this feature. Set Permalink Settings to something other than Default."
|
231 |
+
msgstr "要使用此功能請啟用永久連結。將永久連結設為預設值以外的設定。"
|
232 |
+
|
233 |
+
#: ../dashboard.php:4464 ../cerber-load.php:4806
|
234 |
+
msgid "Main Settings"
|
235 |
+
msgstr "主設定"
|
236 |
+
|
237 |
+
#: ../dashboard.php:4714
|
238 |
+
msgid "Help"
|
239 |
+
msgstr "說明"
|
240 |
+
|
241 |
+
#: ../settings.php:1294
|
242 |
+
msgid "Increase lockout duration to %s hours after %s lockouts in the last %s hours"
|
243 |
+
msgstr "延長鎖定時間至 %s小時。如發生 %s次鎖定於 %s小時之內"
|
244 |
+
|
245 |
+
#: ../cerber-load.php:375
|
246 |
+
msgid "You are not allowed to log in. Ask your administrator for assistance."
|
247 |
+
msgstr "你不被允許登入,請詢問你的管理員協助。"
|
248 |
+
|
249 |
+
#: ../cerber-load.php:400
|
250 |
+
msgid "You have only one attempt remaining."
|
251 |
+
msgid_plural "You have %d attempts remaining."
|
252 |
+
msgstr[0] "你只剩下一次機會嘗試。\n"
|
253 |
+
"你只剩下 %d次機會嘗試。"
|
254 |
+
|
255 |
+
#: ../dashboard.php:1104
|
256 |
+
msgid "No activity has been logged."
|
257 |
+
msgstr "尚無活動記錄。"
|
258 |
+
|
259 |
+
#: ../dashboard.php:187 ../cerber-users.php:755
|
260 |
+
msgid "Expires"
|
261 |
+
msgstr "逾期"
|
262 |
+
|
263 |
+
#: ../dashboard.php:211
|
264 |
+
msgid "No lockouts at the moment. The sky is clear."
|
265 |
+
msgstr "晴朗無雲,目前沒有鎖定記錄。"
|
266 |
+
|
267 |
+
#: ../dashboard.php:234
|
268 |
+
msgid "These IPs will never be locked out"
|
269 |
+
msgstr "這些 IP將永遠不會被鎖定"
|
270 |
+
|
271 |
+
#: ../dashboard.php:243
|
272 |
+
msgid "Your IP"
|
273 |
+
msgstr "你的 IP"
|
274 |
+
|
275 |
+
#: ../cerber-load.php:3816
|
276 |
+
msgid "Last failed attempt was at %s from IP %s with user login: %s."
|
277 |
+
msgstr "上次嘗試登入失敗於 %s來自 IP %s 使用者登入為:%s."
|
278 |
+
|
279 |
+
#: ../cerber-load.php:4774
|
280 |
+
msgid "Can't activate WP Cerber due to a database error."
|
281 |
+
msgstr "由於資料庫錯誤無法啟用 WP Cerber。"
|
282 |
+
|
283 |
+
#: ../settings.php:1301
|
284 |
+
msgid "Notify admin if the number of active lockouts above"
|
285 |
+
msgstr "若達到上述鎖定次數則通知管理員"
|
286 |
+
|
287 |
+
#: ../settings.php:286 ../settings.php:643 ../settings.php:696 ../settings.php:879
|
288 |
+
msgid "days"
|
289 |
+
msgstr "天"
|
290 |
+
|
291 |
+
#: ../dashboard.php:1622
|
292 |
+
msgid "Cerber Quick View"
|
293 |
+
msgstr "Cerber快速檢視"
|
294 |
+
|
295 |
+
#: ../dashboard.php:207
|
296 |
+
msgid "Hint"
|
297 |
+
msgstr "提示"
|
298 |
+
|
299 |
+
#: ../dashboard.php:207
|
300 |
+
msgid "To view activity, click on the IP"
|
301 |
+
msgstr "點選 IP以檢視活動"
|
302 |
+
|
303 |
+
#: ../settings.php:191
|
304 |
+
msgid "Always block entire subnet Class C of intruders IP"
|
305 |
+
msgstr "永遠封鎖入侵者 IP的整個 Class C子網路"
|
306 |
+
|
307 |
+
#: ../settings.php:277 ../settings.php:1307
|
308 |
+
msgid "Click to send test"
|
309 |
+
msgstr "點選測試傳送"
|
310 |
+
|
311 |
+
#: ../settings.php:1552 ../settings.php:1553
|
312 |
+
msgid "Attention! You have changed the login URL! The new login URL is"
|
313 |
+
msgstr "注意!你已變更登入網址,新的登入網址為"
|
314 |
+
|
315 |
+
#: ../dashboard.php:1531
|
316 |
+
msgid "Comments"
|
317 |
+
msgstr "留言"
|
318 |
+
|
319 |
+
#: ../cerber-load.php:3817 ../cerber-load.php:4544
|
320 |
+
msgid "View activity in dashboard"
|
321 |
+
msgstr "在控制台檢視活動資訊"
|
322 |
+
|
323 |
+
#: ../cerber-load.php:3846
|
324 |
+
msgid "Number of active lockouts"
|
325 |
+
msgstr "已鎖定的活動次數"
|
326 |
+
|
327 |
+
#: ../cerber-load.php:3850
|
328 |
+
msgid "View lockouts in dashboard"
|
329 |
+
msgstr "在控制台檢視鎖定資訊"
|
330 |
+
|
331 |
+
#: ../cerber-load.php:3938
|
332 |
+
msgid "This message was sent by"
|
333 |
+
msgstr "此訊息傳送自"
|
334 |
+
|
335 |
+
#: ../dashboard.php:75 ../dashboard.php:4612
|
336 |
+
msgid "Tools"
|
337 |
+
msgstr "工具"
|
338 |
+
|
339 |
+
#: ../cerber-tools.php:34
|
340 |
+
msgid "Export settings to the file"
|
341 |
+
msgstr "匯出設定至檔案"
|
342 |
+
|
343 |
+
#: ../cerber-tools.php:35
|
344 |
+
msgid "When you click the button below you will get a configuration file, which you can upload on another site."
|
345 |
+
msgstr "當你點選以下按鈕將會產生設定檔,你可以在其他網站中匯入使用。"
|
346 |
+
|
347 |
+
#: ../cerber-tools.php:36
|
348 |
+
msgid "What do you want to export?"
|
349 |
+
msgstr "你確認要匯出嗎?"
|
350 |
+
|
351 |
+
#: ../cerber-tools.php:39
|
352 |
+
msgid "Download file"
|
353 |
+
msgstr "下載檔案"
|
354 |
+
|
355 |
+
#: ../cerber-tools.php:41
|
356 |
+
msgid "Import settings from the file"
|
357 |
+
msgstr "從檔案匯入設定"
|
358 |
+
|
359 |
+
#: ../cerber-tools.php:42
|
360 |
+
msgid "When you click the button below, file will be uploaded and all existing settings will be overridden."
|
361 |
+
msgstr "當你點選以下按鈕,將會上傳檔案且全部的設定將會被覆蓋。"
|
362 |
+
|
363 |
+
#: ../cerber-tools.php:43
|
364 |
+
msgid "Select file to import."
|
365 |
+
msgstr "選擇匯入的檔案。"
|
366 |
+
|
367 |
+
#: ../cerber-tools.php:43 ../cerber-scanner.php:4163
|
368 |
+
msgid "Maximum upload file size: %s."
|
369 |
+
msgstr "上傳檔案最大容量:%s."
|
370 |
+
|
371 |
+
#: ../cerber-tools.php:46
|
372 |
+
msgid "What do you want to import?"
|
373 |
+
msgstr "你想要匯入什麼?"
|
374 |
+
|
375 |
+
#: ../cerber-tools.php:48 ../cerber-scanner.php:4166
|
376 |
+
msgid "Upload file"
|
377 |
+
msgstr "上傳檔案"
|
378 |
+
|
379 |
+
#: ../cerber-tools.php:97
|
380 |
+
msgid "No file was uploaded or file is corrupted"
|
381 |
+
msgstr "未上傳檔案或檔案已損毀"
|
382 |
+
|
383 |
+
#: ../cerber-tools.php:139
|
384 |
+
msgid "Error while updating"
|
385 |
+
msgstr "更新時發生錯誤"
|
386 |
+
|
387 |
+
#: ../cerber-tools.php:145
|
388 |
+
msgid "Settings has imported successfully from"
|
389 |
+
msgstr "設定已成功匯入自"
|
390 |
+
|
391 |
+
#: ../cerber-tools.php:152
|
392 |
+
msgid "Error while parsing file"
|
393 |
+
msgstr "解析檔案時發生錯誤"
|
394 |
+
|
395 |
+
#: ../dashboard.php:185 ../dashboard.php:1072
|
396 |
+
msgid "Hostname"
|
397 |
+
msgstr "主機名稱"
|
398 |
+
|
399 |
+
#: ../dashboard.php:483
|
400 |
+
msgid "unknown"
|
401 |
+
msgstr "未知"
|
402 |
+
|
403 |
+
#: ../settings.php:285 ../settings.php:642
|
404 |
+
msgid "Keep records for"
|
405 |
+
msgstr "保留記錄"
|
406 |
+
|
407 |
+
#: ../dashboard.php:1660 ../dashboard.php:1685
|
408 |
+
msgid "active"
|
409 |
+
msgstr "啟用"
|
410 |
+
|
411 |
+
#: ../dashboard.php:1660
|
412 |
+
msgid "deactivate"
|
413 |
+
msgstr "停用"
|
414 |
+
|
415 |
+
#: ../dashboard.php:1662
|
416 |
+
msgid "not active"
|
417 |
+
msgstr "未啟用"
|
418 |
+
|
419 |
+
#: ../dashboard.php:1663 ../dashboard.php:1680
|
420 |
+
msgid "disabled"
|
421 |
+
msgstr "已停用"
|
422 |
+
|
423 |
+
#: ../dashboard.php:1668
|
424 |
+
msgid "failed attempts"
|
425 |
+
msgstr "失敗的嘗試"
|
426 |
+
|
427 |
+
#: ../dashboard.php:1668 ../dashboard.php:1669
|
428 |
+
msgid "in 24 hours"
|
429 |
+
msgstr "於 24小時內"
|
430 |
+
|
431 |
+
#: ../dashboard.php:1668 ../dashboard.php:1669
|
432 |
+
msgid "view all"
|
433 |
+
msgstr "檢視全部"
|
434 |
+
|
435 |
+
#: ../dashboard.php:1669
|
436 |
+
msgid "lockouts"
|
437 |
+
msgstr "鎖定"
|
438 |
+
|
439 |
+
#: ../dashboard.php:1671
|
440 |
+
msgid "Lockouts at the moment"
|
441 |
+
msgstr "鎖定於"
|
442 |
+
|
443 |
+
#: ../dashboard.php:1672
|
444 |
+
msgid "Last lockout"
|
445 |
+
msgstr "上次鎖定"
|
446 |
+
|
447 |
+
#: ../dashboard.php:1676 ../dashboard.php:1677 ../dashboard.php:2604
|
448 |
+
msgid "entry"
|
449 |
+
msgid_plural "entries"
|
450 |
+
msgstr[0] "項目\n"
|
451 |
+
"項目"
|
452 |
+
|
453 |
+
#: ../dashboard.php:2304
|
454 |
+
msgid "Confused about some settings?"
|
455 |
+
msgstr "對某些設定感到疑惑?"
|
456 |
+
|
457 |
+
#: ../dashboard.php:2305
|
458 |
+
msgid "You can easily load default recommended settings using button below"
|
459 |
+
msgstr "透過以下按鈕你可以簡單的載入建議設定值"
|
460 |
+
|
461 |
+
#: ../dashboard.php:2307
|
462 |
+
msgid "Load default settings"
|
463 |
+
msgstr "載入預設值"
|
464 |
+
|
465 |
+
#: ../dashboard.php:2315
|
466 |
+
msgid "doesn't affect Custom login URL and Access Lists"
|
467 |
+
msgstr "不影響自訂登入網址和存取清單"
|
468 |
+
|
469 |
+
#: ../settings.php:509
|
470 |
+
msgid "New version is available"
|
471 |
+
msgstr "有新版本可供使用"
|
472 |
+
|
473 |
+
#: ../cerber-load.php:3789
|
474 |
+
msgid "WP Cerber notify"
|
475 |
+
msgstr "WP Cerber通知"
|
476 |
+
|
477 |
+
#: ../cerber-load.php:3813
|
478 |
+
msgid "Citadel mode is activated"
|
479 |
+
msgstr "已啟用堡壘模式"
|
480 |
+
|
481 |
+
#: ../cerber-load.php:3885
|
482 |
+
msgid "New Custom login URL"
|
483 |
+
msgstr "新增自訂登入網址"
|
484 |
+
|
485 |
+
#: ../cerber-load.php:4761
|
486 |
+
msgid "The WP Cerber requires PHP %s or higher. You are running"
|
487 |
+
msgstr "WP Cerber需要 PHP %s或更新版,你正使用"
|
488 |
+
|
489 |
+
#: ../cerber-load.php:4765
|
490 |
+
msgid "The WP Cerber requires WordPress %s or higher. You are running"
|
491 |
+
msgstr "WP Cerber需要 WordPress %s或更新版,你正使用"
|
492 |
+
|
493 |
+
#: ../settings.php:309
|
494 |
+
msgid "Use file"
|
495 |
+
msgstr "使用檔案"
|
496 |
+
|
497 |
+
#: ../settings.php:310
|
498 |
+
msgid "Write failed login attempts to the file"
|
499 |
+
msgstr "寫入失敗的登入嘗試至檔案"
|
500 |
+
|
501 |
+
#: ../dashboard.php:2422
|
502 |
+
msgid "Deactivate"
|
503 |
+
msgstr "停用"
|
504 |
+
|
505 |
+
#: ../dashboard.php:188 ../cerber-load.php:3848
|
506 |
+
msgid "Reason"
|
507 |
+
msgstr "原因"
|
508 |
+
|
509 |
+
#: ../dashboard.php:275
|
510 |
+
msgid "Add IP to the list"
|
511 |
+
msgstr "新增 IP至此清單"
|
512 |
+
|
513 |
+
#: ../dashboard.php:1393
|
514 |
+
msgid "Add IP to the Black List"
|
515 |
+
msgstr "新增 IP至黑名單"
|
516 |
+
|
517 |
+
#: ../common.php:1336
|
518 |
+
msgid "Attempt to access"
|
519 |
+
msgstr "嘗試存取"
|
520 |
+
|
521 |
+
#: ../common.php:1335
|
522 |
+
msgid "Limit on login attempts is reached"
|
523 |
+
msgstr "已達到登入嘗試限制"
|
524 |
+
|
525 |
+
#: ../cerber-load.php:3847
|
526 |
+
msgid "Last lockout was added: %s for IP %s"
|
527 |
+
msgstr "上次鎖定於: %s IP為 %s"
|
528 |
+
|
529 |
+
#: ../dashboard.php:4466 ../cerber-load.php:4810
|
530 |
+
msgid "Hardening"
|
531 |
+
msgstr "堅固強化"
|
532 |
+
|
533 |
+
#: ../dashboard.php:1368
|
534 |
+
msgid "Abuse email:"
|
535 |
+
msgstr "濫用的郵件:"
|
536 |
+
|
537 |
+
#: ../settings.php:496 ../settings.php:539 ../settings.php:749
|
538 |
+
msgid "Email Address"
|
539 |
+
msgstr "Email位置"
|
540 |
+
|
541 |
+
#: ../settings.php:501
|
542 |
+
msgid "if empty, the admin email %s will be used"
|
543 |
+
msgstr "如未填寫,則將使用管理員郵件 %s"
|
544 |
+
|
545 |
+
#: ../settings.php:319
|
546 |
+
msgid "Drill down IP"
|
547 |
+
msgstr "IP 分析"
|
548 |
+
|
549 |
+
#: ../settings.php:320
|
550 |
+
msgid "Retrieve extra WHOIS information for IP"
|
551 |
+
msgstr "為 IP取回額外 WHOIS資訊"
|
552 |
+
|
553 |
+
#: ../settings.php:337
|
554 |
+
msgid "Hardening WordPress"
|
555 |
+
msgstr "堅固強化 WordPress"
|
556 |
+
|
557 |
+
#: ../settings.php:341 ../settings.php:376
|
558 |
+
msgid "Stop user enumeration"
|
559 |
+
msgstr "停用使用者列舉"
|
560 |
+
|
561 |
+
#: ../settings.php:360
|
562 |
+
msgid "Disable XML-RPC"
|
563 |
+
msgstr "停用 XML-RPC"
|
564 |
+
|
565 |
+
#: ../settings.php:361
|
566 |
+
msgid "Block access to the XML-RPC server (including Pingbacks and Trackbacks)"
|
567 |
+
msgstr "封鎖對伺服器 XML-RPC的存取(包含自動引用通知及引用通知)"
|
568 |
+
|
569 |
+
#: ../settings.php:365
|
570 |
+
msgid "Disable feeds"
|
571 |
+
msgstr "停用資訊提供"
|
572 |
+
|
573 |
+
#: ../settings.php:366
|
574 |
+
msgid "Block access to the RSS, Atom and RDF feeds"
|
575 |
+
msgstr "封鎖對 RSS, Atom和 RDF的存取"
|
576 |
+
|
577 |
+
#: ../settings.php:381
|
578 |
+
msgid "Disable REST API"
|
579 |
+
msgstr "停用 REST API"
|
580 |
+
|
581 |
+
#: ../settings.php:1641 ../settings.php:1653 ../settings.php:1776
|
582 |
+
msgid "<strong>ERROR</strong>: please enter a valid email address."
|
583 |
+
msgstr "<strong>錯誤</strong>:請輸入正確的電子郵件位置。"
|
584 |
+
|
585 |
+
#: ../cerber-load.php:3878 ../cerber-load.php:4795
|
586 |
+
msgid "WP Cerber is now active and has started protecting your site"
|
587 |
+
msgstr "WP Cerber現在已啟用並開始保護你的網站"
|
588 |
+
|
589 |
+
#: ../dashboard.php:189 ../cerber-users.php:758 ../cerber-scanner.php:5772 ..
|
590 |
+
#: /cerber-scanner.php:5920
|
591 |
+
msgid "Action"
|
592 |
+
msgstr "動作"
|
593 |
+
|
594 |
+
#: ../dashboard.php:236
|
595 |
+
msgid "Nobody can log in or register from these IPs"
|
596 |
+
msgstr "無人可從這些 IP登入"
|
597 |
+
|
598 |
+
#: ../dashboard.php:293 ../dashboard.php:310
|
599 |
+
msgid "Incorrect IP address or IP range"
|
600 |
+
msgstr "不正確的 IP或 IP範圍"
|
601 |
+
|
602 |
+
#: ../dashboard.php:2438 ../nexus/cerber-nexus-slave.php:443
|
603 |
+
msgid "Settings saved"
|
604 |
+
msgstr "已儲存設定"
|
605 |
+
|
606 |
+
#: ../dashboard.php:1373
|
607 |
+
msgid "Network:"
|
608 |
+
msgstr "網路:"
|
609 |
+
|
610 |
+
#: ../dashboard.php:1388
|
611 |
+
msgid "Add network to the Black List"
|
612 |
+
msgstr "新增網路至黑名單"
|
613 |
+
|
614 |
+
#: ../dashboard.php:2421
|
615 |
+
msgid "Attention! Citadel mode is now active. Nobody is able to log in."
|
616 |
+
msgstr "注意!已啟用堡壘模式,將無人可登入。"
|
617 |
+
|
618 |
+
#: ../dashboard.php:410 ../dashboard.php:3625 ../whois.php:222 ../whois.php:253 ..
|
619 |
+
#: /common.php:1354 ../common.php:1805 ../nexus/cerber-slave-list.php:283
|
620 |
+
msgid "Unknown"
|
621 |
+
msgstr "未知"
|
622 |
+
|
623 |
+
#: ../common.php:323 ../common.php:395 ../common.php:400 ../common.php:406 ..
|
624 |
+
#: /common.php:411 ../cerber-load.php:683 ../cerber-load.php:695 ../cerber-load.
|
625 |
+
#: php:702 ../cerber-load.php:1024 ../cerber-load.php:1464 ../cerber-load.php:
|
626 |
+
#: 1470 ../cerber-load.php:1475 ../cerber-load.php:1482 ../cerber-load.php:1489 ..
|
627 |
+
#: /cerber-load.php:1495 ../cerber-load.php:1502 ../cerber-load.php:1653 ..
|
628 |
+
#: /cerber-load.php:1790 ../settings.php:1531 ../settings.php:1617 ..
|
629 |
+
#: /nexus/cerber-nexus-slave.php:215 ../nexus/cerber-nexus-slave.php:226 ..
|
630 |
+
#: /cerber-scanner.php:5874
|
631 |
+
msgid "ERROR:"
|
632 |
+
msgstr "錯誤:"
|
633 |
+
|
634 |
+
#: ../cerber-load.php:712
|
635 |
+
msgid "Human verification failed. Please click the square box in the reCAPTCHA block below."
|
636 |
+
msgstr "真人驗證失敗,請點選下方 reCAPTCHA區塊的方塊。"
|
637 |
+
|
638 |
+
#: ../cerber-load.php:1035
|
639 |
+
msgid "<strong>ERROR</strong>: The password you entered for the username %s is incorrect."
|
640 |
+
msgstr "<strong>錯誤</strong>:帳號 %s 的密碼輸入錯誤。"
|
641 |
+
|
642 |
+
#: ../cerber-load.php:1483
|
643 |
+
msgid "Username is not allowed. Please choose another one."
|
644 |
+
msgstr "不允許的帳號,請選擇其他的。"
|
645 |
+
|
646 |
+
#: ../cerber-load.php:3841
|
647 |
+
msgid "unspecified"
|
648 |
+
msgstr "不明"
|
649 |
+
|
650 |
+
#: ../cerber-load.php:3844
|
651 |
+
msgid "Number of lockouts is increasing"
|
652 |
+
msgstr "鎖定次數增長中"
|
653 |
+
|
654 |
+
#: ../cerber-load.php:3849
|
655 |
+
msgid "View activity for this IP"
|
656 |
+
msgstr "檢視此 IP的活動"
|
657 |
+
|
658 |
+
#: ../cerber-load.php:3853 ../cerber-load.php:3855
|
659 |
+
msgid "A new version of WP Cerber is available to install"
|
660 |
+
msgstr "新版 WP Cerber已經可以安裝"
|
661 |
+
|
662 |
+
#: ../cerber-load.php:3854
|
663 |
+
msgid "Hi!"
|
664 |
+
msgstr "嗨!"
|
665 |
+
|
666 |
+
#: ../cerber-load.php:3857 ../cerber-load.php:3868 ../nexus/cerber-slave-list.php:
|
667 |
+
#: 45
|
668 |
+
msgid "Website"
|
669 |
+
msgstr "網站"
|
670 |
+
|
671 |
+
#: ../cerber-load.php:3860 ../cerber-load.php:3861
|
672 |
+
msgid "The WP Cerber security plugin has been deactivated"
|
673 |
+
msgstr "WP Cerber安全外掛已停用"
|
674 |
+
|
675 |
+
#: ../cerber-load.php:3863
|
676 |
+
msgid "Not logged in"
|
677 |
+
msgstr "未登入"
|
678 |
+
|
679 |
+
#: ../cerber-load.php:3869
|
680 |
+
msgid "By user"
|
681 |
+
msgstr "由使用者"
|
682 |
+
|
683 |
+
#: ../cerber-load.php:3870
|
684 |
+
msgid "From IP address"
|
685 |
+
msgstr "來自 IP"
|
686 |
+
|
687 |
+
#: ../cerber-load.php:3873
|
688 |
+
msgid "From country"
|
689 |
+
msgstr "來自國家"
|
690 |
+
|
691 |
+
#: ../cerber-load.php:3877
|
692 |
+
msgid "The WP Cerber security plugin is now active"
|
693 |
+
msgstr "WP Cerber安全外掛已啟用"
|
694 |
+
|
695 |
+
#: ../cerber-load.php:4796
|
696 |
+
msgid "Your IP address is added to the"
|
697 |
+
msgstr "已新增你的 IP至"
|
698 |
+
|
699 |
+
#: ../cerber-load.php:4812
|
700 |
+
msgid "Import settings"
|
701 |
+
msgstr "匯入設定"
|
702 |
+
|
703 |
+
#: ../settings.php:504
|
704 |
+
msgid "Notification limit"
|
705 |
+
msgstr "通知限制"
|
706 |
+
|
707 |
+
#: ../settings.php:505
|
708 |
+
msgid "notification letters allowed per hour (0 means unlimited)"
|
709 |
+
msgstr "每小時允許的通知信(0表示無限制)"
|
710 |
+
|
711 |
+
#: ../settings.php:465
|
712 |
+
msgid "Prohibited usernames"
|
713 |
+
msgstr "被禁止的帳號"
|
714 |
+
|
715 |
+
#: ../settings.php:466
|
716 |
+
msgid "Usernames from this list are not allowed to log in or register. Any IP address, have tried to use any of these usernames, will be immediately blocked. Use comma to separate logins."
|
717 |
+
msgstr "清單中的帳號將不被允許登入或註冊,任何 IP嘗試使用這些帳號則會被立即封鎖。使用小寫逗號分隔項目。"
|
718 |
+
|
719 |
+
#: ../settings.php:474
|
720 |
+
msgid "in minutes (leave empty to use default WP value)"
|
721 |
+
msgstr "分鐘(未填寫則使用 WP預設值)"
|
722 |
+
|
723 |
+
#: ../settings.php:886
|
724 |
+
msgid "reCAPTCHA settings"
|
725 |
+
msgstr "reCAPTCHA設定"
|
726 |
+
|
727 |
+
#: ../settings.php:890
|
728 |
+
msgid "Site key"
|
729 |
+
msgstr "網站金鑰"
|
730 |
+
|
731 |
+
#: ../settings.php:894
|
732 |
+
msgid "Secret key"
|
733 |
+
msgstr "密鑰"
|
734 |
+
|
735 |
+
#: ../settings.php:904
|
736 |
+
msgid "Enable reCAPTCHA for WordPress registration form"
|
737 |
+
msgstr "為 WordPress註冊表單啟用 reCAPTCHA"
|
738 |
+
|
739 |
+
#: ../settings.php:913
|
740 |
+
msgid "Lost password form"
|
741 |
+
msgstr "忘記密碼表單"
|
742 |
+
|
743 |
+
#: ../settings.php:923
|
744 |
+
msgid "Login form"
|
745 |
+
msgstr "登入表單"
|
746 |
+
|
747 |
+
#: ../settings.php:924
|
748 |
+
msgid "Enable reCAPTCHA for WordPress login form"
|
749 |
+
msgstr "為 WordPress登入表單啟用 reCAPTCHA"
|
750 |
+
|
751 |
+
#: ../settings.php:887
|
752 |
+
msgid "Before you can start using reCAPTCHA, you have to obtain Site key and Secret key on the Google website"
|
753 |
+
msgstr "在開始使用 reCAPTCHA前,你必須在 Google網站取得網站金鑰與密鑰"
|
754 |
+
|
755 |
+
#: ../cerber-lab.php:774 ../settings.php:720 ../settings.php:887
|
756 |
+
msgid "Know more"
|
757 |
+
msgstr "了解更多"
|
758 |
+
|
759 |
+
#: ../common.php:1231
|
760 |
+
msgid "User created"
|
761 |
+
msgstr "已建立使用者"
|
762 |
+
|
763 |
+
#: ../common.php:1232
|
764 |
+
msgid "User registered"
|
765 |
+
msgstr "已註冊的使用者"
|
766 |
+
|
767 |
+
#: ../common.php:1259
|
768 |
+
msgid "reCAPTCHA verification failed"
|
769 |
+
msgstr "reCAPTCHA驗證失敗"
|
770 |
+
|
771 |
+
#: ../common.php:1260
|
772 |
+
msgid "reCAPTCHA settings are incorrect"
|
773 |
+
msgstr "reCAPTCHA設定錯誤"
|
774 |
+
|
775 |
+
#: ../common.php:1263 ../common.php:1358
|
776 |
+
msgid "Attempt to access prohibited URL"
|
777 |
+
msgstr "嘗試存取禁止的網址"
|
778 |
+
|
779 |
+
#: ../common.php:1265 ../common.php:1338
|
780 |
+
msgid "Attempt to log in with prohibited username"
|
781 |
+
msgstr "嘗試登入禁止的使用者帳號"
|
782 |
+
|
783 |
+
#: ../settings.php:296
|
784 |
+
msgid "Cerber Lab connection"
|
785 |
+
msgstr "Cerber研究室連線"
|
786 |
+
|
787 |
+
#: ../settings.php:297
|
788 |
+
msgid "Send malicious IP addresses to the Cerber Lab"
|
789 |
+
msgstr "傳送惡意 IP位置到 Cerber研究室"
|
790 |
+
|
791 |
+
#: ../settings.php:301
|
792 |
+
msgid "Cerber Lab protocol"
|
793 |
+
msgstr "Cerber研究室通訊協定"
|
794 |
+
|
795 |
+
#: ../settings.php:834 ../settings.php:903
|
796 |
+
msgid "Registration form"
|
797 |
+
msgstr "註冊表單"
|
798 |
+
|
799 |
+
#: ../settings.php:909
|
800 |
+
msgid "Enable reCAPTCHA for WooCommerce registration form"
|
801 |
+
msgstr "為 WooCommerce註冊表單啟用 reCAPTCHA"
|
802 |
+
|
803 |
+
#: ../settings.php:914
|
804 |
+
msgid "Enable reCAPTCHA for WordPress lost password form"
|
805 |
+
msgstr "為 WordPress忘記密碼表單啟用 reCAPTCHA"
|
806 |
+
|
807 |
+
#: ../settings.php:919
|
808 |
+
msgid "Enable reCAPTCHA for WooCommerce lost password form"
|
809 |
+
msgstr "為 WooCommerce忘記密碼表單啟用 reCAPTCHA"
|
810 |
+
|
811 |
+
#: ../settings.php:929
|
812 |
+
msgid "Enable reCAPTCHA for WooCommerce login form"
|
813 |
+
msgstr "為 WooCommerce登入表單啟用 reCAPTCHA"
|
814 |
+
|
815 |
+
#: ../common.php:1261
|
816 |
+
msgid "Request to the Google reCAPTCHA service failed"
|
817 |
+
msgstr "發送請求至 Google reCAPTCHA服務失敗"
|
818 |
+
|
819 |
+
#: ../dashboard.php:886 ../dashboard.php:2277
|
820 |
+
msgid "View all"
|
821 |
+
msgstr "檢視全部"
|
822 |
+
|
823 |
+
#: ../dashboard.php:2280
|
824 |
+
msgid "Recently locked out IP addresses"
|
825 |
+
msgstr "最近鎖定的 IP"
|
826 |
+
|
827 |
+
#: ../cerber-lab.php:772
|
828 |
+
msgid "OK, nail them all"
|
829 |
+
msgstr "好的,完成它們"
|
830 |
+
|
831 |
+
#: ../cerber-lab.php:773
|
832 |
+
msgid "NO, maybe later"
|
833 |
+
msgstr "不,也許稍後"
|
834 |
+
|
835 |
+
#: ../dashboard.php:54 ../dashboard.php:1711 ../dashboard.php:2622 ../dashboard.
|
836 |
+
#: php:4460
|
837 |
+
msgid "Dashboard"
|
838 |
+
msgstr "控制台"
|
839 |
+
|
840 |
+
#: ../cerber-lab.php:770
|
841 |
+
msgid "Want to make WP Cerber even more powerful?"
|
842 |
+
msgstr "想讓 WP Cerber更好用嗎?"
|
843 |
+
|
844 |
+
#: ../cerber-lab.php:771
|
845 |
+
msgid "Allow WP Cerber to send locked out malicious IP addresses to Cerber Lab. This helps the plugin team to develop new algorithms for WP Cerber that will defend WordPress against new threats and botnets that are appearing everyday. You can disable the sending in the plugin settings at any time."
|
846 |
+
msgstr "允許 WP Cerber傳送鎖定的惡意 IP至 Cerber研究室,這能協助外掛團隊開發新的演算法以協助 WP Cerber防護 WordPress面對每天出現的新威脅和殭屍網路。你能在任何時候從外掛的設定中停用傳送。"
|
847 |
+
|
848 |
+
#: ../dashboard.php:3526
|
849 |
+
msgid "IP address"
|
850 |
+
msgstr "IP位置"
|
851 |
+
|
852 |
+
#: ../dashboard.php:809
|
853 |
+
msgid "User login"
|
854 |
+
msgstr "使用者登入"
|
855 |
+
|
856 |
+
#: ../dashboard.php:810 ../dashboard.php:3532
|
857 |
+
msgid "User ID"
|
858 |
+
msgstr "使用者 ID"
|
859 |
+
|
860 |
+
#: ../dashboard.php:1099 ../dashboard.php:3967
|
861 |
+
msgid "Export"
|
862 |
+
msgstr "匯出"
|
863 |
+
|
864 |
+
#: ../dashboard.php:1122
|
865 |
+
msgid "Search for IP or username"
|
866 |
+
msgstr "搜尋 IP或帳號"
|
867 |
+
|
868 |
+
#: ../dashboard.php:1123 ../dashboard.php:1125
|
869 |
+
msgid "Filter"
|
870 |
+
msgstr "篩選器"
|
871 |
+
|
872 |
+
#: ../dashboard.php:54
|
873 |
+
msgid "Cerber Dashboard"
|
874 |
+
msgstr "Cerber控制台"
|
875 |
+
|
876 |
+
#: ../dashboard.php:75
|
877 |
+
msgid "Cerber tools"
|
878 |
+
msgstr "Cerber工具"
|
879 |
+
|
880 |
+
#: ../cerber-tools.php:233
|
881 |
+
msgid "Unsubscribe"
|
882 |
+
msgstr "取消訂閱"
|
883 |
+
|
884 |
+
#: ../dashboard.php:2546
|
885 |
+
msgid "You've subscribed"
|
886 |
+
msgstr "你已訂閱"
|
887 |
+
|
888 |
+
#: ../dashboard.php:2551
|
889 |
+
msgid "You've unsubscribed"
|
890 |
+
msgstr "你已取消訂閱"
|
891 |
+
|
892 |
+
#: ../cerber-load.php:3889 ../cerber-load.php:3890
|
893 |
+
msgid "A new activity has been recorded"
|
894 |
+
msgstr "已記錄到新活動"
|
895 |
+
|
896 |
+
#: ../cerber-load.php:4516 ../cerber-users.php:752
|
897 |
+
msgid "User"
|
898 |
+
msgstr "使用者"
|
899 |
+
|
900 |
+
#: ../cerber-load.php:4524
|
901 |
+
msgid "Search string"
|
902 |
+
msgstr "搜尋字串"
|
903 |
+
|
904 |
+
#: ../settings.php:316
|
905 |
+
msgid "Preferences"
|
906 |
+
msgstr "偏好設定"
|
907 |
+
|
908 |
+
#: ../settings.php:324
|
909 |
+
msgid "Date format"
|
910 |
+
msgstr "日期格式"
|
911 |
+
|
912 |
+
#: ../settings.php:325
|
913 |
+
msgid "if empty, the default format %s will be used"
|
914 |
+
msgstr "若未填寫,將會使用預設格式 %s"
|
915 |
+
|
916 |
+
#: ../settings.php:515
|
917 |
+
msgid "Push notifications"
|
918 |
+
msgstr "推播通知"
|
919 |
+
|
920 |
+
#: ../settings.php:489
|
921 |
+
msgid "Email notifications"
|
922 |
+
msgstr "Email通知"
|
923 |
+
|
924 |
+
#: ../settings.php:497 ../settings.php:541 ../settings.php:615 ../settings.php:751
|
925 |
+
msgid "Use comma to specify multiple values"
|
926 |
+
msgstr "使用小寫逗號分隔多個值"
|
927 |
+
|
928 |
+
#: ../settings.php:127
|
929 |
+
msgid "All connected devices"
|
930 |
+
msgstr "全部連線的裝置"
|
931 |
+
|
932 |
+
#: ../settings.php:130
|
933 |
+
msgid "No devices found"
|
934 |
+
msgstr "未找到裝置"
|
935 |
+
|
936 |
+
#: ../settings.php:134
|
937 |
+
msgid "Not available"
|
938 |
+
msgstr "尚不可用"
|
939 |
+
|
940 |
+
#: ../common.php:1257
|
941 |
+
msgid "Password reset requested"
|
942 |
+
msgstr "密碼重設請求"
|
943 |
+
|
944 |
+
#: ../common.php:1339
|
945 |
+
msgid "Limit on failed reCAPTCHA verifications is reached"
|
946 |
+
msgstr "已達到 reCAPTCHA驗證失敗的限制"
|
947 |
+
|
948 |
+
#: ../common.php:1489
|
949 |
+
msgid "%s ago"
|
950 |
+
msgstr "%s之前"
|
951 |
+
|
952 |
+
#: ../settings.php:180
|
953 |
+
msgid "Apply limit login rules to IP addresses in the White IP Access List"
|
954 |
+
msgstr "套用登入限制規則至 IP存取白名單"
|
955 |
+
|
956 |
+
#: ../settings.php:210
|
957 |
+
msgid "Display 404 page"
|
958 |
+
msgstr "顯示 404頁面"
|
959 |
+
|
960 |
+
#: ../settings.php:898
|
961 |
+
msgid "Invisible reCAPTCHA"
|
962 |
+
msgstr "隱藏式 reCAPTCHA"
|
963 |
+
|
964 |
+
#: ../settings.php:899
|
965 |
+
msgid "Enable invisible reCAPTCHA"
|
966 |
+
msgstr "啟用隱藏式 reCAPTCHA"
|
967 |
+
|
968 |
+
#: ../settings.php:899
|
969 |
+
msgid "(do not enable it unless you get and enter the Site and Secret keys for the invisible version)"
|
970 |
+
msgstr "(除非你取得隱藏版並已輸入網站與密鑰否則不要啟用)"
|
971 |
+
|
972 |
+
#: ../settings.php:934
|
973 |
+
msgid "Enable reCAPTCHA for WordPress comment form"
|
974 |
+
msgstr "對 WordPress留言表單啟用 reCAPTCHA"
|
975 |
+
|
976 |
+
#: ../settings.php:939
|
977 |
+
msgid "Disable reCAPTCHA for logged in users"
|
978 |
+
msgstr "對登入的使用者停用 reCAPTCHA"
|
979 |
+
|
980 |
+
#: ../settings.php:943
|
981 |
+
msgid "Limit attempts"
|
982 |
+
msgstr "限制嘗試次數"
|
983 |
+
|
984 |
+
#: ../settings.php:944
|
985 |
+
msgid "Lock out IP address for %s minutes after %s failed attempts within %s minutes"
|
986 |
+
msgstr "鎖定 IP %s分鐘在 %s次嘗試登入失敗於 %s分鐘內"
|
987 |
+
|
988 |
+
#: ../settings.php:258
|
989 |
+
msgid "In the Citadel mode nobody is able to log in except IPs from the White IP Access List. Active user sessions will not be affected."
|
990 |
+
msgstr "在堡壘模式中除了 IP存取白名單中的 IP外,無人可登入。已開始的使用者通信將不受影響。"
|
991 |
+
|
992 |
+
#: ../dashboard.php:806 ../dashboard.php:1075
|
993 |
+
msgid "Event"
|
994 |
+
msgstr "事件"
|
995 |
+
|
996 |
+
#: ../common.php:266
|
997 |
+
msgid "Spam comments denied"
|
998 |
+
msgstr "則已拒絕的垃圾留言"
|
999 |
+
|
1000 |
+
#: ../common.php:268
|
1001 |
+
msgid "Malicious IP addresses detected"
|
1002 |
+
msgstr "次檢測到惡意 IP"
|
1003 |
+
|
1004 |
+
#: ../common.php:269
|
1005 |
+
msgid "Lockouts occurred"
|
1006 |
+
msgstr "次發生鎖定"
|
1007 |
+
|
1008 |
+
#: ../cerber-load.php:1465 ../cerber-load.php:1471 ../cerber-load.php:1496 ..
|
1009 |
+
#: /cerber-load.php:1503
|
1010 |
+
msgid "You are not allowed to register."
|
1011 |
+
msgstr "你不被允許註冊。"
|
1012 |
+
|
1013 |
+
#: ../common.php:1242
|
1014 |
+
msgid "Spam comment denied"
|
1015 |
+
msgstr "已拒絕垃圾留言"
|
1016 |
+
|
1017 |
+
#: ../common.php:1267
|
1018 |
+
msgid "Attempt to log in denied"
|
1019 |
+
msgstr "已拒絕登入嘗試"
|
1020 |
+
|
1021 |
+
#: ../common.php:1268
|
1022 |
+
msgid "Attempt to register denied"
|
1023 |
+
msgstr "已拒絕註冊嘗試"
|
1024 |
+
|
1025 |
+
#: ../common.php:263
|
1026 |
+
msgid "Malicious activities mitigated"
|
1027 |
+
msgstr "項已緩解的惡意活動"
|
1028 |
+
|
1029 |
+
#: ../dashboard.php:70
|
1030 |
+
msgid "Cerber antispam settings"
|
1031 |
+
msgstr "Cerber垃圾留言防護設定"
|
1032 |
+
|
1033 |
+
#: ../dashboard.php:70 ../cerber-load.php:4809 ../settings.php:933
|
1034 |
+
msgid "Antispam"
|
1035 |
+
msgstr "垃圾留言防護"
|
1036 |
+
|
1037 |
+
#: ../settings.php:826
|
1038 |
+
msgid "Cerber antispam engine"
|
1039 |
+
msgstr "Cerber垃圾留言防護引擎"
|
1040 |
+
|
1041 |
+
#: ../settings.php:829
|
1042 |
+
msgid "Comment form"
|
1043 |
+
msgstr "留言表單"
|
1044 |
+
|
1045 |
+
#: ../settings.php:830
|
1046 |
+
msgid "Protect comment form with bot detection engine"
|
1047 |
+
msgstr "使用機器人檢測引擎防護留言表單"
|
1048 |
+
|
1049 |
+
#: ../settings.php:835
|
1050 |
+
msgid "Protect registration form with bot detection engine"
|
1051 |
+
msgstr "使用機器人檢測引擎防護註冊表單"
|
1052 |
+
|
1053 |
+
#: ../dashboard.php:4614
|
1054 |
+
msgid "Export & Import"
|
1055 |
+
msgstr "匯出與匯入"
|
1056 |
+
|
1057 |
+
#: ../dashboard.php:4615
|
1058 |
+
msgid "Diagnostic"
|
1059 |
+
msgstr "診斷"
|
1060 |
+
|
1061 |
+
#: ../dashboard.php:4618
|
1062 |
+
msgid "License"
|
1063 |
+
msgstr "授權"
|
1064 |
+
|
1065 |
+
#: ../dashboard.php:4506
|
1066 |
+
msgid "Antispam and bot detection settings"
|
1067 |
+
msgstr "垃圾留言防護與機器人檢測設定"
|
1068 |
+
|
1069 |
+
#: ../cerber-load.php:1790
|
1070 |
+
msgid "Sorry, human verification failed."
|
1071 |
+
msgstr "很抱歉,真人驗證失敗。"
|
1072 |
+
|
1073 |
+
#: ../common.php:1340
|
1074 |
+
msgid "Bot activity is detected"
|
1075 |
+
msgstr "已檢測到機器人活動"
|
1076 |
+
|
1077 |
+
#: ../settings.php:868
|
1078 |
+
msgid "Comment processing"
|
1079 |
+
msgstr "留言處理中"
|
1080 |
+
|
1081 |
+
#: ../settings.php:871
|
1082 |
+
msgid "If a spam comment detected"
|
1083 |
+
msgstr "若檢測到垃圾留言"
|
1084 |
+
|
1085 |
+
#: ../settings.php:876
|
1086 |
+
msgid "Trash spam comments"
|
1087 |
+
msgstr "回收桶垃圾留言"
|
1088 |
+
|
1089 |
+
#: ../settings.php:878
|
1090 |
+
msgid "Move spam comments to trash after"
|
1091 |
+
msgstr "移動垃圾留言至回收桶於"
|
1092 |
+
|
1093 |
+
#: ../common.php:1243
|
1094 |
+
msgid "Spam form submission denied"
|
1095 |
+
msgstr "禁止送出垃圾留言"
|
1096 |
+
|
1097 |
+
#: ../settings.php:839
|
1098 |
+
msgid "Other forms"
|
1099 |
+
msgstr "其他表單"
|
1100 |
+
|
1101 |
+
#: ../settings.php:840
|
1102 |
+
msgid "Protect all forms on the website with bot detection engine"
|
1103 |
+
msgstr "使用機器人檢測引擎防護網站全部表單"
|
1104 |
+
|
1105 |
+
#: ../settings.php:846
|
1106 |
+
msgid "Adjust antispam engine"
|
1107 |
+
msgstr "調整垃圾留言防護引擎"
|
1108 |
+
|
1109 |
+
#: ../settings.php:849
|
1110 |
+
msgid "Safe mode"
|
1111 |
+
msgstr "安全模式"
|
1112 |
+
|
1113 |
+
#: ../settings.php:850
|
1114 |
+
msgid "Use less restrictive policies (allow AJAX)"
|
1115 |
+
msgstr "使用較少限制的策略(允許 AJAX)"
|
1116 |
+
|
1117 |
+
#: ../dashboard.php:907 ../dashboard.php:1674 ../dashboard.php:3935 ../settings.
|
1118 |
+
#: php:386 ../settings.php:854
|
1119 |
+
msgid "Logged in users"
|
1120 |
+
msgstr "登入的使用者"
|
1121 |
+
|
1122 |
+
#: ../settings.php:855
|
1123 |
+
msgid "Disable bot detection engine for logged in users"
|
1124 |
+
msgstr "為登入的使用者停用機器人檢測引擎"
|
1125 |
+
|
1126 |
+
#: ../dashboard.php:186 ../dashboard.php:1073
|
1127 |
+
msgid "Country"
|
1128 |
+
msgstr "國家"
|
1129 |
+
|
1130 |
+
#: ../dashboard.php:1111
|
1131 |
+
msgid "All events"
|
1132 |
+
msgstr "全部事件"
|
1133 |
+
|
1134 |
+
#: ../dashboard.php:60
|
1135 |
+
msgid "Cerber Security Rules"
|
1136 |
+
msgstr "Cerber安全性規則"
|
1137 |
+
|
1138 |
+
#: ../dashboard.php:60 ../dashboard.php:4562
|
1139 |
+
msgid "Security Rules"
|
1140 |
+
msgstr "安全性規則"
|
1141 |
+
|
1142 |
+
#: ../dashboard.php:1533
|
1143 |
+
msgid "Failed login attempts"
|
1144 |
+
msgstr "已失敗的登入嘗試"
|
1145 |
+
|
1146 |
+
#: ../dashboard.php:1490 ../dashboard.php:1534
|
1147 |
+
msgid "Registered"
|
1148 |
+
msgstr "已註冊"
|
1149 |
+
|
1150 |
+
#: ../dashboard.php:1604 ../cerber-users.php:51 ../cerber-users.php:889
|
1151 |
+
msgid "You"
|
1152 |
+
msgstr "你"
|
1153 |
+
|
1154 |
+
#: ../common.php:267
|
1155 |
+
msgid "Spam form submissions denied"
|
1156 |
+
msgstr "次禁止傳送垃圾留言"
|
1157 |
+
|
1158 |
+
#: ../dashboard.php:2316 ../cerber-load.php:3880 ../cerber-load.php:4798
|
1159 |
+
msgid "Getting Started Guide"
|
1160 |
+
msgstr "開始導覽"
|
1161 |
+
|
1162 |
+
#: ../dashboard.php:4564
|
1163 |
+
msgid "Countries"
|
1164 |
+
msgstr "國家"
|
1165 |
+
|
1166 |
+
#: ../dashboard.php:3263
|
1167 |
+
msgid "Permitted for one country"
|
1168 |
+
msgid_plural "Permitted for %d countries"
|
1169 |
+
msgstr[0] "允許一個國家\n"
|
1170 |
+
"允許 %d個國家"
|
1171 |
+
|
1172 |
+
#: ../dashboard.php:3274
|
1173 |
+
msgid "No rule"
|
1174 |
+
msgstr "無規則"
|
1175 |
+
|
1176 |
+
#: ../dashboard.php:3435
|
1177 |
+
msgid "Security rules have been updated"
|
1178 |
+
msgstr "已更新安全性規則"
|
1179 |
+
|
1180 |
+
#. URI of the plugin
|
1181 |
+
#:
|
1182 |
+
msgid "https://wpcerber.com"
|
1183 |
+
msgstr "https://wpcerber.com"
|
1184 |
+
|
1185 |
+
#: ../common.php:1244
|
1186 |
+
msgid "Form submission denied"
|
1187 |
+
msgstr "已禁止傳送表單"
|
1188 |
+
|
1189 |
+
#: ../common.php:1245
|
1190 |
+
msgid "Comment denied"
|
1191 |
+
msgstr "已禁止留言"
|
1192 |
+
|
1193 |
+
#: ../common.php:1273
|
1194 |
+
msgid "Request to REST API denied"
|
1195 |
+
msgstr "已禁止 REST-API請求"
|
1196 |
+
|
1197 |
+
#: ../common.php:1274
|
1198 |
+
msgid "XML-RPC request denied"
|
1199 |
+
msgstr "已禁止 XML-RPC請求"
|
1200 |
+
|
1201 |
+
#: ../common.php:1289
|
1202 |
+
msgid "Bot detected"
|
1203 |
+
msgstr "已檢測到機器人"
|
1204 |
+
|
1205 |
+
#: ../common.php:1290
|
1206 |
+
msgid "Citadel mode is active"
|
1207 |
+
msgstr "已啟用堡壘模式"
|
1208 |
+
|
1209 |
+
#: ../common.php:1295
|
1210 |
+
msgid "Malicious activity detected"
|
1211 |
+
msgstr "檢測到惡意活動"
|
1212 |
+
|
1213 |
+
#: ../common.php:1296
|
1214 |
+
msgid "Blocked by country rule"
|
1215 |
+
msgstr "已依據國家規則封鎖"
|
1216 |
+
|
1217 |
+
#: ../common.php:1297
|
1218 |
+
msgid "Limit reached"
|
1219 |
+
msgstr "已達到限制"
|
1220 |
+
|
1221 |
+
#: ../common.php:1298
|
1222 |
+
msgid "Multiple suspicious activities"
|
1223 |
+
msgstr "多重可疑活動"
|
1224 |
+
|
1225 |
+
#: ../common.php:1341
|
1226 |
+
msgid "Multiple suspicious activities were detected"
|
1227 |
+
msgstr "檢測到多重可疑活動"
|
1228 |
+
|
1229 |
+
#: ../settings.php:387
|
1230 |
+
msgid "Allow REST API for logged in users"
|
1231 |
+
msgstr "允許登入的使用者使用 REST API"
|
1232 |
+
|
1233 |
+
#: ../settings.php:399
|
1234 |
+
msgid "Specify REST API namespaces to be allowed if REST API is disabled. One string per line."
|
1235 |
+
msgstr "若停用 REST API,則允許使用 REST API命名空間。一行一個字串。"
|
1236 |
+
|
1237 |
+
#: ../settings.php:442
|
1238 |
+
msgid "Registration limit"
|
1239 |
+
msgstr "註冊限制"
|
1240 |
+
|
1241 |
+
#: ../settings.php:480
|
1242 |
+
msgid "Sort users in dashboard"
|
1243 |
+
msgstr "在控制台排序使用者"
|
1244 |
+
|
1245 |
+
#: ../settings.php:481
|
1246 |
+
msgid "by date of registration"
|
1247 |
+
msgstr "依據註冊日期"
|
1248 |
+
|
1249 |
+
#: ../settings.php:859
|
1250 |
+
msgid "Query whitelist"
|
1251 |
+
msgstr "字串白名單"
|
1252 |
+
|
1253 |
+
#: ../settings.php:1289
|
1254 |
+
msgid "%s allowed registrations in %s minutes from one IP"
|
1255 |
+
msgstr "一個 IP僅允許 %s次註冊於 %s分鐘內"
|
1256 |
+
|
1257 |
+
#: ../dashboard.php:3243
|
1258 |
+
msgid "Start typing here to find a country"
|
1259 |
+
msgstr "在這裡輸入以尋找國家"
|
1260 |
+
|
1261 |
+
#: ../dashboard.php:3358
|
1262 |
+
msgid "Click on a country name to add it to the list of selected countries"
|
1263 |
+
msgstr "點選國家名稱以新增至選取的國家至清單"
|
1264 |
+
|
1265 |
+
#: ../dashboard.php:3390
|
1266 |
+
msgid "Submit forms"
|
1267 |
+
msgstr "傳送表單"
|
1268 |
+
|
1269 |
+
#: ../dashboard.php:3391
|
1270 |
+
msgid "Post comments"
|
1271 |
+
msgstr "發布留言"
|
1272 |
+
|
1273 |
+
#: ../dashboard.php:3385
|
1274 |
+
msgid "Log in to the website"
|
1275 |
+
msgstr "登入此網站"
|
1276 |
+
|
1277 |
+
#: ../dashboard.php:3389
|
1278 |
+
msgid "Register on the website"
|
1279 |
+
msgstr "註冊此網站"
|
1280 |
+
|
1281 |
+
#: ../dashboard.php:3392
|
1282 |
+
msgid "Use XML-RPC"
|
1283 |
+
msgstr "使用 XML-RPC"
|
1284 |
+
|
1285 |
+
#: ../dashboard.php:3393
|
1286 |
+
msgid "Use REST API"
|
1287 |
+
msgstr "使用 REST API"
|
1288 |
+
|
1289 |
+
#: ../settings.php:873
|
1290 |
+
msgid "Deny it completely"
|
1291 |
+
msgstr "完整拒絕"
|
1292 |
+
|
1293 |
+
#: ../settings.php:873
|
1294 |
+
msgid "Mark it as spam"
|
1295 |
+
msgstr "標記為垃圾留言"
|
1296 |
+
|
1297 |
+
#: ../dashboard.php:2256
|
1298 |
+
msgid "in the last 24 hours"
|
1299 |
+
msgstr "最近 24小時"
|
1300 |
+
|
1301 |
+
#: ../dashboard.php:2623
|
1302 |
+
msgid "Main settings"
|
1303 |
+
msgstr "主設定"
|
1304 |
+
|
1305 |
+
#: ../settings.php:528
|
1306 |
+
msgid "Weekly reports"
|
1307 |
+
msgstr "每周報告"
|
1308 |
+
|
1309 |
+
#: ../settings.php:1485
|
1310 |
+
msgid "Sunday"
|
1311 |
+
msgstr "星期日"
|
1312 |
+
|
1313 |
+
#: ../settings.php:1486
|
1314 |
+
msgid "Monday"
|
1315 |
+
msgstr "星期一"
|
1316 |
+
|
1317 |
+
#: ../settings.php:1487
|
1318 |
+
msgid "Tuesday"
|
1319 |
+
msgstr "星期二"
|
1320 |
+
|
1321 |
+
#: ../settings.php:1488
|
1322 |
+
msgid "Wednesday"
|
1323 |
+
msgstr "星期三"
|
1324 |
+
|
1325 |
+
#: ../settings.php:1489
|
1326 |
+
msgid "Thursday"
|
1327 |
+
msgstr "星期四"
|
1328 |
+
|
1329 |
+
#: ../settings.php:1490
|
1330 |
+
msgid "Friday"
|
1331 |
+
msgstr "星期五"
|
1332 |
+
|
1333 |
+
#: ../settings.php:1491
|
1334 |
+
msgid "Saturday"
|
1335 |
+
msgstr "星期六"
|
1336 |
+
|
1337 |
+
#: ../settings.php:1554 ../settings.php:1555
|
1338 |
+
msgid "If you use a caching plugin, you have to add your new login URL to the list of pages not to cache."
|
1339 |
+
msgstr "若你有使用快取外掛,你必須將新的登入網址加入至不快取的清單中。"
|
1340 |
+
|
1341 |
+
#: ../cerber-load.php:3895
|
1342 |
+
msgid "Weekly report"
|
1343 |
+
msgstr "每周報告"
|
1344 |
+
|
1345 |
+
#: ../cerber-load.php:3898 ../cerber-load.php:3908
|
1346 |
+
msgid "To change reporting settings visit"
|
1347 |
+
msgstr "要變更報告設定請前往"
|
1348 |
+
|
1349 |
+
#: ../cerber-load.php:3931
|
1350 |
+
msgid "Your login page:"
|
1351 |
+
msgstr "你的登入頁面:"
|
1352 |
+
|
1353 |
+
#: ../cerber-load.php:3935
|
1354 |
+
msgid "Your license is valid until"
|
1355 |
+
msgstr "你的授權有效至"
|
1356 |
+
|
1357 |
+
#: ../cerber-load.php:4041
|
1358 |
+
msgid "Activity details"
|
1359 |
+
msgstr "活動詳細資訊"
|
1360 |
+
|
1361 |
+
#: ../settings.php:1521
|
1362 |
+
msgid "Click to send now"
|
1363 |
+
msgstr "點選此處立即傳送"
|
1364 |
+
|
1365 |
+
#: ../cerber-load.php:833
|
1366 |
+
msgid "> > > Translator of WP Cerber? To get the PRO license for free, drop your contacts here: https://wpcerber.com/contact/"
|
1367 |
+
msgstr "> > > WP Cerber的譯者嗎?可以獲得免費的進階版授權,請在這裡與我們聯繫: https://wpcerber.com/contact/"
|
1368 |
+
|
1369 |
+
#: ../dashboard.php:554
|
1370 |
+
msgid "Email has been sent to"
|
1371 |
+
msgstr "已傳送郵件至"
|
1372 |
+
|
1373 |
+
#: ../dashboard.php:557
|
1374 |
+
msgid "Unable to send email to"
|
1375 |
+
msgstr "未能傳送郵件至"
|
1376 |
+
|
1377 |
+
#: ../dashboard.php:3266
|
1378 |
+
msgid "Not permitted for one country"
|
1379 |
+
msgid_plural "Not permitted for %d countries"
|
1380 |
+
msgstr[0] "不允許一個國家\n"
|
1381 |
+
"不允許 %d個國家"
|
1382 |
+
|
1383 |
+
#: ../dashboard.php:3362
|
1384 |
+
msgctxt "to is a marker of infinitive, e.g. \"to use it\""
|
1385 |
+
msgid "Selected countries are permitted to %s, other countries are not permitted to"
|
1386 |
+
msgstr "允許選擇的國家 %s,其他國家則不允許"
|
1387 |
+
|
1388 |
+
#: ../dashboard.php:3365
|
1389 |
+
msgctxt "to is a marker of infinitive, e.g. \"to use it\""
|
1390 |
+
msgid "Selected countries are not permitted to %s, other countries are permitted to"
|
1391 |
+
msgstr "不允許選擇的國家 %s,其他國家則允許"
|
1392 |
+
|
1393 |
+
#: ../cerber-load.php:4029
|
1394 |
+
msgid "Weekly Report"
|
1395 |
+
msgstr "每周報告"
|
1396 |
+
|
1397 |
+
#: ../settings.php:213
|
1398 |
+
msgid "Use 404 template from the active theme"
|
1399 |
+
msgstr "從啟用的布景主題中使用 404樣板"
|
1400 |
+
|
1401 |
+
#: ../settings.php:214
|
1402 |
+
msgid "Display simple 404 page"
|
1403 |
+
msgstr "顯示簡潔 404頁面"
|
1404 |
+
|
1405 |
+
#: ../settings.php:860
|
1406 |
+
msgid "Enter a part of query string or query path to exclude a request from inspection by the engine. One item per line."
|
1407 |
+
msgstr "要從請求檢驗中排除請輸入部分查詢字串或查詢的目錄。一行一個項目。"
|
1408 |
+
|
1409 |
+
#: ../settings.php:540 ../settings.php:750
|
1410 |
+
msgid "if empty, email from notification settings will be used"
|
1411 |
+
msgstr "若未填寫,將會使用通知設定中的郵件"
|
1412 |
+
|
1413 |
+
#: ../settings.php:531
|
1414 |
+
msgid "Enable reporting"
|
1415 |
+
msgstr "啟用報告"
|
1416 |
+
|
1417 |
+
#: ../cerber-load.php:3959
|
1418 |
+
msgid "Your last sign-in was %s from %s"
|
1419 |
+
msgstr "你上次登入於 %s 來自 %s"
|
1420 |
+
|
1421 |
+
#: ../dashboard.php:274
|
1422 |
+
msgid "IP address, IPv4 address range or subnet"
|
1423 |
+
msgstr "IP, IPv4範圍或子網路"
|
1424 |
+
|
1425 |
+
#: ../dashboard.php:276
|
1426 |
+
msgid "Optional comment for this entry"
|
1427 |
+
msgstr "此項目的額外的留言"
|
1428 |
+
|
1429 |
+
#: ../dashboard.php:315
|
1430 |
+
msgid "You cannot add your IP address or network"
|
1431 |
+
msgstr "你不能新增自己的 IP或網路"
|
1432 |
+
|
1433 |
+
#: ../settings.php:458 ../settings.php:466
|
1434 |
+
msgid "To specify a REGEX pattern wrap a pattern in two forward slashes."
|
1435 |
+
msgstr "要使用正規表示法請將整行包含於兩個斜線中。"
|
1436 |
+
|
1437 |
+
#: ../dashboard.php:56
|
1438 |
+
msgid "Cerber Traffic Inspector"
|
1439 |
+
msgstr "Cerber流量檢驗"
|
1440 |
+
|
1441 |
+
#: ../dashboard.php:56 ../dashboard.php:1681 ../dashboard.php:4526
|
1442 |
+
msgid "Traffic Inspector"
|
1443 |
+
msgstr "流量檢驗"
|
1444 |
+
|
1445 |
+
#: ../dashboard.php:1713 ../cerber-users.php:923
|
1446 |
+
msgid "Traffic"
|
1447 |
+
msgstr "流量"
|
1448 |
+
|
1449 |
+
#: ../dashboard.php:3903
|
1450 |
+
msgid "Request"
|
1451 |
+
msgstr "請求"
|
1452 |
+
|
1453 |
+
#: ../dashboard.php:3905 ../cerber-users.php:757
|
1454 |
+
msgid "Host Info"
|
1455 |
+
msgstr "主機資訊"
|
1456 |
+
|
1457 |
+
#: ../dashboard.php:3906
|
1458 |
+
msgid "User Agent"
|
1459 |
+
msgstr "使用者代理"
|
1460 |
+
|
1461 |
+
#: ../dashboard.php:3931
|
1462 |
+
msgid "All requests"
|
1463 |
+
msgstr "全部請求"
|
1464 |
+
|
1465 |
+
#: ../dashboard.php:908 ../dashboard.php:3936
|
1466 |
+
msgid "Not logged in visitors"
|
1467 |
+
msgstr "未登入的訪客"
|
1468 |
+
|
1469 |
+
#: ../dashboard.php:3939
|
1470 |
+
msgid "Form submissions"
|
1471 |
+
msgstr "表單傳送"
|
1472 |
+
|
1473 |
+
#: ../dashboard.php:3941
|
1474 |
+
msgid "Page Not Found"
|
1475 |
+
msgstr "沒有符合條件的頁面"
|
1476 |
+
|
1477 |
+
#: ../dashboard.php:3950
|
1478 |
+
msgid "Longer than"
|
1479 |
+
msgstr "長於"
|
1480 |
+
|
1481 |
+
#: ../dashboard.php:3973
|
1482 |
+
msgid "Refresh"
|
1483 |
+
msgstr "更新"
|
1484 |
+
|
1485 |
+
#: ../common.php:193
|
1486 |
+
msgid "Check for requests"
|
1487 |
+
msgstr "檢查請求"
|
1488 |
+
|
1489 |
+
#: ../common.php:1697
|
1490 |
+
msgid "Not specified"
|
1491 |
+
msgstr "未指定"
|
1492 |
+
|
1493 |
+
#: ../settings.php:596
|
1494 |
+
msgid "Logging mode"
|
1495 |
+
msgstr "記錄模式"
|
1496 |
+
|
1497 |
+
#: ../settings.php:599
|
1498 |
+
msgid "Logging disabled"
|
1499 |
+
msgstr "已停用記錄"
|
1500 |
+
|
1501 |
+
#: ../settings.php:600
|
1502 |
+
msgid "Smart"
|
1503 |
+
msgstr "智慧型"
|
1504 |
+
|
1505 |
+
#: ../settings.php:601
|
1506 |
+
msgid "All traffic"
|
1507 |
+
msgstr "全部流量"
|
1508 |
+
|
1509 |
+
#: ../settings.php:605
|
1510 |
+
msgid "Ignore crawlers"
|
1511 |
+
msgstr "忽略爬蟲"
|
1512 |
+
|
1513 |
+
#: ../settings.php:613
|
1514 |
+
msgid "Mask these form fields"
|
1515 |
+
msgstr "隱藏這些表單欄位"
|
1516 |
+
|
1517 |
+
#: ../settings.php:638
|
1518 |
+
msgid "milliseconds"
|
1519 |
+
msgstr "毫秒"
|
1520 |
+
|
1521 |
+
#: ../settings.php:553
|
1522 |
+
msgid "Enable traffic inspection"
|
1523 |
+
msgstr "啟用流量檢驗"
|
1524 |
+
|
1525 |
+
#: ../settings.php:593
|
1526 |
+
msgid "Logging"
|
1527 |
+
msgstr "記錄"
|
1528 |
+
|
1529 |
+
#: ../settings.php:609
|
1530 |
+
msgid "Save request fields"
|
1531 |
+
msgstr "儲存請求欄位"
|
1532 |
+
|
1533 |
+
#: ../settings.php:637
|
1534 |
+
msgid "Page generation time threshold"
|
1535 |
+
msgstr "頁面建立時間門檻"
|
1536 |
+
|
1537 |
+
#: ../dashboard.php:3923
|
1538 |
+
msgid "No requests have been logged."
|
1539 |
+
msgstr "未記錄到請求。"
|
1540 |
+
|
1541 |
+
#: ../dashboard.php:1680
|
1542 |
+
msgid "enabled"
|
1543 |
+
msgstr "已啟用"
|
1544 |
+
|
1545 |
+
#: ../dashboard.php:1685
|
1546 |
+
msgid "no connection"
|
1547 |
+
msgstr "無連線"
|
1548 |
+
|
1549 |
+
#: ../dashboard.php:1480
|
1550 |
+
msgid "Last seen"
|
1551 |
+
msgstr "上次檢視"
|
1552 |
+
|
1553 |
+
#: ../common.php:1269 ../common.php:1342
|
1554 |
+
msgid "Probing for vulnerable PHP code"
|
1555 |
+
msgstr "檢測 PHP代碼弱點"
|
1556 |
+
|
1557 |
+
#: ../dashboard.php:4264
|
1558 |
+
msgid "Any"
|
1559 |
+
msgstr "任何"
|
1560 |
+
|
1561 |
+
#: ../cerber-load.php:3678
|
1562 |
+
msgid "We're sorry, you are not allowed to proceed"
|
1563 |
+
msgstr "很抱歉,你不被允許繼續"
|
1564 |
+
|
1565 |
+
#: ../settings.php:566
|
1566 |
+
msgid "Request whitelist"
|
1567 |
+
msgstr "請求白名單"
|
1568 |
+
|
1569 |
+
#: ../settings.php:570
|
1570 |
+
msgid "Enter a request URI to exclude the request from inspection. One item per line."
|
1571 |
+
msgstr "從檢驗中輸入要排除的 URI請求,一行一個項目。"
|
1572 |
+
|
1573 |
+
#: ../settings.php:620
|
1574 |
+
msgid "Save request headers"
|
1575 |
+
msgstr "儲存請求標頭"
|
1576 |
+
|
1577 |
+
#: ../settings.php:625
|
1578 |
+
msgid "Save $_SERVER"
|
1579 |
+
msgstr "儲存 $_SERVER"
|
1580 |
+
|
1581 |
+
#: ../settings.php:629
|
1582 |
+
msgid "Save request cookies"
|
1583 |
+
msgstr "儲存請求 cookies"
|
1584 |
+
|
1585 |
+
#: ../settings.php:346
|
1586 |
+
msgid "Protect admin scripts"
|
1587 |
+
msgstr "管理員語法防護"
|
1588 |
+
|
1589 |
+
#: ../settings.php:347
|
1590 |
+
msgid "Block unauthorized access to load-scripts.php and load-styles.php"
|
1591 |
+
msgstr "封鎖對 load-scripts.php和 load-styles.php 的未授權存取"
|
1592 |
+
|
1593 |
+
#: ../common.php:2593
|
1594 |
+
msgid "Unable to create the directory"
|
1595 |
+
msgstr "無法建立資料夾"
|
1596 |
+
|
1597 |
+
#: ../common.php:2598
|
1598 |
+
msgid "Destination folder access denied"
|
1599 |
+
msgstr "已禁止存取目的地目錄"
|
1600 |
+
|
1601 |
+
#: ../common.php:2601
|
1602 |
+
msgid "File not found"
|
1603 |
+
msgstr "找不到檔案"
|
1604 |
+
|
1605 |
+
#: ../common.php:2604
|
1606 |
+
msgid "Unable to copy the file"
|
1607 |
+
msgstr "無法複製檔案"
|
1608 |
+
|
1609 |
+
#: ../common.php:2610
|
1610 |
+
msgid "Unable to delete the file"
|
1611 |
+
msgstr "無法刪除檔案"
|
1612 |
+
|
1613 |
+
#: ../settings.php:150
|
1614 |
+
msgid "Plugin initialization"
|
1615 |
+
msgstr "外掛初始化"
|
1616 |
+
|
1617 |
+
#: ../settings.php:153
|
1618 |
+
msgid "Load security engine"
|
1619 |
+
msgstr "載入安全引擎"
|
1620 |
+
|
1621 |
+
#: ../settings.php:156
|
1622 |
+
msgid "Legacy mode"
|
1623 |
+
msgstr "傳統模式"
|
1624 |
+
|
1625 |
+
#: ../settings.php:157
|
1626 |
+
msgid "Standard mode"
|
1627 |
+
msgstr "標準模式"
|
1628 |
+
|
1629 |
+
#: ../settings.php:1532
|
1630 |
+
msgid "Plugin initialization mode has not been changed"
|
1631 |
+
msgstr "已變更外掛初始化模式"
|
1632 |
+
|
1633 |
+
#. Description of the plugin
|
1634 |
+
#:
|
1635 |
+
msgid "This is a standard boot module for WP Cerber Security & Antispam plugin. It was installed when you set the plugin initialization mode to Standard. Know more: <a href=\"https://wpcerber.com\">wpcerber.com</a>."
|
1636 |
+
msgstr ""
|
1637 |
+
|
1638 |
+
#: ../common.php:1271
|
1639 |
+
msgid "File upload denied"
|
1640 |
+
msgstr "已禁止上傳檔案"
|
1641 |
+
|
1642 |
+
#: ../settings.php:570
|
1643 |
+
msgid "To specify a REGEX pattern, enclose a whole line in two braces."
|
1644 |
+
msgstr "要使用正規表示法請將整行包含於大括弧中。"
|
1645 |
+
|
1646 |
+
#: ../settings.php:143
|
1647 |
+
msgid "Be careful about enabling these options."
|
1648 |
+
msgstr "請小心使用這些設定。"
|
1649 |
+
|
1650 |
+
#: ../settings.php:143
|
1651 |
+
msgid "If you forget your Custom login URL, you will be unable to log in."
|
1652 |
+
msgstr "如果你忘記自訂登入網址,將無法登入。"
|
1653 |
+
|
1654 |
+
#: ../dashboard.php:66 ../dashboard.php:4577
|
1655 |
+
msgid "Site Integrity"
|
1656 |
+
msgstr "網站完整性"
|
1657 |
+
|
1658 |
+
#: ../dashboard.php:1698 ../dashboard.php:1700 ../cerber-users.php:20 ../cerber-
|
1659 |
+
#: users.php:431 ../settings.php:556 ../settings.php:581 ../settings.php:1005 ..
|
1660 |
+
#: /cerber-scanner.php:1625
|
1661 |
+
msgid "Disabled"
|
1662 |
+
msgstr "已停用"
|
1663 |
+
|
1664 |
+
#: ../dashboard.php:1699 ../cerber-scanner.php:1066
|
1665 |
+
msgid "Quick Scan"
|
1666 |
+
msgstr "快速掃描"
|
1667 |
+
|
1668 |
+
#: ../dashboard.php:1701 ../cerber-scanner.php:1066
|
1669 |
+
msgid "Full Scan"
|
1670 |
+
msgstr "完整掃描"
|
1671 |
+
|
1672 |
+
#. Name of the plugin
|
1673 |
+
#:
|
1674 |
+
msgid "WP Cerber Security, Antispam & Malware Scan"
|
1675 |
+
msgstr "WP Cerber安全性、垃圾留言防護與惡意軟體掃描"
|
1676 |
+
|
1677 |
+
#: ../common.php:1299
|
1678 |
+
msgid "Denied"
|
1679 |
+
msgstr "已禁止"
|
1680 |
+
|
1681 |
+
#: ../settings.php:179 ../settings.php:417 ../settings.php:562
|
1682 |
+
msgid "Use White IP Access List"
|
1683 |
+
msgstr "使用 IP存取白名單"
|
1684 |
+
|
1685 |
+
#: ../settings.php:200
|
1686 |
+
msgid "Disable dashboard redirection"
|
1687 |
+
msgstr "停用控制台重定向"
|
1688 |
+
|
1689 |
+
#: ../settings.php:201
|
1690 |
+
msgid "Disable automatic redirection to the login page when /wp-admin/ is requested by an unauthorized request"
|
1691 |
+
msgstr "停用來自未認證的 /wp-admin/直接請求,會自動重定向至登入頁面的功能"
|
1692 |
+
|
1693 |
+
#: ../settings.php:650
|
1694 |
+
msgid "Scanner settings"
|
1695 |
+
msgstr "掃描設定"
|
1696 |
+
|
1697 |
+
#: ../settings.php:653
|
1698 |
+
msgid "Custom signatures"
|
1699 |
+
msgstr "自訂簽章"
|
1700 |
+
|
1701 |
+
#: ../settings.php:657
|
1702 |
+
msgid "Specify custom PHP code signatures. One item per line. To specify a REGEX pattern, enclose a whole line in two braces."
|
1703 |
+
msgstr "指定自訂 PHP代碼簽章。一行一個項目。要使用正規表示法請將整行包含於大括弧中。"
|
1704 |
+
|
1705 |
+
#: ../settings.php:660
|
1706 |
+
msgid "Unwanted file extensions"
|
1707 |
+
msgstr "不需要的檔案副檔名"
|
1708 |
+
|
1709 |
+
#: ../settings.php:664
|
1710 |
+
msgid "Specify file extensions to search for. Full scan only. Use comma to separate items."
|
1711 |
+
msgstr "只能在完整掃描,指定搜尋的檔案副檔名。使用小寫逗號分隔項目。"
|
1712 |
+
|
1713 |
+
#: ../settings.php:667
|
1714 |
+
msgid "Directories to exclude"
|
1715 |
+
msgstr "排除資料夾"
|
1716 |
+
|
1717 |
+
#: ../settings.php:671
|
1718 |
+
msgid "Specify directories to exclude from scanning. Use absolute paths. One item per line."
|
1719 |
+
msgstr "指定要排除掃描的資料夾。使用絕對路徑,一行一個項目。"
|
1720 |
+
|
1721 |
+
#: ../settings.php:682
|
1722 |
+
msgid "Scan temporary directory"
|
1723 |
+
msgstr "掃描暫存資料夾"
|
1724 |
+
|
1725 |
+
#: ../settings.php:686
|
1726 |
+
msgid "Scan session directory"
|
1727 |
+
msgstr "掃描通信資料夾"
|
1728 |
+
|
1729 |
+
#: ../settings.php:694
|
1730 |
+
msgid "Delete quarantined files after"
|
1731 |
+
msgstr "刪除隔離區檔案於"
|
1732 |
+
|
1733 |
+
#: ../settings.php:707
|
1734 |
+
msgid "Launch Quick Scan"
|
1735 |
+
msgstr "執行快速掃描"
|
1736 |
+
|
1737 |
+
#: ../cerber-scanner.php:1626
|
1738 |
+
msgid "Every hour"
|
1739 |
+
msgstr "每小時"
|
1740 |
+
|
1741 |
+
#: ../cerber-scanner.php:1627
|
1742 |
+
msgid "Every 3 hours"
|
1743 |
+
msgstr "每 3小時"
|
1744 |
+
|
1745 |
+
#: ../cerber-scanner.php:1628
|
1746 |
+
msgid "Every 6 hours"
|
1747 |
+
msgstr "每 6小時"
|
1748 |
+
|
1749 |
+
#: ../settings.php:712
|
1750 |
+
msgid "Launch Full Scan"
|
1751 |
+
msgstr "執行完整掃描"
|
1752 |
+
|
1753 |
+
#: ../settings.php:726 ../settings.php:771
|
1754 |
+
msgid "Low severity"
|
1755 |
+
msgstr "低嚴重性"
|
1756 |
+
|
1757 |
+
#: ../settings.php:727 ../settings.php:772
|
1758 |
+
msgid "Medium severity"
|
1759 |
+
msgstr "中度嚴重性"
|
1760 |
+
|
1761 |
+
#: ../settings.php:728 ../settings.php:773
|
1762 |
+
msgid "High severity"
|
1763 |
+
msgstr "高嚴重性"
|
1764 |
+
|
1765 |
+
#: ../settings.php:723
|
1766 |
+
msgid "Report an issue if any of the following is true"
|
1767 |
+
msgstr "若符合以下則報告問題"
|
1768 |
+
|
1769 |
+
#: ../settings.php:732
|
1770 |
+
msgid "Send email report"
|
1771 |
+
msgstr "傳送報告郵件"
|
1772 |
+
|
1773 |
+
#: ../settings.php:735
|
1774 |
+
msgid "After every scan"
|
1775 |
+
msgstr "於每次掃描後"
|
1776 |
+
|
1777 |
+
#: ../settings.php:736
|
1778 |
+
msgid "If any changes in scan results occurred"
|
1779 |
+
msgstr "如果在掃描結果中有發生任何變更"
|
1780 |
+
|
1781 |
+
#: ../settings.php:741
|
1782 |
+
msgid "Include file sizes"
|
1783 |
+
msgstr "包含檔案容量"
|
1784 |
+
|
1785 |
+
#: ../settings.php:745
|
1786 |
+
msgid "Include scan errors"
|
1787 |
+
msgstr "包含掃描錯誤"
|
1788 |
+
|
1789 |
+
#: ../dashboard.php:4579 ../cerber-load.php:4807
|
1790 |
+
msgid "Security Scanner"
|
1791 |
+
msgstr "安全性掃描"
|
1792 |
+
|
1793 |
+
#: ../dashboard.php:4581
|
1794 |
+
msgid "Scheduling"
|
1795 |
+
msgstr "排程"
|
1796 |
+
|
1797 |
+
#: ../cerber-scanner.php:94
|
1798 |
+
msgid "Currently a scheduled scan in progress. Please wait until it is finished."
|
1799 |
+
msgstr "目前已有排定的掃描進行中,請稍候至其完成。"
|
1800 |
+
|
1801 |
+
#: ../cerber-scanner.php:98
|
1802 |
+
msgid "Previous scan started %s has not been completed. Continue scanning?"
|
1803 |
+
msgstr "上次掃描開始於 %s且並未完成,要繼續嗎?"
|
1804 |
+
|
1805 |
+
#: ../cerber-scanner.php:107
|
1806 |
+
msgid "It seems this website has never been scanned. To start scanning click the button below."
|
1807 |
+
msgstr "網站似乎還沒有掃描過,要開始掃描請點選已下按鈕。"
|
1808 |
+
|
1809 |
+
#: ../cerber-scanner.php:110
|
1810 |
+
msgid "Start Quick Scan"
|
1811 |
+
msgstr "開始快速掃描"
|
1812 |
+
|
1813 |
+
#: ../cerber-scanner.php:111
|
1814 |
+
msgid "Start Full Scan"
|
1815 |
+
msgstr "開始完整掃描"
|
1816 |
+
|
1817 |
+
#: ../cerber-scanner.php:112
|
1818 |
+
msgid "Stop Scanning"
|
1819 |
+
msgstr "停止掃描"
|
1820 |
+
|
1821 |
+
#: ../cerber-scanner.php:113
|
1822 |
+
msgid "Continue Scanning"
|
1823 |
+
msgstr "繼續掃描"
|
1824 |
+
|
1825 |
+
#: ../cerber-scanner.php:149
|
1826 |
+
msgid "Delete"
|
1827 |
+
msgstr "刪除"
|
1828 |
+
|
1829 |
+
#: ../cerber-scanner.php:1571
|
1830 |
+
msgid "Verified"
|
1831 |
+
msgstr "已驗證"
|
1832 |
+
|
1833 |
+
#: ../cerber-scanner.php:1578
|
1834 |
+
msgid "Integrity data not found"
|
1835 |
+
msgstr "找不到完整性資料"
|
1836 |
+
|
1837 |
+
#: ../cerber-scanner.php:1579
|
1838 |
+
msgid "Unable to check the integrity of the plugin due to a network error"
|
1839 |
+
msgstr "由於網路錯誤以致無法檢查外掛完整性"
|
1840 |
+
|
1841 |
+
#: ../cerber-scanner.php:1580
|
1842 |
+
msgid "Unable to check the integrity of WordPress files due to a network error"
|
1843 |
+
msgstr "由於網路錯誤以致無法檢查 WordPress檔案完整性"
|
1844 |
+
|
1845 |
+
#: ../cerber-scanner.php:1581
|
1846 |
+
msgid "Unable to check the integrity of the theme due to a network error"
|
1847 |
+
msgstr "由於網路錯誤以致無法檢查佈景主題完整性"
|
1848 |
+
|
1849 |
+
#: ../cerber-scanner.php:1584
|
1850 |
+
msgid "Local file doesn't exist"
|
1851 |
+
msgstr "本機檔案不存在"
|
1852 |
+
|
1853 |
+
#: ../cerber-scanner.php:1586
|
1854 |
+
msgid "Unable to process file"
|
1855 |
+
msgstr "無法處理檔案"
|
1856 |
+
|
1857 |
+
#: ../cerber-scanner.php:1587 ../cerber-scanner.php:5104
|
1858 |
+
msgid "Unable to open file"
|
1859 |
+
msgstr "無法開啟檔案"
|
1860 |
+
|
1861 |
+
#: ../cerber-scanner.php:1589
|
1862 |
+
msgid "Checksum mismatch"
|
1863 |
+
msgstr "校驗碼不符合"
|
1864 |
+
|
1865 |
+
#: ../cerber-scanner.php:1592
|
1866 |
+
msgid "Suspicious code found"
|
1867 |
+
msgstr "發現可疑代碼"
|
1868 |
+
|
1869 |
+
#: ../cerber-scanner.php:1594
|
1870 |
+
msgid "Unattended suspicious file"
|
1871 |
+
msgstr "無關聯的可疑檔案"
|
1872 |
+
|
1873 |
+
#: ../cerber-scanner.php:1595
|
1874 |
+
msgid "Executable code found"
|
1875 |
+
msgstr "發現可執行代碼"
|
1876 |
+
|
1877 |
+
#: ../cerber-scanner.php:1599
|
1878 |
+
msgid "Unwanted file extension"
|
1879 |
+
msgstr "不需要的檔案副檔名"
|
1880 |
+
|
1881 |
+
#: ../cerber-scanner.php:1601
|
1882 |
+
msgid "Content has been modified"
|
1883 |
+
msgstr "內容已被修改"
|
1884 |
+
|
1885 |
+
#: ../cerber-scanner.php:1602
|
1886 |
+
msgid "New file"
|
1887 |
+
msgstr "新的檔案"
|
1888 |
+
|
1889 |
+
#: ../cerber-scanner.php:2648
|
1890 |
+
msgid "Custom signature found"
|
1891 |
+
msgstr "發現自訂簽章"
|
1892 |
+
|
1893 |
+
#: ../cerber-scanner.php:3853
|
1894 |
+
msgid "Scanning folders for files"
|
1895 |
+
msgstr "掃描目錄檔案中"
|
1896 |
+
|
1897 |
+
#: ../cerber-scanner.php:3857
|
1898 |
+
msgid "Parsing the list of files"
|
1899 |
+
msgstr "解析檔案清單中"
|
1900 |
+
|
1901 |
+
#: ../cerber-scanner.php:3858
|
1902 |
+
msgid "Checking for new and modified files"
|
1903 |
+
msgstr "檢查新增檔案和檔案修改中"
|
1904 |
+
|
1905 |
+
#: ../cerber-scanner.php:3859
|
1906 |
+
msgid "Verifying the integrity of WordPress"
|
1907 |
+
msgstr "驗證 WordPress完整性中"
|
1908 |
+
|
1909 |
+
#: ../cerber-scanner.php:3861
|
1910 |
+
msgid "Verifying the integrity of the plugins"
|
1911 |
+
msgstr "驗證外掛完整性中"
|
1912 |
+
|
1913 |
+
#: ../cerber-scanner.php:3863
|
1914 |
+
msgid "Verifying the integrity of the themes"
|
1915 |
+
msgstr "驗證佈景主題完整性中"
|
1916 |
+
|
1917 |
+
#: ../cerber-scanner.php:3864
|
1918 |
+
msgid "Searching for malicious code"
|
1919 |
+
msgstr "搜尋惡意代碼中"
|
1920 |
+
|
1921 |
+
#: ../cerber-scanner.php:3865
|
1922 |
+
msgid "Finalizing the scan"
|
1923 |
+
msgstr "即將完成掃描"
|
1924 |
+
|
1925 |
+
#: ../cerber-scanner.php:3989 ../cerber-scanner.php:4059
|
1926 |
+
msgid "Files to scan"
|
1927 |
+
msgstr "檔案掃描"
|
1928 |
+
|
1929 |
+
#: ../cerber-scanner.php:3996 ../cerber-scanner.php:4067
|
1930 |
+
msgid "Critical issues"
|
1931 |
+
msgstr "嚴重問題"
|
1932 |
+
|
1933 |
+
#: ../cerber-scanner.php:3996 ../cerber-scanner.php:4071 ../cerber-scanner.php:5295
|
1934 |
+
msgid "Issues total"
|
1935 |
+
msgstr "問題總數"
|
1936 |
+
|
1937 |
+
#: ../cerber-scanner.php:4704
|
1938 |
+
msgid "File access error. Possibly scan results are outdated. Please run Quick or Full Scan."
|
1939 |
+
msgstr "檔案存取錯誤,可能是掃描結果已過時,請執行快速或完整掃描。"
|
1940 |
+
|
1941 |
+
#: ../cerber-scanner.php:5418
|
1942 |
+
msgid "To view full report visit"
|
1943 |
+
msgstr "檢視完整報告請前往"
|
1944 |
+
|
1945 |
+
#: ../cerber-load.php:3905
|
1946 |
+
msgid "Scanner Report"
|
1947 |
+
msgstr "掃描報告"
|
1948 |
+
|
1949 |
+
#: ../settings.php:674
|
1950 |
+
msgid "Monitor new files"
|
1951 |
+
msgstr "監控新檔案"
|
1952 |
+
|
1953 |
+
#: ../settings.php:678
|
1954 |
+
msgid "Monitor modified files"
|
1955 |
+
msgstr "監控檔案變更"
|
1956 |
+
|
1957 |
+
#: ../settings.php:737
|
1958 |
+
msgid "If new issues found"
|
1959 |
+
msgstr "如果發現新的問題"
|
1960 |
+
|
1961 |
+
#: ../settings.php:1782
|
1962 |
+
msgid "The schedule has been updated"
|
1963 |
+
msgstr "已更新排程"
|
1964 |
+
|
1965 |
+
#: ../cerber-scanner.php:1598 ../cerber-scanner.php:2828
|
1966 |
+
msgid "Suspicious directives found"
|
1967 |
+
msgstr "發現可疑指令"
|
1968 |
+
|
1969 |
+
#: ../cerber-scanner.php:2826
|
1970 |
+
msgid "Suspicious code instruction found"
|
1971 |
+
msgstr "發現可疑代碼判斷指令"
|
1972 |
+
|
1973 |
+
#: ../cerber-scanner.php:2827
|
1974 |
+
msgid "Suspicious code signatures found"
|
1975 |
+
msgstr "發現可疑代碼判斷簽章"
|
1976 |
+
|
1977 |
+
#: ../cerber-scanner.php:2830
|
1978 |
+
msgid "To solve this issue you have to reinstall %s or update it to the latest version."
|
1979 |
+
msgstr "要解決此問題你必須重新安裝 %s或更新至最新版。"
|
1980 |
+
|
1981 |
+
#: ../cerber-scanner.php:2831
|
1982 |
+
msgid "Please upload a reference ZIP archive"
|
1983 |
+
msgstr "請上傳 ZIP格式的參考來源"
|
1984 |
+
|
1985 |
+
#: ../cerber-scanner.php:2832
|
1986 |
+
msgid "Resolve issue"
|
1987 |
+
msgstr "解決問題"
|
1988 |
+
|
1989 |
+
#: ../cerber-scanner.php:4160
|
1990 |
+
msgid "We have not found any integrity data to verify"
|
1991 |
+
msgstr "我們沒有發現任何完整性資料可驗證"
|
1992 |
+
|
1993 |
+
#: ../cerber-scanner.php:4162
|
1994 |
+
msgid "You have to upload a ZIP archive from which you've installed it. This enables the security scanner to verify the integrity of the code and detect malware."
|
1995 |
+
msgstr "你必須上傳已安裝的 ZIP檔案,這會啟動安全性掃描以驗證代碼完整性與惡意軟體。"
|
1996 |
+
|
1997 |
+
#: ../cerber-scanner.php:5251
|
1998 |
+
msgid "Full Scan Report"
|
1999 |
+
msgstr "完整掃描報告"
|
2000 |
+
|
2001 |
+
#: ../cerber-scanner.php:5251
|
2002 |
+
msgid "Quick Scan Report"
|
2003 |
+
msgstr "快速掃描報告"
|
2004 |
+
|
2005 |
+
#: ../cerber-scanner.php:5264
|
2006 |
+
msgid "Files scanned"
|
2007 |
+
msgstr "已掃描的檔案"
|
2008 |
+
|
2009 |
+
#: ../dashboard.php:261 ../dashboard.php:1338 ../dashboard.php:1373 ../dashboard.
|
2010 |
+
#: php:1496
|
2011 |
+
msgid "Check for activities"
|
2012 |
+
msgstr "檢查活動"
|
2013 |
+
|
2014 |
+
#: ../dashboard.php:1458
|
2015 |
+
msgid "Activated"
|
2016 |
+
msgstr "已啟用"
|
2017 |
+
|
2018 |
+
#: ../common.php:1276
|
2019 |
+
msgid "Malicious request denied"
|
2020 |
+
msgstr "已拒絕的惡意請求"
|
2021 |
+
|
2022 |
+
#: ../common.php:1280
|
2023 |
+
msgid "User activated"
|
2024 |
+
msgstr "已啟用的使用者"
|
2025 |
+
|
2026 |
+
#: ../common.php:1300
|
2027 |
+
msgid "Suspicious number of fields"
|
2028 |
+
msgstr "可疑的欄位數量"
|
2029 |
+
|
2030 |
+
#: ../common.php:1301
|
2031 |
+
msgid "Suspicious number of nested values"
|
2032 |
+
msgstr "可疑的巢狀值數量"
|
2033 |
+
|
2034 |
+
#: ../common.php:1302 ../common.php:1343
|
2035 |
+
msgid "Malicious code detected"
|
2036 |
+
msgstr "檢測到惡意代碼"
|
2037 |
+
|
2038 |
+
#: ../common.php:1344
|
2039 |
+
msgid "Attempt to upload a file with malicious code"
|
2040 |
+
msgstr "嘗試上傳有惡意代碼的檔案"
|
2041 |
+
|
2042 |
+
#: ../common.php:1575
|
2043 |
+
msgid "Bytes"
|
2044 |
+
msgstr "Bytes"
|
2045 |
+
|
2046 |
+
#: ../cerber-scanner.php:1577
|
2047 |
+
msgid "Vulnerability found"
|
2048 |
+
msgstr "發現弱點"
|
2049 |
+
|
2050 |
+
#: ../cerber-scanner.php:1582
|
2051 |
+
msgid "Unable to check the integrity due to a DB error"
|
2052 |
+
msgstr "由於資料庫錯誤導致無法檢查正確性"
|
2053 |
+
|
2054 |
+
#: ../cerber-scanner.php:3854
|
2055 |
+
msgid "Scanning the upload folder for files"
|
2056 |
+
msgstr "掃描上傳目錄的檔案中"
|
2057 |
+
|
2058 |
+
#: ../cerber-scanner.php:3855
|
2059 |
+
msgid "Scanning the temp folder for files"
|
2060 |
+
msgstr "掃描暫存目錄的檔案中"
|
2061 |
+
|
2062 |
+
#: ../cerber-scanner.php:3856
|
2063 |
+
msgid "Scanning the session folder for files"
|
2064 |
+
msgstr "掃描通信目錄檔案中"
|
2065 |
+
|
2066 |
+
#: ../settings.php:704
|
2067 |
+
msgid "Automated recurring scan schedule"
|
2068 |
+
msgstr "自動重複掃描排程"
|
2069 |
+
|
2070 |
+
#: ../settings.php:719
|
2071 |
+
msgid "Scan results reporting"
|
2072 |
+
msgstr "掃描結果報告"
|
2073 |
+
|
2074 |
+
#: ../dashboard.php:903 ../dashboard.php:3933
|
2075 |
+
msgid "Suspicious activity"
|
2076 |
+
msgstr "可疑活動"
|
2077 |
+
|
2078 |
+
#: ../dashboard.php:3934
|
2079 |
+
msgid "Errors"
|
2080 |
+
msgstr "錯誤"
|
2081 |
+
|
2082 |
+
#: ../dashboard.php:4508
|
2083 |
+
msgid "Antispam engine"
|
2084 |
+
msgstr "防垃圾留言引擎"
|
2085 |
+
|
2086 |
+
#. Description of the plugin
|
2087 |
+
#:
|
2088 |
+
msgid "Defends WordPress against hacker attacks, spam, trojans, and viruses. Malware scanner and integrity checker. Hardening WordPress with a set of comprehensive security algorithms. Spam protection with a sophisticated bot detection engine and reCAPTCHA. Tracks user and intruder activity with powerful email, mobile and desktop notifications."
|
2089 |
+
msgstr "使用惡意軟體掃描器和完整性檢查工具,防護 WordPress來自駭客攻擊、垃圾留言、木馬和病毒。透過一套安全演算法讓 WordPress更堅固,以及尖端機器人檢測引擎和 reCAPTCHA進行垃圾留言防護。還能使用電子郵件、行動裝置、桌面通知追蹤使用者和入侵者活動。"
|
2090 |
+
|
2091 |
+
#: ../cerber-load.php:381
|
2092 |
+
msgid "You have exceeded the number of allowed login attempts. Please try again in %d minutes."
|
2093 |
+
msgstr "你已達到嘗試登入的限制次數,請在 %d分鐘後重試。"
|
2094 |
+
|
2095 |
+
#: ../common.php:1489
|
2096 |
+
msgctxt "preposition of a period of time like: in 6 hours"
|
2097 |
+
msgid "in %s"
|
2098 |
+
msgstr "於 %s"
|
2099 |
+
|
2100 |
+
#: ../settings.php:1501
|
2101 |
+
msgctxt "preposition of time like: at 11:00"
|
2102 |
+
msgid "at"
|
2103 |
+
msgstr "於"
|
2104 |
+
|
2105 |
+
#: ../dashboard.php:4584
|
2106 |
+
msgid "Quarantine"
|
2107 |
+
msgstr "隔離區"
|
2108 |
+
|
2109 |
+
#: ../cerber-scanner.php:3940
|
2110 |
+
msgid "Started"
|
2111 |
+
msgstr "已開始"
|
2112 |
+
|
2113 |
+
#: ../cerber-scanner.php:3944
|
2114 |
+
msgid "Finished"
|
2115 |
+
msgstr "已完成"
|
2116 |
+
|
2117 |
+
#: ../cerber-scanner.php:3952
|
2118 |
+
msgid "Performance"
|
2119 |
+
msgstr "效能"
|
2120 |
+
|
2121 |
+
#: ../nexus/cerber-slave-list.php:290 ../cerber-scanner.php:3964
|
2122 |
+
msgid "Vulnerabilities"
|
2123 |
+
msgstr "弱點"
|
2124 |
+
|
2125 |
+
#: ../cerber-scanner.php:3968
|
2126 |
+
msgid "New files"
|
2127 |
+
msgstr "新的檔案"
|
2128 |
+
|
2129 |
+
#: ../cerber-scanner.php:3972
|
2130 |
+
msgid "Changed files"
|
2131 |
+
msgstr "已變更的檔案"
|
2132 |
+
|
2133 |
+
#: ../cerber-scanner.php:3976
|
2134 |
+
msgid "Unwanted extensions"
|
2135 |
+
msgstr "不需要的檔案副檔名"
|
2136 |
+
|
2137 |
+
#: ../cerber-scanner.php:3980
|
2138 |
+
msgid "Unattended files"
|
2139 |
+
msgstr "無關聯的檔案"
|
2140 |
+
|
2141 |
+
#: ../cerber-scanner.php:3989 ../cerber-scanner.php:5767
|
2142 |
+
msgid "Scanned"
|
2143 |
+
msgstr "已掃描"
|
2144 |
+
|
2145 |
+
#: ../cerber-scanner.php:5669
|
2146 |
+
msgid "There are no files in the quarantine at the moment."
|
2147 |
+
msgstr "目前沒有檔案在隔離區。"
|
2148 |
+
|
2149 |
+
#: ../cerber-scanner.php:5759
|
2150 |
+
msgid "Restore"
|
2151 |
+
msgstr "復原"
|
2152 |
+
|
2153 |
+
#: ../cerber-scanner.php:5756
|
2154 |
+
msgid "Delete permanently"
|
2155 |
+
msgstr "永久刪除"
|
2156 |
+
|
2157 |
+
#: ../cerber-scanner.php:5768
|
2158 |
+
msgid "Moved to quarantine"
|
2159 |
+
msgstr "移動至隔離區"
|
2160 |
+
|
2161 |
+
#: ../cerber-scanner.php:5769
|
2162 |
+
msgid "Automatic deletion"
|
2163 |
+
msgstr "自動刪除"
|
2164 |
+
|
2165 |
+
#: ../cerber-scanner.php:5770
|
2166 |
+
msgid "Size"
|
2167 |
+
msgstr "容量"
|
2168 |
+
|
2169 |
+
#: ../cerber-scanner.php:5771 ../cerber-scanner.php:5919
|
2170 |
+
msgid "File"
|
2171 |
+
msgstr "檔案"
|
2172 |
+
|
2173 |
+
#: ../cerber-scanner.php:5847
|
2174 |
+
msgid "The file has been deleted permanently."
|
2175 |
+
msgstr "已永久刪除此檔案。"
|
2176 |
+
|
2177 |
+
#: ../cerber-scanner.php:5861
|
2178 |
+
msgid "The file has been restored to its original location."
|
2179 |
+
msgstr "此檔案已被還原至原始位置。"
|
2180 |
+
|
2181 |
+
#: ../dashboard.php:1714
|
2182 |
+
msgid "Integrity"
|
2183 |
+
msgstr "完整性"
|
2184 |
+
|
2185 |
+
#: ../common.php:1270
|
2186 |
+
msgid "Attempt to upload malicious file denied"
|
2187 |
+
msgstr "已拒絕嘗試上傳惡意檔案"
|
2188 |
+
|
2189 |
+
#: ../cerber-news.php:145
|
2190 |
+
msgid "Awesome!"
|
2191 |
+
msgstr "太棒了!"
|
2192 |
+
|
2193 |
+
#: ../settings.php:760
|
2194 |
+
msgid "Automatic cleanup of malware and suspicious files"
|
2195 |
+
msgstr "自動清理惡意和可疑檔案"
|
2196 |
+
|
2197 |
+
#: ../settings.php:768
|
2198 |
+
msgid "Files in the uploads folder"
|
2199 |
+
msgstr "檔案位於上傳目錄"
|
2200 |
+
|
2201 |
+
#: ../settings.php:777
|
2202 |
+
msgid "Files with unwanted extensions"
|
2203 |
+
msgstr "包含不需要的副檔名檔案"
|
2204 |
+
|
2205 |
+
#: ../settings.php:796
|
2206 |
+
msgid "Exclusions"
|
2207 |
+
msgstr "排除"
|
2208 |
+
|
2209 |
+
#: ../settings.php:800
|
2210 |
+
msgid "Files in the temporary directory"
|
2211 |
+
msgstr "檔案位於暫存資料夾"
|
2212 |
+
|
2213 |
+
#: ../settings.php:804
|
2214 |
+
msgid "Files in the sessions directory"
|
2215 |
+
msgstr "通信資料夾中的檔案"
|
2216 |
+
|
2217 |
+
#: ../settings.php:808
|
2218 |
+
msgid "Files in these directories"
|
2219 |
+
msgstr "檔案位於這些資料夾"
|
2220 |
+
|
2221 |
+
#: ../settings.php:812
|
2222 |
+
msgid "Use absolute paths. One item per line."
|
2223 |
+
msgstr "使用絕對路徑。一行一個項目。"
|
2224 |
+
|
2225 |
+
#: ../settings.php:815
|
2226 |
+
msgid "Files with these extensions"
|
2227 |
+
msgstr "這些副檔名的檔案"
|
2228 |
+
|
2229 |
+
#: ../settings.php:819
|
2230 |
+
msgid "Use comma to separate items."
|
2231 |
+
msgstr "使用小寫逗號分隔項目。"
|
2232 |
+
|
2233 |
+
#: ../dashboard.php:4582
|
2234 |
+
msgid "Cleaning up"
|
2235 |
+
msgstr "清理中"
|
2236 |
+
|
2237 |
+
#: ../cerber-scanner.php:1593
|
2238 |
+
msgid "Malicious code found"
|
2239 |
+
msgstr "發現惡意代碼"
|
2240 |
+
|
2241 |
+
#: ../cerber-scanner.php:2823
|
2242 |
+
msgid "This file contains executable code and may contain obfuscated malware. If this file is a part of a theme or a plugin, it must be located in the theme or the plugin folder. No exception, no excuses."
|
2243 |
+
msgstr "此檔案具有可執行代碼且包含混淆的惡意軟體,如果此檔案為佈景主題或外掛的一部分,則它必須存在於各自的目錄中。沒有例外,沒有藉口。"
|
2244 |
+
|
2245 |
+
#: ../cerber-scanner.php:2824
|
2246 |
+
msgid "The scanner recognizes this file as \"ownerless\" or \"not bundled\" because it does not belong to any known part of the website and should not be here."
|
2247 |
+
msgstr "由於此檔案不屬於網站任何已知的部份且不應存在於該處,掃描器辨識此檔案為「無人擁有」或「無關聯的」。"
|
2248 |
+
|
2249 |
+
#: ../cerber-scanner.php:2825
|
2250 |
+
msgid "It may remain after upgrading to a newer version of %s. It also may be a piece of obfuscated malware. In a rare case it might be a part of a custom-made (bespoke) plugin or theme."
|
2251 |
+
msgstr "這可能是在升級至新版 %s後所遺留,也可能是惡意軟體混淆的一部分。在極少數的情況下,這也可能是自訂(客製化)的外掛或佈景主題的一部分。"
|
2252 |
+
|
2253 |
+
#: ../cerber-scanner.php:2829
|
2254 |
+
msgid "The contents of the file have been changed and do not match what exists in the official WordPress repository or a reference file you have uploaded earlier. The file may have been altered by malware, infected by a virus or has been tampered with."
|
2255 |
+
msgstr "包含的檔案內容已經被修改且不符合 WordPress官方現存的資料庫或你先前上傳的參考檔案。這些檔案可能已經被惡意軟體替換、病毒感染或竄改。"
|
2256 |
+
|
2257 |
+
#: ../cerber-scanner.php:5349
|
2258 |
+
msgid "Deleted"
|
2259 |
+
msgstr "已刪除"
|
2260 |
+
|
2261 |
+
#: ../cerber-scanner.php:5402
|
2262 |
+
msgid "Automatically moved to quarantine"
|
2263 |
+
msgstr "自動移至隔離區"
|
2264 |
+
|
2265 |
+
#: ../common.php:1303
|
2266 |
+
msgid "Suspicious SQL code detected"
|
2267 |
+
msgstr "檢測到可疑 SQL代碼"
|
2268 |
+
|
2269 |
+
#: ../dashboard.php:1695
|
2270 |
+
msgctxt "Example: Last malware scan: 23 Jan 2018"
|
2271 |
+
msgid "Last malware scan"
|
2272 |
+
msgstr "上次惡意軟體掃描"
|
2273 |
+
|
2274 |
+
#: ../dashboard.php:4528
|
2275 |
+
msgid "Live Traffic"
|
2276 |
+
msgstr "即時流量"
|
2277 |
+
|
2278 |
+
#: ../settings.php:330
|
2279 |
+
msgid "Use English for admin interface"
|
2280 |
+
msgstr "於管理員介面使用英文語系"
|
2281 |
+
|
2282 |
+
#: ../dashboard.php:4616
|
2283 |
+
msgid "Log"
|
2284 |
+
msgstr "記錄"
|
2285 |
+
|
2286 |
+
#: ../settings.php:351
|
2287 |
+
msgid "Disable PHP in uploads"
|
2288 |
+
msgstr "禁止上傳 PHP"
|
2289 |
+
|
2290 |
+
#: ../settings.php:356
|
2291 |
+
msgid "Disable PHP error displaying"
|
2292 |
+
msgstr "停用顯示 PHP錯誤"
|
2293 |
+
|
2294 |
+
#: ../dashboard.php:4583
|
2295 |
+
msgid "Ignore List"
|
2296 |
+
msgstr "忽略清單"
|
2297 |
+
|
2298 |
+
#: ../cerber-scanner.php:152
|
2299 |
+
msgid "Ignore"
|
2300 |
+
msgstr "忽略"
|
2301 |
+
|
2302 |
+
#: ../cerber-scanner.php:5884
|
2303 |
+
msgid "Apply"
|
2304 |
+
msgstr "套用"
|
2305 |
+
|
2306 |
+
#: ../cerber-scanner.php:5918
|
2307 |
+
msgid "Added"
|
2308 |
+
msgstr "已新增"
|
2309 |
+
|
2310 |
+
#: ../cerber-scanner.php:5885 ../cerber-scanner.php:5912
|
2311 |
+
msgid "Remove from the list"
|
2312 |
+
msgstr "從清單中移除"
|
2313 |
+
|
2314 |
+
#: ../cerber-scanner.php:5886
|
2315 |
+
msgid "User Insights"
|
2316 |
+
msgstr "使用者洞察"
|
2317 |
+
|
2318 |
+
#: ../cerber-scanner.php:5887
|
2319 |
+
msgid "Traffic Insights"
|
2320 |
+
msgstr "流量洞察"
|
2321 |
+
|
2322 |
+
#: ../cerber-scanner.php:5888
|
2323 |
+
msgid "Activity Insights"
|
2324 |
+
msgstr "活動洞察"
|
2325 |
+
|
2326 |
+
#: ../dashboard.php:2729
|
2327 |
+
msgid "Are you sure you want to delete selected files?"
|
2328 |
+
msgstr "你確認要刪除選取的檔案嗎?"
|
2329 |
+
|
2330 |
+
#: ../dashboard.php:2730
|
2331 |
+
msgid "These files have been moved to the quarantine"
|
2332 |
+
msgstr "已移動這些檔案至隔離區"
|
2333 |
+
|
2334 |
+
#: ../dashboard.php:2733
|
2335 |
+
msgid "Do you want to add selected files to the ignore list?"
|
2336 |
+
msgstr "你想要新增選取的檔案至忽略清單嗎?"
|
2337 |
+
|
2338 |
+
#: ../dashboard.php:2734
|
2339 |
+
msgid "These files have been added to the ignore list"
|
2340 |
+
msgstr "已加入這些檔案至忽略清單"
|
2341 |
+
|
2342 |
+
#: ../dashboard.php:2736
|
2343 |
+
msgid "Some errors occurred"
|
2344 |
+
msgstr "發生某些錯誤"
|
2345 |
+
|
2346 |
+
#: ../dashboard.php:2737
|
2347 |
+
msgid "All files have been processed"
|
2348 |
+
msgstr "已處理全部檔案"
|
2349 |
+
|
2350 |
+
#: ../settings.php:2582
|
2351 |
+
msgid "These features are available in a professional version of the plugin."
|
2352 |
+
msgstr "這些功能僅提供進階版外掛使用。"
|
2353 |
+
|
2354 |
+
#: ../settings.php:2583
|
2355 |
+
msgid "Know more about all advantages at"
|
2356 |
+
msgstr "了解完整優點於"
|
2357 |
+
|
2358 |
+
#: ../common.php:1304
|
2359 |
+
msgid "Suspicious JavaScript code detected"
|
2360 |
+
msgstr "檢測到可疑 Javascript代碼"
|
2361 |
+
|
2362 |
+
#: ../settings.php:1785
|
2363 |
+
msgid "Unable to update the schedule"
|
2364 |
+
msgstr "無法更新排程"
|
2365 |
+
|
2366 |
+
#: ../cerber-scanner.php:5785
|
2367 |
+
msgid "All scans"
|
2368 |
+
msgstr "全部掃描"
|
2369 |
+
|
2370 |
+
#: ../cerber-scanner.php:5890
|
2371 |
+
msgid "The list is empty."
|
2372 |
+
msgstr "清單無資料。"
|
2373 |
+
|
2374 |
+
#: ../cerber-scanner.php:5736
|
2375 |
+
msgid "No files match the specified filter."
|
2376 |
+
msgstr "無檔案符合指定的篩選器。"
|
2377 |
+
|
2378 |
+
#: ../cerber-scanner.php:5736
|
2379 |
+
msgid "Click here to see the full list of files"
|
2380 |
+
msgstr "點選此處檢視完整檔案清單"
|
2381 |
+
|
2382 |
+
#: ../dashboard.php:807
|
2383 |
+
msgid "Additional Details"
|
2384 |
+
msgstr "額外資訊"
|
2385 |
+
|
2386 |
+
#: ../dashboard.php:3533
|
2387 |
+
msgid "Page generation time"
|
2388 |
+
msgstr "頁面建立時間"
|
2389 |
+
|
2390 |
+
#: ../dashboard.php:4742
|
2391 |
+
msgid "Log In"
|
2392 |
+
msgstr "登入"
|
2393 |
+
|
2394 |
+
#: ../dashboard.php:4743
|
2395 |
+
msgid "Log Out"
|
2396 |
+
msgstr "登出"
|
2397 |
+
|
2398 |
+
#: ../dashboard.php:4744
|
2399 |
+
msgid "Register"
|
2400 |
+
msgstr "註冊"
|
2401 |
+
|
2402 |
+
#: ../dashboard.php:4747
|
2403 |
+
msgid "WooCommerce Log In"
|
2404 |
+
msgstr "登入 WooCommerce"
|
2405 |
+
|
2406 |
+
#: ../dashboard.php:4748
|
2407 |
+
msgid "WooCommerce Log Out"
|
2408 |
+
msgstr "登出 WooCommerce"
|
2409 |
+
|
2410 |
+
#: ../dashboard.php:4787 ../dashboard.php:4788
|
2411 |
+
msgid "Add to menu"
|
2412 |
+
msgstr "新增至選單"
|
2413 |
+
|
2414 |
+
#: ../common.php:1292
|
2415 |
+
msgid "IP address is locked out"
|
2416 |
+
msgstr "已鎖定 IP"
|
2417 |
+
|
2418 |
+
#: ../common.php:1346
|
2419 |
+
msgid "Multiple suspicious requests"
|
2420 |
+
msgstr "多重可疑請求"
|
2421 |
+
|
2422 |
+
#: ../settings.php:550
|
2423 |
+
msgid "Traffic Inspection"
|
2424 |
+
msgstr "流量檢驗"
|
2425 |
+
|
2426 |
+
#: ../settings.php:557 ../settings.php:582
|
2427 |
+
msgid "Maximum compatibility"
|
2428 |
+
msgstr "最佳相容性"
|
2429 |
+
|
2430 |
+
#: ../settings.php:558 ../settings.php:583
|
2431 |
+
msgid "Maximum security"
|
2432 |
+
msgstr "最強安全性"
|
2433 |
+
|
2434 |
+
#: ../settings.php:575
|
2435 |
+
msgid "Erroneous Request Shielding"
|
2436 |
+
msgstr "錯誤請求防護"
|
2437 |
+
|
2438 |
+
#: ../settings.php:578
|
2439 |
+
msgid "Enable error shielding"
|
2440 |
+
msgstr "啟用錯誤防護"
|
2441 |
+
|
2442 |
+
#: ../settings.php:633
|
2443 |
+
msgid "Save software errors"
|
2444 |
+
msgstr "儲存軟體錯誤"
|
2445 |
+
|
2446 |
+
#: ../cerber-scanner.php:3852
|
2447 |
+
msgid "Preparing for the scan"
|
2448 |
+
msgstr "掃描準備中"
|
2449 |
+
|
2450 |
+
#: ../common.php:1305
|
2451 |
+
msgid "Blocked by administrator"
|
2452 |
+
msgstr "由管理員封鎖"
|
2453 |
+
|
2454 |
+
#: ../cerber-load.php:385
|
2455 |
+
msgid "You are not allowed to log in"
|
2456 |
+
msgstr "你不被允許登入"
|
2457 |
+
|
2458 |
+
#: ../cerber-users.php:38
|
2459 |
+
msgid "Block User"
|
2460 |
+
msgstr "封鎖使用者"
|
2461 |
+
|
2462 |
+
#: ../cerber-users.php:42 ../cerber-users.php:48
|
2463 |
+
msgid "User is not permitted to log into the website"
|
2464 |
+
msgstr "使用者不允許登入此網站"
|
2465 |
+
|
2466 |
+
#: ../cerber-users.php:67 ../settings.php:424
|
2467 |
+
msgid "User Message"
|
2468 |
+
msgstr "使用者訊息"
|
2469 |
+
|
2470 |
+
#: ../cerber-users.php:69
|
2471 |
+
msgid "An optional message for this user"
|
2472 |
+
msgstr "給此使用者的額外訊息"
|
2473 |
+
|
2474 |
+
#: ../cerber-users.php:173
|
2475 |
+
msgid "Blocked Users"
|
2476 |
+
msgstr "已封鎖的使用者"
|
2477 |
+
|
2478 |
+
#: ../settings.php:342
|
2479 |
+
msgid "Block access to user pages like /?author=n"
|
2480 |
+
msgstr "封鎖使用者頁面存取,如 /?author=n"
|
2481 |
+
|
2482 |
+
#: ../settings.php:372
|
2483 |
+
msgid "Access to WordPress REST API"
|
2484 |
+
msgstr "存取 WordPress REST API"
|
2485 |
+
|
2486 |
+
#: ../settings.php:382
|
2487 |
+
msgid "Block access to WordPress REST API except any of the following"
|
2488 |
+
msgstr "封鎖對 WordPress REST API的存取,除了以下規則"
|
2489 |
+
|
2490 |
+
#: ../settings.php:391
|
2491 |
+
msgid "Allow REST API for these roles"
|
2492 |
+
msgstr "允許這些角色使用 REST API"
|
2493 |
+
|
2494 |
+
#: ../settings.php:395
|
2495 |
+
msgid "Allow these namespaces"
|
2496 |
+
msgstr "允許這些命名空間"
|
2497 |
+
|
2498 |
+
#: ../settings.php:587
|
2499 |
+
msgid "Ignore logged in users"
|
2500 |
+
msgstr "忽略登入的使用者"
|
2501 |
+
|
2502 |
+
#: ../settings.php:146
|
2503 |
+
msgid "These restrictions do not apply to IP addresses in the White IP Access List"
|
2504 |
+
msgstr "這些限制將不會套用至 IP存取白名單中的 IP位置"
|
2505 |
+
|
2506 |
+
#: ../settings.php:1460
|
2507 |
+
msgid "Select one or more roles"
|
2508 |
+
msgstr "選擇一個或多個角色"
|
2509 |
+
|
2510 |
+
#: ../dashboard.php:1121
|
2511 |
+
msgid "Filter by registered user"
|
2512 |
+
msgstr "根據已註冊的使用者篩選"
|
2513 |
+
|
2514 |
+
#: ../settings.php:410
|
2515 |
+
msgid "Authorized users only"
|
2516 |
+
msgstr "僅已驗證的使用者"
|
2517 |
+
|
2518 |
+
#: ../settings.php:411
|
2519 |
+
msgid "Only registered and logged in website users have access to the website"
|
2520 |
+
msgstr "僅允許註冊和登入網站的使用者存取此網站"
|
2521 |
+
|
2522 |
+
#: ../settings.php:418
|
2523 |
+
msgid "Do not apply this policy to IP addresses in the White IP Access List"
|
2524 |
+
msgstr "不要套用這些策略至 IP存取白名單中的 IP"
|
2525 |
+
|
2526 |
+
#: ../settings.php:428 ../settings.php:2028
|
2527 |
+
msgid "Only registered and logged in users are allowed to view this website"
|
2528 |
+
msgstr "僅允許註冊和登入的使用者檢視此網站"
|
2529 |
+
|
2530 |
+
#: ../settings.php:433
|
2531 |
+
msgid "Redirect to URL"
|
2532 |
+
msgstr "重定向至網址"
|
2533 |
+
|
2534 |
+
#: ../dashboard.php:4617
|
2535 |
+
msgid "Changelog"
|
2536 |
+
msgstr "變更記錄"
|
2537 |
+
|
2538 |
+
#: ../dashboard.php:612
|
2539 |
+
msgid "Default settings have been loaded"
|
2540 |
+
msgstr "已載入預設設定值"
|
2541 |
+
|
2542 |
+
#: ../dashboard.php:3250
|
2543 |
+
msgid "Save all rules"
|
2544 |
+
msgstr "儲存全部規則"
|
2545 |
+
|
2546 |
+
#: ../dashboard.php:3121 ../common.php:899
|
2547 |
+
msgid "Save Changes"
|
2548 |
+
msgstr "儲存變更"
|
2549 |
+
|
2550 |
+
#: ../common.php:1283
|
2551 |
+
msgid "Invalid master credentials"
|
2552 |
+
msgstr "不正確的主憑證"
|
2553 |
+
|
2554 |
+
#: ../settings.php:951
|
2555 |
+
msgid "Master settings"
|
2556 |
+
msgstr "主設定"
|
2557 |
+
|
2558 |
+
#: ../settings.php:959
|
2559 |
+
msgid "Return to the website list"
|
2560 |
+
msgstr "回到網站清單"
|
2561 |
+
|
2562 |
+
#: ../settings.php:963
|
2563 |
+
msgid "Show \"Switched to\" notification"
|
2564 |
+
msgstr "顯示「切換至」通知"
|
2565 |
+
|
2566 |
+
#: ../settings.php:967
|
2567 |
+
msgid "Add @ site to the page title"
|
2568 |
+
msgstr "在頁面標題新增 @網站"
|
2569 |
+
|
2570 |
+
#: ../settings.php:690 ../settings.php:984 ../settings.php:1011
|
2571 |
+
msgid "Enable diagnostic logging"
|
2572 |
+
msgstr "啟用記錄診斷"
|
2573 |
+
|
2574 |
+
#: ../settings.php:994
|
2575 |
+
msgid "Limit access by IP address"
|
2576 |
+
msgstr "根據 IP限制存取"
|
2577 |
+
|
2578 |
+
#: ../settings.php:1000
|
2579 |
+
msgid "Access to this website"
|
2580 |
+
msgstr "存取此網站"
|
2581 |
+
|
2582 |
+
#: ../settings.php:1003
|
2583 |
+
msgid "Full access mode"
|
2584 |
+
msgstr "完整存取模式"
|
2585 |
+
|
2586 |
+
#: ../settings.php:1004
|
2587 |
+
msgid "Read-only mode"
|
2588 |
+
msgstr "唯讀模式"
|
2589 |
+
|
2590 |
+
#: ../settings.php:1020
|
2591 |
+
msgid "The full access mode requires the PRO version of WP Cerber"
|
2592 |
+
msgstr "完整的存取模式需要進階版的 WP Cerber"
|
2593 |
+
|
2594 |
+
#: ../nexus/cerber-slave-list.php:48
|
2595 |
+
msgid "WordPress"
|
2596 |
+
msgstr "WordPress"
|
2597 |
+
|
2598 |
+
#: ../nexus/cerber-slave-list.php:52
|
2599 |
+
msgid "Malware Scan"
|
2600 |
+
msgstr "惡意軟體掃描"
|
2601 |
+
|
2602 |
+
#: ../nexus/cerber-slave-list.php:55 ../nexus/cerber-nexus-master.php:103
|
2603 |
+
msgid "Notes"
|
2604 |
+
msgstr "備註"
|
2605 |
+
|
2606 |
+
#: ../nexus/cerber-slave-list.php:117
|
2607 |
+
msgid "Add a slave website"
|
2608 |
+
msgstr "新增附屬網站"
|
2609 |
+
|
2610 |
+
#: ../cerber-users.php:844 ../nexus/cerber-slave-list.php:193
|
2611 |
+
msgid "Search results for:"
|
2612 |
+
msgstr "搜尋結果:"
|
2613 |
+
|
2614 |
+
#: ../nexus/cerber-slave-list.php:233
|
2615 |
+
msgid "Edit"
|
2616 |
+
msgstr "編輯"
|
2617 |
+
|
2618 |
+
#: ../nexus/cerber-slave-list.php:239
|
2619 |
+
msgid "Switch to"
|
2620 |
+
msgstr "切換至"
|
2621 |
+
|
2622 |
+
#: ../nexus/cerber-slave-list.php:339
|
2623 |
+
msgid "No websites configured."
|
2624 |
+
msgstr "無已設定的網站。"
|
2625 |
+
|
2626 |
+
#: ../nexus/cerber-slave-list.php:339
|
2627 |
+
msgid "Add a new one"
|
2628 |
+
msgstr "新增"
|
2629 |
+
|
2630 |
+
#: ../nexus/cerber-nexus-master.php:70
|
2631 |
+
msgid "Website Properties"
|
2632 |
+
msgstr "網站屬性"
|
2633 |
+
|
2634 |
+
#: ../nexus/cerber-nexus-master.php:80
|
2635 |
+
msgid "Website URL"
|
2636 |
+
msgstr "網站網址"
|
2637 |
+
|
2638 |
+
#: ../nexus/cerber-nexus-master.php:85
|
2639 |
+
msgid "Display as"
|
2640 |
+
msgstr "顯示為"
|
2641 |
+
|
2642 |
+
#: ../nexus/cerber-nexus-master.php:111
|
2643 |
+
msgid "Website Owner"
|
2644 |
+
msgstr "網站擁有者"
|
2645 |
+
|
2646 |
+
#: ../nexus/cerber-nexus-master.php:115
|
2647 |
+
msgid "First Name"
|
2648 |
+
msgstr "名字"
|
2649 |
+
|
2650 |
+
#: ../nexus/cerber-nexus-master.php:119
|
2651 |
+
msgid "Last Name"
|
2652 |
+
msgstr "姓氏"
|
2653 |
+
|
2654 |
+
#: ../nexus/cerber-nexus-master.php:123
|
2655 |
+
msgid "Email"
|
2656 |
+
msgstr "Email"
|
2657 |
+
|
2658 |
+
#: ../nexus/cerber-nexus-master.php:127
|
2659 |
+
msgid "Phone"
|
2660 |
+
msgstr "電話"
|
2661 |
+
|
2662 |
+
#: ../nexus/cerber-nexus-master.php:135
|
2663 |
+
msgid "Address"
|
2664 |
+
msgstr "地址"
|
2665 |
+
|
2666 |
+
#: ../nexus/cerber-nexus-master.php:261
|
2667 |
+
msgid "Security access token is invalid"
|
2668 |
+
msgstr "安全存取權杖不正確"
|
2669 |
+
|
2670 |
+
#: ../nexus/cerber-nexus-master.php:291
|
2671 |
+
msgid "The website you are trying to add is already in the list"
|
2672 |
+
msgstr "嘗試加入的網站已在清單中"
|
2673 |
+
|
2674 |
+
#: ../nexus/cerber-nexus-master.php:300
|
2675 |
+
msgid "The website has been added successfully"
|
2676 |
+
msgstr "已成功加入此網站"
|
2677 |
+
|
2678 |
+
#: ../nexus/cerber-nexus-master.php:301
|
2679 |
+
msgid "Click to edit"
|
2680 |
+
msgstr "點選以編輯"
|
2681 |
+
|
2682 |
+
#: ../nexus/cerber-nexus-master.php:302
|
2683 |
+
msgid "Switch to the Dashboard"
|
2684 |
+
msgstr "切換至控制台"
|
2685 |
+
|
2686 |
+
#: ../nexus/cerber-nexus-master.php:305
|
2687 |
+
msgid "Keep in mind: You have added the website that does not support SSL encryption. This may lead to data leakage."
|
2688 |
+
msgstr "請牢記:你已經新增不支援 SSL加密的網站,這可能導致資料洩漏。"
|
2689 |
+
|
2690 |
+
#: ../nexus/cerber-nexus-master.php:426
|
2691 |
+
msgid "Website has been deleted"
|
2692 |
+
msgid_plural "%s websites have been deleted"
|
2693 |
+
msgstr[0] "網站已刪除\n"
|
2694 |
+
"%s 個網站已刪除"
|
2695 |
+
|
2696 |
+
#: ../nexus/cerber-nexus-master.php:982
|
2697 |
+
msgid "You have switched to %s"
|
2698 |
+
msgstr "你已被切換至 %s"
|
2699 |
+
|
2700 |
+
#: ../nexus/cerber-nexus-master.php:987
|
2701 |
+
msgid "You have switched back to the master website"
|
2702 |
+
msgstr "你已被切換回主網站"
|
2703 |
+
|
2704 |
+
#: ../nexus/cerber-nexus-master.php:1199
|
2705 |
+
msgid "You are here:"
|
2706 |
+
msgstr "你在此處:"
|
2707 |
+
|
2708 |
+
#: ../nexus/cerber-nexus-master.php:1202 ../nexus/cerber-nexus.php:89 ..
|
2709 |
+
#: /nexus/cerber-nexus.php:99
|
2710 |
+
msgid "My Websites"
|
2711 |
+
msgstr "我的網站"
|
2712 |
+
|
2713 |
+
#: ../nexus/cerber-nexus-master.php:1217
|
2714 |
+
msgid "Visit Site"
|
2715 |
+
msgstr "檢視網站"
|
2716 |
+
|
2717 |
+
#: ../nexus/cerber-nexus.php:61
|
2718 |
+
msgid "Enable slave mode"
|
2719 |
+
msgstr "啟用附屬模式"
|
2720 |
+
|
2721 |
+
#: ../nexus/cerber-nexus.php:62
|
2722 |
+
msgid "This website can be managed from a master website"
|
2723 |
+
msgstr "此網站可以從主網站進行管理"
|
2724 |
+
|
2725 |
+
#: ../nexus/cerber-nexus.php:65
|
2726 |
+
msgid "Enable master mode"
|
2727 |
+
msgstr "啟用主網站模式"
|
2728 |
+
|
2729 |
+
#: ../nexus/cerber-nexus.php:66
|
2730 |
+
msgid "Configure this website as a master to manage other website"
|
2731 |
+
msgstr "設定此網站為主網站可管理其他網站"
|
2732 |
+
|
2733 |
+
#: ../nexus/cerber-nexus.php:71
|
2734 |
+
msgid "To proceed, please select the mode for this website"
|
2735 |
+
msgstr "若要繼續,請對此網站選擇一個模式"
|
2736 |
+
|
2737 |
+
#: ../nexus/cerber-nexus.php:95 ../nexus/cerber-nexus.php:99
|
2738 |
+
msgid "Slave Settings"
|
2739 |
+
msgstr "附屬設定"
|
2740 |
+
|
2741 |
+
#: ../nexus/cerber-nexus.php:141
|
2742 |
+
msgid "Secret Access Token"
|
2743 |
+
msgstr "機密存取權杖"
|
2744 |
+
|
2745 |
+
#: ../nexus/cerber-nexus.php:143
|
2746 |
+
msgid "The token is unique to this website. Keep it secret. Install the token on a master website to grant access to this website."
|
2747 |
+
msgstr "權杖為網站獨一無二的,請保持其機密性。在主網站上安裝權杖以授權存取此網站。"
|
2748 |
+
|
2749 |
+
#: ../nexus/cerber-nexus.php:145
|
2750 |
+
msgid "Are you sure? This permanently invalidates the token."
|
2751 |
+
msgstr "你確定嗎?這將會永久廢止權杖。"
|
2752 |
+
|
2753 |
+
#: ../nexus/cerber-nexus.php:146
|
2754 |
+
msgid "Disable slave mode"
|
2755 |
+
msgstr "停用附屬模式"
|
2756 |
+
|
2757 |
+
#: ../nexus/cerber-nexus.php:261
|
2758 |
+
msgid "This website is set as master."
|
2759 |
+
msgstr "此網站是設定為主網站。"
|
2760 |
+
|
2761 |
+
#: ../nexus/cerber-nexus.php:262
|
2762 |
+
msgid "Add slave websites by using access tokens."
|
2763 |
+
msgstr "使用存取權杖新增附屬網站。"
|
2764 |
+
|
2765 |
+
#: ../nexus/cerber-nexus.php:265
|
2766 |
+
msgid "This website is set as slave."
|
2767 |
+
msgstr "此網站是設定為附屬。"
|
2768 |
+
|
2769 |
+
#: ../nexus/cerber-nexus.php:266
|
2770 |
+
msgid "Install the access token on the master website."
|
2771 |
+
msgstr "從主網站安裝存取權杖。"
|
2772 |
+
|
2773 |
+
#. translators: Time difference between two dates, in seconds (sec=second). 1: Number of seconds
|
2774 |
+
#: ../common.php:1482
|
2775 |
+
msgid "%s sec"
|
2776 |
+
msgid_plural "%s secs"
|
2777 |
+
msgstr[0] "%s 秒"
|
2778 |
+
|
2779 |
+
#: ../settings.php:535
|
2780 |
+
msgid "Send reports on"
|
2781 |
+
msgstr "傳送報告於"
|
2782 |
+
|
2783 |
+
#: ../nexus/cerber-slave-list.php:51
|
2784 |
+
msgid "Updates"
|
2785 |
+
msgstr "更新"
|
2786 |
+
|
2787 |
+
#: ../nexus/cerber-slave-list.php:53 ../nexus/cerber-nexus-master.php:94
|
2788 |
+
msgid "Group"
|
2789 |
+
msgstr "群組"
|
2790 |
+
|
2791 |
+
#: ../nexus/cerber-slave-list.php:96
|
2792 |
+
msgid "Upgrade WP Cerber"
|
2793 |
+
msgstr "更新 WP Cerber"
|
2794 |
+
|
2795 |
+
#: ../nexus/cerber-slave-list.php:97
|
2796 |
+
msgid "Upgrade all active plugins"
|
2797 |
+
msgstr "更新全部啟用的外掛"
|
2798 |
+
|
2799 |
+
#: ../nexus/cerber-slave-list.php:98
|
2800 |
+
msgid "Delete website"
|
2801 |
+
msgstr "刪除網站"
|
2802 |
+
|
2803 |
+
#: ../nexus/cerber-slave-list.php:111
|
2804 |
+
msgid "All groups"
|
2805 |
+
msgstr "全部群組"
|
2806 |
+
|
2807 |
+
#: ../nexus/cerber-nexus-master.php:1380
|
2808 |
+
msgid "Are you sure you want to delete selected websites?"
|
2809 |
+
msgstr "你確定要刪除選取的網站嗎?"
|
2810 |
+
|
2811 |
+
#: ../cerber-users.php:205
|
2812 |
+
msgid "Block"
|
2813 |
+
msgstr "封鎖"
|
2814 |
+
|
2815 |
+
#: ../nexus/cerber-nexus-master.php:62
|
2816 |
+
msgid "Select an existing group or enter a new one to add it"
|
2817 |
+
msgstr "選取已存在的群組或新增一個新的"
|
2818 |
+
|
2819 |
+
#: ../nexus/cerber-nexus-master.php:131
|
2820 |
+
msgid "Company"
|
2821 |
+
msgstr "公司"
|
2822 |
+
|
2823 |
+
#: ../nexus/cerber-nexus-master.php:657
|
2824 |
+
msgid "Invalid response from the slave website"
|
2825 |
+
msgstr "附屬網站不正確的回覆"
|
2826 |
+
|
2827 |
+
#: ../common.php:1264 ../common.php:1337
|
2828 |
+
msgid "Attempt to log in with non-existing username"
|
2829 |
+
msgstr "嘗試登入不存在的使用者帳號"
|
2830 |
+
|
2831 |
+
#: ../cerber-load.php:4055
|
2832 |
+
msgid "Attempts to log in with non-existing usernames"
|
2833 |
+
msgstr "嘗試登入不存在的使用者帳號"
|
2834 |
+
|
2835 |
+
#: ../settings.php:971
|
2836 |
+
msgid "Use master language"
|
2837 |
+
msgstr "使用主要語系"
|
2838 |
+
|
2839 |
+
#: ../settings.php:195
|
2840 |
+
msgid "Non-existing users"
|
2841 |
+
msgstr "不存在的使用者"
|
2842 |
+
|
2843 |
+
#: ../settings.php:196
|
2844 |
+
msgid "Immediately block IP when attempting to log in with a non-existing username"
|
2845 |
+
msgstr "若嘗試登入不存在的使用者帳號則立即封鎖 IP"
|
2846 |
+
|
2847 |
+
#: ../nexus/cerber-slave-list.php:54
|
2848 |
+
msgid "Owner"
|
2849 |
+
msgstr "擁有者"
|
2850 |
+
|
2851 |
+
#: ../nexus/cerber-slave-list.php:339
|
2852 |
+
msgid "Disable master mode"
|
2853 |
+
msgstr "停用主網站模式"
|
2854 |
+
|
2855 |
+
#: ../nexus/cerber-nexus.php:146
|
2856 |
+
msgid "To revoke the token and disable remote management, click here:"
|
2857 |
+
msgstr "若要撤銷權杖並停用遠端管理,請點選這裡:"
|
2858 |
+
|
2859 |
+
#: ../settings.php:352
|
2860 |
+
msgid "Block execution of PHP scripts in the WordPress media folder"
|
2861 |
+
msgstr "在 WordPress媒體目錄禁止可執行 PHP代碼"
|
2862 |
+
|
2863 |
+
#: ../nexus/cerber-nexus-master.php:1445 ../nexus/cerber-nexus-master.php:1453
|
2864 |
+
msgid "Active plugins and updates on"
|
2865 |
+
msgstr "啟用外掛並更新於"
|
2866 |
+
|
2867 |
+
#: ../nexus/cerber-nexus-master.php:1424
|
2868 |
+
msgid "A newer version is available"
|
2869 |
+
msgstr "有新版本可供使用"
|
2870 |
+
|
2871 |
+
#: ../dashboard.php:897
|
2872 |
+
msgid "New users"
|
2873 |
+
msgstr "新使用者"
|
2874 |
+
|
2875 |
+
#: ../dashboard.php:910
|
2876 |
+
msgid "My activity"
|
2877 |
+
msgstr "我的活動"
|
2878 |
+
|
2879 |
+
#: ../dashboard.php:2509
|
2880 |
+
msgid "Create Alert"
|
2881 |
+
msgstr "建立警報"
|
2882 |
+
|
2883 |
+
#: ../dashboard.php:2513
|
2884 |
+
msgid "Delete Alert"
|
2885 |
+
msgstr "刪除警報"
|
2886 |
+
|
2887 |
+
#: ../dashboard.php:2547
|
2888 |
+
msgid "The alert has been created"
|
2889 |
+
msgstr "已建立警報"
|
2890 |
+
|
2891 |
+
#: ../dashboard.php:2552
|
2892 |
+
msgid "The alert has been deleted"
|
2893 |
+
msgstr "此警報已被刪除"
|
2894 |
+
|
2895 |
+
#: ../dashboard.php:3960
|
2896 |
+
msgid "Advanced Search"
|
2897 |
+
msgstr "進階搜尋"
|
2898 |
+
|
2899 |
+
#. Author of the plugin
|
2900 |
+
#:
|
2901 |
+
msgid "Cerber Tech Inc."
|
2902 |
+
msgstr "Cerber Tech Inc."
|
2903 |
+
|
2904 |
+
#: ../cerber-load.php:4545
|
2905 |
+
msgid "To delete the alert, click here"
|
2906 |
+
msgstr "點選這裡刪除警報"
|
2907 |
+
|
2908 |
+
#: ../settings.php:228
|
2909 |
+
msgid "Custom login URL may contain Latin alphanumeric characters, dashes and underscores only"
|
2910 |
+
msgstr "自動登入 URL只能包含拉丁字母、破折號和下劃線"
|
2911 |
+
|
2912 |
+
#: ../settings.php:240
|
2913 |
+
msgid "Site-specific settings"
|
2914 |
+
msgstr "網站專用設定"
|
2915 |
+
|
2916 |
+
#: ../settings.php:248
|
2917 |
+
msgid "Prefix for plugin cookies"
|
2918 |
+
msgstr "外掛 cookie前置詞"
|
2919 |
+
|
2920 |
+
#: ../settings.php:249
|
2921 |
+
msgid "Prefix may contain only Latin alphanumeric characters and underscores"
|
2922 |
+
msgstr "前置詞只能包含拉丁字母和下劃線"
|
2923 |
+
|
2924 |
+
#: ../settings.php:492
|
2925 |
+
msgid "Lockout notifications"
|
2926 |
+
msgstr "鎖定通知"
|
2927 |
+
|
2928 |
+
#: ../settings.php:518
|
2929 |
+
msgid "Pushbullet access token"
|
2930 |
+
msgstr "Pushbullet存取權杖"
|
2931 |
+
|
2932 |
+
#: ../settings.php:521
|
2933 |
+
msgid "Pushbullet device"
|
2934 |
+
msgstr "Pushbullet裝置"
|
2935 |
+
|
2936 |
+
#: ../settings.php:764
|
2937 |
+
msgid "Delete unattended files"
|
2938 |
+
msgstr "刪除無關聯的檔案"
|
2939 |
+
|
2940 |
+
#: ../settings.php:783
|
2941 |
+
msgid "Automatic recovery of modified and infected files"
|
2942 |
+
msgstr "自動復原被修改和已感染的檔案"
|
2943 |
+
|
2944 |
+
#: ../settings.php:786
|
2945 |
+
msgid "Recover WordPress files"
|
2946 |
+
msgstr "復原 WordPress檔案"
|
2947 |
+
|
2948 |
+
#: ../settings.php:790
|
2949 |
+
msgid "Recover plugins files"
|
2950 |
+
msgstr "復原外掛檔案"
|
2951 |
+
|
2952 |
+
#: ../cerber-scanner.php:1605
|
2953 |
+
msgid "File deleted"
|
2954 |
+
msgstr "檔案已刪除"
|
2955 |
+
|
2956 |
+
#: ../cerber-scanner.php:1606
|
2957 |
+
msgid "File recovered"
|
2958 |
+
msgstr "檔案已復原"
|
2959 |
+
|
2960 |
+
#: ../cerber-scanner.php:3860
|
2961 |
+
msgid "Recovering WordPress files"
|
2962 |
+
msgstr "復原 WordPress檔案中"
|
2963 |
+
|
2964 |
+
#: ../cerber-scanner.php:3862
|
2965 |
+
msgid "Recovering plugins files"
|
2966 |
+
msgstr "復原外掛檔案中"
|
2967 |
+
|
2968 |
+
#: ../cerber-scanner.php:5353
|
2969 |
+
msgid "Recovered"
|
2970 |
+
msgstr "已復原"
|
2971 |
+
|
2972 |
+
#: ../cerber-scanner.php:5403
|
2973 |
+
msgid "Automatically deleted"
|
2974 |
+
msgstr "已自動刪除"
|
2975 |
+
|
2976 |
+
#: ../cerber-scanner.php:5406
|
2977 |
+
msgid "Automatically recovered"
|
2978 |
+
msgstr "已自動復原"
|
2979 |
+
|
2980 |
+
#: ../dashboard.php:63
|
2981 |
+
msgid "Cerber User Security"
|
2982 |
+
msgstr "Cerber使用者安全性"
|
2983 |
+
|
2984 |
+
#: ../dashboard.php:63 ../dashboard.php:4542
|
2985 |
+
msgid "User Policies"
|
2986 |
+
msgstr "使用者策略"
|
2987 |
+
|
2988 |
+
#: ../dashboard.php:1717
|
2989 |
+
msgid "A new version is available"
|
2990 |
+
msgstr "有新版本可供使用"
|
2991 |
+
|
2992 |
+
#: ../dashboard.php:4544
|
2993 |
+
msgid "Role-based"
|
2994 |
+
msgstr "基於角色"
|
2995 |
+
|
2996 |
+
#: ../dashboard.php:4545
|
2997 |
+
msgid "Global"
|
2998 |
+
msgstr "全域"
|
2999 |
+
|
3000 |
+
#: ../common.php:1306
|
3001 |
+
msgid "Site policy enforcement"
|
3002 |
+
msgstr "強制性網站策略"
|
3003 |
+
|
3004 |
+
#: ../common.php:1307
|
3005 |
+
msgid "2FA code verified"
|
3006 |
+
msgstr "已驗證 2FA代碼"
|
3007 |
+
|
3008 |
+
#: ../common.php:1308
|
3009 |
+
msgid "Initiated by the user"
|
3010 |
+
msgstr "由使用者啟動"
|
3011 |
+
|
3012 |
+
#: ../common.php:1311
|
3013 |
+
msgid "Email address is not permitted"
|
3014 |
+
msgstr "不允許的 Email"
|
3015 |
+
|
3016 |
+
#: ../common.php:1677
|
3017 |
+
msgid "A new version of %s is available. Please install it."
|
3018 |
+
msgstr "已有新版 %s 可用,請安裝。"
|
3019 |
+
|
3020 |
+
#: ../cerber-load.php:1490
|
3021 |
+
msgid "Email address is not permitted."
|
3022 |
+
msgstr "不允許的 Email。"
|
3023 |
+
|
3024 |
+
#: ../cerber-load.php:1490
|
3025 |
+
msgid "Please choose another one."
|
3026 |
+
msgstr "請選擇其它的。"
|
3027 |
+
|
3028 |
+
#: ../cerber-users.php:10 ../cerber-users.php:424
|
3029 |
+
msgid "Two-Factor Authentication"
|
3030 |
+
msgstr "兩步驟驗證"
|
3031 |
+
|
3032 |
+
#: ../cerber-users.php:18
|
3033 |
+
msgid "Determined by user role policies"
|
3034 |
+
msgstr "依據使用者角色策略決定"
|
3035 |
+
|
3036 |
+
#: ../cerber-users.php:19 ../cerber-users.php:432
|
3037 |
+
msgid "Always enabled"
|
3038 |
+
msgstr "永遠啟用"
|
3039 |
+
|
3040 |
+
#: ../cerber-users.php:78
|
3041 |
+
msgid "2FA PIN Code"
|
3042 |
+
msgstr "2FA PIN碼"
|
3043 |
+
|
3044 |
+
#: ../cerber-users.php:274
|
3045 |
+
msgid "Save All Changes"
|
3046 |
+
msgstr "儲存全部變更"
|
3047 |
+
|
3048 |
+
#: ../cerber-users.php:386
|
3049 |
+
msgid "Block access to WordPress Dashboard"
|
3050 |
+
msgstr "封鎖存取 WordPress控制台"
|
3051 |
+
|
3052 |
+
#: ../cerber-users.php:391
|
3053 |
+
msgid "Hide Toolbar when viewing site"
|
3054 |
+
msgstr "檢視網站時隱藏工具列"
|
3055 |
+
|
3056 |
+
#: ../cerber-users.php:397
|
3057 |
+
msgid "Redirection rules"
|
3058 |
+
msgstr "重定向規則"
|
3059 |
+
|
3060 |
+
#: ../cerber-users.php:401
|
3061 |
+
msgid "Redirect user after login"
|
3062 |
+
msgstr "使用者登入後重定向"
|
3063 |
+
|
3064 |
+
#: ../cerber-users.php:406
|
3065 |
+
msgid "Redirect user after logout"
|
3066 |
+
msgstr "登出後重定向"
|
3067 |
+
|
3068 |
+
#: ../cerber-users.php:417 ../settings.php:473
|
3069 |
+
msgid "User session expiration time"
|
3070 |
+
msgstr "使用者通信逾期時間"
|
3071 |
+
|
3072 |
+
#: ../cerber-users.php:428
|
3073 |
+
msgid "Two-factor authentication"
|
3074 |
+
msgstr "兩步驟驗證"
|
3075 |
+
|
3076 |
+
#: ../cerber-users.php:433
|
3077 |
+
msgid "Advanced mode"
|
3078 |
+
msgstr "進階模式"
|
3079 |
+
|
3080 |
+
#: ../cerber-users.php:437
|
3081 |
+
msgid "Enforce two-factor authentication if any of the following conditions is true"
|
3082 |
+
msgstr "如果符合以下任何條件則強制使用兩步驟驗證"
|
3083 |
+
|
3084 |
+
#: ../cerber-users.php:443
|
3085 |
+
msgid "Login from a different country"
|
3086 |
+
msgstr "自不同國家登入"
|
3087 |
+
|
3088 |
+
#: ../cerber-users.php:449
|
3089 |
+
msgid "Login from a different network Class C"
|
3090 |
+
msgstr "自不同的 Class C網路登入"
|
3091 |
+
|
3092 |
+
#: ../cerber-users.php:455
|
3093 |
+
msgid "Login from a different IP address"
|
3094 |
+
msgstr "自不同的 IP位置登入"
|
3095 |
+
|
3096 |
+
#: ../cerber-users.php:461
|
3097 |
+
msgid "Using a different browser or device"
|
3098 |
+
msgstr "使用不同的瀏覽器或裝置"
|
3099 |
+
|
3100 |
+
#: ../cerber-users.php:467
|
3101 |
+
msgid "Enforce two-factor authentication with fixed intervals"
|
3102 |
+
msgstr "強制兩步驟驗證與固定間隔"
|
3103 |
+
|
3104 |
+
#: ../cerber-users.php:473
|
3105 |
+
msgid "Regular time intervals (days)"
|
3106 |
+
msgstr "固定間隔時間(天)"
|
3107 |
+
|
3108 |
+
#: ../cerber-users.php:475
|
3109 |
+
msgid "days interval"
|
3110 |
+
msgstr "天間隔"
|
3111 |
+
|
3112 |
+
#: ../cerber-users.php:480
|
3113 |
+
msgid "Fixed number of logins"
|
3114 |
+
msgstr "固定登入次數"
|
3115 |
+
|
3116 |
+
#: ../cerber-users.php:482
|
3117 |
+
msgid "number of logins"
|
3118 |
+
msgstr "登入次數"
|
3119 |
+
|
3120 |
+
#: ../cerber-users.php:524
|
3121 |
+
msgid "Policies have been updated"
|
3122 |
+
msgstr "策略已更新"
|
3123 |
+
|
3124 |
+
#: ../settings.php:448
|
3125 |
+
msgid "Restrict email addresses"
|
3126 |
+
msgstr "限制電子郵件位置"
|
3127 |
+
|
3128 |
+
#: ../settings.php:451
|
3129 |
+
msgid "No restrictions"
|
3130 |
+
msgstr "無限制"
|
3131 |
+
|
3132 |
+
#: ../settings.php:452
|
3133 |
+
msgid "Deny all email addresses that match the following"
|
3134 |
+
msgstr "符合以下電子郵件位置則全部拒絕"
|
3135 |
+
|
3136 |
+
#: ../settings.php:453
|
3137 |
+
msgid "Permit only email addresses that match the following"
|
3138 |
+
msgstr "只允許符合以下的電子郵件位置"
|
3139 |
+
|
3140 |
+
#: ../settings.php:458
|
3141 |
+
msgid "Specify email addresses, wildcards or REGEX patterns. Use comma to separate items."
|
3142 |
+
msgstr "指定電子郵件位置、通用字元或正規表示法。使用小寫逗號分隔項目。"
|
3143 |
+
|
3144 |
+
#: ../settings.php:797
|
3145 |
+
msgid "These files will never be deleted during automatic cleanup."
|
3146 |
+
msgstr "自動清理時將不會刪除這些檔案。"
|
3147 |
+
|
3148 |
+
#: ../cerber-2fa.php:352
|
3149 |
+
msgid "This verification PIN code is expired. We have just sent a new one to your email."
|
3150 |
+
msgstr "驗證 PIN碼已逾期,我們已重新發送至你的郵件。"
|
3151 |
+
|
3152 |
+
#: ../cerber-2fa.php:355
|
3153 |
+
msgid "You have entered an incorrect verification PIN code"
|
3154 |
+
msgstr "你輸入了錯誤的驗證 PIN碼"
|
3155 |
+
|
3156 |
+
#: ../cerber-2fa.php:402 ../cerber-2fa.php:486
|
3157 |
+
msgid "Please verify that it’s you"
|
3158 |
+
msgstr "請驗證此為您"
|
3159 |
+
|
3160 |
+
#: ../cerber-2fa.php:489
|
3161 |
+
msgid "Please use the following verification PIN code to confirm your identity"
|
3162 |
+
msgstr "請使用以下驗證 PIN碼確認你的身份"
|
3163 |
+
|
3164 |
+
#: ../cerber-2fa.php:514
|
3165 |
+
msgid "Here are the details of the sign-in attempt"
|
3166 |
+
msgstr "這裡是嘗試登入的詳細資訊"
|
3167 |
+
|
3168 |
+
#: ../cerber-2fa.php:563
|
3169 |
+
msgid "expires"
|
3170 |
+
msgstr "逾期時間"
|
3171 |
+
|
3172 |
+
#: ../cerber-2fa.php:580
|
3173 |
+
msgid "only digits are allowed"
|
3174 |
+
msgstr "僅允許數字"
|
3175 |
+
|
3176 |
+
#: ../cerber-2fa.php:583
|
3177 |
+
msgid "We've sent a verification PIN code to your email"
|
3178 |
+
msgstr "我們已傳送驗證 PIN碼至你的郵件"
|
3179 |
+
|
3180 |
+
#: ../cerber-2fa.php:584
|
3181 |
+
msgid "Enter the code from the email in the field below."
|
3182 |
+
msgstr "於以下欄位輸入電子郵件中的代碼。"
|
3183 |
+
|
3184 |
+
#: ../cerber-2fa.php:586
|
3185 |
+
msgid "Try again"
|
3186 |
+
msgstr "重新再試"
|
3187 |
+
|
3188 |
+
#: ../cerber-2fa.php:587
|
3189 |
+
msgid "Cancel"
|
3190 |
+
msgstr "取消"
|
3191 |
+
|
3192 |
+
#: ../cerber-2fa.php:588
|
3193 |
+
msgid "Did not receive an email?"
|
3194 |
+
msgstr "沒有收到電子郵件?"
|
3195 |
+
|
3196 |
+
#: ../cerber-2fa.php:588
|
3197 |
+
msgid "or"
|
3198 |
+
msgstr "或"
|
3199 |
+
|
3200 |
+
#: ../cerber-2fa.php:594
|
3201 |
+
msgid "Verify it's you"
|
3202 |
+
msgstr "驗證此為您"
|
3203 |
+
|
3204 |
+
#: ../cerber-2fa.php:599
|
3205 |
+
msgid "Verify"
|
3206 |
+
msgstr "驗證"
|
3207 |
+
|
3208 |
+
#: ../cerber-users.php:93
|
3209 |
+
msgid "Two-Factor Authentication Email"
|
3210 |
+
msgstr "兩步驟驗證 Email"
|
3211 |
+
|
3212 |
+
#: ../dashboard.php:3193
|
3213 |
+
msgid "Role-based rules are configured"
|
3214 |
+
msgstr "已設定角色規則"
|
3215 |
+
|
3216 |
+
#: ../dashboard.php:3387
|
3217 |
+
msgid "All Users"
|
3218 |
+
msgstr "全部使用者"
|
3219 |
+
|
3220 |
+
#: ../cerber-users.php:57
|
3221 |
+
msgctxt "e.g. blocked by John at 11:00"
|
3222 |
+
msgid "blocked by %s at %s"
|
3223 |
+
msgstr "由 %s在 %s封鎖"
|
3224 |
+
|
3225 |
+
#: ../cerber-2fa.php:489
|
3226 |
+
msgid "The code is valid for %s minutes."
|
3227 |
+
msgstr "代碼僅在 %s分鐘內有效。"
|
3228 |
+
|
3229 |
+
#: ../dashboard.php:301
|
3230 |
+
msgid "IP address %s has been added to White IP Access List"
|
3231 |
+
msgstr "已新增 IP位置 %s至 IP存取白名單"
|
3232 |
+
|
3233 |
+
#: ../dashboard.php:323
|
3234 |
+
msgid "IP address %s has been added to Black IP Access List"
|
3235 |
+
msgstr "已新增 IP位置 %s至 IP存取黑名單"
|
3236 |
+
|
3237 |
+
#: ../dashboard.php:804 ../dashboard.php:1071 ../dashboard.php:3904 ../cerber-
|
3238 |
+
#: users.php:756
|
3239 |
+
msgid "IP Address"
|
3240 |
+
msgstr "IP位置"
|
3241 |
+
|
3242 |
+
#: ../dashboard.php:811 ../dashboard.php:1077
|
3243 |
+
msgid "Username"
|
3244 |
+
msgstr "帳號"
|
3245 |
+
|
3246 |
+
#: ../dashboard.php:3275
|
3247 |
+
msgid "Any country is permitted"
|
3248 |
+
msgstr "任何被允許的國家"
|
3249 |
+
|
3250 |
+
#: ../dashboard.php:4462
|
3251 |
+
msgid "Sessions"
|
3252 |
+
msgstr "通信"
|
3253 |
+
|
3254 |
+
#: ../cerber-users.php:598
|
3255 |
+
msgid "Session has been terminated"
|
3256 |
+
msgid_plural "%s sessions have been terminated"
|
3257 |
+
msgstr[0] "已中止通信"
|
3258 |
+
|
3259 |
+
#: ../cerber-users.php:754
|
3260 |
+
msgid "Created"
|
3261 |
+
msgstr "已建立"
|
3262 |
+
|
3263 |
+
#: ../cerber-users.php:775
|
3264 |
+
msgid "Terminate session"
|
3265 |
+
msgstr "中止通信"
|
3266 |
+
|
3267 |
+
#: ../cerber-users.php:776
|
3268 |
+
msgid "Block user"
|
3269 |
+
msgstr "封鎖使用者"
|
3270 |
+
|
3271 |
+
#: ../cerber-users.php:886
|
3272 |
+
msgid "Profile"
|
3273 |
+
msgstr "個人資料"
|
3274 |
+
|
3275 |
+
#: ../cerber-users.php:899
|
3276 |
+
msgid "All Logins"
|
3277 |
+
msgstr "所有登入"
|
3278 |
+
|
3279 |
+
#: ../cerber-users.php:900
|
3280 |
+
msgid "User Activity"
|
3281 |
+
msgstr "使用者活動"
|
3282 |
+
|
3283 |
+
#: ../cerber-users.php:947
|
3284 |
+
msgid "Terminate"
|
3285 |
+
msgstr "中止"
|
3286 |
+
|
3287 |
+
#: ../dashboard.php:1674
|
3288 |
+
msgid "user"
|
3289 |
+
msgid_plural "users"
|
3290 |
+
msgstr[0] "使用者"
|
3291 |
+
|
3292 |
+
#: ../settings.php:377
|
3293 |
+
msgid "Block access to users' data via REST API"
|
3294 |
+
msgstr "透過 REST API封鎖存取使用者資料"
|
3295 |
+
|
3296 |
+
#: ../cerber-scanner.php:1604
|
3297 |
+
msgid "Unable to delete"
|
3298 |
+
msgstr "無法刪除"
|
3299 |
+
|
languages/wp-cerber.pot
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: WP Cerber\n"
|
6 |
"Report-Msgid-Bugs-To: \n"
|
7 |
"POT-Creation-Date: Tue Sep 08 2015 21:38:11 GMT+0300\n"
|
8 |
-
"POT-Revision-Date:
|
9 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
@@ -28,8 +28,8 @@ msgstr ""
|
|
28 |
msgid "Cerber Dashboard"
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: ../dashboard.php:54 ../dashboard.php:
|
32 |
-
#: php:
|
33 |
msgid "Dashboard"
|
34 |
msgstr ""
|
35 |
|
@@ -37,791 +37,812 @@ msgstr ""
|
|
37 |
msgid "Cerber Traffic Inspector"
|
38 |
msgstr ""
|
39 |
|
40 |
-
#: ../dashboard.php:56 ../dashboard.php:
|
41 |
msgid "Traffic Inspector"
|
42 |
msgstr ""
|
43 |
|
44 |
#: ../dashboard.php:60
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
msgid "Cerber Security Rules"
|
46 |
msgstr ""
|
47 |
|
48 |
-
#: ../dashboard.php:
|
49 |
msgid "Security Rules"
|
50 |
msgstr ""
|
51 |
|
52 |
-
#: ../dashboard.php:
|
53 |
msgid "Cerber User Security"
|
54 |
msgstr ""
|
55 |
|
56 |
-
#: ../dashboard.php:
|
57 |
msgid "User Policies"
|
58 |
msgstr ""
|
59 |
|
60 |
-
#: ../dashboard.php:
|
61 |
msgid "Site Integrity"
|
62 |
msgstr ""
|
63 |
|
64 |
-
#: ../dashboard.php:
|
65 |
msgid "Cerber antispam settings"
|
66 |
msgstr ""
|
67 |
|
68 |
-
#: ../dashboard.php:
|
69 |
msgid "Antispam"
|
70 |
msgstr ""
|
71 |
|
72 |
-
#: ../dashboard.php:
|
73 |
msgid "Cerber tools"
|
74 |
msgstr ""
|
75 |
|
76 |
-
#: ../dashboard.php:
|
77 |
msgid "Tools"
|
78 |
msgstr ""
|
79 |
|
80 |
-
#: ../dashboard.php:
|
81 |
msgid "Remove"
|
82 |
msgstr ""
|
83 |
|
84 |
-
#: ../dashboard.php:
|
85 |
msgid "IP"
|
86 |
msgstr ""
|
87 |
|
88 |
-
#: ../dashboard.php:
|
89 |
msgid "Hostname"
|
90 |
msgstr ""
|
91 |
|
92 |
-
#: ../dashboard.php:
|
93 |
msgid "Country"
|
94 |
msgstr ""
|
95 |
|
96 |
-
#: ../dashboard.php:
|
97 |
msgid "Expires"
|
98 |
msgstr ""
|
99 |
|
100 |
-
#: ../dashboard.php:
|
101 |
msgid "Reason"
|
102 |
msgstr ""
|
103 |
|
104 |
-
#: ../dashboard.php:
|
105 |
#: /cerber-scanner.php:5920
|
106 |
msgid "Action"
|
107 |
msgstr ""
|
108 |
|
109 |
-
#: ../dashboard.php:
|
110 |
#, php-format
|
111 |
msgid "Showing last %d records from %d"
|
112 |
msgstr ""
|
113 |
|
114 |
-
#: ../dashboard.php:
|
115 |
msgid "Hint"
|
116 |
msgstr ""
|
117 |
|
118 |
-
#: ../dashboard.php:
|
119 |
msgid "To view activity, click on the IP"
|
120 |
msgstr ""
|
121 |
|
122 |
-
#: ../dashboard.php:
|
123 |
msgid "No lockouts at the moment. The sky is clear."
|
124 |
msgstr ""
|
125 |
|
126 |
-
#: ../dashboard.php:
|
127 |
-
#: php:
|
128 |
msgid "White IP Access List"
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: ../dashboard.php:
|
132 |
msgid "These IPs will never be locked out"
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: ../dashboard.php:
|
136 |
-
#: php:
|
137 |
msgid "Black IP Access List"
|
138 |
msgstr ""
|
139 |
|
140 |
-
#: ../dashboard.php:
|
141 |
msgid "Nobody can log in or register from these IPs"
|
142 |
msgstr ""
|
143 |
|
144 |
-
#: ../dashboard.php:
|
145 |
msgid "Your IP"
|
146 |
msgstr ""
|
147 |
|
148 |
-
#: ../dashboard.php:
|
149 |
-
#: php:
|
150 |
msgid "Check for activities"
|
151 |
msgstr ""
|
152 |
|
153 |
-
#: ../dashboard.php:
|
154 |
msgid "List is empty"
|
155 |
msgstr ""
|
156 |
|
157 |
-
#: ../dashboard.php:
|
158 |
msgid "IP address, IPv4 address range or subnet"
|
159 |
msgstr ""
|
160 |
|
161 |
-
#: ../dashboard.php:
|
162 |
msgid "Add IP to the list"
|
163 |
msgstr ""
|
164 |
|
165 |
-
#: ../dashboard.php:
|
166 |
msgid "Optional comment for this entry"
|
167 |
msgstr ""
|
168 |
|
169 |
-
#: ../dashboard.php:
|
170 |
msgid "Incorrect IP address or IP range"
|
171 |
msgstr ""
|
172 |
|
173 |
-
#: ../dashboard.php:
|
174 |
#, php-format
|
175 |
msgid "IP address %s has been added to White IP Access List"
|
176 |
msgstr ""
|
177 |
|
178 |
-
#: ../dashboard.php:
|
179 |
msgid "You cannot add your IP address or network"
|
180 |
msgstr ""
|
181 |
|
182 |
-
#: ../dashboard.php:
|
183 |
#, php-format
|
184 |
msgid "IP address %s has been added to Black IP Access List"
|
185 |
msgstr ""
|
186 |
|
187 |
-
#: ../dashboard.php:
|
188 |
-
#: /common.php:
|
|
|
189 |
msgid "Unknown"
|
190 |
msgstr ""
|
191 |
|
192 |
-
#: ../dashboard.php:
|
193 |
msgid "unknown"
|
194 |
msgstr ""
|
195 |
|
196 |
-
#: ../dashboard.php:
|
197 |
#, php-format
|
198 |
msgid "Lockout for %s was removed"
|
199 |
msgstr ""
|
200 |
|
201 |
-
#: ../dashboard.php:
|
202 |
msgid "Email has been sent to"
|
203 |
msgstr ""
|
204 |
|
205 |
-
#: ../dashboard.php:
|
206 |
msgid "Unable to send email to"
|
207 |
msgstr ""
|
208 |
|
209 |
-
#: ../dashboard.php:
|
210 |
msgid "Default settings have been loaded"
|
211 |
msgstr ""
|
212 |
|
213 |
-
#: ../dashboard.php:
|
214 |
#: users.php:756
|
215 |
msgid "IP Address"
|
216 |
msgstr ""
|
217 |
|
218 |
-
#: ../dashboard.php:
|
219 |
-
#: php:
|
220 |
msgid "Date"
|
221 |
msgstr ""
|
222 |
|
223 |
-
#: ../dashboard.php:
|
224 |
msgid "Event"
|
225 |
msgstr ""
|
226 |
|
227 |
-
#: ../dashboard.php:
|
228 |
msgid "Additional Details"
|
229 |
msgstr ""
|
230 |
|
231 |
-
#: ../dashboard.php:
|
232 |
msgid "Local User"
|
233 |
msgstr ""
|
234 |
|
235 |
-
#: ../dashboard.php:
|
236 |
msgid "User login"
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: ../dashboard.php:
|
240 |
msgid "User ID"
|
241 |
msgstr ""
|
242 |
|
243 |
-
#: ../dashboard.php:
|
244 |
msgid "Username"
|
245 |
msgstr ""
|
246 |
|
247 |
-
#: ../dashboard.php:
|
248 |
msgid "View all"
|
249 |
msgstr ""
|
250 |
|
251 |
-
#: ../dashboard.php:
|
252 |
msgid "New users"
|
253 |
msgstr ""
|
254 |
|
255 |
-
#: ../dashboard.php:
|
256 |
msgid "Suspicious activity"
|
257 |
msgstr ""
|
258 |
|
259 |
-
#: ../dashboard.php:
|
260 |
msgid "IP blocked"
|
261 |
msgstr ""
|
262 |
|
263 |
-
#: ../dashboard.php:
|
264 |
-
#: php:
|
265 |
msgid "Logged in users"
|
266 |
msgstr ""
|
267 |
|
268 |
-
#: ../dashboard.php:
|
269 |
msgid "Not logged in visitors"
|
270 |
msgstr ""
|
271 |
|
272 |
-
#: ../dashboard.php:
|
273 |
msgid "My activity"
|
274 |
msgstr ""
|
275 |
|
276 |
-
#: ../dashboard.php:
|
277 |
msgid "Export"
|
278 |
msgstr ""
|
279 |
|
280 |
-
#: ../dashboard.php:
|
281 |
msgid "No activity has been logged."
|
282 |
msgstr ""
|
283 |
|
284 |
-
#: ../dashboard.php:
|
285 |
msgid "All events"
|
286 |
msgstr ""
|
287 |
|
288 |
-
#: ../dashboard.php:
|
289 |
msgid "Filter by registered user"
|
290 |
msgstr ""
|
291 |
|
292 |
-
#: ../dashboard.php:
|
293 |
msgid "Search for IP or username"
|
294 |
msgstr ""
|
295 |
|
296 |
-
#: ../dashboard.php:
|
297 |
msgid "Filter"
|
298 |
msgstr ""
|
299 |
|
300 |
-
#: ../dashboard.php:
|
301 |
-
#: php:
|
302 |
msgid "Locked out"
|
303 |
msgstr ""
|
304 |
|
305 |
-
#: ../dashboard.php:
|
306 |
msgid "Abuse email:"
|
307 |
msgstr ""
|
308 |
|
309 |
-
#: ../dashboard.php:
|
310 |
msgid "Network:"
|
311 |
msgstr ""
|
312 |
|
313 |
-
#: ../dashboard.php:
|
314 |
msgid "Add network to the Black List"
|
315 |
msgstr ""
|
316 |
|
317 |
-
#: ../dashboard.php:
|
318 |
msgid "Add IP to the Black List"
|
319 |
msgstr ""
|
320 |
|
321 |
-
#: ../dashboard.php:
|
322 |
msgid "Activated"
|
323 |
msgstr ""
|
324 |
|
325 |
-
#: ../dashboard.php:
|
326 |
msgid "Last seen"
|
327 |
msgstr ""
|
328 |
|
329 |
-
#: ../dashboard.php:
|
330 |
msgid "Registered"
|
331 |
msgstr ""
|
332 |
|
333 |
-
#: ../dashboard.php:
|
334 |
msgid "Comments"
|
335 |
msgstr ""
|
336 |
|
337 |
-
#: ../dashboard.php:
|
338 |
msgid "Last login"
|
339 |
msgstr ""
|
340 |
|
341 |
-
#: ../dashboard.php:
|
342 |
msgid "Failed login attempts"
|
343 |
msgstr ""
|
344 |
|
345 |
-
#: ../dashboard.php:
|
346 |
#: slave-list.php:297
|
347 |
msgid "Never"
|
348 |
msgstr ""
|
349 |
|
350 |
-
#: ../dashboard.php:
|
351 |
msgid "You"
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: ../dashboard.php:
|
355 |
msgid "Cerber Quick View"
|
356 |
msgstr ""
|
357 |
|
358 |
-
#: ../dashboard.php:
|
359 |
msgid "active"
|
360 |
msgstr ""
|
361 |
|
362 |
-
#: ../dashboard.php:
|
363 |
msgid "deactivate"
|
364 |
msgstr ""
|
365 |
|
366 |
-
#: ../dashboard.php:
|
367 |
msgid "not active"
|
368 |
msgstr ""
|
369 |
|
370 |
-
#: ../dashboard.php:
|
371 |
msgid "disabled"
|
372 |
msgstr ""
|
373 |
|
374 |
-
#: ../dashboard.php:
|
375 |
msgid "failed attempts"
|
376 |
msgstr ""
|
377 |
|
378 |
-
#: ../dashboard.php:
|
379 |
msgid "in 24 hours"
|
380 |
msgstr ""
|
381 |
|
382 |
-
#: ../dashboard.php:
|
383 |
msgid "view all"
|
384 |
msgstr ""
|
385 |
|
386 |
-
#: ../dashboard.php:
|
387 |
msgid "lockouts"
|
388 |
msgstr ""
|
389 |
|
390 |
-
#: ../dashboard.php:
|
391 |
msgid "Lockouts at the moment"
|
392 |
msgstr ""
|
393 |
|
394 |
-
#: ../dashboard.php:
|
395 |
msgid "Last lockout"
|
396 |
msgstr ""
|
397 |
|
398 |
-
#: ../dashboard.php:
|
399 |
msgid "user"
|
400 |
msgid_plural "users"
|
401 |
msgstr[0] ""
|
402 |
msgstr[1] ""
|
403 |
|
404 |
-
#: ../dashboard.php:
|
405 |
msgid "entry"
|
406 |
msgid_plural "entries"
|
407 |
msgstr[0] ""
|
408 |
msgstr[1] ""
|
409 |
|
410 |
-
#: ../dashboard.php:
|
411 |
msgid "Citadel mode"
|
412 |
msgstr ""
|
413 |
|
414 |
-
#: ../dashboard.php:
|
415 |
msgid "enabled"
|
416 |
msgstr ""
|
417 |
|
418 |
-
#: ../dashboard.php:
|
419 |
msgid "no connection"
|
420 |
msgstr ""
|
421 |
|
422 |
-
#: ../dashboard.php:
|
423 |
msgctxt "Example: Last malware scan: 23 Jan 2018"
|
424 |
msgid "Last malware scan"
|
425 |
msgstr ""
|
426 |
|
427 |
-
#: ../dashboard.php:
|
428 |
-
#: users.php:431 ../settings.php:
|
429 |
#: /cerber-scanner.php:1625
|
430 |
msgid "Disabled"
|
431 |
msgstr ""
|
432 |
|
433 |
-
#: ../dashboard.php:
|
434 |
msgid "Quick Scan"
|
435 |
msgstr ""
|
436 |
|
437 |
-
#: ../dashboard.php:
|
438 |
msgid "Full Scan"
|
439 |
msgstr ""
|
440 |
|
441 |
-
#: ../dashboard.php:
|
442 |
-
#: load.php:
|
443 |
msgid "Activity"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: ../dashboard.php:
|
447 |
msgid "Traffic"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: ../dashboard.php:
|
451 |
msgid "Integrity"
|
452 |
msgstr ""
|
453 |
|
454 |
-
#: ../dashboard.php:
|
455 |
msgid "A new version is available"
|
456 |
msgstr ""
|
457 |
|
458 |
-
#: ../dashboard.php:
|
459 |
msgid "My site is behind a reverse proxy"
|
460 |
msgstr ""
|
461 |
|
462 |
-
#: ../dashboard.php:
|
463 |
msgid "in the last 24 hours"
|
464 |
msgstr ""
|
465 |
|
466 |
-
#: ../dashboard.php:
|
467 |
msgid "Recently locked out IP addresses"
|
468 |
msgstr ""
|
469 |
|
470 |
-
#: ../dashboard.php:
|
471 |
msgid "Confused about some settings?"
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: ../dashboard.php:
|
475 |
msgid "You can easily load default recommended settings using button below"
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: ../dashboard.php:
|
479 |
msgid "Load default settings"
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: ../dashboard.php:
|
483 |
#: /nexus/cerber-slave-list.php:230 ../cerber-scanner.php:5746 ../cerber-scanner.
|
484 |
#: php:5904
|
485 |
msgid "Are you sure?"
|
486 |
msgstr ""
|
487 |
|
488 |
-
#: ../dashboard.php:
|
489 |
msgid "doesn't affect Custom login URL and Access Lists"
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: ../dashboard.php:
|
493 |
msgid "Getting Started Guide"
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: ../dashboard.php:
|
497 |
msgid "Attention! Citadel mode is now active. Nobody is able to log in."
|
498 |
msgstr ""
|
499 |
|
500 |
-
#: ../dashboard.php:
|
501 |
msgid "Deactivate"
|
502 |
msgstr ""
|
503 |
|
504 |
-
#: ../dashboard.php:
|
505 |
msgid "View Activity"
|
506 |
msgstr ""
|
507 |
|
508 |
-
#: ../dashboard.php:
|
509 |
msgid "Settings saved"
|
510 |
msgstr ""
|
511 |
|
512 |
-
#: ../dashboard.php:
|
513 |
msgid "Create Alert"
|
514 |
msgstr ""
|
515 |
|
516 |
-
#: ../dashboard.php:
|
517 |
msgid "Delete Alert"
|
518 |
msgstr ""
|
519 |
|
520 |
-
#: ../dashboard.php:
|
521 |
msgid "You've subscribed"
|
522 |
msgstr ""
|
523 |
|
524 |
-
#: ../dashboard.php:
|
525 |
msgid "The alert has been created"
|
526 |
msgstr ""
|
527 |
|
528 |
-
#: ../dashboard.php:
|
529 |
msgid "You've unsubscribed"
|
530 |
msgstr ""
|
531 |
|
532 |
-
#: ../dashboard.php:
|
533 |
msgid "The alert has been deleted"
|
534 |
msgstr ""
|
535 |
|
536 |
-
#: ../dashboard.php:
|
537 |
msgid "Main settings"
|
538 |
msgstr ""
|
539 |
|
540 |
-
#: ../dashboard.php:
|
541 |
msgid "Are you sure you want to delete selected files?"
|
542 |
msgstr ""
|
543 |
|
544 |
-
#: ../dashboard.php:
|
545 |
msgid "These files have been moved to the quarantine"
|
546 |
msgstr ""
|
547 |
|
548 |
-
#: ../dashboard.php:
|
549 |
msgid "Do you want to add selected files to the ignore list?"
|
550 |
msgstr ""
|
551 |
|
552 |
-
#: ../dashboard.php:
|
553 |
msgid "These files have been added to the ignore list"
|
554 |
msgstr ""
|
555 |
|
556 |
-
#: ../dashboard.php:
|
557 |
msgid "Some errors occurred"
|
558 |
msgstr ""
|
559 |
|
560 |
-
#: ../dashboard.php:
|
561 |
msgid "All files have been processed"
|
562 |
msgstr ""
|
563 |
|
564 |
-
#: ../dashboard.php:
|
565 |
msgid "Save Changes"
|
566 |
msgstr ""
|
567 |
|
568 |
-
#: ../dashboard.php:
|
569 |
msgid "Role-based rules are configured"
|
570 |
msgstr ""
|
571 |
|
572 |
-
#: ../dashboard.php:
|
573 |
msgid "Start typing here to find a country"
|
574 |
msgstr ""
|
575 |
|
576 |
-
#: ../dashboard.php:
|
577 |
msgid "Save all rules"
|
578 |
msgstr ""
|
579 |
|
580 |
-
#: ../dashboard.php:
|
581 |
#, php-format
|
582 |
msgid "Permitted for one country"
|
583 |
msgid_plural "Permitted for %d countries"
|
584 |
msgstr[0] ""
|
585 |
msgstr[1] ""
|
586 |
|
587 |
-
#: ../dashboard.php:
|
588 |
#, php-format
|
589 |
msgid "Not permitted for one country"
|
590 |
msgid_plural "Not permitted for %d countries"
|
591 |
msgstr[0] ""
|
592 |
msgstr[1] ""
|
593 |
|
594 |
-
#: ../dashboard.php:
|
595 |
msgid "No rule"
|
596 |
msgstr ""
|
597 |
|
598 |
-
#: ../dashboard.php:
|
599 |
msgid "Any country is permitted"
|
600 |
msgstr ""
|
601 |
|
602 |
-
#: ../dashboard.php:
|
603 |
msgid "Click on a country name to add it to the list of selected countries"
|
604 |
msgstr ""
|
605 |
|
606 |
-
#: ../dashboard.php:
|
607 |
#, php-format
|
608 |
msgctxt "to is a marker of infinitive, e.g. \"to use it\""
|
609 |
msgid "Selected countries are permitted to %s, other countries are not permitted to"
|
610 |
msgstr ""
|
611 |
|
612 |
-
#: ../dashboard.php:
|
613 |
#, php-format
|
614 |
msgctxt "to is a marker of infinitive, e.g. \"to use it\""
|
615 |
msgid "Selected countries are not permitted to %s, other countries are permitted to"
|
616 |
msgstr ""
|
617 |
|
618 |
-
#: ../dashboard.php:
|
619 |
msgid "Log in to the website"
|
620 |
msgstr ""
|
621 |
|
622 |
-
#: ../dashboard.php:
|
623 |
msgid "All Users"
|
624 |
msgstr ""
|
625 |
|
626 |
-
#: ../dashboard.php:
|
627 |
msgid "Register on the website"
|
628 |
msgstr ""
|
629 |
|
630 |
-
#: ../dashboard.php:
|
631 |
msgid "Submit forms"
|
632 |
msgstr ""
|
633 |
|
634 |
-
#: ../dashboard.php:
|
635 |
msgid "Post comments"
|
636 |
msgstr ""
|
637 |
|
638 |
-
#: ../dashboard.php:
|
639 |
msgid "Use XML-RPC"
|
640 |
msgstr ""
|
641 |
|
642 |
-
#: ../dashboard.php:
|
643 |
msgid "Use REST API"
|
644 |
msgstr ""
|
645 |
|
646 |
-
#: ../dashboard.php:
|
647 |
msgid "Security rules have been updated"
|
648 |
msgstr ""
|
649 |
|
650 |
-
#: ../dashboard.php:
|
651 |
msgid "IP address"
|
652 |
msgstr ""
|
653 |
|
654 |
-
#: ../dashboard.php:
|
655 |
msgid "Page generation time"
|
656 |
msgstr ""
|
657 |
|
658 |
-
#: ../dashboard.php:
|
659 |
msgid "Request"
|
660 |
msgstr ""
|
661 |
|
662 |
-
#: ../dashboard.php:
|
663 |
msgid "Host Info"
|
664 |
msgstr ""
|
665 |
|
666 |
-
#: ../dashboard.php:
|
667 |
msgid "User Agent"
|
668 |
msgstr ""
|
669 |
|
670 |
-
#: ../dashboard.php:
|
671 |
msgid "No requests have been logged."
|
672 |
msgstr ""
|
673 |
|
674 |
-
#: ../dashboard.php:
|
675 |
msgid "All requests"
|
676 |
msgstr ""
|
677 |
|
678 |
-
#: ../dashboard.php:
|
679 |
msgid "Errors"
|
680 |
msgstr ""
|
681 |
|
682 |
-
#: ../dashboard.php:
|
683 |
msgid "Form submissions"
|
684 |
msgstr ""
|
685 |
|
686 |
-
#: ../dashboard.php:
|
687 |
msgid "Page Not Found"
|
688 |
msgstr ""
|
689 |
|
690 |
-
#: ../dashboard.php:
|
691 |
msgid "Longer than"
|
692 |
msgstr ""
|
693 |
|
694 |
-
#: ../dashboard.php:
|
695 |
msgid "Advanced Search"
|
696 |
msgstr ""
|
697 |
|
698 |
-
#: ../dashboard.php:
|
699 |
msgid "Refresh"
|
700 |
msgstr ""
|
701 |
|
702 |
-
#: ../dashboard.php:
|
703 |
msgid "Any"
|
704 |
msgstr ""
|
705 |
|
706 |
-
#: ../dashboard.php:
|
707 |
msgid "Sessions"
|
708 |
msgstr ""
|
709 |
|
710 |
-
#: ../dashboard.php:
|
711 |
msgid "Lockouts"
|
712 |
msgstr ""
|
713 |
|
714 |
-
#: ../dashboard.php:
|
715 |
msgid "Main Settings"
|
716 |
msgstr ""
|
717 |
|
718 |
-
#: ../dashboard.php:
|
719 |
#: tools.php:47 ../cerber-tools.php:139
|
720 |
msgid "Access Lists"
|
721 |
msgstr ""
|
722 |
|
723 |
-
#: ../dashboard.php:
|
724 |
msgid "Hardening"
|
725 |
msgstr ""
|
726 |
|
727 |
-
#: ../dashboard.php:
|
728 |
msgid "Notifications"
|
729 |
msgstr ""
|
730 |
|
731 |
-
#: ../dashboard.php:
|
732 |
msgid "Antispam and bot detection settings"
|
733 |
msgstr ""
|
734 |
|
735 |
-
#: ../dashboard.php:
|
736 |
msgid "Antispam engine"
|
737 |
msgstr ""
|
738 |
|
739 |
-
#: ../dashboard.php:
|
740 |
msgid "Live Traffic"
|
741 |
msgstr ""
|
742 |
|
743 |
-
#: ../dashboard.php:
|
744 |
#: tools.php:46 ../nexus/cerber-nexus.php:90
|
745 |
msgid "Settings"
|
746 |
msgstr ""
|
747 |
|
748 |
#: ../dashboard.php:4544
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
749 |
msgid "Role-based"
|
750 |
msgstr ""
|
751 |
|
752 |
-
#: ../dashboard.php:
|
753 |
msgid "Global"
|
754 |
msgstr ""
|
755 |
|
756 |
-
#: ../dashboard.php:
|
757 |
msgid "Countries"
|
758 |
msgstr ""
|
759 |
|
760 |
-
#: ../dashboard.php:
|
761 |
msgid "Security Scanner"
|
762 |
msgstr ""
|
763 |
|
764 |
-
#: ../dashboard.php:
|
765 |
msgid "Scheduling"
|
766 |
msgstr ""
|
767 |
|
768 |
-
#: ../dashboard.php:
|
769 |
msgid "Cleaning up"
|
770 |
msgstr ""
|
771 |
|
772 |
-
#: ../dashboard.php:
|
773 |
msgid "Ignore List"
|
774 |
msgstr ""
|
775 |
|
776 |
-
#: ../dashboard.php:
|
777 |
msgid "Quarantine"
|
778 |
msgstr ""
|
779 |
|
780 |
-
#: ../dashboard.php:
|
781 |
msgid "Export & Import"
|
782 |
msgstr ""
|
783 |
|
784 |
-
#: ../dashboard.php:
|
785 |
msgid "Diagnostic"
|
786 |
msgstr ""
|
787 |
|
788 |
-
#: ../dashboard.php:
|
789 |
msgid "Log"
|
790 |
msgstr ""
|
791 |
|
792 |
-
#: ../dashboard.php:
|
793 |
msgid "Changelog"
|
794 |
msgstr ""
|
795 |
|
796 |
-
#: ../dashboard.php:
|
797 |
msgid "License"
|
798 |
msgstr ""
|
799 |
|
800 |
-
#: ../dashboard.php:
|
801 |
msgid "Help"
|
802 |
msgstr ""
|
803 |
|
804 |
-
#: ../dashboard.php:
|
805 |
msgid "Log In"
|
806 |
msgstr ""
|
807 |
|
808 |
-
#: ../dashboard.php:
|
809 |
msgid "Log Out"
|
810 |
msgstr ""
|
811 |
|
812 |
-
#: ../dashboard.php:
|
813 |
msgid "Register"
|
814 |
msgstr ""
|
815 |
|
816 |
-
#: ../dashboard.php:
|
817 |
msgid "WooCommerce Log In"
|
818 |
msgstr ""
|
819 |
|
820 |
-
#: ../dashboard.php:
|
821 |
msgid "WooCommerce Log Out"
|
822 |
msgstr ""
|
823 |
|
824 |
-
#: ../dashboard.php:
|
825 |
msgid "Add to menu"
|
826 |
msgstr ""
|
827 |
|
@@ -846,310 +867,338 @@ msgstr ""
|
|
846 |
msgid "Cerber Tech Inc."
|
847 |
msgstr ""
|
848 |
|
849 |
-
#: ../common.php:
|
850 |
msgid "Check for requests"
|
851 |
msgstr ""
|
852 |
|
853 |
-
#: ../common.php:
|
854 |
msgid "Malicious activities mitigated"
|
855 |
msgstr ""
|
856 |
|
857 |
-
#: ../common.php:
|
858 |
msgid "Spam comments denied"
|
859 |
msgstr ""
|
860 |
|
861 |
-
#: ../common.php:
|
862 |
msgid "Spam form submissions denied"
|
863 |
msgstr ""
|
864 |
|
865 |
-
#: ../common.php:
|
866 |
msgid "Malicious IP addresses detected"
|
867 |
msgstr ""
|
868 |
|
869 |
-
#: ../common.php:
|
870 |
msgid "Lockouts occurred"
|
871 |
msgstr ""
|
872 |
|
873 |
-
#: ../common.php:
|
874 |
-
#: /common.php:
|
875 |
-
#: php:
|
876 |
-
#:
|
877 |
-
#: /cerber-load.php:
|
878 |
-
#: /cerber-load.php:
|
879 |
-
#:
|
880 |
-
#:
|
881 |
msgid "ERROR:"
|
882 |
msgstr ""
|
883 |
|
884 |
-
#: ../common.php:
|
885 |
msgid "User created"
|
886 |
msgstr ""
|
887 |
|
888 |
-
#: ../common.php:
|
889 |
msgid "User registered"
|
890 |
msgstr ""
|
891 |
|
892 |
-
#: ../common.php:
|
893 |
msgid "Logged in"
|
894 |
msgstr ""
|
895 |
|
896 |
-
#: ../common.php:
|
897 |
msgid "Logged out"
|
898 |
msgstr ""
|
899 |
|
900 |
-
#: ../common.php:
|
901 |
msgid "Login failed"
|
902 |
msgstr ""
|
903 |
|
904 |
-
#: ../common.php:
|
905 |
msgid "Subnet blocked"
|
906 |
msgstr ""
|
907 |
|
908 |
-
#: ../common.php:
|
909 |
msgid "Citadel activated!"
|
910 |
msgstr ""
|
911 |
|
912 |
-
#: ../common.php:
|
913 |
msgid "Spam comment denied"
|
914 |
msgstr ""
|
915 |
|
916 |
-
#: ../common.php:
|
917 |
msgid "Spam form submission denied"
|
918 |
msgstr ""
|
919 |
|
920 |
-
#: ../common.php:
|
921 |
msgid "Form submission denied"
|
922 |
msgstr ""
|
923 |
|
924 |
-
#: ../common.php:
|
925 |
msgid "Comment denied"
|
926 |
msgstr ""
|
927 |
|
928 |
-
#: ../common.php:
|
929 |
msgid "Password changed"
|
930 |
msgstr ""
|
931 |
|
932 |
-
#: ../common.php:
|
933 |
msgid "Password reset requested"
|
934 |
msgstr ""
|
935 |
|
936 |
-
#: ../common.php:
|
937 |
msgid "reCAPTCHA verification failed"
|
938 |
msgstr ""
|
939 |
|
940 |
-
#: ../common.php:
|
941 |
msgid "reCAPTCHA settings are incorrect"
|
942 |
msgstr ""
|
943 |
|
944 |
-
#: ../common.php:
|
945 |
msgid "Request to the Google reCAPTCHA service failed"
|
946 |
msgstr ""
|
947 |
|
948 |
-
#: ../common.php:
|
949 |
msgid "Attempt to access prohibited URL"
|
950 |
msgstr ""
|
951 |
|
952 |
-
#: ../common.php:
|
953 |
msgid "Attempt to log in with non-existing username"
|
954 |
msgstr ""
|
955 |
|
956 |
-
#: ../common.php:
|
957 |
msgid "Attempt to log in with prohibited username"
|
958 |
msgstr ""
|
959 |
|
960 |
-
#: ../common.php:
|
961 |
msgid "Attempt to log in denied"
|
962 |
msgstr ""
|
963 |
|
964 |
-
#: ../common.php:
|
965 |
msgid "Attempt to register denied"
|
966 |
msgstr ""
|
967 |
|
968 |
-
#: ../common.php:
|
969 |
msgid "Probing for vulnerable PHP code"
|
970 |
msgstr ""
|
971 |
|
972 |
-
#: ../common.php:
|
973 |
msgid "Attempt to upload malicious file denied"
|
974 |
msgstr ""
|
975 |
|
976 |
-
#: ../common.php:
|
977 |
msgid "File upload denied"
|
978 |
msgstr ""
|
979 |
|
980 |
-
#: ../common.php:
|
981 |
msgid "Request to REST API denied"
|
982 |
msgstr ""
|
983 |
|
984 |
-
#: ../common.php:
|
985 |
msgid "XML-RPC request denied"
|
986 |
msgstr ""
|
987 |
|
988 |
-
#: ../common.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
989 |
msgid "Malicious request denied"
|
990 |
msgstr ""
|
991 |
|
992 |
-
#: ../common.php:
|
993 |
msgid "User activated"
|
994 |
msgstr ""
|
995 |
|
996 |
-
#: ../common.php:
|
997 |
msgid "Invalid master credentials"
|
998 |
msgstr ""
|
999 |
|
1000 |
-
#: ../common.php:
|
1001 |
msgid "Bot detected"
|
1002 |
msgstr ""
|
1003 |
|
1004 |
-
#: ../common.php:
|
1005 |
msgid "Citadel mode is active"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
-
#: ../common.php:
|
1009 |
msgid "IP address is locked out"
|
1010 |
msgstr ""
|
1011 |
|
1012 |
-
#: ../common.php:
|
1013 |
msgid "IP blacklisted"
|
1014 |
msgstr ""
|
1015 |
|
1016 |
-
#: ../common.php:
|
1017 |
msgid "Malicious activity detected"
|
1018 |
msgstr ""
|
1019 |
|
1020 |
-
#: ../common.php:
|
1021 |
msgid "Blocked by country rule"
|
1022 |
msgstr ""
|
1023 |
|
1024 |
-
#: ../common.php:
|
1025 |
msgid "Limit reached"
|
1026 |
msgstr ""
|
1027 |
|
1028 |
-
#: ../common.php:
|
1029 |
msgid "Multiple suspicious activities"
|
1030 |
msgstr ""
|
1031 |
|
1032 |
-
#: ../common.php:
|
1033 |
msgid "Denied"
|
1034 |
msgstr ""
|
1035 |
|
1036 |
-
#: ../common.php:
|
1037 |
msgid "Suspicious number of fields"
|
1038 |
msgstr ""
|
1039 |
|
1040 |
-
#: ../common.php:
|
1041 |
msgid "Suspicious number of nested values"
|
1042 |
msgstr ""
|
1043 |
|
1044 |
-
#: ../common.php:
|
1045 |
msgid "Malicious code detected"
|
1046 |
msgstr ""
|
1047 |
|
1048 |
-
#: ../common.php:
|
1049 |
msgid "Suspicious SQL code detected"
|
1050 |
msgstr ""
|
1051 |
|
1052 |
-
#: ../common.php:
|
1053 |
msgid "Suspicious JavaScript code detected"
|
1054 |
msgstr ""
|
1055 |
|
1056 |
-
#: ../common.php:
|
1057 |
msgid "Blocked by administrator"
|
1058 |
msgstr ""
|
1059 |
|
1060 |
-
#: ../common.php:
|
1061 |
msgid "Site policy enforcement"
|
1062 |
msgstr ""
|
1063 |
|
1064 |
-
#: ../common.php:
|
1065 |
msgid "2FA code verified"
|
1066 |
msgstr ""
|
1067 |
|
1068 |
-
#: ../common.php:
|
1069 |
msgid "Initiated by the user"
|
1070 |
msgstr ""
|
1071 |
|
1072 |
-
#: ../common.php:
|
1073 |
msgid "Email address is not permitted"
|
1074 |
msgstr ""
|
1075 |
|
1076 |
-
#: ../common.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1077 |
msgid "Limit on login attempts is reached"
|
1078 |
msgstr ""
|
1079 |
|
1080 |
-
#: ../common.php:
|
1081 |
msgid "Attempt to access"
|
1082 |
msgstr ""
|
1083 |
|
1084 |
-
#: ../common.php:
|
1085 |
msgid "Limit on failed reCAPTCHA verifications is reached"
|
1086 |
msgstr ""
|
1087 |
|
1088 |
-
#: ../common.php:
|
1089 |
msgid "Bot activity is detected"
|
1090 |
msgstr ""
|
1091 |
|
1092 |
-
#: ../common.php:
|
1093 |
msgid "Multiple suspicious activities were detected"
|
1094 |
msgstr ""
|
1095 |
|
1096 |
-
#: ../common.php:
|
1097 |
msgid "Attempt to upload a file with malicious code"
|
1098 |
msgstr ""
|
1099 |
|
1100 |
-
#: ../common.php:
|
1101 |
msgid "Multiple suspicious requests"
|
1102 |
msgstr ""
|
1103 |
|
1104 |
#. translators: Time difference between two dates, in seconds (sec=second). 1: Number of seconds
|
1105 |
-
#: ../common.php:
|
1106 |
#, php-format
|
1107 |
msgid "%s sec"
|
1108 |
msgid_plural "%s secs"
|
1109 |
msgstr[0] ""
|
1110 |
msgstr[1] ""
|
1111 |
|
1112 |
-
#: ../common.php:
|
1113 |
#, php-format
|
1114 |
msgid "%s ago"
|
1115 |
msgstr ""
|
1116 |
|
1117 |
-
#: ../common.php:
|
1118 |
#, php-format
|
1119 |
msgctxt "preposition of a period of time like: in 6 hours"
|
1120 |
msgid "in %s"
|
1121 |
msgstr ""
|
1122 |
|
1123 |
-
#: ../common.php:
|
1124 |
msgid "Bytes"
|
1125 |
msgstr ""
|
1126 |
|
1127 |
-
#: ../common.php:
|
1128 |
#, php-format
|
1129 |
msgid "A new version of %s is available. Please install it."
|
1130 |
msgstr ""
|
1131 |
|
1132 |
-
#: ../common.php:
|
1133 |
msgid "Not specified"
|
1134 |
msgstr ""
|
1135 |
|
1136 |
-
#: ../common.php:
|
1137 |
msgid "Unable to create the directory"
|
1138 |
msgstr ""
|
1139 |
|
1140 |
-
#: ../common.php:
|
1141 |
msgid "Destination folder access denied"
|
1142 |
msgstr ""
|
1143 |
|
1144 |
-
#: ../common.php:
|
1145 |
msgid "File not found"
|
1146 |
msgstr ""
|
1147 |
|
1148 |
-
#: ../common.php:
|
1149 |
msgid "Unable to copy the file"
|
1150 |
msgstr ""
|
1151 |
|
1152 |
-
#: ../common.php:
|
1153 |
msgid "Unable to delete the file"
|
1154 |
msgstr ""
|
1155 |
|
@@ -1160,15 +1209,15 @@ msgid ""
|
|
1160 |
"more: <a href=\"https://wpcerber.com\">wpcerber.com</a>."
|
1161 |
msgstr ""
|
1162 |
|
1163 |
-
#: ../cerber-news.php:
|
1164 |
msgid "Awesome!"
|
1165 |
msgstr ""
|
1166 |
|
1167 |
-
#: ../cerber-lab.php:
|
1168 |
msgid "Want to make WP Cerber even more powerful?"
|
1169 |
msgstr ""
|
1170 |
|
1171 |
-
#: ../cerber-lab.php:
|
1172 |
msgid ""
|
1173 |
"Allow WP Cerber to send locked out malicious IP addresses to Cerber Lab. "
|
1174 |
"This helps the plugin team to develop new algorithms for WP Cerber that will "
|
@@ -1176,256 +1225,256 @@ msgid ""
|
|
1176 |
"everyday. You can disable the sending in the plugin settings at any time."
|
1177 |
msgstr ""
|
1178 |
|
1179 |
-
#: ../cerber-lab.php:
|
1180 |
msgid "OK, nail them all"
|
1181 |
msgstr ""
|
1182 |
|
1183 |
-
#: ../cerber-lab.php:
|
1184 |
msgid "NO, maybe later"
|
1185 |
msgstr ""
|
1186 |
|
1187 |
-
#: ../cerber-lab.php:
|
1188 |
msgid "Know more"
|
1189 |
msgstr ""
|
1190 |
|
1191 |
-
#: ../cerber-load.php:
|
1192 |
msgid "You are not allowed to log in. Ask your administrator for assistance."
|
1193 |
msgstr ""
|
1194 |
|
1195 |
-
#: ../cerber-load.php:
|
1196 |
#, php-format
|
1197 |
msgid ""
|
1198 |
"You have exceeded the number of allowed login attempts. Please try again in "
|
1199 |
"%d minutes."
|
1200 |
msgstr ""
|
1201 |
|
1202 |
-
#: ../cerber-load.php:
|
1203 |
msgid "You are not allowed to log in"
|
1204 |
msgstr ""
|
1205 |
|
1206 |
-
#: ../cerber-load.php:
|
1207 |
#, php-format
|
1208 |
msgid "You have only one attempt remaining."
|
1209 |
msgid_plural "You have %d attempts remaining."
|
1210 |
msgstr[0] ""
|
1211 |
msgstr[1] ""
|
1212 |
|
1213 |
-
#: ../cerber-load.php:
|
1214 |
msgid ""
|
1215 |
"Human verification failed. Please click the square box in the reCAPTCHA "
|
1216 |
"block below."
|
1217 |
msgstr ""
|
1218 |
|
1219 |
-
#: ../cerber-load.php:
|
1220 |
msgid ""
|
1221 |
"> > > Translator of WP Cerber? To get the PRO license for free, drop your "
|
1222 |
"contacts here: https://wpcerber.com/contact/"
|
1223 |
msgstr ""
|
1224 |
|
1225 |
-
#: ../cerber-load.php:
|
1226 |
#, php-format
|
1227 |
msgid ""
|
1228 |
"<strong>ERROR</strong>: The password you entered for the username %s is "
|
1229 |
"incorrect."
|
1230 |
msgstr ""
|
1231 |
|
1232 |
-
#: ../cerber-load.php:
|
1233 |
-
#: /cerber-load.php:
|
1234 |
msgid "You are not allowed to register."
|
1235 |
msgstr ""
|
1236 |
|
1237 |
-
#: ../cerber-load.php:
|
1238 |
msgid "Username is not allowed. Please choose another one."
|
1239 |
msgstr ""
|
1240 |
|
1241 |
-
#: ../cerber-load.php:
|
1242 |
msgid "Email address is not permitted."
|
1243 |
msgstr ""
|
1244 |
|
1245 |
-
#: ../cerber-load.php:
|
1246 |
msgid "Please choose another one."
|
1247 |
msgstr ""
|
1248 |
|
1249 |
-
#: ../cerber-load.php:
|
1250 |
msgid "Sorry, human verification failed."
|
1251 |
msgstr ""
|
1252 |
|
1253 |
-
#: ../cerber-load.php:
|
1254 |
msgid "We're sorry, you are not allowed to proceed"
|
1255 |
msgstr ""
|
1256 |
|
1257 |
-
#: ../cerber-load.php:
|
1258 |
msgid "WP Cerber notify"
|
1259 |
msgstr ""
|
1260 |
|
1261 |
-
#: ../cerber-load.php:
|
1262 |
msgid "Citadel mode is activated"
|
1263 |
msgstr ""
|
1264 |
|
1265 |
-
#: ../cerber-load.php:
|
1266 |
#, php-format
|
1267 |
msgid "Citadel mode is activated after %d failed login attempts in %d minutes."
|
1268 |
msgstr ""
|
1269 |
|
1270 |
-
#: ../cerber-load.php:
|
1271 |
#, php-format
|
1272 |
msgid "Last failed attempt was at %s from IP %s with user login: %s."
|
1273 |
msgstr ""
|
1274 |
|
1275 |
-
#: ../cerber-load.php:
|
1276 |
msgid "View activity in dashboard"
|
1277 |
msgstr ""
|
1278 |
|
1279 |
-
#: ../cerber-load.php:
|
1280 |
msgid "unspecified"
|
1281 |
msgstr ""
|
1282 |
|
1283 |
-
#: ../cerber-load.php:
|
1284 |
msgid "Number of lockouts is increasing"
|
1285 |
msgstr ""
|
1286 |
|
1287 |
-
#: ../cerber-load.php:
|
1288 |
msgid "Number of active lockouts"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
-
#: ../cerber-load.php:
|
1292 |
#, php-format
|
1293 |
msgid "Last lockout was added: %s for IP %s"
|
1294 |
msgstr ""
|
1295 |
|
1296 |
-
#: ../cerber-load.php:
|
1297 |
msgid "View activity for this IP"
|
1298 |
msgstr ""
|
1299 |
|
1300 |
-
#: ../cerber-load.php:
|
1301 |
msgid "View lockouts in dashboard"
|
1302 |
msgstr ""
|
1303 |
|
1304 |
-
#: ../cerber-load.php:
|
1305 |
msgid "A new version of WP Cerber is available to install"
|
1306 |
msgstr ""
|
1307 |
|
1308 |
-
#: ../cerber-load.php:
|
1309 |
msgid "Hi!"
|
1310 |
msgstr ""
|
1311 |
|
1312 |
-
#: ../cerber-load.php:
|
1313 |
#: 45
|
1314 |
msgid "Website"
|
1315 |
msgstr ""
|
1316 |
|
1317 |
-
#: ../cerber-load.php:
|
1318 |
msgid "The WP Cerber security plugin has been deactivated"
|
1319 |
msgstr ""
|
1320 |
|
1321 |
-
#: ../cerber-load.php:
|
1322 |
msgid "Not logged in"
|
1323 |
msgstr ""
|
1324 |
|
1325 |
-
#: ../cerber-load.php:
|
1326 |
msgid "By user"
|
1327 |
msgstr ""
|
1328 |
|
1329 |
-
#: ../cerber-load.php:
|
1330 |
msgid "From IP address"
|
1331 |
msgstr ""
|
1332 |
|
1333 |
-
#: ../cerber-load.php:
|
1334 |
msgid "From country"
|
1335 |
msgstr ""
|
1336 |
|
1337 |
-
#: ../cerber-load.php:
|
1338 |
msgid "The WP Cerber security plugin is now active"
|
1339 |
msgstr ""
|
1340 |
|
1341 |
-
#: ../cerber-load.php:
|
1342 |
msgid "WP Cerber is now active and has started protecting your site"
|
1343 |
msgstr ""
|
1344 |
|
1345 |
-
#: ../cerber-load.php:
|
1346 |
msgid "New Custom login URL"
|
1347 |
msgstr ""
|
1348 |
|
1349 |
-
#: ../cerber-load.php:
|
1350 |
msgid "A new activity has been recorded"
|
1351 |
msgstr ""
|
1352 |
|
1353 |
-
#: ../cerber-load.php:
|
1354 |
msgid "Weekly report"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
-
#: ../cerber-load.php:
|
1358 |
msgid "To change reporting settings visit"
|
1359 |
msgstr ""
|
1360 |
|
1361 |
-
#: ../cerber-load.php:
|
1362 |
msgid "Scanner Report"
|
1363 |
msgstr ""
|
1364 |
|
1365 |
-
#: ../cerber-load.php:
|
1366 |
msgid "Your login page:"
|
1367 |
msgstr ""
|
1368 |
|
1369 |
-
#: ../cerber-load.php:
|
1370 |
msgid "Your license is valid until"
|
1371 |
msgstr ""
|
1372 |
|
1373 |
-
#: ../cerber-load.php:
|
1374 |
msgid "This message was sent by"
|
1375 |
msgstr ""
|
1376 |
|
1377 |
-
#: ../cerber-load.php:
|
1378 |
#, php-format
|
1379 |
msgid "Your last sign-in was %s from %s"
|
1380 |
msgstr ""
|
1381 |
|
1382 |
-
#: ../cerber-load.php:
|
1383 |
msgid "Weekly Report"
|
1384 |
msgstr ""
|
1385 |
|
1386 |
-
#: ../cerber-load.php:
|
1387 |
msgid "Activity details"
|
1388 |
msgstr ""
|
1389 |
|
1390 |
-
#: ../cerber-load.php:
|
1391 |
msgid "Attempts to log in with non-existing usernames"
|
1392 |
msgstr ""
|
1393 |
|
1394 |
-
#: ../cerber-load.php:
|
1395 |
msgid "User"
|
1396 |
msgstr ""
|
1397 |
|
1398 |
-
#: ../cerber-load.php:
|
1399 |
msgid "Username used"
|
1400 |
msgstr ""
|
1401 |
|
1402 |
-
#: ../cerber-load.php:
|
1403 |
msgid "Search string"
|
1404 |
msgstr ""
|
1405 |
|
1406 |
-
#: ../cerber-load.php:
|
1407 |
msgid "To delete the alert, click here"
|
1408 |
msgstr ""
|
1409 |
|
1410 |
-
#: ../cerber-load.php:
|
1411 |
#, php-format
|
1412 |
msgid "The WP Cerber requires PHP %s or higher. You are running"
|
1413 |
msgstr ""
|
1414 |
|
1415 |
-
#: ../cerber-load.php:
|
1416 |
#, php-format
|
1417 |
msgid "The WP Cerber requires WordPress %s or higher. You are running"
|
1418 |
msgstr ""
|
1419 |
|
1420 |
-
#: ../cerber-load.php:
|
1421 |
msgid "Can't activate WP Cerber due to a database error."
|
1422 |
msgstr ""
|
1423 |
|
1424 |
-
#: ../cerber-load.php:
|
1425 |
msgid "Your IP address is added to the"
|
1426 |
msgstr ""
|
1427 |
|
1428 |
-
#: ../cerber-load.php:
|
1429 |
msgid "Import settings"
|
1430 |
msgstr ""
|
1431 |
|
@@ -1455,7 +1504,7 @@ msgctxt "e.g. blocked by John at 11:00"
|
|
1455 |
msgid "blocked by %s at %s"
|
1456 |
msgstr ""
|
1457 |
|
1458 |
-
#: ../cerber-users.php:67 ../settings.php:
|
1459 |
msgid "User Message"
|
1460 |
msgstr ""
|
1461 |
|
@@ -1503,7 +1552,7 @@ msgstr ""
|
|
1503 |
msgid "Redirect user after logout"
|
1504 |
msgstr ""
|
1505 |
|
1506 |
-
#: ../cerber-users.php:417 ../settings.php:
|
1507 |
msgid "User session expiration time"
|
1508 |
msgstr ""
|
1509 |
|
@@ -1598,1037 +1647,1123 @@ msgstr ""
|
|
1598 |
msgid "Terminate"
|
1599 |
msgstr ""
|
1600 |
|
1601 |
-
#: ../settings.php:
|
1602 |
msgid "All connected devices"
|
1603 |
msgstr ""
|
1604 |
|
1605 |
-
#: ../settings.php:
|
1606 |
msgid "No devices found"
|
1607 |
msgstr ""
|
1608 |
|
1609 |
-
#: ../settings.php:
|
1610 |
msgid "Not available"
|
1611 |
msgstr ""
|
1612 |
|
1613 |
-
#: ../settings.php:
|
1614 |
msgid ""
|
1615 |
"Please enable Permalinks to use this feature. Set Permalink Settings to "
|
1616 |
"something other than Default."
|
1617 |
msgstr ""
|
1618 |
|
1619 |
-
#: ../settings.php:
|
1620 |
msgid "Be careful about enabling these options."
|
1621 |
msgstr ""
|
1622 |
|
1623 |
-
#: ../settings.php:
|
1624 |
msgid "If you forget your Custom login URL, you will be unable to log in."
|
1625 |
msgstr ""
|
1626 |
|
1627 |
-
#: ../settings.php:
|
1628 |
msgid "These restrictions do not apply to IP addresses in the White IP Access List"
|
1629 |
msgstr ""
|
1630 |
|
1631 |
-
#: ../settings.php:
|
1632 |
msgid "Plugin initialization"
|
1633 |
msgstr ""
|
1634 |
|
1635 |
-
#: ../settings.php:
|
1636 |
msgid "Load security engine"
|
1637 |
msgstr ""
|
1638 |
|
1639 |
-
#: ../settings.php:
|
1640 |
msgid "Legacy mode"
|
1641 |
msgstr ""
|
1642 |
|
1643 |
-
#: ../settings.php:
|
1644 |
msgid "Standard mode"
|
1645 |
msgstr ""
|
1646 |
|
1647 |
-
#: ../settings.php:
|
1648 |
msgid "Limit login attempts"
|
1649 |
msgstr ""
|
1650 |
|
1651 |
-
#: ../settings.php:
|
1652 |
msgid "Attempts"
|
1653 |
msgstr ""
|
1654 |
|
1655 |
-
#: ../settings.php:
|
1656 |
msgid "Lockout duration"
|
1657 |
msgstr ""
|
1658 |
|
1659 |
-
#: ../settings.php:
|
1660 |
msgid "minutes"
|
1661 |
msgstr ""
|
1662 |
|
1663 |
-
#: ../settings.php:
|
1664 |
msgid "Aggressive lockout"
|
1665 |
msgstr ""
|
1666 |
|
1667 |
-
#: ../settings.php:
|
1668 |
msgid "Use White IP Access List"
|
1669 |
msgstr ""
|
1670 |
|
1671 |
-
#: ../settings.php:
|
1672 |
msgid "Apply limit login rules to IP addresses in the White IP Access List"
|
1673 |
msgstr ""
|
1674 |
|
1675 |
-
#: ../settings.php:
|
1676 |
msgid "Proactive security rules"
|
1677 |
msgstr ""
|
1678 |
|
1679 |
-
#: ../settings.php:
|
1680 |
msgid "Make your protection smarter!"
|
1681 |
msgstr ""
|
1682 |
|
1683 |
-
#: ../settings.php:
|
1684 |
msgid "Block subnet"
|
1685 |
msgstr ""
|
1686 |
|
1687 |
-
#: ../settings.php:
|
1688 |
msgid "Always block entire subnet Class C of intruders IP"
|
1689 |
msgstr ""
|
1690 |
|
1691 |
-
#: ../settings.php:
|
1692 |
msgid "Non-existing users"
|
1693 |
msgstr ""
|
1694 |
|
1695 |
-
#: ../settings.php:
|
1696 |
msgid "Immediately block IP when attempting to log in with a non-existing username"
|
1697 |
msgstr ""
|
1698 |
|
1699 |
-
#: ../settings.php:
|
1700 |
msgid "Disable dashboard redirection"
|
1701 |
msgstr ""
|
1702 |
|
1703 |
-
#: ../settings.php:
|
1704 |
msgid ""
|
1705 |
"Disable automatic redirection to the login page when /wp-admin/ is requested "
|
1706 |
"by an unauthorized request"
|
1707 |
msgstr ""
|
1708 |
|
1709 |
-
#: ../settings.php:
|
1710 |
msgid "Request wp-login.php"
|
1711 |
msgstr ""
|
1712 |
|
1713 |
-
#: ../settings.php:
|
1714 |
msgid "Immediately block IP after any request to wp-login.php"
|
1715 |
msgstr ""
|
1716 |
|
1717 |
-
#: ../settings.php:
|
1718 |
msgid "Display 404 page"
|
1719 |
msgstr ""
|
1720 |
|
1721 |
-
#: ../settings.php:
|
1722 |
msgid "Use 404 template from the active theme"
|
1723 |
msgstr ""
|
1724 |
|
1725 |
-
#: ../settings.php:
|
1726 |
msgid "Display simple 404 page"
|
1727 |
msgstr ""
|
1728 |
|
1729 |
-
#: ../settings.php:
|
1730 |
msgid "Custom login page"
|
1731 |
msgstr ""
|
1732 |
|
1733 |
-
#: ../settings.php:
|
1734 |
msgid "Custom login URL"
|
1735 |
msgstr ""
|
1736 |
|
1737 |
-
#: ../settings.php:
|
1738 |
msgid "must not overlap with the existing pages or posts slug"
|
1739 |
msgstr ""
|
1740 |
|
1741 |
-
#: ../settings.php:
|
1742 |
msgid ""
|
1743 |
"Custom login URL may contain Latin alphanumeric characters, dashes and "
|
1744 |
"underscores only"
|
1745 |
msgstr ""
|
1746 |
|
1747 |
-
#: ../settings.php:
|
1748 |
msgid "Disable wp-login.php"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
-
#: ../settings.php:
|
1752 |
msgid "Block direct access to wp-login.php and return HTTP 404 Not Found Error"
|
1753 |
msgstr ""
|
1754 |
|
1755 |
-
#: ../settings.php:
|
1756 |
msgid "Site-specific settings"
|
1757 |
msgstr ""
|
1758 |
|
1759 |
-
#: ../settings.php:
|
1760 |
msgid "Site connection"
|
1761 |
msgstr ""
|
1762 |
|
1763 |
-
#: ../settings.php:
|
1764 |
msgid "Prefix for plugin cookies"
|
1765 |
msgstr ""
|
1766 |
|
1767 |
-
#: ../settings.php:
|
1768 |
msgid "Prefix may contain only Latin alphanumeric characters and underscores"
|
1769 |
msgstr ""
|
1770 |
|
1771 |
-
#: ../settings.php:
|
1772 |
msgid ""
|
1773 |
"In the Citadel mode nobody is able to log in except IPs from the White IP "
|
1774 |
"Access List. Active user sessions will not be affected."
|
1775 |
msgstr ""
|
1776 |
|
1777 |
-
#: ../settings.php:
|
1778 |
msgid "Threshold"
|
1779 |
msgstr ""
|
1780 |
|
1781 |
-
#: ../settings.php:
|
1782 |
msgid "Duration"
|
1783 |
msgstr ""
|
1784 |
|
1785 |
-
#: ../settings.php:
|
1786 |
msgid "Send notification to admin email"
|
1787 |
msgstr ""
|
1788 |
|
1789 |
-
#: ../settings.php:
|
1790 |
msgid "Click to send test"
|
1791 |
msgstr ""
|
1792 |
|
1793 |
-
#: ../settings.php:
|
1794 |
msgid "Keep records for"
|
1795 |
msgstr ""
|
1796 |
|
1797 |
-
#: ../settings.php:
|
1798 |
msgid "days"
|
1799 |
msgstr ""
|
1800 |
|
1801 |
-
#: ../settings.php:
|
1802 |
msgid "Cerber Lab connection"
|
1803 |
msgstr ""
|
1804 |
|
1805 |
-
#: ../settings.php:
|
1806 |
msgid "Send malicious IP addresses to the Cerber Lab"
|
1807 |
msgstr ""
|
1808 |
|
1809 |
-
#: ../settings.php:
|
1810 |
msgid "Cerber Lab protocol"
|
1811 |
msgstr ""
|
1812 |
|
1813 |
-
#: ../settings.php:
|
1814 |
msgid "Use file"
|
1815 |
msgstr ""
|
1816 |
|
1817 |
-
#: ../settings.php:
|
1818 |
msgid "Write failed login attempts to the file"
|
1819 |
msgstr ""
|
1820 |
|
1821 |
-
#: ../settings.php:
|
1822 |
msgid "Preferences"
|
1823 |
msgstr ""
|
1824 |
|
1825 |
-
#: ../settings.php:
|
1826 |
msgid "Drill down IP"
|
1827 |
msgstr ""
|
1828 |
|
1829 |
-
#: ../settings.php:
|
1830 |
msgid "Retrieve extra WHOIS information for IP"
|
1831 |
msgstr ""
|
1832 |
|
1833 |
-
#: ../settings.php:
|
1834 |
msgid "Date format"
|
1835 |
msgstr ""
|
1836 |
|
1837 |
-
#: ../settings.php:
|
1838 |
#, php-format
|
1839 |
msgid "if empty, the default format %s will be used"
|
1840 |
msgstr ""
|
1841 |
|
1842 |
-
#: ../settings.php:
|
1843 |
msgid "Use English for admin interface"
|
1844 |
msgstr ""
|
1845 |
|
1846 |
-
#: ../settings.php:
|
1847 |
msgid "Hardening WordPress"
|
1848 |
msgstr ""
|
1849 |
|
1850 |
-
#: ../settings.php:
|
1851 |
msgid "Stop user enumeration"
|
1852 |
msgstr ""
|
1853 |
|
1854 |
-
#: ../settings.php:
|
1855 |
msgid "Block access to user pages like /?author=n"
|
1856 |
msgstr ""
|
1857 |
|
1858 |
-
#: ../settings.php:
|
1859 |
msgid "Protect admin scripts"
|
1860 |
msgstr ""
|
1861 |
|
1862 |
-
#: ../settings.php:
|
1863 |
msgid "Block unauthorized access to load-scripts.php and load-styles.php"
|
1864 |
msgstr ""
|
1865 |
|
1866 |
-
#: ../settings.php:
|
1867 |
msgid "Disable PHP in uploads"
|
1868 |
msgstr ""
|
1869 |
|
1870 |
-
#: ../settings.php:
|
1871 |
msgid "Block execution of PHP scripts in the WordPress media folder"
|
1872 |
msgstr ""
|
1873 |
|
1874 |
-
#: ../settings.php:
|
1875 |
msgid "Disable PHP error displaying"
|
1876 |
msgstr ""
|
1877 |
|
1878 |
-
#: ../settings.php:
|
1879 |
msgid "Disable XML-RPC"
|
1880 |
msgstr ""
|
1881 |
|
1882 |
-
#: ../settings.php:
|
1883 |
msgid "Block access to the XML-RPC server (including Pingbacks and Trackbacks)"
|
1884 |
msgstr ""
|
1885 |
|
1886 |
-
#: ../settings.php:
|
1887 |
msgid "Disable feeds"
|
1888 |
msgstr ""
|
1889 |
|
1890 |
-
#: ../settings.php:
|
1891 |
msgid "Block access to the RSS, Atom and RDF feeds"
|
1892 |
msgstr ""
|
1893 |
|
1894 |
-
#: ../settings.php:
|
1895 |
msgid "Access to WordPress REST API"
|
1896 |
msgstr ""
|
1897 |
|
1898 |
-
#: ../settings.php:
|
1899 |
msgid "Block access to users' data via REST API"
|
1900 |
msgstr ""
|
1901 |
|
1902 |
-
#: ../settings.php:
|
1903 |
msgid "Disable REST API"
|
1904 |
msgstr ""
|
1905 |
|
1906 |
-
#: ../settings.php:
|
1907 |
msgid "Block access to WordPress REST API except any of the following"
|
1908 |
msgstr ""
|
1909 |
|
1910 |
-
#: ../settings.php:
|
1911 |
msgid "Allow REST API for logged in users"
|
1912 |
msgstr ""
|
1913 |
|
1914 |
-
#: ../settings.php:
|
1915 |
msgid "Allow REST API for these roles"
|
1916 |
msgstr ""
|
1917 |
|
1918 |
-
#: ../settings.php:
|
1919 |
msgid "Allow these namespaces"
|
1920 |
msgstr ""
|
1921 |
|
1922 |
-
#: ../settings.php:
|
1923 |
msgid ""
|
1924 |
"Specify REST API namespaces to be allowed if REST API is disabled. One "
|
1925 |
"string per line."
|
1926 |
msgstr ""
|
1927 |
|
1928 |
-
#: ../settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1929 |
msgid "Authorized users only"
|
1930 |
msgstr ""
|
1931 |
|
1932 |
-
#: ../settings.php:
|
1933 |
msgid "Only registered and logged in website users have access to the website"
|
1934 |
msgstr ""
|
1935 |
|
1936 |
-
#: ../settings.php:
|
1937 |
-
msgid "Do not apply
|
1938 |
msgstr ""
|
1939 |
|
1940 |
-
#: ../settings.php:
|
1941 |
msgid "Only registered and logged in users are allowed to view this website"
|
1942 |
msgstr ""
|
1943 |
|
1944 |
-
#: ../settings.php:
|
1945 |
msgid "Redirect to URL"
|
1946 |
msgstr ""
|
1947 |
|
1948 |
-
#: ../settings.php:
|
1949 |
msgid "Registration limit"
|
1950 |
msgstr ""
|
1951 |
|
1952 |
-
#: ../settings.php:
|
1953 |
msgid "Restrict email addresses"
|
1954 |
msgstr ""
|
1955 |
|
1956 |
-
#: ../settings.php:
|
1957 |
msgid "No restrictions"
|
1958 |
msgstr ""
|
1959 |
|
1960 |
-
#: ../settings.php:
|
1961 |
msgid "Deny all email addresses that match the following"
|
1962 |
msgstr ""
|
1963 |
|
1964 |
-
#: ../settings.php:
|
1965 |
msgid "Permit only email addresses that match the following"
|
1966 |
msgstr ""
|
1967 |
|
1968 |
-
#: ../settings.php:
|
1969 |
msgid ""
|
1970 |
"Specify email addresses, wildcards or REGEX patterns. Use comma to separate "
|
1971 |
"items."
|
1972 |
msgstr ""
|
1973 |
|
1974 |
-
#: ../settings.php:
|
1975 |
msgid "To specify a REGEX pattern wrap a pattern in two forward slashes."
|
1976 |
msgstr ""
|
1977 |
|
1978 |
-
#: ../settings.php:
|
1979 |
msgid "Prohibited usernames"
|
1980 |
msgstr ""
|
1981 |
|
1982 |
-
#: ../settings.php:
|
1983 |
msgid ""
|
1984 |
"Usernames from this list are not allowed to log in or register. Any IP "
|
1985 |
"address, have tried to use any of these usernames, will be immediately "
|
1986 |
"blocked. Use comma to separate logins."
|
1987 |
msgstr ""
|
1988 |
|
1989 |
-
#: ../settings.php:
|
1990 |
msgid "in minutes (leave empty to use default WP value)"
|
1991 |
msgstr ""
|
1992 |
|
1993 |
-
#: ../settings.php:
|
1994 |
msgid "Sort users in dashboard"
|
1995 |
msgstr ""
|
1996 |
|
1997 |
-
#: ../settings.php:
|
1998 |
msgid "by date of registration"
|
1999 |
msgstr ""
|
2000 |
|
2001 |
-
#: ../settings.php:
|
2002 |
msgid "Email notifications"
|
2003 |
msgstr ""
|
2004 |
|
2005 |
-
#: ../settings.php:
|
2006 |
msgid "Lockout notifications"
|
2007 |
msgstr ""
|
2008 |
|
2009 |
-
#: ../settings.php:
|
2010 |
msgid "Email Address"
|
2011 |
msgstr ""
|
2012 |
|
2013 |
-
#: ../settings.php:
|
2014 |
msgid "Use comma to specify multiple values"
|
2015 |
msgstr ""
|
2016 |
|
2017 |
-
#: ../settings.php:
|
2018 |
#, php-format
|
2019 |
msgid "if empty, the admin email %s will be used"
|
2020 |
msgstr ""
|
2021 |
|
2022 |
-
#: ../settings.php:
|
2023 |
msgid "Notification limit"
|
2024 |
msgstr ""
|
2025 |
|
2026 |
-
#: ../settings.php:
|
2027 |
msgid "notification letters allowed per hour (0 means unlimited)"
|
2028 |
msgstr ""
|
2029 |
|
2030 |
-
#: ../settings.php:
|
2031 |
msgid "New version is available"
|
2032 |
msgstr ""
|
2033 |
|
2034 |
-
#: ../settings.php:
|
2035 |
msgid "Push notifications"
|
2036 |
msgstr ""
|
2037 |
|
2038 |
-
#: ../settings.php:
|
2039 |
msgid "Pushbullet access token"
|
2040 |
msgstr ""
|
2041 |
|
2042 |
-
#: ../settings.php:
|
2043 |
msgid "Pushbullet device"
|
2044 |
msgstr ""
|
2045 |
|
2046 |
-
#: ../settings.php:
|
2047 |
msgid "Weekly reports"
|
2048 |
msgstr ""
|
2049 |
|
2050 |
-
#: ../settings.php:
|
2051 |
msgid "Enable reporting"
|
2052 |
msgstr ""
|
2053 |
|
2054 |
-
#: ../settings.php:
|
2055 |
msgid "Send reports on"
|
2056 |
msgstr ""
|
2057 |
|
2058 |
-
#: ../settings.php:
|
2059 |
msgid "if empty, email from notification settings will be used"
|
2060 |
msgstr ""
|
2061 |
|
2062 |
-
#: ../settings.php:
|
2063 |
msgid "Traffic Inspection"
|
2064 |
msgstr ""
|
2065 |
|
2066 |
-
#: ../settings.php:
|
2067 |
msgid "Enable traffic inspection"
|
2068 |
msgstr ""
|
2069 |
|
2070 |
-
#: ../settings.php:
|
2071 |
msgid "Maximum compatibility"
|
2072 |
msgstr ""
|
2073 |
|
2074 |
-
#: ../settings.php:
|
2075 |
msgid "Maximum security"
|
2076 |
msgstr ""
|
2077 |
|
2078 |
-
#: ../settings.php:
|
2079 |
msgid "Request whitelist"
|
2080 |
msgstr ""
|
2081 |
|
2082 |
-
#: ../settings.php:
|
2083 |
msgid ""
|
2084 |
"Enter a request URI to exclude the request from inspection. One item per "
|
2085 |
"line."
|
2086 |
msgstr ""
|
2087 |
|
2088 |
-
#: ../settings.php:
|
2089 |
msgid "To specify a REGEX pattern, enclose a whole line in two braces."
|
2090 |
msgstr ""
|
2091 |
|
2092 |
-
#: ../settings.php:
|
2093 |
msgid "Erroneous Request Shielding"
|
2094 |
msgstr ""
|
2095 |
|
2096 |
-
#: ../settings.php:
|
2097 |
msgid "Enable error shielding"
|
2098 |
msgstr ""
|
2099 |
|
2100 |
-
#: ../settings.php:
|
2101 |
msgid "Ignore logged in users"
|
2102 |
msgstr ""
|
2103 |
|
2104 |
-
#: ../settings.php:
|
2105 |
msgid "Logging"
|
2106 |
msgstr ""
|
2107 |
|
2108 |
-
#: ../settings.php:
|
2109 |
msgid "Logging mode"
|
2110 |
msgstr ""
|
2111 |
|
2112 |
-
#: ../settings.php:
|
2113 |
msgid "Logging disabled"
|
2114 |
msgstr ""
|
2115 |
|
2116 |
-
#: ../settings.php:
|
2117 |
msgid "Smart"
|
2118 |
msgstr ""
|
2119 |
|
2120 |
-
#: ../settings.php:
|
2121 |
msgid "All traffic"
|
2122 |
msgstr ""
|
2123 |
|
2124 |
-
#: ../settings.php:
|
2125 |
msgid "Ignore crawlers"
|
2126 |
msgstr ""
|
2127 |
|
2128 |
-
#: ../settings.php:
|
2129 |
msgid "Save request fields"
|
2130 |
msgstr ""
|
2131 |
|
2132 |
-
#: ../settings.php:
|
2133 |
msgid "Mask these form fields"
|
2134 |
msgstr ""
|
2135 |
|
2136 |
-
#: ../settings.php:
|
2137 |
msgid "Save request headers"
|
2138 |
msgstr ""
|
2139 |
|
2140 |
-
#: ../settings.php:
|
2141 |
msgid "Save $_SERVER"
|
2142 |
msgstr ""
|
2143 |
|
2144 |
-
#: ../settings.php:
|
2145 |
msgid "Save request cookies"
|
2146 |
msgstr ""
|
2147 |
|
2148 |
-
#: ../settings.php:
|
2149 |
msgid "Save software errors"
|
2150 |
msgstr ""
|
2151 |
|
2152 |
-
#: ../settings.php:
|
2153 |
msgid "Page generation time threshold"
|
2154 |
msgstr ""
|
2155 |
|
2156 |
-
#: ../settings.php:
|
2157 |
msgid "milliseconds"
|
2158 |
msgstr ""
|
2159 |
|
2160 |
-
#: ../settings.php:
|
2161 |
msgid "Scanner settings"
|
2162 |
msgstr ""
|
2163 |
|
2164 |
-
#: ../settings.php:
|
2165 |
msgid "Custom signatures"
|
2166 |
msgstr ""
|
2167 |
|
2168 |
-
#: ../settings.php:
|
2169 |
msgid ""
|
2170 |
"Specify custom PHP code signatures. One item per line. To specify a REGEX "
|
2171 |
"pattern, enclose a whole line in two braces."
|
2172 |
msgstr ""
|
2173 |
|
2174 |
-
#: ../settings.php:
|
2175 |
msgid "Unwanted file extensions"
|
2176 |
msgstr ""
|
2177 |
|
2178 |
-
#: ../settings.php:
|
2179 |
msgid ""
|
2180 |
"Specify file extensions to search for. Full scan only. Use comma to separate "
|
2181 |
"items."
|
2182 |
msgstr ""
|
2183 |
|
2184 |
-
#: ../settings.php:
|
2185 |
msgid "Directories to exclude"
|
2186 |
msgstr ""
|
2187 |
|
2188 |
-
#: ../settings.php:
|
2189 |
msgid ""
|
2190 |
"Specify directories to exclude from scanning. Use absolute paths. One item "
|
2191 |
"per line."
|
2192 |
msgstr ""
|
2193 |
|
2194 |
-
#: ../settings.php:
|
2195 |
msgid "Monitor new files"
|
2196 |
msgstr ""
|
2197 |
|
2198 |
-
#: ../settings.php:
|
2199 |
msgid "Monitor modified files"
|
2200 |
msgstr ""
|
2201 |
|
2202 |
-
#: ../settings.php:
|
2203 |
msgid "Scan temporary directory"
|
2204 |
msgstr ""
|
2205 |
|
2206 |
-
#: ../settings.php:
|
2207 |
msgid "Scan session directory"
|
2208 |
msgstr ""
|
2209 |
|
2210 |
-
#: ../settings.php:
|
2211 |
msgid "Enable diagnostic logging"
|
2212 |
msgstr ""
|
2213 |
|
2214 |
-
#: ../settings.php:
|
2215 |
msgid "Delete quarantined files after"
|
2216 |
msgstr ""
|
2217 |
|
2218 |
-
#: ../settings.php:
|
2219 |
msgid "Automated recurring scan schedule"
|
2220 |
msgstr ""
|
2221 |
|
2222 |
-
#: ../settings.php:
|
2223 |
msgid "Launch Quick Scan"
|
2224 |
msgstr ""
|
2225 |
|
2226 |
-
#: ../settings.php:
|
2227 |
msgid "Launch Full Scan"
|
2228 |
msgstr ""
|
2229 |
|
2230 |
-
#: ../settings.php:
|
2231 |
msgid "Scan results reporting"
|
2232 |
msgstr ""
|
2233 |
|
2234 |
-
#: ../settings.php:
|
2235 |
msgid "Report an issue if any of the following is true"
|
2236 |
msgstr ""
|
2237 |
|
2238 |
-
#: ../settings.php:
|
2239 |
msgid "Low severity"
|
2240 |
msgstr ""
|
2241 |
|
2242 |
-
#: ../settings.php:
|
2243 |
msgid "Medium severity"
|
2244 |
msgstr ""
|
2245 |
|
2246 |
-
#: ../settings.php:
|
2247 |
msgid "High severity"
|
2248 |
msgstr ""
|
2249 |
|
2250 |
-
#: ../settings.php:
|
2251 |
msgid "Send email report"
|
2252 |
msgstr ""
|
2253 |
|
2254 |
-
#: ../settings.php:
|
2255 |
msgid "After every scan"
|
2256 |
msgstr ""
|
2257 |
|
2258 |
-
#: ../settings.php:
|
2259 |
msgid "If any changes in scan results occurred"
|
2260 |
msgstr ""
|
2261 |
|
2262 |
-
#: ../settings.php:
|
2263 |
msgid "If new issues found"
|
2264 |
msgstr ""
|
2265 |
|
2266 |
-
#: ../settings.php:
|
2267 |
msgid "Include file sizes"
|
2268 |
msgstr ""
|
2269 |
|
2270 |
-
#: ../settings.php:
|
2271 |
msgid "Include scan errors"
|
2272 |
msgstr ""
|
2273 |
|
2274 |
-
#: ../settings.php:
|
2275 |
msgid "Automatic cleanup of malware and suspicious files"
|
2276 |
msgstr ""
|
2277 |
|
2278 |
-
#: ../settings.php:
|
2279 |
msgid "Delete unattended files"
|
2280 |
msgstr ""
|
2281 |
|
2282 |
-
#: ../settings.php:
|
2283 |
msgid "Files in the uploads folder"
|
2284 |
msgstr ""
|
2285 |
|
2286 |
-
#: ../settings.php:
|
2287 |
msgid "Files with unwanted extensions"
|
2288 |
msgstr ""
|
2289 |
|
2290 |
-
#: ../settings.php:
|
2291 |
msgid "Automatic recovery of modified and infected files"
|
2292 |
msgstr ""
|
2293 |
|
2294 |
-
#: ../settings.php:
|
2295 |
msgid "Recover WordPress files"
|
2296 |
msgstr ""
|
2297 |
|
2298 |
-
#: ../settings.php:
|
2299 |
msgid "Recover plugins files"
|
2300 |
msgstr ""
|
2301 |
|
2302 |
-
#: ../settings.php:
|
2303 |
msgid "Exclusions"
|
2304 |
msgstr ""
|
2305 |
|
2306 |
-
#: ../settings.php:
|
2307 |
msgid "These files will never be deleted during automatic cleanup."
|
2308 |
msgstr ""
|
2309 |
|
2310 |
-
#: ../settings.php:
|
2311 |
msgid "Files in the temporary directory"
|
2312 |
msgstr ""
|
2313 |
|
2314 |
-
#: ../settings.php:
|
2315 |
msgid "Files in the sessions directory"
|
2316 |
msgstr ""
|
2317 |
|
2318 |
-
#: ../settings.php:
|
2319 |
msgid "Files in these directories"
|
2320 |
msgstr ""
|
2321 |
|
2322 |
-
#: ../settings.php:
|
2323 |
msgid "Use absolute paths. One item per line."
|
2324 |
msgstr ""
|
2325 |
|
2326 |
-
#: ../settings.php:
|
2327 |
msgid "Files with these extensions"
|
2328 |
msgstr ""
|
2329 |
|
2330 |
-
#: ../settings.php:
|
2331 |
msgid "Use comma to separate items."
|
2332 |
msgstr ""
|
2333 |
|
2334 |
-
#: ../settings.php:
|
2335 |
msgid "Cerber antispam engine"
|
2336 |
msgstr ""
|
2337 |
|
2338 |
-
#: ../settings.php:
|
2339 |
msgid "Comment form"
|
2340 |
msgstr ""
|
2341 |
|
2342 |
-
#: ../settings.php:
|
2343 |
msgid "Protect comment form with bot detection engine"
|
2344 |
msgstr ""
|
2345 |
|
2346 |
-
#: ../settings.php:
|
2347 |
msgid "Registration form"
|
2348 |
msgstr ""
|
2349 |
|
2350 |
-
#: ../settings.php:
|
2351 |
msgid "Protect registration form with bot detection engine"
|
2352 |
msgstr ""
|
2353 |
|
2354 |
-
#: ../settings.php:
|
2355 |
msgid "Other forms"
|
2356 |
msgstr ""
|
2357 |
|
2358 |
-
#: ../settings.php:
|
2359 |
msgid "Protect all forms on the website with bot detection engine"
|
2360 |
msgstr ""
|
2361 |
|
2362 |
-
#: ../settings.php:
|
2363 |
msgid "Adjust antispam engine"
|
2364 |
msgstr ""
|
2365 |
|
2366 |
-
#: ../settings.php:
|
2367 |
msgid "Safe mode"
|
2368 |
msgstr ""
|
2369 |
|
2370 |
-
#: ../settings.php:
|
2371 |
msgid "Use less restrictive policies (allow AJAX)"
|
2372 |
msgstr ""
|
2373 |
|
2374 |
-
#: ../settings.php:
|
2375 |
msgid "Disable bot detection engine for logged in users"
|
2376 |
msgstr ""
|
2377 |
|
2378 |
-
#: ../settings.php:
|
2379 |
msgid "Query whitelist"
|
2380 |
msgstr ""
|
2381 |
|
2382 |
-
#: ../settings.php:
|
2383 |
msgid ""
|
2384 |
"Enter a part of query string or query path to exclude a request from "
|
2385 |
"inspection by the engine. One item per line."
|
2386 |
msgstr ""
|
2387 |
|
2388 |
-
#: ../settings.php:
|
2389 |
msgid "Comment processing"
|
2390 |
msgstr ""
|
2391 |
|
2392 |
-
#: ../settings.php:
|
2393 |
msgid "If a spam comment detected"
|
2394 |
msgstr ""
|
2395 |
|
2396 |
-
#: ../settings.php:
|
2397 |
msgid "Deny it completely"
|
2398 |
msgstr ""
|
2399 |
|
2400 |
-
#: ../settings.php:
|
2401 |
msgid "Mark it as spam"
|
2402 |
msgstr ""
|
2403 |
|
2404 |
-
#: ../settings.php:
|
2405 |
msgid "Trash spam comments"
|
2406 |
msgstr ""
|
2407 |
|
2408 |
-
#: ../settings.php:
|
2409 |
msgid "Move spam comments to trash after"
|
2410 |
msgstr ""
|
2411 |
|
2412 |
-
#: ../settings.php:
|
2413 |
msgid "reCAPTCHA settings"
|
2414 |
msgstr ""
|
2415 |
|
2416 |
-
#: ../settings.php:
|
2417 |
msgid ""
|
2418 |
"Before you can start using reCAPTCHA, you have to obtain Site key and Secret "
|
2419 |
"key on the Google website"
|
2420 |
msgstr ""
|
2421 |
|
2422 |
-
#: ../settings.php:
|
2423 |
msgid "Site key"
|
2424 |
msgstr ""
|
2425 |
|
2426 |
-
#: ../settings.php:
|
2427 |
msgid "Secret key"
|
2428 |
msgstr ""
|
2429 |
|
2430 |
-
#: ../settings.php:
|
2431 |
msgid "Invisible reCAPTCHA"
|
2432 |
msgstr ""
|
2433 |
|
2434 |
-
#: ../settings.php:
|
2435 |
msgid "Enable invisible reCAPTCHA"
|
2436 |
msgstr ""
|
2437 |
|
2438 |
-
#: ../settings.php:
|
2439 |
msgid ""
|
2440 |
"(do not enable it unless you get and enter the Site and Secret keys for the "
|
2441 |
"invisible version)"
|
2442 |
msgstr ""
|
2443 |
|
2444 |
-
#: ../settings.php:
|
2445 |
msgid "Enable reCAPTCHA for WordPress registration form"
|
2446 |
msgstr ""
|
2447 |
|
2448 |
-
#: ../settings.php:
|
2449 |
msgid "Enable reCAPTCHA for WooCommerce registration form"
|
2450 |
msgstr ""
|
2451 |
|
2452 |
-
#: ../settings.php:
|
2453 |
msgid "Lost password form"
|
2454 |
msgstr ""
|
2455 |
|
2456 |
-
#: ../settings.php:
|
2457 |
msgid "Enable reCAPTCHA for WordPress lost password form"
|
2458 |
msgstr ""
|
2459 |
|
2460 |
-
#: ../settings.php:
|
2461 |
msgid "Enable reCAPTCHA for WooCommerce lost password form"
|
2462 |
msgstr ""
|
2463 |
|
2464 |
-
#: ../settings.php:
|
2465 |
msgid "Login form"
|
2466 |
msgstr ""
|
2467 |
|
2468 |
-
#: ../settings.php:
|
2469 |
msgid "Enable reCAPTCHA for WordPress login form"
|
2470 |
msgstr ""
|
2471 |
|
2472 |
-
#: ../settings.php:
|
2473 |
msgid "Enable reCAPTCHA for WooCommerce login form"
|
2474 |
msgstr ""
|
2475 |
|
2476 |
-
#: ../settings.php:
|
2477 |
msgid "Enable reCAPTCHA for WordPress comment form"
|
2478 |
msgstr ""
|
2479 |
|
2480 |
-
#: ../settings.php:
|
2481 |
msgid "Disable reCAPTCHA for logged in users"
|
2482 |
msgstr ""
|
2483 |
|
2484 |
-
#: ../settings.php:
|
2485 |
msgid "Limit attempts"
|
2486 |
msgstr ""
|
2487 |
|
2488 |
-
#: ../settings.php:
|
2489 |
#, php-format
|
2490 |
msgid "Lock out IP address for %s minutes after %s failed attempts within %s minutes"
|
2491 |
msgstr ""
|
2492 |
|
2493 |
-
#: ../settings.php:
|
2494 |
msgid "Master settings"
|
2495 |
msgstr ""
|
2496 |
|
2497 |
-
#: ../settings.php:
|
2498 |
msgid "Return to the website list"
|
2499 |
msgstr ""
|
2500 |
|
2501 |
-
#: ../settings.php:
|
2502 |
msgid "Show \"Switched to\" notification"
|
2503 |
msgstr ""
|
2504 |
|
2505 |
-
#: ../settings.php:
|
2506 |
msgid "Add @ site to the page title"
|
2507 |
msgstr ""
|
2508 |
|
2509 |
-
#: ../settings.php:
|
2510 |
msgid "Use master language"
|
2511 |
msgstr ""
|
2512 |
|
2513 |
-
#: ../settings.php:
|
2514 |
msgid "Limit access by IP address"
|
2515 |
msgstr ""
|
2516 |
|
2517 |
-
#: ../settings.php:
|
2518 |
msgid "Access to this website"
|
2519 |
msgstr ""
|
2520 |
|
2521 |
-
#: ../settings.php:
|
2522 |
msgid "Full access mode"
|
2523 |
msgstr ""
|
2524 |
|
2525 |
-
#: ../settings.php:
|
2526 |
msgid "Read-only mode"
|
2527 |
msgstr ""
|
2528 |
|
2529 |
-
#: ../settings.php:
|
2530 |
msgid "The full access mode requires the PRO version of WP Cerber"
|
2531 |
msgstr ""
|
2532 |
|
2533 |
-
#: ../settings.php:
|
2534 |
#, php-format
|
2535 |
msgid "%s allowed retries in %s minutes"
|
2536 |
msgstr ""
|
2537 |
|
2538 |
-
#: ../settings.php:
|
2539 |
#, php-format
|
2540 |
msgid "%s allowed registrations in %s minutes from one IP"
|
2541 |
msgstr ""
|
2542 |
|
2543 |
-
#: ../settings.php:
|
2544 |
#, php-format
|
2545 |
msgid "Increase lockout duration to %s hours after %s lockouts in the last %s hours"
|
2546 |
msgstr ""
|
2547 |
|
2548 |
-
#: ../settings.php:
|
2549 |
msgid "Notify admin if the number of active lockouts above"
|
2550 |
msgstr ""
|
2551 |
|
2552 |
-
#: ../settings.php:
|
2553 |
#, php-format
|
2554 |
msgid "Enable after %s failed login attempts in last %s minutes"
|
2555 |
msgstr ""
|
2556 |
|
2557 |
-
#: ../settings.php:
|
2558 |
msgid "Select one or more roles"
|
2559 |
msgstr ""
|
2560 |
|
2561 |
-
#: ../settings.php:
|
2562 |
msgid "Sunday"
|
2563 |
msgstr ""
|
2564 |
|
2565 |
-
#: ../settings.php:
|
2566 |
msgid "Monday"
|
2567 |
msgstr ""
|
2568 |
|
2569 |
-
#: ../settings.php:
|
2570 |
msgid "Tuesday"
|
2571 |
msgstr ""
|
2572 |
|
2573 |
-
#: ../settings.php:
|
2574 |
msgid "Wednesday"
|
2575 |
msgstr ""
|
2576 |
|
2577 |
-
#: ../settings.php:
|
2578 |
msgid "Thursday"
|
2579 |
msgstr ""
|
2580 |
|
2581 |
-
#: ../settings.php:
|
2582 |
msgid "Friday"
|
2583 |
msgstr ""
|
2584 |
|
2585 |
-
#: ../settings.php:
|
2586 |
msgid "Saturday"
|
2587 |
msgstr ""
|
2588 |
|
2589 |
-
#: ../settings.php:
|
2590 |
msgctxt "preposition of time like: at 11:00"
|
2591 |
msgid "at"
|
2592 |
msgstr ""
|
2593 |
|
2594 |
-
#: ../settings.php:
|
2595 |
msgid "Click to send now"
|
2596 |
msgstr ""
|
2597 |
|
2598 |
-
#: ../settings.php:
|
2599 |
msgid "Plugin initialization mode has not been changed"
|
2600 |
msgstr ""
|
2601 |
|
2602 |
-
#: ../settings.php:
|
2603 |
msgid "Attention! You have changed the login URL! The new login URL is"
|
2604 |
msgstr ""
|
2605 |
|
2606 |
-
#: ../settings.php:
|
2607 |
msgid ""
|
2608 |
"If you use a caching plugin, you have to add your new login URL to the list "
|
2609 |
"of pages not to cache."
|
2610 |
msgstr ""
|
2611 |
|
2612 |
-
#: ../settings.php:
|
2613 |
msgid "<strong>ERROR</strong>: please enter a valid email address."
|
2614 |
msgstr ""
|
2615 |
|
2616 |
-
#: ../settings.php:
|
2617 |
msgid "The schedule has been updated"
|
2618 |
msgstr ""
|
2619 |
|
2620 |
-
#: ../settings.php:
|
2621 |
msgid "Unable to update the schedule"
|
2622 |
msgstr ""
|
2623 |
|
2624 |
-
#: ../settings.php:
|
2625 |
msgid "These features are available in a professional version of the plugin."
|
2626 |
msgstr ""
|
2627 |
|
2628 |
-
#: ../settings.php:
|
2629 |
msgid "Know more about all advantages at"
|
2630 |
msgstr ""
|
2631 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2632 |
#: ../cerber-2fa.php:352
|
2633 |
msgid ""
|
2634 |
"This verification PIN code is expired. We have just sent a new one to your "
|
@@ -2757,7 +2892,7 @@ msgstr ""
|
|
2757 |
msgid "Error while parsing file"
|
2758 |
msgstr ""
|
2759 |
|
2760 |
-
#: ../cerber-tools.php:
|
2761 |
msgid "Unsubscribe"
|
2762 |
msgstr ""
|
2763 |
|
5 |
"Project-Id-Version: WP Cerber\n"
|
6 |
"Report-Msgid-Bugs-To: \n"
|
7 |
"POT-Creation-Date: Tue Sep 08 2015 21:38:11 GMT+0300\n"
|
8 |
+
"POT-Revision-Date: Thu Oct 17 2019 19:30:56 GMT+0300 (Moscow Standard Time)\n"
|
9 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
28 |
msgid "Cerber Dashboard"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: ../dashboard.php:54 ../dashboard.php:1712 ../dashboard.php:2623 ../dashboard.
|
32 |
+
#: php:4462
|
33 |
msgid "Dashboard"
|
34 |
msgstr ""
|
35 |
|
37 |
msgid "Cerber Traffic Inspector"
|
38 |
msgstr ""
|
39 |
|
40 |
+
#: ../dashboard.php:56 ../dashboard.php:1682 ../dashboard.php:4528
|
41 |
msgid "Traffic Inspector"
|
42 |
msgstr ""
|
43 |
|
44 |
#: ../dashboard.php:60
|
45 |
+
msgid "Cerber Data Shield Policies"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: ../dashboard.php:60
|
49 |
+
msgid "Data Shield"
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
+
#: ../dashboard.php:61
|
53 |
msgid "Cerber Security Rules"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: ../dashboard.php:61 ../dashboard.php:4574
|
57 |
msgid "Security Rules"
|
58 |
msgstr ""
|
59 |
|
60 |
+
#: ../dashboard.php:64
|
61 |
msgid "Cerber User Security"
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: ../dashboard.php:64 ../dashboard.php:4554
|
65 |
msgid "User Policies"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: ../dashboard.php:67 ../dashboard.php:4589
|
69 |
msgid "Site Integrity"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: ../dashboard.php:71
|
73 |
msgid "Cerber antispam settings"
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: ../dashboard.php:71 ../cerber-load.php:4919 ../settings.php:1032
|
77 |
msgid "Antispam"
|
78 |
msgstr ""
|
79 |
|
80 |
+
#: ../dashboard.php:76
|
81 |
msgid "Cerber tools"
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: ../dashboard.php:76 ../dashboard.php:4624
|
85 |
msgid "Tools"
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: ../dashboard.php:180 ../dashboard.php:263
|
89 |
msgid "Remove"
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: ../dashboard.php:185 ../cerber-load.php:4619
|
93 |
msgid "IP"
|
94 |
msgstr ""
|
95 |
|
96 |
+
#: ../dashboard.php:186 ../dashboard.php:1073
|
97 |
msgid "Hostname"
|
98 |
msgstr ""
|
99 |
|
100 |
+
#: ../dashboard.php:187 ../dashboard.php:1074
|
101 |
msgid "Country"
|
102 |
msgstr ""
|
103 |
|
104 |
+
#: ../dashboard.php:188 ../cerber-users.php:755
|
105 |
msgid "Expires"
|
106 |
msgstr ""
|
107 |
|
108 |
+
#: ../dashboard.php:189 ../cerber-load.php:3955
|
109 |
msgid "Reason"
|
110 |
msgstr ""
|
111 |
|
112 |
+
#: ../dashboard.php:190 ../cerber-users.php:758 ../cerber-scanner.php:5772 ..
|
113 |
#: /cerber-scanner.php:5920
|
114 |
msgid "Action"
|
115 |
msgstr ""
|
116 |
|
117 |
+
#: ../dashboard.php:206
|
118 |
#, php-format
|
119 |
msgid "Showing last %d records from %d"
|
120 |
msgstr ""
|
121 |
|
122 |
+
#: ../dashboard.php:208
|
123 |
msgid "Hint"
|
124 |
msgstr ""
|
125 |
|
126 |
+
#: ../dashboard.php:208
|
127 |
msgid "To view activity, click on the IP"
|
128 |
msgstr ""
|
129 |
|
130 |
+
#: ../dashboard.php:212
|
131 |
msgid "No lockouts at the moment. The sky is clear."
|
132 |
msgstr ""
|
133 |
|
134 |
+
#: ../dashboard.php:235 ../dashboard.php:1288 ../dashboard.php:1325 ../dashboard.
|
135 |
+
#: php:1677 ../dashboard.php:3698 ../cerber-load.php:4906
|
136 |
msgid "White IP Access List"
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: ../dashboard.php:235
|
140 |
msgid "These IPs will never be locked out"
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: ../dashboard.php:237 ../dashboard.php:1291 ../dashboard.php:1328 ../dashboard.
|
144 |
+
#: php:1678 ../dashboard.php:3699
|
145 |
msgid "Black IP Access List"
|
146 |
msgstr ""
|
147 |
|
148 |
+
#: ../dashboard.php:237
|
149 |
msgid "Nobody can log in or register from these IPs"
|
150 |
msgstr ""
|
151 |
|
152 |
+
#: ../dashboard.php:244
|
153 |
msgid "Your IP"
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: ../dashboard.php:262 ../dashboard.php:1339 ../dashboard.php:1374 ../dashboard.
|
157 |
+
#: php:1497
|
158 |
msgid "Check for activities"
|
159 |
msgstr ""
|
160 |
|
161 |
+
#: ../dashboard.php:269
|
162 |
msgid "List is empty"
|
163 |
msgstr ""
|
164 |
|
165 |
+
#: ../dashboard.php:275
|
166 |
msgid "IP address, IPv4 address range or subnet"
|
167 |
msgstr ""
|
168 |
|
169 |
+
#: ../dashboard.php:276
|
170 |
msgid "Add IP to the list"
|
171 |
msgstr ""
|
172 |
|
173 |
+
#: ../dashboard.php:277
|
174 |
msgid "Optional comment for this entry"
|
175 |
msgstr ""
|
176 |
|
177 |
+
#: ../dashboard.php:294 ../dashboard.php:311
|
178 |
msgid "Incorrect IP address or IP range"
|
179 |
msgstr ""
|
180 |
|
181 |
+
#: ../dashboard.php:302
|
182 |
#, php-format
|
183 |
msgid "IP address %s has been added to White IP Access List"
|
184 |
msgstr ""
|
185 |
|
186 |
+
#: ../dashboard.php:316
|
187 |
msgid "You cannot add your IP address or network"
|
188 |
msgstr ""
|
189 |
|
190 |
+
#: ../dashboard.php:324
|
191 |
#, php-format
|
192 |
msgid "IP address %s has been added to Black IP Access List"
|
193 |
msgstr ""
|
194 |
|
195 |
+
#: ../dashboard.php:411 ../dashboard.php:3627 ../whois.php:222 ../whois.php:253 ..
|
196 |
+
#: /common.php:1430 ../common.php:1813 ../common.php:1878 ../nexus/cerber-slave-
|
197 |
+
#: list.php:283
|
198 |
msgid "Unknown"
|
199 |
msgstr ""
|
200 |
|
201 |
+
#: ../dashboard.php:484
|
202 |
msgid "unknown"
|
203 |
msgstr ""
|
204 |
|
205 |
+
#: ../dashboard.php:547
|
206 |
#, php-format
|
207 |
msgid "Lockout for %s was removed"
|
208 |
msgstr ""
|
209 |
|
210 |
+
#: ../dashboard.php:555
|
211 |
msgid "Email has been sent to"
|
212 |
msgstr ""
|
213 |
|
214 |
+
#: ../dashboard.php:558
|
215 |
msgid "Unable to send email to"
|
216 |
msgstr ""
|
217 |
|
218 |
+
#: ../dashboard.php:613
|
219 |
msgid "Default settings have been loaded"
|
220 |
msgstr ""
|
221 |
|
222 |
+
#: ../dashboard.php:805 ../dashboard.php:1072 ../dashboard.php:3906 ../cerber-
|
223 |
#: users.php:756
|
224 |
msgid "IP Address"
|
225 |
msgstr ""
|
226 |
|
227 |
+
#: ../dashboard.php:806 ../dashboard.php:1075 ../dashboard.php:3529 ../dashboard.
|
228 |
+
#: php:3904
|
229 |
msgid "Date"
|
230 |
msgstr ""
|
231 |
|
232 |
+
#: ../dashboard.php:807 ../dashboard.php:1076
|
233 |
msgid "Event"
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: ../dashboard.php:808
|
237 |
msgid "Additional Details"
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: ../dashboard.php:809 ../dashboard.php:1077 ../dashboard.php:3909
|
241 |
msgid "Local User"
|
242 |
msgstr ""
|
243 |
|
244 |
+
#: ../dashboard.php:810
|
245 |
msgid "User login"
|
246 |
msgstr ""
|
247 |
|
248 |
+
#: ../dashboard.php:811 ../dashboard.php:3534
|
249 |
msgid "User ID"
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: ../dashboard.php:812 ../dashboard.php:1078
|
253 |
msgid "Username"
|
254 |
msgstr ""
|
255 |
|
256 |
+
#: ../dashboard.php:887 ../dashboard.php:2278
|
257 |
msgid "View all"
|
258 |
msgstr ""
|
259 |
|
260 |
+
#: ../dashboard.php:898
|
261 |
msgid "New users"
|
262 |
msgstr ""
|
263 |
|
264 |
+
#: ../dashboard.php:904 ../dashboard.php:3935
|
265 |
msgid "Suspicious activity"
|
266 |
msgstr ""
|
267 |
|
268 |
+
#: ../dashboard.php:906 ../common.php:1305
|
269 |
msgid "IP blocked"
|
270 |
msgstr ""
|
271 |
|
272 |
+
#: ../dashboard.php:908 ../dashboard.php:1675 ../dashboard.php:3937 ../settings.
|
273 |
+
#: php:391 ../settings.php:953
|
274 |
msgid "Logged in users"
|
275 |
msgstr ""
|
276 |
|
277 |
+
#: ../dashboard.php:909 ../dashboard.php:3938
|
278 |
msgid "Not logged in visitors"
|
279 |
msgstr ""
|
280 |
|
281 |
+
#: ../dashboard.php:911
|
282 |
msgid "My activity"
|
283 |
msgstr ""
|
284 |
|
285 |
+
#: ../dashboard.php:1100 ../dashboard.php:3969
|
286 |
msgid "Export"
|
287 |
msgstr ""
|
288 |
|
289 |
+
#: ../dashboard.php:1105
|
290 |
msgid "No activity has been logged."
|
291 |
msgstr ""
|
292 |
|
293 |
+
#: ../dashboard.php:1112
|
294 |
msgid "All events"
|
295 |
msgstr ""
|
296 |
|
297 |
+
#: ../dashboard.php:1122
|
298 |
msgid "Filter by registered user"
|
299 |
msgstr ""
|
300 |
|
301 |
+
#: ../dashboard.php:1123
|
302 |
msgid "Search for IP or username"
|
303 |
msgstr ""
|
304 |
|
305 |
+
#: ../dashboard.php:1124 ../dashboard.php:1126
|
306 |
msgid "Filter"
|
307 |
msgstr ""
|
308 |
|
309 |
+
#: ../dashboard.php:1296 ../dashboard.php:1332 ../dashboard.php:3703 ../common.
|
310 |
+
#: php:1362
|
311 |
msgid "Locked out"
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: ../dashboard.php:1369
|
315 |
msgid "Abuse email:"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: ../dashboard.php:1374
|
319 |
msgid "Network:"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: ../dashboard.php:1389
|
323 |
msgid "Add network to the Black List"
|
324 |
msgstr ""
|
325 |
|
326 |
+
#: ../dashboard.php:1394
|
327 |
msgid "Add IP to the Black List"
|
328 |
msgstr ""
|
329 |
|
330 |
+
#: ../dashboard.php:1459
|
331 |
msgid "Activated"
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: ../dashboard.php:1481
|
335 |
msgid "Last seen"
|
336 |
msgstr ""
|
337 |
|
338 |
+
#: ../dashboard.php:1491 ../dashboard.php:1535
|
339 |
msgid "Registered"
|
340 |
msgstr ""
|
341 |
|
342 |
+
#: ../dashboard.php:1532
|
343 |
msgid "Comments"
|
344 |
msgstr ""
|
345 |
|
346 |
+
#: ../dashboard.php:1533
|
347 |
msgid "Last login"
|
348 |
msgstr ""
|
349 |
|
350 |
+
#: ../dashboard.php:1534
|
351 |
msgid "Failed login attempts"
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: ../dashboard.php:1566 ../dashboard.php:1657 ../common.php:1570 ../nexus/cerber-
|
355 |
#: slave-list.php:297
|
356 |
msgid "Never"
|
357 |
msgstr ""
|
358 |
|
359 |
+
#: ../dashboard.php:1605 ../cerber-users.php:51 ../cerber-users.php:889
|
360 |
msgid "You"
|
361 |
msgstr ""
|
362 |
|
363 |
+
#: ../dashboard.php:1623
|
364 |
msgid "Cerber Quick View"
|
365 |
msgstr ""
|
366 |
|
367 |
+
#: ../dashboard.php:1661 ../dashboard.php:1686
|
368 |
msgid "active"
|
369 |
msgstr ""
|
370 |
|
371 |
+
#: ../dashboard.php:1661
|
372 |
msgid "deactivate"
|
373 |
msgstr ""
|
374 |
|
375 |
+
#: ../dashboard.php:1663
|
376 |
msgid "not active"
|
377 |
msgstr ""
|
378 |
|
379 |
+
#: ../dashboard.php:1664 ../dashboard.php:1681
|
380 |
msgid "disabled"
|
381 |
msgstr ""
|
382 |
|
383 |
+
#: ../dashboard.php:1669
|
384 |
msgid "failed attempts"
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: ../dashboard.php:1669 ../dashboard.php:1670
|
388 |
msgid "in 24 hours"
|
389 |
msgstr ""
|
390 |
|
391 |
+
#: ../dashboard.php:1669 ../dashboard.php:1670
|
392 |
msgid "view all"
|
393 |
msgstr ""
|
394 |
|
395 |
+
#: ../dashboard.php:1670
|
396 |
msgid "lockouts"
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: ../dashboard.php:1672
|
400 |
msgid "Lockouts at the moment"
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: ../dashboard.php:1673
|
404 |
msgid "Last lockout"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: ../dashboard.php:1675
|
408 |
msgid "user"
|
409 |
msgid_plural "users"
|
410 |
msgstr[0] ""
|
411 |
msgstr[1] ""
|
412 |
|
413 |
+
#: ../dashboard.php:1677 ../dashboard.php:1678 ../dashboard.php:2605
|
414 |
msgid "entry"
|
415 |
msgid_plural "entries"
|
416 |
msgstr[0] ""
|
417 |
msgstr[1] ""
|
418 |
|
419 |
+
#: ../dashboard.php:1679 ../settings.php:262
|
420 |
msgid "Citadel mode"
|
421 |
msgstr ""
|
422 |
|
423 |
+
#: ../dashboard.php:1681
|
424 |
msgid "enabled"
|
425 |
msgstr ""
|
426 |
|
427 |
+
#: ../dashboard.php:1686
|
428 |
msgid "no connection"
|
429 |
msgstr ""
|
430 |
|
431 |
+
#: ../dashboard.php:1696
|
432 |
msgctxt "Example: Last malware scan: 23 Jan 2018"
|
433 |
msgid "Last malware scan"
|
434 |
msgstr ""
|
435 |
|
436 |
+
#: ../dashboard.php:1699 ../dashboard.php:1701 ../cerber-users.php:20 ../cerber-
|
437 |
+
#: users.php:431 ../settings.php:655 ../settings.php:680 ../settings.php:1104 ..
|
438 |
#: /cerber-scanner.php:1625
|
439 |
msgid "Disabled"
|
440 |
msgstr ""
|
441 |
|
442 |
+
#: ../dashboard.php:1700 ../cerber-scanner.php:1066
|
443 |
msgid "Quick Scan"
|
444 |
msgstr ""
|
445 |
|
446 |
+
#: ../dashboard.php:1702 ../cerber-scanner.php:1066
|
447 |
msgid "Full Scan"
|
448 |
msgstr ""
|
449 |
|
450 |
+
#: ../dashboard.php:1713 ../dashboard.php:2264 ../dashboard.php:4463 ../cerber-
|
451 |
+
#: load.php:4610 ../cerber-users.php:922 ../settings.php:287
|
452 |
msgid "Activity"
|
453 |
msgstr ""
|
454 |
|
455 |
+
#: ../dashboard.php:1714 ../cerber-users.php:923
|
456 |
msgid "Traffic"
|
457 |
msgstr ""
|
458 |
|
459 |
+
#: ../dashboard.php:1715
|
460 |
msgid "Integrity"
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: ../dashboard.php:1718
|
464 |
msgid "A new version is available"
|
465 |
msgstr ""
|
466 |
|
467 |
+
#: ../dashboard.php:2081 ../settings.php:249
|
468 |
msgid "My site is behind a reverse proxy"
|
469 |
msgstr ""
|
470 |
|
471 |
+
#: ../dashboard.php:2257
|
472 |
msgid "in the last 24 hours"
|
473 |
msgstr ""
|
474 |
|
475 |
+
#: ../dashboard.php:2281
|
476 |
msgid "Recently locked out IP addresses"
|
477 |
msgstr ""
|
478 |
|
479 |
+
#: ../dashboard.php:2305
|
480 |
msgid "Confused about some settings?"
|
481 |
msgstr ""
|
482 |
|
483 |
+
#: ../dashboard.php:2306
|
484 |
msgid "You can easily load default recommended settings using button below"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: ../dashboard.php:2308
|
488 |
msgid "Load default settings"
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: ../dashboard.php:2310 ../cerber-users.php:945 ../cerber-tools.php:686 ..
|
492 |
#: /nexus/cerber-slave-list.php:230 ../cerber-scanner.php:5746 ../cerber-scanner.
|
493 |
#: php:5904
|
494 |
msgid "Are you sure?"
|
495 |
msgstr ""
|
496 |
|
497 |
+
#: ../dashboard.php:2316
|
498 |
msgid "doesn't affect Custom login URL and Access Lists"
|
499 |
msgstr ""
|
500 |
|
501 |
+
#: ../dashboard.php:2317 ../cerber-load.php:3987 ../cerber-load.php:4908
|
502 |
msgid "Getting Started Guide"
|
503 |
msgstr ""
|
504 |
|
505 |
+
#: ../dashboard.php:2422
|
506 |
msgid "Attention! Citadel mode is now active. Nobody is able to log in."
|
507 |
msgstr ""
|
508 |
|
509 |
+
#: ../dashboard.php:2423
|
510 |
msgid "Deactivate"
|
511 |
msgstr ""
|
512 |
|
513 |
+
#: ../dashboard.php:2424 ../dashboard.php:2862
|
514 |
msgid "View Activity"
|
515 |
msgstr ""
|
516 |
|
517 |
+
#: ../dashboard.php:2439 ../nexus/cerber-nexus-slave.php:443
|
518 |
msgid "Settings saved"
|
519 |
msgstr ""
|
520 |
|
521 |
+
#: ../dashboard.php:2510
|
522 |
msgid "Create Alert"
|
523 |
msgstr ""
|
524 |
|
525 |
+
#: ../dashboard.php:2514
|
526 |
msgid "Delete Alert"
|
527 |
msgstr ""
|
528 |
|
529 |
+
#: ../dashboard.php:2547
|
530 |
msgid "You've subscribed"
|
531 |
msgstr ""
|
532 |
|
533 |
+
#: ../dashboard.php:2548
|
534 |
msgid "The alert has been created"
|
535 |
msgstr ""
|
536 |
|
537 |
+
#: ../dashboard.php:2552
|
538 |
msgid "You've unsubscribed"
|
539 |
msgstr ""
|
540 |
|
541 |
+
#: ../dashboard.php:2553
|
542 |
msgid "The alert has been deleted"
|
543 |
msgstr ""
|
544 |
|
545 |
+
#: ../dashboard.php:2624
|
546 |
msgid "Main settings"
|
547 |
msgstr ""
|
548 |
|
549 |
+
#: ../dashboard.php:2730
|
550 |
msgid "Are you sure you want to delete selected files?"
|
551 |
msgstr ""
|
552 |
|
553 |
+
#: ../dashboard.php:2731
|
554 |
msgid "These files have been moved to the quarantine"
|
555 |
msgstr ""
|
556 |
|
557 |
+
#: ../dashboard.php:2734
|
558 |
msgid "Do you want to add selected files to the ignore list?"
|
559 |
msgstr ""
|
560 |
|
561 |
+
#: ../dashboard.php:2735
|
562 |
msgid "These files have been added to the ignore list"
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: ../dashboard.php:2737
|
566 |
msgid "Some errors occurred"
|
567 |
msgstr ""
|
568 |
|
569 |
+
#: ../dashboard.php:2738
|
570 |
msgid "All files have been processed"
|
571 |
msgstr ""
|
572 |
|
573 |
+
#: ../dashboard.php:3123 ../common.php:930
|
574 |
msgid "Save Changes"
|
575 |
msgstr ""
|
576 |
|
577 |
+
#: ../dashboard.php:3195
|
578 |
msgid "Role-based rules are configured"
|
579 |
msgstr ""
|
580 |
|
581 |
+
#: ../dashboard.php:3245
|
582 |
msgid "Start typing here to find a country"
|
583 |
msgstr ""
|
584 |
|
585 |
+
#: ../dashboard.php:3252
|
586 |
msgid "Save all rules"
|
587 |
msgstr ""
|
588 |
|
589 |
+
#: ../dashboard.php:3265
|
590 |
#, php-format
|
591 |
msgid "Permitted for one country"
|
592 |
msgid_plural "Permitted for %d countries"
|
593 |
msgstr[0] ""
|
594 |
msgstr[1] ""
|
595 |
|
596 |
+
#: ../dashboard.php:3268
|
597 |
#, php-format
|
598 |
msgid "Not permitted for one country"
|
599 |
msgid_plural "Not permitted for %d countries"
|
600 |
msgstr[0] ""
|
601 |
msgstr[1] ""
|
602 |
|
603 |
+
#: ../dashboard.php:3276
|
604 |
msgid "No rule"
|
605 |
msgstr ""
|
606 |
|
607 |
+
#: ../dashboard.php:3277
|
608 |
msgid "Any country is permitted"
|
609 |
msgstr ""
|
610 |
|
611 |
+
#: ../dashboard.php:3360
|
612 |
msgid "Click on a country name to add it to the list of selected countries"
|
613 |
msgstr ""
|
614 |
|
615 |
+
#: ../dashboard.php:3364
|
616 |
#, php-format
|
617 |
msgctxt "to is a marker of infinitive, e.g. \"to use it\""
|
618 |
msgid "Selected countries are permitted to %s, other countries are not permitted to"
|
619 |
msgstr ""
|
620 |
|
621 |
+
#: ../dashboard.php:3367
|
622 |
#, php-format
|
623 |
msgctxt "to is a marker of infinitive, e.g. \"to use it\""
|
624 |
msgid "Selected countries are not permitted to %s, other countries are permitted to"
|
625 |
msgstr ""
|
626 |
|
627 |
+
#: ../dashboard.php:3387
|
628 |
msgid "Log in to the website"
|
629 |
msgstr ""
|
630 |
|
631 |
+
#: ../dashboard.php:3389
|
632 |
msgid "All Users"
|
633 |
msgstr ""
|
634 |
|
635 |
+
#: ../dashboard.php:3391
|
636 |
msgid "Register on the website"
|
637 |
msgstr ""
|
638 |
|
639 |
+
#: ../dashboard.php:3392
|
640 |
msgid "Submit forms"
|
641 |
msgstr ""
|
642 |
|
643 |
+
#: ../dashboard.php:3393
|
644 |
msgid "Post comments"
|
645 |
msgstr ""
|
646 |
|
647 |
+
#: ../dashboard.php:3394
|
648 |
msgid "Use XML-RPC"
|
649 |
msgstr ""
|
650 |
|
651 |
+
#: ../dashboard.php:3395
|
652 |
msgid "Use REST API"
|
653 |
msgstr ""
|
654 |
|
655 |
+
#: ../dashboard.php:3437
|
656 |
msgid "Security rules have been updated"
|
657 |
msgstr ""
|
658 |
|
659 |
+
#: ../dashboard.php:3528
|
660 |
msgid "IP address"
|
661 |
msgstr ""
|
662 |
|
663 |
+
#: ../dashboard.php:3535
|
664 |
msgid "Page generation time"
|
665 |
msgstr ""
|
666 |
|
667 |
+
#: ../dashboard.php:3905
|
668 |
msgid "Request"
|
669 |
msgstr ""
|
670 |
|
671 |
+
#: ../dashboard.php:3907 ../cerber-users.php:757
|
672 |
msgid "Host Info"
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: ../dashboard.php:3908
|
676 |
msgid "User Agent"
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: ../dashboard.php:3925
|
680 |
msgid "No requests have been logged."
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: ../dashboard.php:3933
|
684 |
msgid "All requests"
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: ../dashboard.php:3936
|
688 |
msgid "Errors"
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: ../dashboard.php:3941
|
692 |
msgid "Form submissions"
|
693 |
msgstr ""
|
694 |
|
695 |
+
#: ../dashboard.php:3943
|
696 |
msgid "Page Not Found"
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: ../dashboard.php:3952
|
700 |
msgid "Longer than"
|
701 |
msgstr ""
|
702 |
|
703 |
+
#: ../dashboard.php:3962
|
704 |
msgid "Advanced Search"
|
705 |
msgstr ""
|
706 |
|
707 |
+
#: ../dashboard.php:3975
|
708 |
msgid "Refresh"
|
709 |
msgstr ""
|
710 |
|
711 |
+
#: ../dashboard.php:4266
|
712 |
msgid "Any"
|
713 |
msgstr ""
|
714 |
|
715 |
+
#: ../dashboard.php:4464
|
716 |
msgid "Sessions"
|
717 |
msgstr ""
|
718 |
|
719 |
+
#: ../dashboard.php:4465
|
720 |
msgid "Lockouts"
|
721 |
msgstr ""
|
722 |
|
723 |
+
#: ../dashboard.php:4466 ../cerber-load.php:4916
|
724 |
msgid "Main Settings"
|
725 |
msgstr ""
|
726 |
|
727 |
+
#: ../dashboard.php:4467 ../cerber-load.php:4918 ../cerber-tools.php:38 ../cerber-
|
728 |
#: tools.php:47 ../cerber-tools.php:139
|
729 |
msgid "Access Lists"
|
730 |
msgstr ""
|
731 |
|
732 |
+
#: ../dashboard.php:4468 ../cerber-load.php:4920
|
733 |
msgid "Hardening"
|
734 |
msgstr ""
|
735 |
|
736 |
+
#: ../dashboard.php:4470 ../cerber-load.php:4921 ../settings.php:275
|
737 |
msgid "Notifications"
|
738 |
msgstr ""
|
739 |
|
740 |
+
#: ../dashboard.php:4508
|
741 |
msgid "Antispam and bot detection settings"
|
742 |
msgstr ""
|
743 |
|
744 |
+
#: ../dashboard.php:4510
|
745 |
msgid "Antispam engine"
|
746 |
msgstr ""
|
747 |
|
748 |
+
#: ../dashboard.php:4530
|
749 |
msgid "Live Traffic"
|
750 |
msgstr ""
|
751 |
|
752 |
+
#: ../dashboard.php:4531 ../dashboard.php:4592 ../cerber-tools.php:37 ../cerber-
|
753 |
#: tools.php:46 ../nexus/cerber-nexus.php:90
|
754 |
msgid "Settings"
|
755 |
msgstr ""
|
756 |
|
757 |
#: ../dashboard.php:4544
|
758 |
+
msgid "Data Shield Policies"
|
759 |
+
msgstr ""
|
760 |
+
|
761 |
+
#: ../dashboard.php:4546
|
762 |
+
msgid "Accounts & Roles"
|
763 |
+
msgstr ""
|
764 |
+
|
765 |
+
#: ../dashboard.php:4547
|
766 |
+
msgid "Site Settings"
|
767 |
+
msgstr ""
|
768 |
+
|
769 |
+
#: ../dashboard.php:4556
|
770 |
msgid "Role-based"
|
771 |
msgstr ""
|
772 |
|
773 |
+
#: ../dashboard.php:4557
|
774 |
msgid "Global"
|
775 |
msgstr ""
|
776 |
|
777 |
+
#: ../dashboard.php:4576
|
778 |
msgid "Countries"
|
779 |
msgstr ""
|
780 |
|
781 |
+
#: ../dashboard.php:4591 ../cerber-load.php:4917
|
782 |
msgid "Security Scanner"
|
783 |
msgstr ""
|
784 |
|
785 |
+
#: ../dashboard.php:4593
|
786 |
msgid "Scheduling"
|
787 |
msgstr ""
|
788 |
|
789 |
+
#: ../dashboard.php:4594
|
790 |
msgid "Cleaning up"
|
791 |
msgstr ""
|
792 |
|
793 |
+
#: ../dashboard.php:4595
|
794 |
msgid "Ignore List"
|
795 |
msgstr ""
|
796 |
|
797 |
+
#: ../dashboard.php:4596
|
798 |
msgid "Quarantine"
|
799 |
msgstr ""
|
800 |
|
801 |
+
#: ../dashboard.php:4626
|
802 |
msgid "Export & Import"
|
803 |
msgstr ""
|
804 |
|
805 |
+
#: ../dashboard.php:4627
|
806 |
msgid "Diagnostic"
|
807 |
msgstr ""
|
808 |
|
809 |
+
#: ../dashboard.php:4628
|
810 |
msgid "Log"
|
811 |
msgstr ""
|
812 |
|
813 |
+
#: ../dashboard.php:4629
|
814 |
msgid "Changelog"
|
815 |
msgstr ""
|
816 |
|
817 |
+
#: ../dashboard.php:4630
|
818 |
msgid "License"
|
819 |
msgstr ""
|
820 |
|
821 |
+
#: ../dashboard.php:4726
|
822 |
msgid "Help"
|
823 |
msgstr ""
|
824 |
|
825 |
+
#: ../dashboard.php:4754
|
826 |
msgid "Log In"
|
827 |
msgstr ""
|
828 |
|
829 |
+
#: ../dashboard.php:4755
|
830 |
msgid "Log Out"
|
831 |
msgstr ""
|
832 |
|
833 |
+
#: ../dashboard.php:4756
|
834 |
msgid "Register"
|
835 |
msgstr ""
|
836 |
|
837 |
+
#: ../dashboard.php:4759
|
838 |
msgid "WooCommerce Log In"
|
839 |
msgstr ""
|
840 |
|
841 |
+
#: ../dashboard.php:4760
|
842 |
msgid "WooCommerce Log Out"
|
843 |
msgstr ""
|
844 |
|
845 |
+
#: ../dashboard.php:4799 ../dashboard.php:4800
|
846 |
msgid "Add to menu"
|
847 |
msgstr ""
|
848 |
|
867 |
msgid "Cerber Tech Inc."
|
868 |
msgstr ""
|
869 |
|
870 |
+
#: ../common.php:196
|
871 |
msgid "Check for requests"
|
872 |
msgstr ""
|
873 |
|
874 |
+
#: ../common.php:266
|
875 |
msgid "Malicious activities mitigated"
|
876 |
msgstr ""
|
877 |
|
878 |
+
#: ../common.php:269
|
879 |
msgid "Spam comments denied"
|
880 |
msgstr ""
|
881 |
|
882 |
+
#: ../common.php:270
|
883 |
msgid "Spam form submissions denied"
|
884 |
msgstr ""
|
885 |
|
886 |
+
#: ../common.php:271
|
887 |
msgid "Malicious IP addresses detected"
|
888 |
msgstr ""
|
889 |
|
890 |
+
#: ../common.php:272
|
891 |
msgid "Lockouts occurred"
|
892 |
msgstr ""
|
893 |
|
894 |
+
#: ../common.php:326 ../common.php:404 ../common.php:409 ../common.php:415 ..
|
895 |
+
#: /common.php:420 ../cerber-load.php:684 ../cerber-load.php:696 ../cerber-load.
|
896 |
+
#: php:703 ../cerber-load.php:1030 ../cerber-load.php:1539 ../cerber-load.php:
|
897 |
+
#: 1545 ../cerber-load.php:1550 ../cerber-load.php:1557 ../cerber-load.php:1564 ..
|
898 |
+
#: /cerber-load.php:1570 ../cerber-load.php:1577 ../cerber-load.php:1728 ..
|
899 |
+
#: /cerber-load.php:1865 ../settings.php:1644 ../settings.php:1664 ../settings.
|
900 |
+
#: php:1739 ../nexus/cerber-nexus-slave.php:215 ../nexus/cerber-nexus-slave.php:
|
901 |
+
#: 226 ../cerber-scanner.php:5874
|
902 |
msgid "ERROR:"
|
903 |
msgstr ""
|
904 |
|
905 |
+
#: ../common.php:1298
|
906 |
msgid "User created"
|
907 |
msgstr ""
|
908 |
|
909 |
+
#: ../common.php:1299
|
910 |
msgid "User registered"
|
911 |
msgstr ""
|
912 |
|
913 |
+
#: ../common.php:1300
|
914 |
msgid "Logged in"
|
915 |
msgstr ""
|
916 |
|
917 |
+
#: ../common.php:1301
|
918 |
msgid "Logged out"
|
919 |
msgstr ""
|
920 |
|
921 |
+
#: ../common.php:1302
|
922 |
msgid "Login failed"
|
923 |
msgstr ""
|
924 |
|
925 |
+
#: ../common.php:1306
|
926 |
msgid "Subnet blocked"
|
927 |
msgstr ""
|
928 |
|
929 |
+
#: ../common.php:1308
|
930 |
msgid "Citadel activated!"
|
931 |
msgstr ""
|
932 |
|
933 |
+
#: ../common.php:1309
|
934 |
msgid "Spam comment denied"
|
935 |
msgstr ""
|
936 |
|
937 |
+
#: ../common.php:1310
|
938 |
msgid "Spam form submission denied"
|
939 |
msgstr ""
|
940 |
|
941 |
+
#: ../common.php:1311
|
942 |
msgid "Form submission denied"
|
943 |
msgstr ""
|
944 |
|
945 |
+
#: ../common.php:1312
|
946 |
msgid "Comment denied"
|
947 |
msgstr ""
|
948 |
|
949 |
+
#: ../common.php:1323
|
950 |
msgid "Password changed"
|
951 |
msgstr ""
|
952 |
|
953 |
+
#: ../common.php:1324
|
954 |
msgid "Password reset requested"
|
955 |
msgstr ""
|
956 |
|
957 |
+
#: ../common.php:1326
|
958 |
msgid "reCAPTCHA verification failed"
|
959 |
msgstr ""
|
960 |
|
961 |
+
#: ../common.php:1327
|
962 |
msgid "reCAPTCHA settings are incorrect"
|
963 |
msgstr ""
|
964 |
|
965 |
+
#: ../common.php:1328
|
966 |
msgid "Request to the Google reCAPTCHA service failed"
|
967 |
msgstr ""
|
968 |
|
969 |
+
#: ../common.php:1330 ../common.php:1434
|
970 |
msgid "Attempt to access prohibited URL"
|
971 |
msgstr ""
|
972 |
|
973 |
+
#: ../common.php:1331 ../common.php:1413
|
974 |
msgid "Attempt to log in with non-existing username"
|
975 |
msgstr ""
|
976 |
|
977 |
+
#: ../common.php:1332 ../common.php:1414
|
978 |
msgid "Attempt to log in with prohibited username"
|
979 |
msgstr ""
|
980 |
|
981 |
+
#: ../common.php:1334
|
982 |
msgid "Attempt to log in denied"
|
983 |
msgstr ""
|
984 |
|
985 |
+
#: ../common.php:1335
|
986 |
msgid "Attempt to register denied"
|
987 |
msgstr ""
|
988 |
|
989 |
+
#: ../common.php:1336 ../common.php:1418
|
990 |
msgid "Probing for vulnerable PHP code"
|
991 |
msgstr ""
|
992 |
|
993 |
+
#: ../common.php:1337
|
994 |
msgid "Attempt to upload malicious file denied"
|
995 |
msgstr ""
|
996 |
|
997 |
+
#: ../common.php:1338
|
998 |
msgid "File upload denied"
|
999 |
msgstr ""
|
1000 |
|
1001 |
+
#: ../common.php:1340
|
1002 |
msgid "Request to REST API denied"
|
1003 |
msgstr ""
|
1004 |
|
1005 |
+
#: ../common.php:1341
|
1006 |
msgid "XML-RPC request denied"
|
1007 |
msgstr ""
|
1008 |
|
1009 |
+
#: ../common.php:1342
|
1010 |
+
msgid "User creation denied"
|
1011 |
+
msgstr ""
|
1012 |
+
|
1013 |
+
#: ../common.php:1343
|
1014 |
+
msgid "User update denied"
|
1015 |
+
msgstr ""
|
1016 |
+
|
1017 |
+
#: ../common.php:1344
|
1018 |
+
msgid "Role update denied"
|
1019 |
+
msgstr ""
|
1020 |
+
|
1021 |
+
#: ../common.php:1345
|
1022 |
+
msgid "Setting update denied"
|
1023 |
+
msgstr ""
|
1024 |
+
|
1025 |
+
#: ../common.php:1347
|
1026 |
msgid "Malicious request denied"
|
1027 |
msgstr ""
|
1028 |
|
1029 |
+
#: ../common.php:1351
|
1030 |
msgid "User activated"
|
1031 |
msgstr ""
|
1032 |
|
1033 |
+
#: ../common.php:1354
|
1034 |
msgid "Invalid master credentials"
|
1035 |
msgstr ""
|
1036 |
|
1037 |
+
#: ../common.php:1360
|
1038 |
msgid "Bot detected"
|
1039 |
msgstr ""
|
1040 |
|
1041 |
+
#: ../common.php:1361
|
1042 |
msgid "Citadel mode is active"
|
1043 |
msgstr ""
|
1044 |
|
1045 |
+
#: ../common.php:1363
|
1046 |
msgid "IP address is locked out"
|
1047 |
msgstr ""
|
1048 |
|
1049 |
+
#: ../common.php:1364
|
1050 |
msgid "IP blacklisted"
|
1051 |
msgstr ""
|
1052 |
|
1053 |
+
#: ../common.php:1366
|
1054 |
msgid "Malicious activity detected"
|
1055 |
msgstr ""
|
1056 |
|
1057 |
+
#: ../common.php:1367
|
1058 |
msgid "Blocked by country rule"
|
1059 |
msgstr ""
|
1060 |
|
1061 |
+
#: ../common.php:1368
|
1062 |
msgid "Limit reached"
|
1063 |
msgstr ""
|
1064 |
|
1065 |
+
#: ../common.php:1369
|
1066 |
msgid "Multiple suspicious activities"
|
1067 |
msgstr ""
|
1068 |
|
1069 |
+
#: ../common.php:1370
|
1070 |
msgid "Denied"
|
1071 |
msgstr ""
|
1072 |
|
1073 |
+
#: ../common.php:1371
|
1074 |
msgid "Suspicious number of fields"
|
1075 |
msgstr ""
|
1076 |
|
1077 |
+
#: ../common.php:1372
|
1078 |
msgid "Suspicious number of nested values"
|
1079 |
msgstr ""
|
1080 |
|
1081 |
+
#: ../common.php:1373 ../common.php:1419
|
1082 |
msgid "Malicious code detected"
|
1083 |
msgstr ""
|
1084 |
|
1085 |
+
#: ../common.php:1374
|
1086 |
msgid "Suspicious SQL code detected"
|
1087 |
msgstr ""
|
1088 |
|
1089 |
+
#: ../common.php:1375
|
1090 |
msgid "Suspicious JavaScript code detected"
|
1091 |
msgstr ""
|
1092 |
|
1093 |
+
#: ../common.php:1376
|
1094 |
msgid "Blocked by administrator"
|
1095 |
msgstr ""
|
1096 |
|
1097 |
+
#: ../common.php:1377
|
1098 |
msgid "Site policy enforcement"
|
1099 |
msgstr ""
|
1100 |
|
1101 |
+
#: ../common.php:1378
|
1102 |
msgid "2FA code verified"
|
1103 |
msgstr ""
|
1104 |
|
1105 |
+
#: ../common.php:1379
|
1106 |
msgid "Initiated by the user"
|
1107 |
msgstr ""
|
1108 |
|
1109 |
+
#: ../common.php:1382
|
1110 |
msgid "Email address is not permitted"
|
1111 |
msgstr ""
|
1112 |
|
1113 |
+
#: ../common.php:1384
|
1114 |
+
msgid "Permission denied"
|
1115 |
+
msgstr ""
|
1116 |
+
|
1117 |
+
#: ../common.php:1386
|
1118 |
+
msgid "Invalid user"
|
1119 |
+
msgstr ""
|
1120 |
+
|
1121 |
+
#: ../common.php:1387
|
1122 |
+
msgid "Incorrect password"
|
1123 |
+
msgstr ""
|
1124 |
+
|
1125 |
+
#: ../common.php:1411
|
1126 |
msgid "Limit on login attempts is reached"
|
1127 |
msgstr ""
|
1128 |
|
1129 |
+
#: ../common.php:1412
|
1130 |
msgid "Attempt to access"
|
1131 |
msgstr ""
|
1132 |
|
1133 |
+
#: ../common.php:1415
|
1134 |
msgid "Limit on failed reCAPTCHA verifications is reached"
|
1135 |
msgstr ""
|
1136 |
|
1137 |
+
#: ../common.php:1416
|
1138 |
msgid "Bot activity is detected"
|
1139 |
msgstr ""
|
1140 |
|
1141 |
+
#: ../common.php:1417
|
1142 |
msgid "Multiple suspicious activities were detected"
|
1143 |
msgstr ""
|
1144 |
|
1145 |
+
#: ../common.php:1420
|
1146 |
msgid "Attempt to upload a file with malicious code"
|
1147 |
msgstr ""
|
1148 |
|
1149 |
+
#: ../common.php:1422
|
1150 |
msgid "Multiple suspicious requests"
|
1151 |
msgstr ""
|
1152 |
|
1153 |
#. translators: Time difference between two dates, in seconds (sec=second). 1: Number of seconds
|
1154 |
+
#: ../common.php:1558
|
1155 |
#, php-format
|
1156 |
msgid "%s sec"
|
1157 |
msgid_plural "%s secs"
|
1158 |
msgstr[0] ""
|
1159 |
msgstr[1] ""
|
1160 |
|
1161 |
+
#: ../common.php:1565
|
1162 |
#, php-format
|
1163 |
msgid "%s ago"
|
1164 |
msgstr ""
|
1165 |
|
1166 |
+
#: ../common.php:1565
|
1167 |
#, php-format
|
1168 |
msgctxt "preposition of a period of time like: in 6 hours"
|
1169 |
msgid "in %s"
|
1170 |
msgstr ""
|
1171 |
|
1172 |
+
#: ../common.php:1651
|
1173 |
msgid "Bytes"
|
1174 |
msgstr ""
|
1175 |
|
1176 |
+
#: ../common.php:1753
|
1177 |
#, php-format
|
1178 |
msgid "A new version of %s is available. Please install it."
|
1179 |
msgstr ""
|
1180 |
|
1181 |
+
#: ../common.php:1773
|
1182 |
msgid "Not specified"
|
1183 |
msgstr ""
|
1184 |
|
1185 |
+
#: ../common.php:2684
|
1186 |
msgid "Unable to create the directory"
|
1187 |
msgstr ""
|
1188 |
|
1189 |
+
#: ../common.php:2689
|
1190 |
msgid "Destination folder access denied"
|
1191 |
msgstr ""
|
1192 |
|
1193 |
+
#: ../common.php:2692
|
1194 |
msgid "File not found"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
+
#: ../common.php:2695
|
1198 |
msgid "Unable to copy the file"
|
1199 |
msgstr ""
|
1200 |
|
1201 |
+
#: ../common.php:2701
|
1202 |
msgid "Unable to delete the file"
|
1203 |
msgstr ""
|
1204 |
|
1209 |
"more: <a href=\"https://wpcerber.com\">wpcerber.com</a>."
|
1210 |
msgstr ""
|
1211 |
|
1212 |
+
#: ../cerber-news.php:151
|
1213 |
msgid "Awesome!"
|
1214 |
msgstr ""
|
1215 |
|
1216 |
+
#: ../cerber-lab.php:811
|
1217 |
msgid "Want to make WP Cerber even more powerful?"
|
1218 |
msgstr ""
|
1219 |
|
1220 |
+
#: ../cerber-lab.php:812
|
1221 |
msgid ""
|
1222 |
"Allow WP Cerber to send locked out malicious IP addresses to Cerber Lab. "
|
1223 |
"This helps the plugin team to develop new algorithms for WP Cerber that will "
|
1225 |
"everyday. You can disable the sending in the plugin settings at any time."
|
1226 |
msgstr ""
|
1227 |
|
1228 |
+
#: ../cerber-lab.php:813
|
1229 |
msgid "OK, nail them all"
|
1230 |
msgstr ""
|
1231 |
|
1232 |
+
#: ../cerber-lab.php:814
|
1233 |
msgid "NO, maybe later"
|
1234 |
msgstr ""
|
1235 |
|
1236 |
+
#: ../cerber-lab.php:815 ../settings.php:819 ../settings.php:986
|
1237 |
msgid "Know more"
|
1238 |
msgstr ""
|
1239 |
|
1240 |
+
#: ../cerber-load.php:376
|
1241 |
msgid "You are not allowed to log in. Ask your administrator for assistance."
|
1242 |
msgstr ""
|
1243 |
|
1244 |
+
#: ../cerber-load.php:382
|
1245 |
#, php-format
|
1246 |
msgid ""
|
1247 |
"You have exceeded the number of allowed login attempts. Please try again in "
|
1248 |
"%d minutes."
|
1249 |
msgstr ""
|
1250 |
|
1251 |
+
#: ../cerber-load.php:386
|
1252 |
msgid "You are not allowed to log in"
|
1253 |
msgstr ""
|
1254 |
|
1255 |
+
#: ../cerber-load.php:401
|
1256 |
#, php-format
|
1257 |
msgid "You have only one attempt remaining."
|
1258 |
msgid_plural "You have %d attempts remaining."
|
1259 |
msgstr[0] ""
|
1260 |
msgstr[1] ""
|
1261 |
|
1262 |
+
#: ../cerber-load.php:713
|
1263 |
msgid ""
|
1264 |
"Human verification failed. Please click the square box in the reCAPTCHA "
|
1265 |
"block below."
|
1266 |
msgstr ""
|
1267 |
|
1268 |
+
#: ../cerber-load.php:834
|
1269 |
msgid ""
|
1270 |
"> > > Translator of WP Cerber? To get the PRO license for free, drop your "
|
1271 |
"contacts here: https://wpcerber.com/contact/"
|
1272 |
msgstr ""
|
1273 |
|
1274 |
+
#: ../cerber-load.php:1138
|
1275 |
#, php-format
|
1276 |
msgid ""
|
1277 |
"<strong>ERROR</strong>: The password you entered for the username %s is "
|
1278 |
"incorrect."
|
1279 |
msgstr ""
|
1280 |
|
1281 |
+
#: ../cerber-load.php:1540 ../cerber-load.php:1546 ../cerber-load.php:1571 ..
|
1282 |
+
#: /cerber-load.php:1578
|
1283 |
msgid "You are not allowed to register."
|
1284 |
msgstr ""
|
1285 |
|
1286 |
+
#: ../cerber-load.php:1558
|
1287 |
msgid "Username is not allowed. Please choose another one."
|
1288 |
msgstr ""
|
1289 |
|
1290 |
+
#: ../cerber-load.php:1565
|
1291 |
msgid "Email address is not permitted."
|
1292 |
msgstr ""
|
1293 |
|
1294 |
+
#: ../cerber-load.php:1565
|
1295 |
msgid "Please choose another one."
|
1296 |
msgstr ""
|
1297 |
|
1298 |
+
#: ../cerber-load.php:1865
|
1299 |
msgid "Sorry, human verification failed."
|
1300 |
msgstr ""
|
1301 |
|
1302 |
+
#: ../cerber-load.php:3785
|
1303 |
msgid "We're sorry, you are not allowed to proceed"
|
1304 |
msgstr ""
|
1305 |
|
1306 |
+
#: ../cerber-load.php:3896
|
1307 |
msgid "WP Cerber notify"
|
1308 |
msgstr ""
|
1309 |
|
1310 |
+
#: ../cerber-load.php:3920
|
1311 |
msgid "Citadel mode is activated"
|
1312 |
msgstr ""
|
1313 |
|
1314 |
+
#: ../cerber-load.php:3922
|
1315 |
#, php-format
|
1316 |
msgid "Citadel mode is activated after %d failed login attempts in %d minutes."
|
1317 |
msgstr ""
|
1318 |
|
1319 |
+
#: ../cerber-load.php:3923
|
1320 |
#, php-format
|
1321 |
msgid "Last failed attempt was at %s from IP %s with user login: %s."
|
1322 |
msgstr ""
|
1323 |
|
1324 |
+
#: ../cerber-load.php:3924 ../cerber-load.php:4651
|
1325 |
msgid "View activity in dashboard"
|
1326 |
msgstr ""
|
1327 |
|
1328 |
+
#: ../cerber-load.php:3948
|
1329 |
msgid "unspecified"
|
1330 |
msgstr ""
|
1331 |
|
1332 |
+
#: ../cerber-load.php:3951
|
1333 |
msgid "Number of lockouts is increasing"
|
1334 |
msgstr ""
|
1335 |
|
1336 |
+
#: ../cerber-load.php:3953
|
1337 |
msgid "Number of active lockouts"
|
1338 |
msgstr ""
|
1339 |
|
1340 |
+
#: ../cerber-load.php:3954
|
1341 |
#, php-format
|
1342 |
msgid "Last lockout was added: %s for IP %s"
|
1343 |
msgstr ""
|
1344 |
|
1345 |
+
#: ../cerber-load.php:3956
|
1346 |
msgid "View activity for this IP"
|
1347 |
msgstr ""
|
1348 |
|
1349 |
+
#: ../cerber-load.php:3957
|
1350 |
msgid "View lockouts in dashboard"
|
1351 |
msgstr ""
|
1352 |
|
1353 |
+
#: ../cerber-load.php:3960 ../cerber-load.php:3962
|
1354 |
msgid "A new version of WP Cerber is available to install"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
+
#: ../cerber-load.php:3961
|
1358 |
msgid "Hi!"
|
1359 |
msgstr ""
|
1360 |
|
1361 |
+
#: ../cerber-load.php:3964 ../cerber-load.php:3975 ../nexus/cerber-slave-list.php:
|
1362 |
#: 45
|
1363 |
msgid "Website"
|
1364 |
msgstr ""
|
1365 |
|
1366 |
+
#: ../cerber-load.php:3967 ../cerber-load.php:3968
|
1367 |
msgid "The WP Cerber security plugin has been deactivated"
|
1368 |
msgstr ""
|
1369 |
|
1370 |
+
#: ../cerber-load.php:3970
|
1371 |
msgid "Not logged in"
|
1372 |
msgstr ""
|
1373 |
|
1374 |
+
#: ../cerber-load.php:3976
|
1375 |
msgid "By user"
|
1376 |
msgstr ""
|
1377 |
|
1378 |
+
#: ../cerber-load.php:3977
|
1379 |
msgid "From IP address"
|
1380 |
msgstr ""
|
1381 |
|
1382 |
+
#: ../cerber-load.php:3980
|
1383 |
msgid "From country"
|
1384 |
msgstr ""
|
1385 |
|
1386 |
+
#: ../cerber-load.php:3984
|
1387 |
msgid "The WP Cerber security plugin is now active"
|
1388 |
msgstr ""
|
1389 |
|
1390 |
+
#: ../cerber-load.php:3985 ../cerber-load.php:4905
|
1391 |
msgid "WP Cerber is now active and has started protecting your site"
|
1392 |
msgstr ""
|
1393 |
|
1394 |
+
#: ../cerber-load.php:3992
|
1395 |
msgid "New Custom login URL"
|
1396 |
msgstr ""
|
1397 |
|
1398 |
+
#: ../cerber-load.php:3996 ../cerber-load.php:3997
|
1399 |
msgid "A new activity has been recorded"
|
1400 |
msgstr ""
|
1401 |
|
1402 |
+
#: ../cerber-load.php:4002
|
1403 |
msgid "Weekly report"
|
1404 |
msgstr ""
|
1405 |
|
1406 |
+
#: ../cerber-load.php:4005 ../cerber-load.php:4015
|
1407 |
msgid "To change reporting settings visit"
|
1408 |
msgstr ""
|
1409 |
|
1410 |
+
#: ../cerber-load.php:4012
|
1411 |
msgid "Scanner Report"
|
1412 |
msgstr ""
|
1413 |
|
1414 |
+
#: ../cerber-load.php:4038
|
1415 |
msgid "Your login page:"
|
1416 |
msgstr ""
|
1417 |
|
1418 |
+
#: ../cerber-load.php:4042
|
1419 |
msgid "Your license is valid until"
|
1420 |
msgstr ""
|
1421 |
|
1422 |
+
#: ../cerber-load.php:4045
|
1423 |
msgid "This message was sent by"
|
1424 |
msgstr ""
|
1425 |
|
1426 |
+
#: ../cerber-load.php:4066
|
1427 |
#, php-format
|
1428 |
msgid "Your last sign-in was %s from %s"
|
1429 |
msgstr ""
|
1430 |
|
1431 |
+
#: ../cerber-load.php:4136
|
1432 |
msgid "Weekly Report"
|
1433 |
msgstr ""
|
1434 |
|
1435 |
+
#: ../cerber-load.php:4148
|
1436 |
msgid "Activity details"
|
1437 |
msgstr ""
|
1438 |
|
1439 |
+
#: ../cerber-load.php:4162
|
1440 |
msgid "Attempts to log in with non-existing usernames"
|
1441 |
msgstr ""
|
1442 |
|
1443 |
+
#: ../cerber-load.php:4623 ../cerber-users.php:752
|
1444 |
msgid "User"
|
1445 |
msgstr ""
|
1446 |
|
1447 |
+
#: ../cerber-load.php:4627
|
1448 |
msgid "Username used"
|
1449 |
msgstr ""
|
1450 |
|
1451 |
+
#: ../cerber-load.php:4631
|
1452 |
msgid "Search string"
|
1453 |
msgstr ""
|
1454 |
|
1455 |
+
#: ../cerber-load.php:4652
|
1456 |
msgid "To delete the alert, click here"
|
1457 |
msgstr ""
|
1458 |
|
1459 |
+
#: ../cerber-load.php:4871
|
1460 |
#, php-format
|
1461 |
msgid "The WP Cerber requires PHP %s or higher. You are running"
|
1462 |
msgstr ""
|
1463 |
|
1464 |
+
#: ../cerber-load.php:4875
|
1465 |
#, php-format
|
1466 |
msgid "The WP Cerber requires WordPress %s or higher. You are running"
|
1467 |
msgstr ""
|
1468 |
|
1469 |
+
#: ../cerber-load.php:4884
|
1470 |
msgid "Can't activate WP Cerber due to a database error."
|
1471 |
msgstr ""
|
1472 |
|
1473 |
+
#: ../cerber-load.php:4906
|
1474 |
msgid "Your IP address is added to the"
|
1475 |
msgstr ""
|
1476 |
|
1477 |
+
#: ../cerber-load.php:4922
|
1478 |
msgid "Import settings"
|
1479 |
msgstr ""
|
1480 |
|
1504 |
msgid "blocked by %s at %s"
|
1505 |
msgstr ""
|
1506 |
|
1507 |
+
#: ../cerber-users.php:67 ../settings.php:523
|
1508 |
msgid "User Message"
|
1509 |
msgstr ""
|
1510 |
|
1552 |
msgid "Redirect user after logout"
|
1553 |
msgstr ""
|
1554 |
|
1555 |
+
#: ../cerber-users.php:417 ../settings.php:572
|
1556 |
msgid "User session expiration time"
|
1557 |
msgstr ""
|
1558 |
|
1647 |
msgid "Terminate"
|
1648 |
msgstr ""
|
1649 |
|
1650 |
+
#: ../settings.php:132
|
1651 |
msgid "All connected devices"
|
1652 |
msgstr ""
|
1653 |
|
1654 |
+
#: ../settings.php:135
|
1655 |
msgid "No devices found"
|
1656 |
msgstr ""
|
1657 |
|
1658 |
+
#: ../settings.php:139
|
1659 |
msgid "Not available"
|
1660 |
msgstr ""
|
1661 |
|
1662 |
+
#: ../settings.php:145
|
1663 |
msgid ""
|
1664 |
"Please enable Permalinks to use this feature. Set Permalink Settings to "
|
1665 |
"something other than Default."
|
1666 |
msgstr ""
|
1667 |
|
1668 |
+
#: ../settings.php:148
|
1669 |
msgid "Be careful about enabling these options."
|
1670 |
msgstr ""
|
1671 |
|
1672 |
+
#: ../settings.php:148
|
1673 |
msgid "If you forget your Custom login URL, you will be unable to log in."
|
1674 |
msgstr ""
|
1675 |
|
1676 |
+
#: ../settings.php:151
|
1677 |
msgid "These restrictions do not apply to IP addresses in the White IP Access List"
|
1678 |
msgstr ""
|
1679 |
|
1680 |
+
#: ../settings.php:155
|
1681 |
msgid "Plugin initialization"
|
1682 |
msgstr ""
|
1683 |
|
1684 |
+
#: ../settings.php:158
|
1685 |
msgid "Load security engine"
|
1686 |
msgstr ""
|
1687 |
|
1688 |
+
#: ../settings.php:161
|
1689 |
msgid "Legacy mode"
|
1690 |
msgstr ""
|
1691 |
|
1692 |
+
#: ../settings.php:162
|
1693 |
msgid "Standard mode"
|
1694 |
msgstr ""
|
1695 |
|
1696 |
+
#: ../settings.php:168
|
1697 |
msgid "Limit login attempts"
|
1698 |
msgstr ""
|
1699 |
|
1700 |
+
#: ../settings.php:171
|
1701 |
msgid "Attempts"
|
1702 |
msgstr ""
|
1703 |
|
1704 |
+
#: ../settings.php:175
|
1705 |
msgid "Lockout duration"
|
1706 |
msgstr ""
|
1707 |
|
1708 |
+
#: ../settings.php:176 ../settings.php:271
|
1709 |
msgid "minutes"
|
1710 |
msgstr ""
|
1711 |
|
1712 |
+
#: ../settings.php:180
|
1713 |
msgid "Aggressive lockout"
|
1714 |
msgstr ""
|
1715 |
|
1716 |
+
#: ../settings.php:184 ../settings.php:516 ../settings.php:661
|
1717 |
msgid "Use White IP Access List"
|
1718 |
msgstr ""
|
1719 |
|
1720 |
+
#: ../settings.php:185
|
1721 |
msgid "Apply limit login rules to IP addresses in the White IP Access List"
|
1722 |
msgstr ""
|
1723 |
|
1724 |
+
#: ../settings.php:191
|
1725 |
msgid "Proactive security rules"
|
1726 |
msgstr ""
|
1727 |
|
1728 |
+
#: ../settings.php:192
|
1729 |
msgid "Make your protection smarter!"
|
1730 |
msgstr ""
|
1731 |
|
1732 |
+
#: ../settings.php:195
|
1733 |
msgid "Block subnet"
|
1734 |
msgstr ""
|
1735 |
|
1736 |
+
#: ../settings.php:196
|
1737 |
msgid "Always block entire subnet Class C of intruders IP"
|
1738 |
msgstr ""
|
1739 |
|
1740 |
+
#: ../settings.php:200
|
1741 |
msgid "Non-existing users"
|
1742 |
msgstr ""
|
1743 |
|
1744 |
+
#: ../settings.php:201
|
1745 |
msgid "Immediately block IP when attempting to log in with a non-existing username"
|
1746 |
msgstr ""
|
1747 |
|
1748 |
+
#: ../settings.php:205
|
1749 |
msgid "Disable dashboard redirection"
|
1750 |
msgstr ""
|
1751 |
|
1752 |
+
#: ../settings.php:206
|
1753 |
msgid ""
|
1754 |
"Disable automatic redirection to the login page when /wp-admin/ is requested "
|
1755 |
"by an unauthorized request"
|
1756 |
msgstr ""
|
1757 |
|
1758 |
+
#: ../settings.php:210
|
1759 |
msgid "Request wp-login.php"
|
1760 |
msgstr ""
|
1761 |
|
1762 |
+
#: ../settings.php:211
|
1763 |
msgid "Immediately block IP after any request to wp-login.php"
|
1764 |
msgstr ""
|
1765 |
|
1766 |
+
#: ../settings.php:215
|
1767 |
msgid "Display 404 page"
|
1768 |
msgstr ""
|
1769 |
|
1770 |
+
#: ../settings.php:218
|
1771 |
msgid "Use 404 template from the active theme"
|
1772 |
msgstr ""
|
1773 |
|
1774 |
+
#: ../settings.php:219
|
1775 |
msgid "Display simple 404 page"
|
1776 |
msgstr ""
|
1777 |
|
1778 |
+
#: ../settings.php:226
|
1779 |
msgid "Custom login page"
|
1780 |
msgstr ""
|
1781 |
|
1782 |
+
#: ../settings.php:230
|
1783 |
msgid "Custom login URL"
|
1784 |
msgstr ""
|
1785 |
|
1786 |
+
#: ../settings.php:231
|
1787 |
msgid "must not overlap with the existing pages or posts slug"
|
1788 |
msgstr ""
|
1789 |
|
1790 |
+
#: ../settings.php:233
|
1791 |
msgid ""
|
1792 |
"Custom login URL may contain Latin alphanumeric characters, dashes and "
|
1793 |
"underscores only"
|
1794 |
msgstr ""
|
1795 |
|
1796 |
+
#: ../settings.php:238
|
1797 |
msgid "Disable wp-login.php"
|
1798 |
msgstr ""
|
1799 |
|
1800 |
+
#: ../settings.php:239
|
1801 |
msgid "Block direct access to wp-login.php and return HTTP 404 Not Found Error"
|
1802 |
msgstr ""
|
1803 |
|
1804 |
+
#: ../settings.php:245
|
1805 |
msgid "Site-specific settings"
|
1806 |
msgstr ""
|
1807 |
|
1808 |
+
#: ../settings.php:248
|
1809 |
msgid "Site connection"
|
1810 |
msgstr ""
|
1811 |
|
1812 |
+
#: ../settings.php:253
|
1813 |
msgid "Prefix for plugin cookies"
|
1814 |
msgstr ""
|
1815 |
|
1816 |
+
#: ../settings.php:254
|
1817 |
msgid "Prefix may contain only Latin alphanumeric characters and underscores"
|
1818 |
msgstr ""
|
1819 |
|
1820 |
+
#: ../settings.php:263
|
1821 |
msgid ""
|
1822 |
"In the Citadel mode nobody is able to log in except IPs from the White IP "
|
1823 |
"Access List. Active user sessions will not be affected."
|
1824 |
msgstr ""
|
1825 |
|
1826 |
+
#: ../settings.php:266
|
1827 |
msgid "Threshold"
|
1828 |
msgstr ""
|
1829 |
|
1830 |
+
#: ../settings.php:270 ../cerber-scanner.php:3948
|
1831 |
msgid "Duration"
|
1832 |
msgstr ""
|
1833 |
|
1834 |
+
#: ../settings.php:277
|
1835 |
msgid "Send notification to admin email"
|
1836 |
msgstr ""
|
1837 |
|
1838 |
+
#: ../settings.php:282 ../settings.php:1414
|
1839 |
msgid "Click to send test"
|
1840 |
msgstr ""
|
1841 |
|
1842 |
+
#: ../settings.php:290 ../settings.php:741
|
1843 |
msgid "Keep records for"
|
1844 |
msgstr ""
|
1845 |
|
1846 |
+
#: ../settings.php:291 ../settings.php:742 ../settings.php:795 ../settings.php:978
|
1847 |
msgid "days"
|
1848 |
msgstr ""
|
1849 |
|
1850 |
+
#: ../settings.php:301
|
1851 |
msgid "Cerber Lab connection"
|
1852 |
msgstr ""
|
1853 |
|
1854 |
+
#: ../settings.php:302
|
1855 |
msgid "Send malicious IP addresses to the Cerber Lab"
|
1856 |
msgstr ""
|
1857 |
|
1858 |
+
#: ../settings.php:306
|
1859 |
msgid "Cerber Lab protocol"
|
1860 |
msgstr ""
|
1861 |
|
1862 |
+
#: ../settings.php:314
|
1863 |
msgid "Use file"
|
1864 |
msgstr ""
|
1865 |
|
1866 |
+
#: ../settings.php:315
|
1867 |
msgid "Write failed login attempts to the file"
|
1868 |
msgstr ""
|
1869 |
|
1870 |
+
#: ../settings.php:321
|
1871 |
msgid "Preferences"
|
1872 |
msgstr ""
|
1873 |
|
1874 |
+
#: ../settings.php:324
|
1875 |
msgid "Drill down IP"
|
1876 |
msgstr ""
|
1877 |
|
1878 |
+
#: ../settings.php:325
|
1879 |
msgid "Retrieve extra WHOIS information for IP"
|
1880 |
msgstr ""
|
1881 |
|
1882 |
+
#: ../settings.php:329
|
1883 |
msgid "Date format"
|
1884 |
msgstr ""
|
1885 |
|
1886 |
+
#: ../settings.php:330
|
1887 |
#, php-format
|
1888 |
msgid "if empty, the default format %s will be used"
|
1889 |
msgstr ""
|
1890 |
|
1891 |
+
#: ../settings.php:335
|
1892 |
msgid "Use English for admin interface"
|
1893 |
msgstr ""
|
1894 |
|
1895 |
+
#: ../settings.php:342
|
1896 |
msgid "Hardening WordPress"
|
1897 |
msgstr ""
|
1898 |
|
1899 |
+
#: ../settings.php:346 ../settings.php:381
|
1900 |
msgid "Stop user enumeration"
|
1901 |
msgstr ""
|
1902 |
|
1903 |
+
#: ../settings.php:347
|
1904 |
msgid "Block access to user pages like /?author=n"
|
1905 |
msgstr ""
|
1906 |
|
1907 |
+
#: ../settings.php:351
|
1908 |
msgid "Protect admin scripts"
|
1909 |
msgstr ""
|
1910 |
|
1911 |
+
#: ../settings.php:352
|
1912 |
msgid "Block unauthorized access to load-scripts.php and load-styles.php"
|
1913 |
msgstr ""
|
1914 |
|
1915 |
+
#: ../settings.php:356
|
1916 |
msgid "Disable PHP in uploads"
|
1917 |
msgstr ""
|
1918 |
|
1919 |
+
#: ../settings.php:357
|
1920 |
msgid "Block execution of PHP scripts in the WordPress media folder"
|
1921 |
msgstr ""
|
1922 |
|
1923 |
+
#: ../settings.php:361
|
1924 |
msgid "Disable PHP error displaying"
|
1925 |
msgstr ""
|
1926 |
|
1927 |
+
#: ../settings.php:365
|
1928 |
msgid "Disable XML-RPC"
|
1929 |
msgstr ""
|
1930 |
|
1931 |
+
#: ../settings.php:366
|
1932 |
msgid "Block access to the XML-RPC server (including Pingbacks and Trackbacks)"
|
1933 |
msgstr ""
|
1934 |
|
1935 |
+
#: ../settings.php:370
|
1936 |
msgid "Disable feeds"
|
1937 |
msgstr ""
|
1938 |
|
1939 |
+
#: ../settings.php:371
|
1940 |
msgid "Block access to the RSS, Atom and RDF feeds"
|
1941 |
msgstr ""
|
1942 |
|
1943 |
+
#: ../settings.php:377
|
1944 |
msgid "Access to WordPress REST API"
|
1945 |
msgstr ""
|
1946 |
|
1947 |
+
#: ../settings.php:382
|
1948 |
msgid "Block access to users' data via REST API"
|
1949 |
msgstr ""
|
1950 |
|
1951 |
+
#: ../settings.php:386
|
1952 |
msgid "Disable REST API"
|
1953 |
msgstr ""
|
1954 |
|
1955 |
+
#: ../settings.php:387
|
1956 |
msgid "Block access to WordPress REST API except any of the following"
|
1957 |
msgstr ""
|
1958 |
|
1959 |
+
#: ../settings.php:392
|
1960 |
msgid "Allow REST API for logged in users"
|
1961 |
msgstr ""
|
1962 |
|
1963 |
+
#: ../settings.php:396
|
1964 |
msgid "Allow REST API for these roles"
|
1965 |
msgstr ""
|
1966 |
|
1967 |
+
#: ../settings.php:400
|
1968 |
msgid "Allow these namespaces"
|
1969 |
msgstr ""
|
1970 |
|
1971 |
+
#: ../settings.php:404
|
1972 |
msgid ""
|
1973 |
"Specify REST API namespaces to be allowed if REST API is disabled. One "
|
1974 |
"string per line."
|
1975 |
msgstr ""
|
1976 |
|
1977 |
+
#: ../settings.php:411
|
1978 |
+
msgid "Protect user accounts"
|
1979 |
+
msgstr ""
|
1980 |
+
|
1981 |
+
#: ../settings.php:416
|
1982 |
+
msgid ""
|
1983 |
+
"Restrict user account creation and user management with the following "
|
1984 |
+
"policies"
|
1985 |
+
msgstr ""
|
1986 |
+
|
1987 |
+
#: ../settings.php:422
|
1988 |
+
msgid "User registrations are limited to these roles"
|
1989 |
+
msgstr ""
|
1990 |
+
|
1991 |
+
#: ../settings.php:428
|
1992 |
+
msgid "Users with these roles are permitted to create new accounts"
|
1993 |
+
msgstr ""
|
1994 |
+
|
1995 |
+
#: ../settings.php:433
|
1996 |
+
msgid "Users with these roles are permitted to change sensitive user data"
|
1997 |
+
msgstr ""
|
1998 |
+
|
1999 |
+
#: ../settings.php:438 ../settings.php:466 ../settings.php:495
|
2000 |
+
msgid "Do not apply these policies to the IP addresses in the White IP Access List"
|
2001 |
+
msgstr ""
|
2002 |
+
|
2003 |
+
#: ../settings.php:446
|
2004 |
+
msgid "Protect user roles"
|
2005 |
+
msgstr ""
|
2006 |
+
|
2007 |
+
#: ../settings.php:450
|
2008 |
+
msgid "Restrict roles and capabilities management with the following policies"
|
2009 |
+
msgstr ""
|
2010 |
+
|
2011 |
+
#: ../settings.php:456
|
2012 |
+
msgid "Users with these roles are permitted to add new roles"
|
2013 |
+
msgstr ""
|
2014 |
+
|
2015 |
+
#: ../settings.php:461
|
2016 |
+
msgid "Users with these roles are permitted to change role capabilities"
|
2017 |
+
msgstr ""
|
2018 |
+
|
2019 |
+
#: ../settings.php:474
|
2020 |
+
msgid "Protect site settings"
|
2021 |
+
msgstr ""
|
2022 |
+
|
2023 |
+
#: ../settings.php:478
|
2024 |
+
msgid "Restrict updating site settings with the following policies"
|
2025 |
+
msgstr ""
|
2026 |
+
|
2027 |
+
#: ../settings.php:484
|
2028 |
+
msgid "Users with these roles are permitted to change protected settings"
|
2029 |
+
msgstr ""
|
2030 |
+
|
2031 |
+
#: ../settings.php:489
|
2032 |
+
msgid "Protected settings"
|
2033 |
+
msgstr ""
|
2034 |
+
|
2035 |
+
#: ../settings.php:509
|
2036 |
msgid "Authorized users only"
|
2037 |
msgstr ""
|
2038 |
|
2039 |
+
#: ../settings.php:510
|
2040 |
msgid "Only registered and logged in website users have access to the website"
|
2041 |
msgstr ""
|
2042 |
|
2043 |
+
#: ../settings.php:517
|
2044 |
+
msgid "Do not apply these policy to the IP addresses in the White IP Access List"
|
2045 |
msgstr ""
|
2046 |
|
2047 |
+
#: ../settings.php:527 ../settings.php:2181
|
2048 |
msgid "Only registered and logged in users are allowed to view this website"
|
2049 |
msgstr ""
|
2050 |
|
2051 |
+
#: ../settings.php:532
|
2052 |
msgid "Redirect to URL"
|
2053 |
msgstr ""
|
2054 |
|
2055 |
+
#: ../settings.php:541
|
2056 |
msgid "Registration limit"
|
2057 |
msgstr ""
|
2058 |
|
2059 |
+
#: ../settings.php:547
|
2060 |
msgid "Restrict email addresses"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
+
#: ../settings.php:550
|
2064 |
msgid "No restrictions"
|
2065 |
msgstr ""
|
2066 |
|
2067 |
+
#: ../settings.php:551
|
2068 |
msgid "Deny all email addresses that match the following"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
+
#: ../settings.php:552
|
2072 |
msgid "Permit only email addresses that match the following"
|
2073 |
msgstr ""
|
2074 |
|
2075 |
+
#: ../settings.php:557
|
2076 |
msgid ""
|
2077 |
"Specify email addresses, wildcards or REGEX patterns. Use comma to separate "
|
2078 |
"items."
|
2079 |
msgstr ""
|
2080 |
|
2081 |
+
#: ../settings.php:557 ../settings.php:565
|
2082 |
msgid "To specify a REGEX pattern wrap a pattern in two forward slashes."
|
2083 |
msgstr ""
|
2084 |
|
2085 |
+
#: ../settings.php:564
|
2086 |
msgid "Prohibited usernames"
|
2087 |
msgstr ""
|
2088 |
|
2089 |
+
#: ../settings.php:565
|
2090 |
msgid ""
|
2091 |
"Usernames from this list are not allowed to log in or register. Any IP "
|
2092 |
"address, have tried to use any of these usernames, will be immediately "
|
2093 |
"blocked. Use comma to separate logins."
|
2094 |
msgstr ""
|
2095 |
|
2096 |
+
#: ../settings.php:573
|
2097 |
msgid "in minutes (leave empty to use default WP value)"
|
2098 |
msgstr ""
|
2099 |
|
2100 |
+
#: ../settings.php:579
|
2101 |
msgid "Sort users in dashboard"
|
2102 |
msgstr ""
|
2103 |
|
2104 |
+
#: ../settings.php:580
|
2105 |
msgid "by date of registration"
|
2106 |
msgstr ""
|
2107 |
|
2108 |
+
#: ../settings.php:588
|
2109 |
msgid "Email notifications"
|
2110 |
msgstr ""
|
2111 |
|
2112 |
+
#: ../settings.php:591
|
2113 |
msgid "Lockout notifications"
|
2114 |
msgstr ""
|
2115 |
|
2116 |
+
#: ../settings.php:595 ../settings.php:638 ../settings.php:848
|
2117 |
msgid "Email Address"
|
2118 |
msgstr ""
|
2119 |
|
2120 |
+
#: ../settings.php:596 ../settings.php:640 ../settings.php:714 ../settings.php:850
|
2121 |
msgid "Use comma to specify multiple values"
|
2122 |
msgstr ""
|
2123 |
|
2124 |
+
#: ../settings.php:600
|
2125 |
#, php-format
|
2126 |
msgid "if empty, the admin email %s will be used"
|
2127 |
msgstr ""
|
2128 |
|
2129 |
+
#: ../settings.php:603
|
2130 |
msgid "Notification limit"
|
2131 |
msgstr ""
|
2132 |
|
2133 |
+
#: ../settings.php:604
|
2134 |
msgid "notification letters allowed per hour (0 means unlimited)"
|
2135 |
msgstr ""
|
2136 |
|
2137 |
+
#: ../settings.php:608
|
2138 |
msgid "New version is available"
|
2139 |
msgstr ""
|
2140 |
|
2141 |
+
#: ../settings.php:614
|
2142 |
msgid "Push notifications"
|
2143 |
msgstr ""
|
2144 |
|
2145 |
+
#: ../settings.php:617
|
2146 |
msgid "Pushbullet access token"
|
2147 |
msgstr ""
|
2148 |
|
2149 |
+
#: ../settings.php:620
|
2150 |
msgid "Pushbullet device"
|
2151 |
msgstr ""
|
2152 |
|
2153 |
+
#: ../settings.php:627
|
2154 |
msgid "Weekly reports"
|
2155 |
msgstr ""
|
2156 |
|
2157 |
+
#: ../settings.php:630
|
2158 |
msgid "Enable reporting"
|
2159 |
msgstr ""
|
2160 |
|
2161 |
+
#: ../settings.php:634
|
2162 |
msgid "Send reports on"
|
2163 |
msgstr ""
|
2164 |
|
2165 |
+
#: ../settings.php:639 ../settings.php:849
|
2166 |
msgid "if empty, email from notification settings will be used"
|
2167 |
msgstr ""
|
2168 |
|
2169 |
+
#: ../settings.php:649
|
2170 |
msgid "Traffic Inspection"
|
2171 |
msgstr ""
|
2172 |
|
2173 |
+
#: ../settings.php:652
|
2174 |
msgid "Enable traffic inspection"
|
2175 |
msgstr ""
|
2176 |
|
2177 |
+
#: ../settings.php:656 ../settings.php:681
|
2178 |
msgid "Maximum compatibility"
|
2179 |
msgstr ""
|
2180 |
|
2181 |
+
#: ../settings.php:657 ../settings.php:682
|
2182 |
msgid "Maximum security"
|
2183 |
msgstr ""
|
2184 |
|
2185 |
+
#: ../settings.php:665
|
2186 |
msgid "Request whitelist"
|
2187 |
msgstr ""
|
2188 |
|
2189 |
+
#: ../settings.php:669
|
2190 |
msgid ""
|
2191 |
"Enter a request URI to exclude the request from inspection. One item per "
|
2192 |
"line."
|
2193 |
msgstr ""
|
2194 |
|
2195 |
+
#: ../settings.php:669
|
2196 |
msgid "To specify a REGEX pattern, enclose a whole line in two braces."
|
2197 |
msgstr ""
|
2198 |
|
2199 |
+
#: ../settings.php:674
|
2200 |
msgid "Erroneous Request Shielding"
|
2201 |
msgstr ""
|
2202 |
|
2203 |
+
#: ../settings.php:677
|
2204 |
msgid "Enable error shielding"
|
2205 |
msgstr ""
|
2206 |
|
2207 |
+
#: ../settings.php:686
|
2208 |
msgid "Ignore logged in users"
|
2209 |
msgstr ""
|
2210 |
|
2211 |
+
#: ../settings.php:692
|
2212 |
msgid "Logging"
|
2213 |
msgstr ""
|
2214 |
|
2215 |
+
#: ../settings.php:695
|
2216 |
msgid "Logging mode"
|
2217 |
msgstr ""
|
2218 |
|
2219 |
+
#: ../settings.php:698
|
2220 |
msgid "Logging disabled"
|
2221 |
msgstr ""
|
2222 |
|
2223 |
+
#: ../settings.php:699
|
2224 |
msgid "Smart"
|
2225 |
msgstr ""
|
2226 |
|
2227 |
+
#: ../settings.php:700
|
2228 |
msgid "All traffic"
|
2229 |
msgstr ""
|
2230 |
|
2231 |
+
#: ../settings.php:704
|
2232 |
msgid "Ignore crawlers"
|
2233 |
msgstr ""
|
2234 |
|
2235 |
+
#: ../settings.php:708
|
2236 |
msgid "Save request fields"
|
2237 |
msgstr ""
|
2238 |
|
2239 |
+
#: ../settings.php:712
|
2240 |
msgid "Mask these form fields"
|
2241 |
msgstr ""
|
2242 |
|
2243 |
+
#: ../settings.php:719
|
2244 |
msgid "Save request headers"
|
2245 |
msgstr ""
|
2246 |
|
2247 |
+
#: ../settings.php:724
|
2248 |
msgid "Save $_SERVER"
|
2249 |
msgstr ""
|
2250 |
|
2251 |
+
#: ../settings.php:728
|
2252 |
msgid "Save request cookies"
|
2253 |
msgstr ""
|
2254 |
|
2255 |
+
#: ../settings.php:732
|
2256 |
msgid "Save software errors"
|
2257 |
msgstr ""
|
2258 |
|
2259 |
+
#: ../settings.php:736
|
2260 |
msgid "Page generation time threshold"
|
2261 |
msgstr ""
|
2262 |
|
2263 |
+
#: ../settings.php:737
|
2264 |
msgid "milliseconds"
|
2265 |
msgstr ""
|
2266 |
|
2267 |
+
#: ../settings.php:749
|
2268 |
msgid "Scanner settings"
|
2269 |
msgstr ""
|
2270 |
|
2271 |
+
#: ../settings.php:752
|
2272 |
msgid "Custom signatures"
|
2273 |
msgstr ""
|
2274 |
|
2275 |
+
#: ../settings.php:756
|
2276 |
msgid ""
|
2277 |
"Specify custom PHP code signatures. One item per line. To specify a REGEX "
|
2278 |
"pattern, enclose a whole line in two braces."
|
2279 |
msgstr ""
|
2280 |
|
2281 |
+
#: ../settings.php:759
|
2282 |
msgid "Unwanted file extensions"
|
2283 |
msgstr ""
|
2284 |
|
2285 |
+
#: ../settings.php:763
|
2286 |
msgid ""
|
2287 |
"Specify file extensions to search for. Full scan only. Use comma to separate "
|
2288 |
"items."
|
2289 |
msgstr ""
|
2290 |
|
2291 |
+
#: ../settings.php:766
|
2292 |
msgid "Directories to exclude"
|
2293 |
msgstr ""
|
2294 |
|
2295 |
+
#: ../settings.php:770
|
2296 |
msgid ""
|
2297 |
"Specify directories to exclude from scanning. Use absolute paths. One item "
|
2298 |
"per line."
|
2299 |
msgstr ""
|
2300 |
|
2301 |
+
#: ../settings.php:773
|
2302 |
msgid "Monitor new files"
|
2303 |
msgstr ""
|
2304 |
|
2305 |
+
#: ../settings.php:777
|
2306 |
msgid "Monitor modified files"
|
2307 |
msgstr ""
|
2308 |
|
2309 |
+
#: ../settings.php:781
|
2310 |
msgid "Scan temporary directory"
|
2311 |
msgstr ""
|
2312 |
|
2313 |
+
#: ../settings.php:785
|
2314 |
msgid "Scan session directory"
|
2315 |
msgstr ""
|
2316 |
|
2317 |
+
#: ../settings.php:789 ../settings.php:1083 ../settings.php:1110
|
2318 |
msgid "Enable diagnostic logging"
|
2319 |
msgstr ""
|
2320 |
|
2321 |
+
#: ../settings.php:793
|
2322 |
msgid "Delete quarantined files after"
|
2323 |
msgstr ""
|
2324 |
|
2325 |
+
#: ../settings.php:803
|
2326 |
msgid "Automated recurring scan schedule"
|
2327 |
msgstr ""
|
2328 |
|
2329 |
+
#: ../settings.php:806
|
2330 |
msgid "Launch Quick Scan"
|
2331 |
msgstr ""
|
2332 |
|
2333 |
+
#: ../settings.php:811
|
2334 |
msgid "Launch Full Scan"
|
2335 |
msgstr ""
|
2336 |
|
2337 |
+
#: ../settings.php:818
|
2338 |
msgid "Scan results reporting"
|
2339 |
msgstr ""
|
2340 |
|
2341 |
+
#: ../settings.php:822
|
2342 |
msgid "Report an issue if any of the following is true"
|
2343 |
msgstr ""
|
2344 |
|
2345 |
+
#: ../settings.php:825 ../settings.php:870
|
2346 |
msgid "Low severity"
|
2347 |
msgstr ""
|
2348 |
|
2349 |
+
#: ../settings.php:826 ../settings.php:871
|
2350 |
msgid "Medium severity"
|
2351 |
msgstr ""
|
2352 |
|
2353 |
+
#: ../settings.php:827 ../settings.php:872
|
2354 |
msgid "High severity"
|
2355 |
msgstr ""
|
2356 |
|
2357 |
+
#: ../settings.php:831
|
2358 |
msgid "Send email report"
|
2359 |
msgstr ""
|
2360 |
|
2361 |
+
#: ../settings.php:834
|
2362 |
msgid "After every scan"
|
2363 |
msgstr ""
|
2364 |
|
2365 |
+
#: ../settings.php:835
|
2366 |
msgid "If any changes in scan results occurred"
|
2367 |
msgstr ""
|
2368 |
|
2369 |
+
#: ../settings.php:836
|
2370 |
msgid "If new issues found"
|
2371 |
msgstr ""
|
2372 |
|
2373 |
+
#: ../settings.php:840
|
2374 |
msgid "Include file sizes"
|
2375 |
msgstr ""
|
2376 |
|
2377 |
+
#: ../settings.php:844
|
2378 |
msgid "Include scan errors"
|
2379 |
msgstr ""
|
2380 |
|
2381 |
+
#: ../settings.php:859
|
2382 |
msgid "Automatic cleanup of malware and suspicious files"
|
2383 |
msgstr ""
|
2384 |
|
2385 |
+
#: ../settings.php:863
|
2386 |
msgid "Delete unattended files"
|
2387 |
msgstr ""
|
2388 |
|
2389 |
+
#: ../settings.php:867
|
2390 |
msgid "Files in the uploads folder"
|
2391 |
msgstr ""
|
2392 |
|
2393 |
+
#: ../settings.php:876
|
2394 |
msgid "Files with unwanted extensions"
|
2395 |
msgstr ""
|
2396 |
|
2397 |
+
#: ../settings.php:882
|
2398 |
msgid "Automatic recovery of modified and infected files"
|
2399 |
msgstr ""
|
2400 |
|
2401 |
+
#: ../settings.php:885
|
2402 |
msgid "Recover WordPress files"
|
2403 |
msgstr ""
|
2404 |
|
2405 |
+
#: ../settings.php:889
|
2406 |
msgid "Recover plugins files"
|
2407 |
msgstr ""
|
2408 |
|
2409 |
+
#: ../settings.php:895
|
2410 |
msgid "Exclusions"
|
2411 |
msgstr ""
|
2412 |
|
2413 |
+
#: ../settings.php:896
|
2414 |
msgid "These files will never be deleted during automatic cleanup."
|
2415 |
msgstr ""
|
2416 |
|
2417 |
+
#: ../settings.php:899
|
2418 |
msgid "Files in the temporary directory"
|
2419 |
msgstr ""
|
2420 |
|
2421 |
+
#: ../settings.php:903
|
2422 |
msgid "Files in the sessions directory"
|
2423 |
msgstr ""
|
2424 |
|
2425 |
+
#: ../settings.php:907
|
2426 |
msgid "Files in these directories"
|
2427 |
msgstr ""
|
2428 |
|
2429 |
+
#: ../settings.php:911
|
2430 |
msgid "Use absolute paths. One item per line."
|
2431 |
msgstr ""
|
2432 |
|
2433 |
+
#: ../settings.php:914
|
2434 |
msgid "Files with these extensions"
|
2435 |
msgstr ""
|
2436 |
|
2437 |
+
#: ../settings.php:918
|
2438 |
msgid "Use comma to separate items."
|
2439 |
msgstr ""
|
2440 |
|
2441 |
+
#: ../settings.php:925
|
2442 |
msgid "Cerber antispam engine"
|
2443 |
msgstr ""
|
2444 |
|
2445 |
+
#: ../settings.php:928
|
2446 |
msgid "Comment form"
|
2447 |
msgstr ""
|
2448 |
|
2449 |
+
#: ../settings.php:929
|
2450 |
msgid "Protect comment form with bot detection engine"
|
2451 |
msgstr ""
|
2452 |
|
2453 |
+
#: ../settings.php:933 ../settings.php:1002
|
2454 |
msgid "Registration form"
|
2455 |
msgstr ""
|
2456 |
|
2457 |
+
#: ../settings.php:934
|
2458 |
msgid "Protect registration form with bot detection engine"
|
2459 |
msgstr ""
|
2460 |
|
2461 |
+
#: ../settings.php:938
|
2462 |
msgid "Other forms"
|
2463 |
msgstr ""
|
2464 |
|
2465 |
+
#: ../settings.php:939
|
2466 |
msgid "Protect all forms on the website with bot detection engine"
|
2467 |
msgstr ""
|
2468 |
|
2469 |
+
#: ../settings.php:945
|
2470 |
msgid "Adjust antispam engine"
|
2471 |
msgstr ""
|
2472 |
|
2473 |
+
#: ../settings.php:948
|
2474 |
msgid "Safe mode"
|
2475 |
msgstr ""
|
2476 |
|
2477 |
+
#: ../settings.php:949
|
2478 |
msgid "Use less restrictive policies (allow AJAX)"
|
2479 |
msgstr ""
|
2480 |
|
2481 |
+
#: ../settings.php:954
|
2482 |
msgid "Disable bot detection engine for logged in users"
|
2483 |
msgstr ""
|
2484 |
|
2485 |
+
#: ../settings.php:958
|
2486 |
msgid "Query whitelist"
|
2487 |
msgstr ""
|
2488 |
|
2489 |
+
#: ../settings.php:959
|
2490 |
msgid ""
|
2491 |
"Enter a part of query string or query path to exclude a request from "
|
2492 |
"inspection by the engine. One item per line."
|
2493 |
msgstr ""
|
2494 |
|
2495 |
+
#: ../settings.php:967
|
2496 |
msgid "Comment processing"
|
2497 |
msgstr ""
|
2498 |
|
2499 |
+
#: ../settings.php:970
|
2500 |
msgid "If a spam comment detected"
|
2501 |
msgstr ""
|
2502 |
|
2503 |
+
#: ../settings.php:972
|
2504 |
msgid "Deny it completely"
|
2505 |
msgstr ""
|
2506 |
|
2507 |
+
#: ../settings.php:972
|
2508 |
msgid "Mark it as spam"
|
2509 |
msgstr ""
|
2510 |
|
2511 |
+
#: ../settings.php:975
|
2512 |
msgid "Trash spam comments"
|
2513 |
msgstr ""
|
2514 |
|
2515 |
+
#: ../settings.php:977
|
2516 |
msgid "Move spam comments to trash after"
|
2517 |
msgstr ""
|
2518 |
|
2519 |
+
#: ../settings.php:985
|
2520 |
msgid "reCAPTCHA settings"
|
2521 |
msgstr ""
|
2522 |
|
2523 |
+
#: ../settings.php:986
|
2524 |
msgid ""
|
2525 |
"Before you can start using reCAPTCHA, you have to obtain Site key and Secret "
|
2526 |
"key on the Google website"
|
2527 |
msgstr ""
|
2528 |
|
2529 |
+
#: ../settings.php:989
|
2530 |
msgid "Site key"
|
2531 |
msgstr ""
|
2532 |
|
2533 |
+
#: ../settings.php:993
|
2534 |
msgid "Secret key"
|
2535 |
msgstr ""
|
2536 |
|
2537 |
+
#: ../settings.php:997
|
2538 |
msgid "Invisible reCAPTCHA"
|
2539 |
msgstr ""
|
2540 |
|
2541 |
+
#: ../settings.php:998
|
2542 |
msgid "Enable invisible reCAPTCHA"
|
2543 |
msgstr ""
|
2544 |
|
2545 |
+
#: ../settings.php:998
|
2546 |
msgid ""
|
2547 |
"(do not enable it unless you get and enter the Site and Secret keys for the "
|
2548 |
"invisible version)"
|
2549 |
msgstr ""
|
2550 |
|
2551 |
+
#: ../settings.php:1003
|
2552 |
msgid "Enable reCAPTCHA for WordPress registration form"
|
2553 |
msgstr ""
|
2554 |
|
2555 |
+
#: ../settings.php:1008
|
2556 |
msgid "Enable reCAPTCHA for WooCommerce registration form"
|
2557 |
msgstr ""
|
2558 |
|
2559 |
+
#: ../settings.php:1012
|
2560 |
msgid "Lost password form"
|
2561 |
msgstr ""
|
2562 |
|
2563 |
+
#: ../settings.php:1013
|
2564 |
msgid "Enable reCAPTCHA for WordPress lost password form"
|
2565 |
msgstr ""
|
2566 |
|
2567 |
+
#: ../settings.php:1018
|
2568 |
msgid "Enable reCAPTCHA for WooCommerce lost password form"
|
2569 |
msgstr ""
|
2570 |
|
2571 |
+
#: ../settings.php:1022
|
2572 |
msgid "Login form"
|
2573 |
msgstr ""
|
2574 |
|
2575 |
+
#: ../settings.php:1023
|
2576 |
msgid "Enable reCAPTCHA for WordPress login form"
|
2577 |
msgstr ""
|
2578 |
|
2579 |
+
#: ../settings.php:1028
|
2580 |
msgid "Enable reCAPTCHA for WooCommerce login form"
|
2581 |
msgstr ""
|
2582 |
|
2583 |
+
#: ../settings.php:1033
|
2584 |
msgid "Enable reCAPTCHA for WordPress comment form"
|
2585 |
msgstr ""
|
2586 |
|
2587 |
+
#: ../settings.php:1038
|
2588 |
msgid "Disable reCAPTCHA for logged in users"
|
2589 |
msgstr ""
|
2590 |
|
2591 |
+
#: ../settings.php:1042
|
2592 |
msgid "Limit attempts"
|
2593 |
msgstr ""
|
2594 |
|
2595 |
+
#: ../settings.php:1043
|
2596 |
#, php-format
|
2597 |
msgid "Lock out IP address for %s minutes after %s failed attempts within %s minutes"
|
2598 |
msgstr ""
|
2599 |
|
2600 |
+
#: ../settings.php:1050
|
2601 |
msgid "Master settings"
|
2602 |
msgstr ""
|
2603 |
|
2604 |
+
#: ../settings.php:1058
|
2605 |
msgid "Return to the website list"
|
2606 |
msgstr ""
|
2607 |
|
2608 |
+
#: ../settings.php:1062
|
2609 |
msgid "Show \"Switched to\" notification"
|
2610 |
msgstr ""
|
2611 |
|
2612 |
+
#: ../settings.php:1066
|
2613 |
msgid "Add @ site to the page title"
|
2614 |
msgstr ""
|
2615 |
|
2616 |
+
#: ../settings.php:1070
|
2617 |
msgid "Use master language"
|
2618 |
msgstr ""
|
2619 |
|
2620 |
+
#: ../settings.php:1093
|
2621 |
msgid "Limit access by IP address"
|
2622 |
msgstr ""
|
2623 |
|
2624 |
+
#: ../settings.php:1099
|
2625 |
msgid "Access to this website"
|
2626 |
msgstr ""
|
2627 |
|
2628 |
+
#: ../settings.php:1102
|
2629 |
msgid "Full access mode"
|
2630 |
msgstr ""
|
2631 |
|
2632 |
+
#: ../settings.php:1103
|
2633 |
msgid "Read-only mode"
|
2634 |
msgstr ""
|
2635 |
|
2636 |
+
#: ../settings.php:1119
|
2637 |
msgid "The full access mode requires the PRO version of WP Cerber"
|
2638 |
msgstr ""
|
2639 |
|
2640 |
+
#: ../settings.php:1391
|
2641 |
#, php-format
|
2642 |
msgid "%s allowed retries in %s minutes"
|
2643 |
msgstr ""
|
2644 |
|
2645 |
+
#: ../settings.php:1396
|
2646 |
#, php-format
|
2647 |
msgid "%s allowed registrations in %s minutes from one IP"
|
2648 |
msgstr ""
|
2649 |
|
2650 |
+
#: ../settings.php:1401
|
2651 |
#, php-format
|
2652 |
msgid "Increase lockout duration to %s hours after %s lockouts in the last %s hours"
|
2653 |
msgstr ""
|
2654 |
|
2655 |
+
#: ../settings.php:1408
|
2656 |
msgid "Notify admin if the number of active lockouts above"
|
2657 |
msgstr ""
|
2658 |
|
2659 |
+
#: ../settings.php:1417
|
2660 |
#, php-format
|
2661 |
msgid "Enable after %s failed login attempts in last %s minutes"
|
2662 |
msgstr ""
|
2663 |
|
2664 |
+
#: ../settings.php:1573
|
2665 |
msgid "Select one or more roles"
|
2666 |
msgstr ""
|
2667 |
|
2668 |
+
#: ../settings.php:1598
|
2669 |
msgid "Sunday"
|
2670 |
msgstr ""
|
2671 |
|
2672 |
+
#: ../settings.php:1599
|
2673 |
msgid "Monday"
|
2674 |
msgstr ""
|
2675 |
|
2676 |
+
#: ../settings.php:1600
|
2677 |
msgid "Tuesday"
|
2678 |
msgstr ""
|
2679 |
|
2680 |
+
#: ../settings.php:1601
|
2681 |
msgid "Wednesday"
|
2682 |
msgstr ""
|
2683 |
|
2684 |
+
#: ../settings.php:1602
|
2685 |
msgid "Thursday"
|
2686 |
msgstr ""
|
2687 |
|
2688 |
+
#: ../settings.php:1603
|
2689 |
msgid "Friday"
|
2690 |
msgstr ""
|
2691 |
|
2692 |
+
#: ../settings.php:1604
|
2693 |
msgid "Saturday"
|
2694 |
msgstr ""
|
2695 |
|
2696 |
+
#: ../settings.php:1614
|
2697 |
msgctxt "preposition of time like: at 11:00"
|
2698 |
msgid "at"
|
2699 |
msgstr ""
|
2700 |
|
2701 |
+
#: ../settings.php:1634
|
2702 |
msgid "Click to send now"
|
2703 |
msgstr ""
|
2704 |
|
2705 |
+
#: ../settings.php:1645
|
2706 |
msgid "Plugin initialization mode has not been changed"
|
2707 |
msgstr ""
|
2708 |
|
2709 |
+
#: ../settings.php:1672 ../settings.php:1673
|
2710 |
msgid "Attention! You have changed the login URL! The new login URL is"
|
2711 |
msgstr ""
|
2712 |
|
2713 |
+
#: ../settings.php:1674 ../settings.php:1675
|
2714 |
msgid ""
|
2715 |
"If you use a caching plugin, you have to add your new login URL to the list "
|
2716 |
"of pages not to cache."
|
2717 |
msgstr ""
|
2718 |
|
2719 |
+
#: ../settings.php:1763 ../settings.php:1775 ../settings.php:1929
|
2720 |
msgid "<strong>ERROR</strong>: please enter a valid email address."
|
2721 |
msgstr ""
|
2722 |
|
2723 |
+
#: ../settings.php:1935
|
2724 |
msgid "The schedule has been updated"
|
2725 |
msgstr ""
|
2726 |
|
2727 |
+
#: ../settings.php:1938
|
2728 |
msgid "Unable to update the schedule"
|
2729 |
msgstr ""
|
2730 |
|
2731 |
+
#: ../settings.php:2752
|
2732 |
msgid "These features are available in a professional version of the plugin."
|
2733 |
msgstr ""
|
2734 |
|
2735 |
+
#: ../settings.php:2753
|
2736 |
msgid "Know more about all advantages at"
|
2737 |
msgstr ""
|
2738 |
|
2739 |
+
#: ../cerber-ds.php:762
|
2740 |
+
msgid "Administration Email Address"
|
2741 |
+
msgstr ""
|
2742 |
+
|
2743 |
+
#: ../cerber-ds.php:763
|
2744 |
+
msgid "New User Default Role"
|
2745 |
+
msgstr ""
|
2746 |
+
|
2747 |
+
#: ../cerber-ds.php:764
|
2748 |
+
msgid "Site Address (URL)"
|
2749 |
+
msgstr ""
|
2750 |
+
|
2751 |
+
#: ../cerber-ds.php:765
|
2752 |
+
msgid "WordPress Address (URL)"
|
2753 |
+
msgstr ""
|
2754 |
+
|
2755 |
+
#: ../cerber-ds.php:766
|
2756 |
+
msgid "Anyone can register"
|
2757 |
+
msgstr ""
|
2758 |
+
|
2759 |
+
#: ../cerber-ds.php:767
|
2760 |
+
msgid "Active Plugins"
|
2761 |
+
msgstr ""
|
2762 |
+
|
2763 |
+
#: ../cerber-ds.php:768
|
2764 |
+
msgid "Active Theme"
|
2765 |
+
msgstr ""
|
2766 |
+
|
2767 |
#: ../cerber-2fa.php:352
|
2768 |
msgid ""
|
2769 |
"This verification PIN code is expired. We have just sent a new one to your "
|
2892 |
msgid "Error while parsing file"
|
2893 |
msgstr ""
|
2894 |
|
2895 |
+
#: ../cerber-tools.php:238
|
2896 |
msgid "Unsubscribe"
|
2897 |
msgstr ""
|
2898 |
|
readme.txt
CHANGED
@@ -2,10 +2,10 @@
|
|
2 |
Contributors: gioni
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=SR8RJXFU35EW8
|
4 |
Tags: security, malware scanner, antispam, firewall, limit login attempts, custom login url, login, recaptcha, captcha, activity, log, logging, whitelist, blacklist, access list
|
5 |
-
Requires at least: 4.
|
6 |
Requires PHP: 5.4
|
7 |
Tested up to: 5.2
|
8 |
-
Stable tag: 8.
|
9 |
License: GPLv2
|
10 |
|
11 |
Protection against hacker attacks and bots. Malware scanner & integrity checker. User activity log. Antispam reCAPTCHA. Limit login attempts.
|
@@ -14,11 +14,11 @@ Protection against hacker attacks and bots. Malware scanner & integrity checker.
|
|
14 |
|
15 |
Defends WordPress against hacker attacks, spam, trojans and malware.
|
16 |
Mitigates brute force attacks by limiting the number of login attempts through the login form, XML-RPC / REST API requests or using auth cookies.
|
17 |
-
Tracks user and
|
18 |
-
Stops spam
|
19 |
Advanced malware scanner, integrity checker and file monitor.
|
20 |
Hardening WordPress with a set of flexible security rules and sophisticated security algorithms.
|
21 |
-
Restricts access with
|
22 |
|
23 |
**Features you will love**
|
24 |
|
@@ -40,15 +40,15 @@ Restricts access with the Black IP Access List and the White IP Access List.
|
|
40 |
* Immediately blocks an intruder IP when attempting to log in with non-existent or prohibited username.
|
41 |
* Restrict user registration or login with a username matching REGEX patterns.
|
42 |
* [Restrict access to WP REST API with your own role-based security rules](https://wpcerber.com/restrict-access-to-wordpress-rest-api/).
|
43 |
-
*
|
44 |
-
*
|
45 |
* Disable feeds (block access to the RSS, Atom and RDF feeds).
|
46 |
* Restrict access to XML-RPC, REST API and feeds by **White IP Access list** by an IP address or an IP range.
|
47 |
* [Authorized users only mode](https://wpcerber.com/only-logged-in-wordpress-users/)
|
48 |
* [Block a user account](https://wpcerber.com/how-to-block-wordpress-user/).
|
49 |
* Disable automatic redirection to the hidden login page.
|
50 |
* **Stop user enumeration** (blocks access to author pages and prevents user data leaks via REST API).
|
51 |
-
* Proactively **blocks IP subnet class C
|
52 |
* Anti-spam: **reCAPTCHA** to protect WordPress login, register and comment forms.
|
53 |
* [reCAPTCHA for WooCommerce & WordPress forms](https://wpcerber.com/how-to-setup-recaptcha/).
|
54 |
* Invisible reCAPTCHA for WordPress comments forms.
|
@@ -319,6 +319,17 @@ To get access to your dashboard you need to copy the WP Cerber Reset folder to t
|
|
319 |
|
320 |
== Changelog ==
|
321 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
322 |
= 8.4 =
|
323 |
* New: More flexible role-based GEO access policies.
|
324 |
* New: A logged in users' sessions manager.
|
2 |
Contributors: gioni
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=SR8RJXFU35EW8
|
4 |
Tags: security, malware scanner, antispam, firewall, limit login attempts, custom login url, login, recaptcha, captcha, activity, log, logging, whitelist, blacklist, access list
|
5 |
+
Requires at least: 4.9
|
6 |
Requires PHP: 5.4
|
7 |
Tested up to: 5.2
|
8 |
+
Stable tag: 8.5
|
9 |
License: GPLv2
|
10 |
|
11 |
Protection against hacker attacks and bots. Malware scanner & integrity checker. User activity log. Antispam reCAPTCHA. Limit login attempts.
|
14 |
|
15 |
Defends WordPress against hacker attacks, spam, trojans and malware.
|
16 |
Mitigates brute force attacks by limiting the number of login attempts through the login form, XML-RPC / REST API requests or using auth cookies.
|
17 |
+
Tracks user and bad actors activity with flexible email, mobile and desktop notifications.
|
18 |
+
Stops spam by using a specialized Cerber's anti-spam engine and Google reCAPTCHA to protect registration, contact and comments forms.
|
19 |
Advanced malware scanner, integrity checker and file monitor.
|
20 |
Hardening WordPress with a set of flexible security rules and sophisticated security algorithms.
|
21 |
+
Restricts access with Black and White IP Access Lists.
|
22 |
|
23 |
**Features you will love**
|
24 |
|
40 |
* Immediately blocks an intruder IP when attempting to log in with non-existent or prohibited username.
|
41 |
* Restrict user registration or login with a username matching REGEX patterns.
|
42 |
* [Restrict access to WP REST API with your own role-based security rules](https://wpcerber.com/restrict-access-to-wordpress-rest-api/).
|
43 |
+
* Block access to WordPress REST API completely.
|
44 |
+
* Block access to XML-RPC (block access to XML-RPC including Pingbacks and Trackbacks).
|
45 |
* Disable feeds (block access to the RSS, Atom and RDF feeds).
|
46 |
* Restrict access to XML-RPC, REST API and feeds by **White IP Access list** by an IP address or an IP range.
|
47 |
* [Authorized users only mode](https://wpcerber.com/only-logged-in-wordpress-users/)
|
48 |
* [Block a user account](https://wpcerber.com/how-to-block-wordpress-user/).
|
49 |
* Disable automatic redirection to the hidden login page.
|
50 |
* **Stop user enumeration** (blocks access to author pages and prevents user data leaks via REST API).
|
51 |
+
* Proactively **blocks IP subnet class C**.
|
52 |
* Anti-spam: **reCAPTCHA** to protect WordPress login, register and comment forms.
|
53 |
* [reCAPTCHA for WooCommerce & WordPress forms](https://wpcerber.com/how-to-setup-recaptcha/).
|
54 |
* Invisible reCAPTCHA for WordPress comments forms.
|
319 |
|
320 |
== Changelog ==
|
321 |
|
322 |
+
= 8.5 =
|
323 |
+
* New: Data Shield module for advanced protection of user data and vital settings in the website database. Available in the PRO version.
|
324 |
+
* Improvement: Compatibility with WooCommerce significantly improved.
|
325 |
+
* Update: Strict filtering for the Custom login URL setting.
|
326 |
+
* Update: Chinese (Taiwan) translation has been added. Thanks to Sid Lo.
|
327 |
+
* Bug fixed: Custom login URL doesn't work after updating WordPress to 5.2.3.
|
328 |
+
* Bug fixed: User Policies tabs are not switchable if a user role was declared with a hyphen instead of the underscore.
|
329 |
+
* Bug fixed: A PHP warning while adding a network to the Black IP Access List from the Activity tab.
|
330 |
+
* Bug fixed: An anti-spam false positive: some WordPress DB updates can't be completed.
|
331 |
+
* [Read more](https://wpcerber.com/wp-cerber-security-8-5/)
|
332 |
+
|
333 |
= 8.4 =
|
334 |
* New: More flexible role-based GEO access policies.
|
335 |
* New: A logged in users' sessions manager.
|
settings.php
CHANGED
@@ -47,6 +47,8 @@ define('CERBER_OPT_T','cerber-traffic');
|
|
47 |
define('CERBER_OPT_S','cerber-scanner');
|
48 |
define('CERBER_OPT_E','cerber-schedule');
|
49 |
define('CERBER_OPT_P','cerber-policies');
|
|
|
|
|
50 |
define('CERBER_OPT_SL','cerber-nexus-slave');
|
51 |
define('CERBER_OPT_MA','cerber-nexus_master');
|
52 |
|
@@ -58,7 +60,7 @@ function cerber_get_setting_id( $tab = null ) {
|
|
58 |
if ( ! $id ) {
|
59 |
$id = crb_admin_get_page();
|
60 |
}
|
61 |
-
//
|
62 |
// tab => settings id
|
63 |
$map = array(
|
64 |
'scan_settings' => 'scanner', // define('CERBER_OPT_S','cerber-scanner');
|
@@ -68,6 +70,7 @@ function cerber_get_setting_id( $tab = null ) {
|
|
68 |
'captcha' => 'recaptcha',
|
69 |
'cerber-recaptcha' => 'antispam',
|
70 |
'global_policies' => 'users',
|
|
|
71 |
|
72 |
'cerber-nexus' => 'nexus-slave',
|
73 |
'nexus_slave' => 'nexus-slave',
|
@@ -114,6 +117,8 @@ function cerber_settings_config( $args = array() ) {
|
|
114 |
'policies' => array( 'scanpls', 'scanrecover', 'scanexcl' ),
|
115 |
'antispam' => array( 'antibot', 'antibot_more', 'commproc' ),
|
116 |
'recaptcha' => array( 'recap' ),
|
|
|
|
|
117 |
'nexus-slave' => array( 'slave_settings' ),
|
118 |
'nexus_master' => array( 'master_settings' ),
|
119 |
);
|
@@ -402,6 +407,100 @@ function cerber_settings_config( $args = array() ) {
|
|
402 |
),
|
403 |
),
|
404 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
405 |
'us' => array(
|
406 |
//'name' => __( 'User related settings', 'wp-cerber' ),
|
407 |
//'info' => __( 'User related settings', 'wp-cerber' ),
|
@@ -415,7 +514,7 @@ function cerber_settings_config( $args = array() ) {
|
|
415 |
),
|
416 |
'authonlyacl' => array(
|
417 |
'title' => __( 'Use White IP Access List', 'wp-cerber' ),
|
418 |
-
'label' => __( 'Do not apply
|
419 |
'type' => 'checkbox',
|
420 |
'default' => 0,
|
421 |
'enabler' => array( 'authonly' ),
|
@@ -1104,7 +1203,7 @@ function cerber_wp_settings_setup( $screen_id, $sections = array() ) {
|
|
1104 |
$config['class'] .= ' crb-disable-this';
|
1105 |
}
|
1106 |
|
1107 |
-
add_settings_field( $field, $config
|
1108 |
}
|
1109 |
}
|
1110 |
}
|
@@ -1116,7 +1215,7 @@ function cerber_wp_settings_setup( $screen_id, $sections = array() ) {
|
|
1116 |
*/
|
1117 |
|
1118 |
function cerber_get_setting_list() {
|
1119 |
-
return array( CERBER_SETTINGS, CERBER_OPT, CERBER_OPT_H, CERBER_OPT_U, CERBER_OPT_A, CERBER_OPT_C, CERBER_OPT_N, CERBER_OPT_T, CERBER_OPT_S, CERBER_OPT_E, CERBER_OPT_P, CERBER_OPT_SL, CERBER_OPT_MA );
|
1120 |
}
|
1121 |
|
1122 |
/*
|
@@ -1259,12 +1358,20 @@ function cerber_field_show( $args ) {
|
|
1259 |
|
1260 |
$class = crb_array_get( $args, 'class', '' );
|
1261 |
|
1262 |
-
$data
|
|
|
1263 |
if ( isset( $args['enabler'][0] ) ) {
|
1264 |
-
$
|
|
|
1265 |
}
|
1266 |
if ( isset( $args['enabler'][1] ) ) {
|
1267 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
1268 |
}
|
1269 |
|
1270 |
switch ( $args['type'] ) {
|
@@ -1320,15 +1427,21 @@ function cerber_field_show( $args ) {
|
|
1320 |
$html .= '<br/><label class="crb-below" for="' . $args['setting'] . '">' . $label . '</label>';
|
1321 |
break;
|
1322 |
case 'select':
|
1323 |
-
$html = cerber_select( $name, $args['set'], $value, $class, $id, '', $placeholder );
|
1324 |
//$html .= '<span class="">' . $label . '</span>';
|
1325 |
$html .= '<br/><label class="crb-below">' . $label . '</label>';
|
1326 |
break;
|
1327 |
case 'role_select':
|
1328 |
-
|
|
|
|
|
|
|
1329 |
break;
|
1330 |
case 'checkbox_set':
|
1331 |
-
|
|
|
|
|
|
|
1332 |
foreach ( $args['set'] as $key => $item ) {
|
1333 |
$v = ( ! empty( $value[ $key ] ) ) ? $value[ $key ] : 0;
|
1334 |
$html .= '<input type="checkbox" value="1" name="' . $name . '[' . $key . ']" ' . checked( 1, $v, false ) . $atts . '/>' . $item . '<br />';
|
@@ -1543,20 +1656,29 @@ add_filter( 'pre_update_option_'.CERBER_OPT, function ($new, $old, $option) {
|
|
1543 |
|
1544 |
if ( cerber_is_permalink_enabled() ) {
|
1545 |
$new['loginpath'] = urlencode( str_replace( '/', '', $new['loginpath'] ) );
|
1546 |
-
$new['loginpath'] = sanitize_text_field($new['loginpath']);
|
1547 |
-
|
1548 |
-
|
1549 |
-
|
1550 |
-
|
1551 |
-
|
1552 |
-
|
1553 |
-
|
1554 |
-
|
1555 |
-
|
1556 |
-
|
1557 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1558 |
}
|
1559 |
-
}
|
|
|
1560 |
$new['loginpath'] = '';
|
1561 |
$new['loginnowp'] = 0;
|
1562 |
}
|
@@ -1734,6 +1856,37 @@ add_filter( 'pre_update_option_'.CERBER_OPT_T, function ($new, $old, $option) {
|
|
1734 |
return $new;
|
1735 |
}, 10, 3 );
|
1736 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1737 |
/*
|
1738 |
Sanitizing/checking user input for Security Scanner settings
|
1739 |
*/
|
@@ -1973,8 +2126,8 @@ function cerber_get_defaults() {
|
|
1973 |
$all_defaults = array(
|
1974 |
CERBER_OPT => array(
|
1975 |
'boot-mode' => 0,
|
1976 |
-
'attempts' =>
|
1977 |
-
'period' =>
|
1978 |
'lockout' => 60,
|
1979 |
'agperiod' => 24,
|
1980 |
'aglocks' => 2,
|
@@ -2093,6 +2246,23 @@ function cerber_get_defaults() {
|
|
2093 |
'tithreshold' => '',
|
2094 |
'tikeeprec' => 7,
|
2095 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2096 |
CERBER_OPT_S => array(
|
2097 |
'scan_cpt' => '',
|
2098 |
'scan_uext' => '',
|
47 |
define('CERBER_OPT_S','cerber-scanner');
|
48 |
define('CERBER_OPT_E','cerber-schedule');
|
49 |
define('CERBER_OPT_P','cerber-policies');
|
50 |
+
define('CERBER_OPT_US','cerber-user_shield');
|
51 |
+
define('CERBER_OPT_OS','cerber-opt_shield');
|
52 |
define('CERBER_OPT_SL','cerber-nexus-slave');
|
53 |
define('CERBER_OPT_MA','cerber-nexus_master');
|
54 |
|
60 |
if ( ! $id ) {
|
61 |
$id = crb_admin_get_page();
|
62 |
}
|
63 |
+
// Exceptions: some tab names (or page id) doesn't match WP setting names
|
64 |
// tab => settings id
|
65 |
$map = array(
|
66 |
'scan_settings' => 'scanner', // define('CERBER_OPT_S','cerber-scanner');
|
70 |
'captcha' => 'recaptcha',
|
71 |
'cerber-recaptcha' => 'antispam',
|
72 |
'global_policies' => 'users',
|
73 |
+
'cerber-shield' => 'user_shield',
|
74 |
|
75 |
'cerber-nexus' => 'nexus-slave',
|
76 |
'nexus_slave' => 'nexus-slave',
|
117 |
'policies' => array( 'scanpls', 'scanrecover', 'scanexcl' ),
|
118 |
'antispam' => array( 'antibot', 'antibot_more', 'commproc' ),
|
119 |
'recaptcha' => array( 'recap' ),
|
120 |
+
'user_shield' => array( 'acc_protect', 'role_protect' ),
|
121 |
+
'opt_shield' => array( 'opt_protect' ),
|
122 |
'nexus-slave' => array( 'slave_settings' ),
|
123 |
'nexus_master' => array( 'master_settings' ),
|
124 |
);
|
407 |
),
|
408 |
),
|
409 |
|
410 |
+
'acc_protect' => array(
|
411 |
+
'name' => __( 'Protect user accounts', 'wp-cerber' ),
|
412 |
+
//'desc' => 'These policies prevent site takeover (admin dashboard hijacking) by creating accounts with administrator privileges.',
|
413 |
+
'desc' => 'These security measures prevent site takeover by preventing bad actors from creating additional administrator accounts or user privilege escalation.',
|
414 |
+
'fields' => array(
|
415 |
+
'ds_4acc' => array(
|
416 |
+
'label' => __( 'Restrict user account creation and user management with the following policies', 'wp-cerber' ),
|
417 |
+
//'doclink' => 'https://wpcerber.com/only-logged-in-wordpress-users/',
|
418 |
+
'type' => 'checkbox',
|
419 |
+
//'pro' => 1
|
420 |
+
),
|
421 |
+
'ds_regs_roles' => array(
|
422 |
+
'label' => __( 'User registrations are limited to these roles', 'wp-cerber' ),
|
423 |
+
//'title' => __( 'Roles restricted to new user registrations', 'wp-cerber' ),
|
424 |
+
'type' => 'role_select',
|
425 |
+
'enabler' => array( 'ds_4acc' ),
|
426 |
+
),
|
427 |
+
'ds_add_acc' => array(
|
428 |
+
'label' => __( 'Users with these roles are permitted to create new accounts', 'wp-cerber' ),
|
429 |
+
'type' => 'role_select',
|
430 |
+
'enabler' => array( 'ds_4acc' ),
|
431 |
+
),
|
432 |
+
'ds_edit_acc' => array(
|
433 |
+
'label' => __( 'Users with these roles are permitted to change sensitive user data', 'wp-cerber' ),
|
434 |
+
'type' => 'role_select',
|
435 |
+
'enabler' => array( 'ds_4acc' ),
|
436 |
+
),
|
437 |
+
'ds_4acc_acl' => array(
|
438 |
+
'label' => __( 'Do not apply these policies to the IP addresses in the White IP Access List', 'wp-cerber' ),
|
439 |
+
'type' => 'checkbox',
|
440 |
+
'default' => 0,
|
441 |
+
'enabler' => array( 'ds_4acc' ),
|
442 |
+
),
|
443 |
+
),
|
444 |
+
),
|
445 |
+
'role_protect' => array(
|
446 |
+
'name' => __( 'Protect user roles', 'wp-cerber' ),
|
447 |
+
'desc' => 'These security measures prevent site takeover by preventing bad actors from creating new roles or role capabilities escalation.',
|
448 |
+
'fields' => array(
|
449 |
+
'ds_4roles' => array(
|
450 |
+
'label' => __( "Restrict roles and capabilities management with the following policies", 'wp-cerber' ),
|
451 |
+
//'doclink' => 'https://wpcerber.com/only-logged-in-wordpress-users/',
|
452 |
+
'type' => 'checkbox',
|
453 |
+
'default' => 0,
|
454 |
+
),
|
455 |
+
'ds_add_role' => array(
|
456 |
+
'label' => __( 'Users with these roles are permitted to add new roles', 'wp-cerber' ),
|
457 |
+
'type' => 'role_select',
|
458 |
+
'enabler' => array( 'ds_4roles' ),
|
459 |
+
),
|
460 |
+
'ds_edit_role' => array(
|
461 |
+
'label' => __( "Users with these roles are permitted to change role capabilities", 'wp-cerber' ),
|
462 |
+
'type' => 'role_select',
|
463 |
+
'enabler' => array( 'ds_4roles' ),
|
464 |
+
),
|
465 |
+
'ds_4roles_acl' => array(
|
466 |
+
'label' => __( 'Do not apply these policies to the IP addresses in the White IP Access List', 'wp-cerber' ),
|
467 |
+
'type' => 'checkbox',
|
468 |
+
'default' => 0,
|
469 |
+
'enabler' => array( 'ds_4roles' ),
|
470 |
+
),
|
471 |
+
),
|
472 |
+
),
|
473 |
+
'opt_protect' => array(
|
474 |
+
'name' => __( 'Protect site settings', 'wp-cerber' ),
|
475 |
+
'desc' => 'These security measures prevent malware injection by preventing bad actors from altering vital site settings.',
|
476 |
+
'fields' => array(
|
477 |
+
'ds_4opts' => array(
|
478 |
+
'label' => __( "Restrict updating site settings with the following policies", 'wp-cerber' ),
|
479 |
+
//'doclink' => 'https://wpcerber.com/only-logged-in-wordpress-users/',
|
480 |
+
'type' => 'checkbox',
|
481 |
+
'default' => 0,
|
482 |
+
),
|
483 |
+
'ds_4opts_roles' => array(
|
484 |
+
'label' => __( 'Users with these roles are permitted to change protected settings', 'wp-cerber' ),
|
485 |
+
'type' => 'role_select',
|
486 |
+
'enabler' => array( 'ds_4opts' ),
|
487 |
+
),
|
488 |
+
'ds_4opts_list' => array(
|
489 |
+
'label' => __( 'Protected settings', 'wp-cerber' ),
|
490 |
+
'type' => 'checkbox_set',
|
491 |
+
'set' => CRB_DS::get_settings_list(),
|
492 |
+
'enabler' => array( 'ds_4opts' ),
|
493 |
+
),
|
494 |
+
'ds_4opts_acl' => array(
|
495 |
+
'label' => __( 'Do not apply these policies to the IP addresses in the White IP Access List', 'wp-cerber' ),
|
496 |
+
'type' => 'checkbox',
|
497 |
+
'default' => 0,
|
498 |
+
'enabler' => array( 'ds_4opts' ),
|
499 |
+
),
|
500 |
+
),
|
501 |
+
),
|
502 |
+
|
503 |
+
|
504 |
'us' => array(
|
505 |
//'name' => __( 'User related settings', 'wp-cerber' ),
|
506 |
//'info' => __( 'User related settings', 'wp-cerber' ),
|
514 |
),
|
515 |
'authonlyacl' => array(
|
516 |
'title' => __( 'Use White IP Access List', 'wp-cerber' ),
|
517 |
+
'label' => __( 'Do not apply these policy to the IP addresses in the White IP Access List', 'wp-cerber' ),
|
518 |
'type' => 'checkbox',
|
519 |
'default' => 0,
|
520 |
'enabler' => array( 'authonly' ),
|
1203 |
$config['class'] .= ' crb-disable-this';
|
1204 |
}
|
1205 |
|
1206 |
+
add_settings_field( $field, crb_array_get($config,'title',''), 'cerber_field_show', $option, $section_id, $config );
|
1207 |
}
|
1208 |
}
|
1209 |
}
|
1215 |
*/
|
1216 |
|
1217 |
function cerber_get_setting_list() {
|
1218 |
+
return array( CERBER_SETTINGS, CERBER_OPT, CERBER_OPT_H, CERBER_OPT_U, CERBER_OPT_A, CERBER_OPT_C, CERBER_OPT_N, CERBER_OPT_T, CERBER_OPT_S, CERBER_OPT_E, CERBER_OPT_P, CERBER_OPT_SL, CERBER_OPT_MA, CERBER_OPT_US, CERBER_OPT_OS );
|
1219 |
}
|
1220 |
|
1221 |
/*
|
1358 |
|
1359 |
$class = crb_array_get( $args, 'class', '' );
|
1360 |
|
1361 |
+
$data = '';
|
1362 |
+
$ena = array();
|
1363 |
if ( isset( $args['enabler'][0] ) ) {
|
1364 |
+
$ena['enabler'] = 'crb-input-' . $args['enabler'][0];
|
1365 |
+
//$data .= ' data-enabler="crb-input-' . $args['enabler'][0] . '" ';
|
1366 |
}
|
1367 |
if ( isset( $args['enabler'][1] ) ) {
|
1368 |
+
$ena['enabler_value'] = $args['enabler'][1];
|
1369 |
+
//$data .= ' data-enabler_value="' . $args['enabler'][1] . '" ';
|
1370 |
+
}
|
1371 |
+
if ( $ena ) {
|
1372 |
+
foreach ( $ena as $att => $val ) {
|
1373 |
+
$data .= ' data-' . $att . '="' . $val . '"';
|
1374 |
+
}
|
1375 |
}
|
1376 |
|
1377 |
switch ( $args['type'] ) {
|
1427 |
$html .= '<br/><label class="crb-below" for="' . $args['setting'] . '">' . $label . '</label>';
|
1428 |
break;
|
1429 |
case 'select':
|
1430 |
+
$html = cerber_select( $name, $args['set'], $value, $class, $id, '', $placeholder, $ena );
|
1431 |
//$html .= '<span class="">' . $label . '</span>';
|
1432 |
$html .= '<br/><label class="crb-below">' . $label . '</label>';
|
1433 |
break;
|
1434 |
case 'role_select':
|
1435 |
+
if ( $label ) {
|
1436 |
+
$label = '<p class="crb-label-above"><label for="' . $name . '">' . $label . '</label></p>';
|
1437 |
+
}
|
1438 |
+
$html = $label . cerber_role_select( $name . '[]', $value, '', true, '', '100%' ) . '<i ' . $data . '></i>';
|
1439 |
break;
|
1440 |
case 'checkbox_set':
|
1441 |
+
if ( $label ) {
|
1442 |
+
$label = '<p class="crb-label-above"><label for="' . $name . '">' . $label . '</label></p>';
|
1443 |
+
}
|
1444 |
+
$html = '<div class="crb-checkbox_set" style="line-height: 2em;" ' . $data . '>' . $label;
|
1445 |
foreach ( $args['set'] as $key => $item ) {
|
1446 |
$v = ( ! empty( $value[ $key ] ) ) ? $value[ $key ] : 0;
|
1447 |
$html .= '<input type="checkbox" value="1" name="' . $name . '[' . $key . ']" ' . checked( 1, $v, false ) . $atts . '/>' . $item . '<br />';
|
1656 |
|
1657 |
if ( cerber_is_permalink_enabled() ) {
|
1658 |
$new['loginpath'] = urlencode( str_replace( '/', '', $new['loginpath'] ) );
|
1659 |
+
$new['loginpath'] = sanitize_text_field( $new['loginpath'] );
|
1660 |
+
|
1661 |
+
if ( $new['loginpath'] ) {
|
1662 |
+
if ( $new['loginpath'] == 'wp-admin'
|
1663 |
+
|| preg_match( '/[#|\.\!\?\:\s]/', $new['loginpath'] ) ) {
|
1664 |
+
cerber_admin_notice( __( 'ERROR:', 'wp-cerber' ) . ' You may not set this value for Custom login URL. Please specify another one.' );
|
1665 |
+
$new['loginpath'] = $old['loginpath'];
|
1666 |
+
}
|
1667 |
+
elseif ( $new['loginpath'] != $old['loginpath'] ) {
|
1668 |
+
$href = cerber_get_home_url() . '/' . $new['loginpath'] . '/';
|
1669 |
+
$url = urldecode( $href );
|
1670 |
+
$msg = array();
|
1671 |
+
$msg_e = array();
|
1672 |
+
$msg[] = __( 'Attention! You have changed the login URL! The new login URL is', 'wp-cerber' ) . ': <a href="' . $href . '">' . $url . '</a>';
|
1673 |
+
$msg_e[] = __( 'Attention! You have changed the login URL! The new login URL is', 'wp-cerber' ) . ': ' . $url;
|
1674 |
+
$msg[] = __( 'If you use a caching plugin, you have to add your new login URL to the list of pages not to cache.', 'wp-cerber' );
|
1675 |
+
$msg_e[] = __( 'If you use a caching plugin, you have to add your new login URL to the list of pages not to cache.', 'wp-cerber' );
|
1676 |
+
cerber_admin_notice( $msg );
|
1677 |
+
cerber_send_email( 'newlurl', $msg_e );
|
1678 |
+
}
|
1679 |
}
|
1680 |
+
}
|
1681 |
+
else {
|
1682 |
$new['loginpath'] = '';
|
1683 |
$new['loginnowp'] = 0;
|
1684 |
}
|
1856 |
return $new;
|
1857 |
}, 10, 3 );
|
1858 |
|
1859 |
+
add_filter( 'pre_update_option_' . CERBER_OPT_US, function ( $new, $old, $option ) {
|
1860 |
+
|
1861 |
+
if ( ! empty( $new['ds_4acc'] ) ) {
|
1862 |
+
CRB_DS::enable_shadowing( 1 );
|
1863 |
+
}
|
1864 |
+
else {
|
1865 |
+
CRB_DS::disable_shadowing( 1 );
|
1866 |
+
}
|
1867 |
+
|
1868 |
+
if ( ! empty( $new['ds_4roles'] ) ) {
|
1869 |
+
CRB_DS::enable_shadowing( 2 );
|
1870 |
+
}
|
1871 |
+
else {
|
1872 |
+
CRB_DS::disable_shadowing( 2 );
|
1873 |
+
}
|
1874 |
+
|
1875 |
+
return $new;
|
1876 |
+
}, 10, 3 );
|
1877 |
+
|
1878 |
+
add_filter( 'pre_update_option_' . CERBER_OPT_OS, function ( $new, $old, $option ) {
|
1879 |
+
|
1880 |
+
if ( ! empty( $new['ds_4opts'] ) ) {
|
1881 |
+
CRB_DS::enable_shadowing( 3 );
|
1882 |
+
}
|
1883 |
+
else {
|
1884 |
+
CRB_DS::disable_shadowing( 3 );
|
1885 |
+
}
|
1886 |
+
|
1887 |
+
return $new;
|
1888 |
+
}, 10, 3 );
|
1889 |
+
|
1890 |
/*
|
1891 |
Sanitizing/checking user input for Security Scanner settings
|
1892 |
*/
|
2126 |
$all_defaults = array(
|
2127 |
CERBER_OPT => array(
|
2128 |
'boot-mode' => 0,
|
2129 |
+
'attempts' => 5,
|
2130 |
+
'period' => 30,
|
2131 |
'lockout' => 60,
|
2132 |
'agperiod' => 24,
|
2133 |
'aglocks' => 2,
|
2246 |
'tithreshold' => '',
|
2247 |
'tikeeprec' => 7,
|
2248 |
),
|
2249 |
+
CERBER_OPT_US => array(
|
2250 |
+
'ds_4acc' => 0,
|
2251 |
+
'ds_regs_roles' => array(),
|
2252 |
+
'ds_add_acc' => array( 'administrator' ),
|
2253 |
+
'ds_edit_acc' => array( 'administrator' ),
|
2254 |
+
'ds_4acc_acl' => 0,
|
2255 |
+
'ds_4roles' => 0,
|
2256 |
+
'ds_add_role' => array( 'administrator' ),
|
2257 |
+
'ds_edit_role' => array( 'administrator' ),
|
2258 |
+
'ds_4roles_acl' => 0,
|
2259 |
+
),
|
2260 |
+
CERBER_OPT_OS => array(
|
2261 |
+
'ds_4opts' => 0,
|
2262 |
+
'ds_4opts_roles' => array( 'administrator' ),
|
2263 |
+
'ds_4opts_list' => CRB_DS::get_settings_list( false ),
|
2264 |
+
'ds_4opts_acl' => 0,
|
2265 |
+
),
|
2266 |
CERBER_OPT_S => array(
|
2267 |
'scan_cpt' => '',
|
2268 |
'scan_uext' => '',
|
wp-cerber.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
Description: Defends WordPress against hacker attacks, spam, trojans, and viruses. Malware scanner and integrity checker. Hardening WordPress with a set of comprehensive security algorithms. Spam protection with a sophisticated bot detection engine and reCAPTCHA. Tracks user and intruder activity with powerful email, mobile and desktop notifications.
|
6 |
Author: Cerber Tech Inc.
|
7 |
Author URI: https://wpcerber.com
|
8 |
-
Version: 8.
|
9 |
Text Domain: wp-cerber
|
10 |
Domain Path: /languages
|
11 |
Network: true
|
@@ -31,7 +31,7 @@
|
|
31 |
|
32 |
*/
|
33 |
|
34 |
-
define( 'CERBER_VER', '8.
|
35 |
define( 'CERBER_PLUGIN_ID', 'wp-cerber/wp-cerber.php' );
|
36 |
|
37 |
function cerber_plugin_file() {
|
5 |
Description: Defends WordPress against hacker attacks, spam, trojans, and viruses. Malware scanner and integrity checker. Hardening WordPress with a set of comprehensive security algorithms. Spam protection with a sophisticated bot detection engine and reCAPTCHA. Tracks user and intruder activity with powerful email, mobile and desktop notifications.
|
6 |
Author: Cerber Tech Inc.
|
7 |
Author URI: https://wpcerber.com
|
8 |
+
Version: 8.5
|
9 |
Text Domain: wp-cerber
|
10 |
Domain Path: /languages
|
11 |
Network: true
|
31 |
|
32 |
*/
|
33 |
|
34 |
+
define( 'CERBER_VER', '8.5' );
|
35 |
define( 'CERBER_PLUGIN_ID', 'wp-cerber/wp-cerber.php' );
|
36 |
|
37 |
function cerber_plugin_file() {
|