Antispam Bee - Version 2.4.6

Version Description

  • Russische bersetzung
  • Vernderung der Secret-Zeichenfolge
Download this release

Release Info

Developer sergej.mueller
Plugin Icon 128x128 Antispam Bee
Version 2.4.6
Comparing to
See all releases

Code changes from version 2.4.4 to 2.4.6

antispam_bee.php CHANGED
@@ -7,7 +7,7 @@ Description: Easy and extremely productive spam-fighting plugin with many sophis
7
  Author: Sergej Müller
8
  Author URI: http://wpcoder.de
9
  Plugin URI: http://antispambee.com
10
- Version: 2.4.4
11
  */
12
 
13
 
@@ -28,11 +28,10 @@ class Antispam_Bee {
28
 
29
 
30
  /* Init */
31
- public static $short;
32
- public static $default;
33
- private static $base;
34
- private static $secret;
35
- private static $reason;
36
 
37
 
38
  /**
@@ -48,10 +47,10 @@ class Antispam_Bee {
48
  if ( (defined('DOING_AJAX') && DOING_AJAX) or (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) ) {
49
  return;
50
  }
51
-
52
  /* Initialisierung */
53
  self::_init_internal_vars();
54
-
55
  /* Cronjob */
56
  if ( defined('DOING_CRON') ) {
57
  add_action(
@@ -123,7 +122,7 @@ class Antispam_Bee {
123
  2
124
  );
125
  add_filter(
126
- 'plugin_action_links_' .self::$base,
127
  array(
128
  __CLASS__,
129
  'init_action_links'
@@ -212,7 +211,7 @@ class Antispam_Bee {
212
  {
213
  /* Option anlegen */
214
  add_option(
215
- self::$short,
216
  array(),
217
  '',
218
  'no'
@@ -269,16 +268,15 @@ class Antispam_Bee {
269
  * Initialisierung der internen Variablen
270
  *
271
  * @since 2.4
272
- * @change 2.4
273
  */
274
 
275
  private static function _init_internal_vars()
276
  {
277
- self::$base = plugin_basename(__FILE__);
278
- self::$short = 'antispam_bee';
279
- self::$secret = substr(md5(get_bloginfo('url')), 0, 5). '-comment';
280
 
281
- self::$default = array(
282
  'options' => array(
283
  /* Allgemein */
284
  'advanced_check' => 1,
@@ -298,8 +296,7 @@ class Antispam_Bee {
298
  'translate_api' => 0,
299
  'translate_lang' => '',
300
 
301
- 'honey_pot' => 0,
302
- 'honey_key' => '',
303
 
304
  /* Erweitert */
305
  'flag_spam' => 1,
@@ -310,10 +307,9 @@ class Antispam_Bee {
310
 
311
  'ignore_filter' => 0,
312
  'ignore_type' => 0,
313
- 'ignore_reasons' => array(),
314
 
315
- /* Tab */
316
- 'tab_index' => 0
317
  ),
318
  'reasons' => array(
319
  'css' => 'CSS Hack',
@@ -321,7 +317,7 @@ class Antispam_Bee {
321
  'server' => 'Server IP',
322
  'spamip' => 'Spam IP',
323
  'country' => 'Country Check',
324
- 'honey' => 'Honey Pot',
325
  'lang' => 'Comment Language'
326
  )
327
  );
@@ -366,7 +362,7 @@ class Antispam_Bee {
366
  return ( empty($GLOBALS['pagenow']) or ( !empty($GLOBALS['pagenow']) && $GLOBALS['pagenow'] == 'index.php' ) );
367
 
368
  case 'options':
369
- return ( !empty($_REQUEST['page']) && $_REQUEST['page'] == self::$short );
370
 
371
  case 'plugins':
372
  return ( !empty($GLOBALS['pagenow']) && $GLOBALS['pagenow'] == 'plugins.php' );
@@ -390,7 +386,7 @@ class Antispam_Bee {
390
  public static function load_plugin_lang()
391
  {
392
  load_plugin_textdomain(
393
- self::$short,
394
  false,
395
  'antispam-bee/lang'
396
  );
@@ -418,7 +414,7 @@ class Antispam_Bee {
418
  '<a href="%s">%s</a>',
419
  add_query_arg(
420
  array(
421
- 'page' => self::$short
422
  ),
423
  admin_url('options-general.php')
424
  ),
@@ -443,7 +439,7 @@ class Antispam_Bee {
443
  public static function init_row_meta($input, $file)
444
  {
445
  /* Rechte */
446
- if ( $file != self::$base ) {
447
  return $input;
448
  }
449
 
@@ -466,14 +462,14 @@ class Antispam_Bee {
466
 
467
  public static function init_admin_notice() {
468
  /* Alles klar? */
469
- if ( self::_is_version($GLOBALS['wp_version'], '3.3') && self::_is_version(phpversion(), '5.1.2') ) {
470
  return;
471
  }
472
 
473
  /* Warnung */
474
  echo sprintf(
475
  '<div class="error"><p>%s</p></div>',
476
- esc_html__('Antispam Bee requires WordPress 3.3 and PHP 5.1.2', self::$short)
477
  );
478
  }
479
 
@@ -509,7 +505,7 @@ class Antispam_Bee {
509
  * Registrierung von Ressourcen (CSS & JS)
510
  *
511
  * @since 1.6
512
- * @change 2.4.4
513
  */
514
 
515
  public static function init_plugin_sources()
@@ -521,7 +517,7 @@ class Antispam_Bee {
521
  wp_register_script(
522
  'ab_script',
523
  plugins_url('js/scripts.min.js', __FILE__),
524
- array('jquery', 'jquery-ui-core', 'jquery-ui-tabs'),
525
  $plugin['Version']
526
  );
527
 
@@ -549,7 +545,7 @@ class Antispam_Bee {
549
  'Antispam Bee',
550
  'Antispam Bee',
551
  'manage_options',
552
- self::$short,
553
  array(
554
  'Antispam_Bee_GUI',
555
  'options_page'
@@ -652,7 +648,7 @@ class Antispam_Bee {
652
  <td class="last t">%s</td>
653
  </tr>',
654
  esc_html( self::_get_spam_count() ),
655
- esc_html__('Blocked', self::$short)
656
  );
657
  }
658
 
@@ -759,7 +755,7 @@ class Antispam_Bee {
759
  foreach($items as $timestamp => $count) {
760
  array_push(
761
  $output['created'],
762
- ( $timestamp == strtotime('today', current_time('timestamp')) ? __('Today', self::$short) : date('d.m', $timestamp) )
763
  );
764
  array_push(
765
  $output['count'],
@@ -817,7 +813,7 @@ class Antispam_Bee {
817
  /* Ausgabe */
818
  echo sprintf(
819
  '<div id="ab_chart">%s</div>',
820
- ( empty($items) ? esc_html__('No data available.', self::$short) : '' )
821
  );
822
  }
823
 
@@ -840,14 +836,14 @@ class Antispam_Bee {
840
 
841
  public static function get_options()
842
  {
843
- if ( !$options = wp_cache_get(self::$short) ) {
844
  $options = wp_parse_args(
845
- get_option(self::$short),
846
- self::$default['options']
847
  );
848
 
849
  wp_cache_set(
850
- self::$short,
851
  $options
852
  );
853
  }
@@ -907,19 +903,19 @@ class Antispam_Bee {
907
  {
908
  /* Option zuweisen */
909
  $options = array_merge(
910
- (array)get_option(self::$short),
911
  $data
912
  );
913
 
914
  /* DB updaten */
915
  update_option(
916
- self::$short,
917
  $options
918
  );
919
 
920
  /* Cache updaten */
921
  wp_cache_set(
922
- self::$short,
923
  $options
924
  );
925
  }
@@ -1048,7 +1044,7 @@ class Antispam_Bee {
1048
  /* Allgemeine Werte */
1049
  $request_url = self::get_key($_SERVER, 'REQUEST_URI');
1050
  $hidden_field = self::get_key($_POST, 'comment');
1051
- $plugin_field = self::get_key($_POST, self::$secret);
1052
 
1053
  /* Falsch verbunden */
1054
  if ( empty($_POST) or empty($request_url) or strpos($request_url, 'wp-comments-post.php') === false ) {
@@ -1058,7 +1054,7 @@ class Antispam_Bee {
1058
  /* Felder prüfen */
1059
  if ( empty($hidden_field) && !empty($plugin_field) ) {
1060
  $_POST['comment'] = $plugin_field;
1061
- unset($_POST[self::$secret]);
1062
  } else {
1063
  $_POST['bee_spam'] = 1;
1064
  }
@@ -1175,7 +1171,7 @@ class Antispam_Bee {
1175
  /* Convert */
1176
  return preg_replace(
1177
  '#<textarea(.+?)name=["\']comment["\'](.+?)</textarea>#s',
1178
- '<textarea$1name="' .self::$secret. '"$2</textarea><textarea name="comment" style="display:none" rows="1" cols="1"></textarea>',
1179
  (string) $data,
1180
  1
1181
  );
@@ -1205,6 +1201,30 @@ class Antispam_Bee {
1205
  }
1206
 
1207
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1208
  /**
1209
  * Prüfung auf Mobile
1210
  *
@@ -1237,7 +1257,7 @@ class Antispam_Bee {
1237
 
1238
 
1239
  /**
1240
- * Prüfung einer IP auf ihre Existenz im Spam
1241
  *
1242
  * @since 2.0
1243
  * @change 2.4
@@ -1277,7 +1297,7 @@ class Antispam_Bee {
1277
  * Prüfung auf erlaubten Ländercodes
1278
  *
1279
  * @since 0.1
1280
- * @change 2.4.2
1281
  *
1282
  * @param string $ip IP-Adresse
1283
  * @return boolean TRUE bei unerwünschten Ländercodes
@@ -1316,10 +1336,11 @@ class Antispam_Bee {
1316
  $response = wp_remote_get(
1317
  esc_url_raw(
1318
  sprintf(
1319
- 'http://api.hostip.info/country.php?ip=%s',
 
1320
  $ip
1321
  ),
1322
- 'http'
1323
  )
1324
  );
1325
 
@@ -1347,52 +1368,31 @@ class Antispam_Bee {
1347
 
1348
 
1349
  /**
1350
- * Prüfung auf Honey Pot Spam
1351
  *
1352
- * @since 1.7
1353
- * @change 2.4
1354
  *
1355
  * @param string $ip IP-Adresse
1356
  * @return boolean TRUE bei gemeldeter IP
1357
  */
1358
 
1359
- private static function _is_honey_spam($ip)
1360
  {
1361
  /* Keine IP? */
1362
  if ( empty($ip) ) {
1363
  return true;
1364
  }
1365
 
1366
- /* Optionen */
1367
- $options = self::get_options();
1368
-
1369
- /* Kein Key? */
1370
- if ( empty($options['honey_key']) ) {
1371
  return false;
1372
  }
1373
-
1374
- /* Host */
1375
- $host = sprintf(
1376
- '%s.%s.dnsbl.httpbl.org',
1377
- $options['honey_key'],
1378
- implode(
1379
- '.',
1380
- array_reverse(
1381
- explode(
1382
- '.',
1383
- $ip
1384
- )
1385
- )
1386
- )
1387
- );
1388
-
1389
- /* Response */
1390
- $bits = explode(
1391
- '.',
1392
- gethostbyname($host)
1393
  );
1394
-
1395
- return ( $bits[0] == 127 && $bits[3] & 4 );
1396
  }
1397
 
1398
 
@@ -1400,7 +1400,7 @@ class Antispam_Bee {
1400
  * Prüfung der Trackbacks
1401
  *
1402
  * @since 2.4
1403
- * @change 2.4.2
1404
  *
1405
  * @param array $comment Daten des Trackbacks
1406
  * @return array Array mit dem Verdachtsgrund [optional]
@@ -1425,6 +1425,13 @@ class Antispam_Bee {
1425
  /* Optionen */
1426
  $options = self::get_options();
1427
 
 
 
 
 
 
 
 
1428
  /* IP != Server */
1429
  if ( $options['advanced_check'] && self::_is_fake_ip($ip, parse_url($url, PHP_URL_HOST)) ) {
1430
  return array(
@@ -1439,13 +1446,6 @@ class Antispam_Bee {
1439
  );
1440
  }
1441
 
1442
- /* Honey Pot */
1443
- if ( $options['honey_pot'] && self::_is_honey_spam($ip) ) {
1444
- return array(
1445
- 'reason' => 'honey'
1446
- );
1447
- }
1448
-
1449
  /* Country Code prüfen */
1450
  if ( $options['country_code'] && self::_is_spam_country($ip) ) {
1451
  return array(
@@ -1611,7 +1611,7 @@ class Antispam_Bee {
1611
  * Prüfung den Kommentar
1612
  *
1613
  * @since 2.4
1614
- * @change 2.4.3
1615
  *
1616
  * @param array $comment Daten des Kommentars
1617
  * @return array Array mit dem Verdachtsgrund [optional]
@@ -1655,6 +1655,13 @@ class Antispam_Bee {
1655
  );
1656
  }
1657
 
 
 
 
 
 
 
 
1658
  /* Erweiterter Schutz */
1659
  if ( $options['advanced_check'] && self::_is_fake_ip($ip) ) {
1660
  return array(
@@ -1669,13 +1676,6 @@ class Antispam_Bee {
1669
  );
1670
  }
1671
 
1672
- /* Honey Pot */
1673
- if ( $options['honey_pot'] && self::_is_honey_spam($ip) ) {
1674
- return array(
1675
- 'reason' => 'honey'
1676
- );
1677
- }
1678
-
1679
  /* Country Code prüfen */
1680
  if ( $options['country_code'] && self::_is_spam_country($ip) ) {
1681
  return array(
@@ -1738,7 +1738,7 @@ class Antispam_Bee {
1738
  }
1739
 
1740
  /* Spam-Grund */
1741
- self::$reason = $reason;
1742
 
1743
  /* Spam markieren */
1744
  add_filter(
@@ -1770,7 +1770,7 @@ class Antispam_Bee {
1770
  if ( $spam_notice ) {
1771
  $comment['comment_content'] = sprintf(
1772
  '[MARKED AS SPAM BY ANTISPAM BEE | %s]%s%s',
1773
- self::$default['reasons'][self::$reason],
1774
  "\n",
1775
  $comment['comment_content']
1776
  );
@@ -1820,21 +1820,21 @@ class Antispam_Bee {
1820
  $subject = sprintf(
1821
  '[%s] %s',
1822
  get_bloginfo('name'),
1823
- __('Comment marked as spam', self::$short)
1824
  );
1825
 
1826
  /* Content */
1827
  if ( !$content = strip_tags(stripslashes($comment['comment_content'])) ) {
1828
  $content = sprintf(
1829
  '-- %s --',
1830
- __('Content removed by Antispam Bee', self::$short)
1831
  );
1832
  }
1833
 
1834
  /* Body */
1835
  $body = sprintf(
1836
  "%s \"%s\"\r\n\r\n",
1837
- __('New spam comment on your post', self::$short),
1838
  strip_tags($post->post_title)
1839
  ).sprintf(
1840
  "%s: %s\r\n",
@@ -1845,15 +1845,15 @@ class Antispam_Bee {
1845
  esc_url($comment['comment_author_url']) /* empty check exists */
1846
  ).sprintf(
1847
  "%s: %s\r\n",
1848
- __('Type', self::$short),
1849
- __( ( empty($comment['comment_type']) ? 'Comment' : 'Trackback' ), self::$short )
1850
  ).sprintf(
1851
  "Whois: http://whois.arin.net/rest/ip/%s\r\n",
1852
  $comment['comment_author_IP']
1853
  ).sprintf(
1854
  "%s: %s\r\n\r\n",
1855
- __('Spam Reason', self::$short),
1856
- __(self::$default['reasons'][self::$reason], self::$short)
1857
  ).sprintf(
1858
  "%s\r\n\r\n\r\n",
1859
  $content
@@ -1861,28 +1861,28 @@ class Antispam_Bee {
1861
  EMPTY_TRASH_DAYS ? (
1862
  sprintf(
1863
  "%s: %s\r\n",
1864
- __('Trash it', self::$short),
1865
  admin_url('comment.php?action=trash&c=' .$id)
1866
  )
1867
  ) : (
1868
  sprintf(
1869
  "%s: %s\r\n",
1870
- __('Delete it', self::$short),
1871
  admin_url('comment.php?action=delete&c=' .$id)
1872
  )
1873
  )
1874
  ).sprintf(
1875
  "%s: %s\r\n",
1876
- __('Approve it', self::$short),
1877
  admin_url('comment.php?action=approve&c=' .$id)
1878
  ).sprintf(
1879
  "%s: %s\r\n\r\n",
1880
- __('Spam list', self::$short),
1881
  admin_url('edit-comments.php?comment_status=spam')
1882
  ).sprintf(
1883
  "%s\r\n%s\r\n",
1884
- __('Notify message by Antispam Bee', self::$short),
1885
- __('http://antispambee.com', self::$short)
1886
  );
1887
 
1888
  /* Send */
7
  Author: Sergej M&uuml;ller
8
  Author URI: http://wpcoder.de
9
  Plugin URI: http://antispambee.com
10
+ Version: 2.4.6
11
  */
12
 
13
 
28
 
29
 
30
  /* Init */
31
+ public static $defaults;
32
+ private static $_base;
33
+ private static $_secret;
34
+ private static $_reason;
 
35
 
36
 
37
  /**
47
  if ( (defined('DOING_AJAX') && DOING_AJAX) or (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) ) {
48
  return;
49
  }
50
+
51
  /* Initialisierung */
52
  self::_init_internal_vars();
53
+
54
  /* Cronjob */
55
  if ( defined('DOING_CRON') ) {
56
  add_action(
122
  2
123
  );
124
  add_filter(
125
+ 'plugin_action_links_' .self::$_base,
126
  array(
127
  __CLASS__,
128
  'init_action_links'
211
  {
212
  /* Option anlegen */
213
  add_option(
214
+ 'antispam_bee',
215
  array(),
216
  '',
217
  'no'
268
  * Initialisierung der internen Variablen
269
  *
270
  * @since 2.4
271
+ * @change 2.4.5
272
  */
273
 
274
  private static function _init_internal_vars()
275
  {
276
+ self::$_base = plugin_basename(__FILE__);
277
+ self::$_secret = substr(md5(get_bloginfo('url')), 0, 5). '-comment';
 
278
 
279
+ self::$defaults = array(
280
  'options' => array(
281
  /* Allgemein */
282
  'advanced_check' => 1,
296
  'translate_api' => 0,
297
  'translate_lang' => '',
298
 
299
+ 'dnsbl_check' => 1,
 
300
 
301
  /* Erweitert */
302
  'flag_spam' => 1,
307
 
308
  'ignore_filter' => 0,
309
  'ignore_type' => 0,
 
310
 
311
+ 'reasons_enable' => 0,
312
+ 'ignore_reasons' => array()
313
  ),
314
  'reasons' => array(
315
  'css' => 'CSS Hack',
317
  'server' => 'Server IP',
318
  'spamip' => 'Spam IP',
319
  'country' => 'Country Check',
320
+ 'dnsbl' => 'DNSBL Spam',
321
  'lang' => 'Comment Language'
322
  )
323
  );
362
  return ( empty($GLOBALS['pagenow']) or ( !empty($GLOBALS['pagenow']) && $GLOBALS['pagenow'] == 'index.php' ) );
363
 
364
  case 'options':
365
+ return ( !empty($_REQUEST['page']) && $_REQUEST['page'] == 'antispam_bee' );
366
 
367
  case 'plugins':
368
  return ( !empty($GLOBALS['pagenow']) && $GLOBALS['pagenow'] == 'plugins.php' );
386
  public static function load_plugin_lang()
387
  {
388
  load_plugin_textdomain(
389
+ 'antispam_bee',
390
  false,
391
  'antispam-bee/lang'
392
  );
414
  '<a href="%s">%s</a>',
415
  add_query_arg(
416
  array(
417
+ 'page' => 'antispam_bee'
418
  ),
419
  admin_url('options-general.php')
420
  ),
439
  public static function init_row_meta($input, $file)
440
  {
441
  /* Rechte */
442
+ if ( $file != self::$_base ) {
443
  return $input;
444
  }
445
 
462
 
463
  public static function init_admin_notice() {
464
  /* Alles klar? */
465
+ if ( self::_is_version($GLOBALS['wp_version'], '3.4') && self::_is_version(phpversion(), '5.1.2') ) {
466
  return;
467
  }
468
 
469
  /* Warnung */
470
  echo sprintf(
471
  '<div class="error"><p>%s</p></div>',
472
+ esc_html__('Antispam Bee requires WordPress 3.4 and PHP 5.1.2', 'antispam_bee')
473
  );
474
  }
475
 
505
  * Registrierung von Ressourcen (CSS & JS)
506
  *
507
  * @since 1.6
508
+ * @change 2.4.5
509
  */
510
 
511
  public static function init_plugin_sources()
517
  wp_register_script(
518
  'ab_script',
519
  plugins_url('js/scripts.min.js', __FILE__),
520
+ array('jquery'),
521
  $plugin['Version']
522
  );
523
 
545
  'Antispam Bee',
546
  'Antispam Bee',
547
  'manage_options',
548
+ 'antispam_bee',
549
  array(
550
  'Antispam_Bee_GUI',
551
  'options_page'
648
  <td class="last t">%s</td>
649
  </tr>',
650
  esc_html( self::_get_spam_count() ),
651
+ esc_html__('Blocked', 'antispam_bee')
652
  );
653
  }
654
 
755
  foreach($items as $timestamp => $count) {
756
  array_push(
757
  $output['created'],
758
+ ( $timestamp == strtotime('today', current_time('timestamp')) ? __('Today', 'antispam_bee') : date('d.m', $timestamp) )
759
  );
760
  array_push(
761
  $output['count'],
813
  /* Ausgabe */
814
  echo sprintf(
815
  '<div id="ab_chart">%s</div>',
816
+ ( empty($items) ? esc_html__('No data available.', 'antispam_bee') : '' )
817
  );
818
  }
819
 
836
 
837
  public static function get_options()
838
  {
839
+ if ( !$options = wp_cache_get('antispam_bee') ) {
840
  $options = wp_parse_args(
841
+ get_option('antispam_bee'),
842
+ self::$defaults['options']
843
  );
844
 
845
  wp_cache_set(
846
+ 'antispam_bee',
847
  $options
848
  );
849
  }
903
  {
904
  /* Option zuweisen */
905
  $options = array_merge(
906
+ (array)get_option('antispam_bee'),
907
  $data
908
  );
909
 
910
  /* DB updaten */
911
  update_option(
912
+ 'antispam_bee',
913
  $options
914
  );
915
 
916
  /* Cache updaten */
917
  wp_cache_set(
918
+ 'antispam_bee',
919
  $options
920
  );
921
  }
1044
  /* Allgemeine Werte */
1045
  $request_url = self::get_key($_SERVER, 'REQUEST_URI');
1046
  $hidden_field = self::get_key($_POST, 'comment');
1047
+ $plugin_field = self::get_key($_POST, self::$_secret);
1048
 
1049
  /* Falsch verbunden */
1050
  if ( empty($_POST) or empty($request_url) or strpos($request_url, 'wp-comments-post.php') === false ) {
1054
  /* Felder prüfen */
1055
  if ( empty($hidden_field) && !empty($plugin_field) ) {
1056
  $_POST['comment'] = $plugin_field;
1057
+ unset($_POST[self::$_secret]);
1058
  } else {
1059
  $_POST['bee_spam'] = 1;
1060
  }
1171
  /* Convert */
1172
  return preg_replace(
1173
  '#<textarea(.+?)name=["\']comment["\'](.+?)</textarea>#s',
1174
+ '<textarea$1name="' .self::$_secret. '"$2</textarea><textarea name="comment" style="display:none" rows="1" cols="1"></textarea>',
1175
  (string) $data,
1176
  1
1177
  );
1201
  }
1202
 
1203
 
1204
+ /**
1205
+ * Dreht die IP-Adresse
1206
+ *
1207
+ * @since 2.4.5
1208
+ * @change 2.4.5
1209
+ *
1210
+ * @param string $ip IP-Adresse
1211
+ * @return string Gedrehte IP-Adresse
1212
+ */
1213
+
1214
+ private static function _reverse_ip($ip)
1215
+ {
1216
+ return implode(
1217
+ '.',
1218
+ array_reverse(
1219
+ explode(
1220
+ '.',
1221
+ $ip
1222
+ )
1223
+ )
1224
+ );
1225
+ }
1226
+
1227
+
1228
  /**
1229
  * Prüfung auf Mobile
1230
  *
1257
 
1258
 
1259
  /**
1260
+ * Prüfung einer IP auf ihre Existenz im lokalen Spam
1261
  *
1262
  * @since 2.0
1263
  * @change 2.4
1297
  * Prüfung auf erlaubten Ländercodes
1298
  *
1299
  * @since 0.1
1300
+ * @change 2.4.5
1301
  *
1302
  * @param string $ip IP-Adresse
1303
  * @return boolean TRUE bei unerwünschten Ländercodes
1336
  $response = wp_remote_get(
1337
  esc_url_raw(
1338
  sprintf(
1339
+ 'https://geoip.maxmind.com/a?l=%s&i=%s',
1340
+ strrev('1Lbn0ZsL08e1'),
1341
  $ip
1342
  ),
1343
+ 'https'
1344
  )
1345
  );
1346
 
1368
 
1369
 
1370
  /**
1371
+ * Prüfung auf DNSBL Spam
1372
  *
1373
+ * @since 2.4.5
1374
+ * @change 2.4.5
1375
  *
1376
  * @param string $ip IP-Adresse
1377
  * @return boolean TRUE bei gemeldeter IP
1378
  */
1379
 
1380
+ private static function _is_dnsbl_spam($ip)
1381
  {
1382
  /* Keine IP? */
1383
  if ( empty($ip) ) {
1384
  return true;
1385
  }
1386
 
1387
+ /* Funktionscheck */
1388
+ if ( ! function_exists('checkdnsrr') ) {
 
 
 
1389
  return false;
1390
  }
1391
+
1392
+ return (bool) checkdnsrr(
1393
+ self::_reverse_ip($ip). '.opm.tornevall.org.',
1394
+ 'A'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1395
  );
 
 
1396
  }
1397
 
1398
 
1400
  * Prüfung der Trackbacks
1401
  *
1402
  * @since 2.4
1403
+ * @change 2.4.5
1404
  *
1405
  * @param array $comment Daten des Trackbacks
1406
  * @return array Array mit dem Verdachtsgrund [optional]
1425
  /* Optionen */
1426
  $options = self::get_options();
1427
 
1428
+ /* DNSBL Spam */
1429
+ if ( $options['dnsbl_check'] && self::_is_dnsbl_spam($ip) ) {
1430
+ return array(
1431
+ 'reason' => 'dnsbl'
1432
+ );
1433
+ }
1434
+
1435
  /* IP != Server */
1436
  if ( $options['advanced_check'] && self::_is_fake_ip($ip, parse_url($url, PHP_URL_HOST)) ) {
1437
  return array(
1446
  );
1447
  }
1448
 
 
 
 
 
 
 
 
1449
  /* Country Code prüfen */
1450
  if ( $options['country_code'] && self::_is_spam_country($ip) ) {
1451
  return array(
1611
  * Prüfung den Kommentar
1612
  *
1613
  * @since 2.4
1614
+ * @change 2.4.5
1615
  *
1616
  * @param array $comment Daten des Kommentars
1617
  * @return array Array mit dem Verdachtsgrund [optional]
1655
  );
1656
  }
1657
 
1658
+ /* DNSBL Spam */
1659
+ if ( $options['dnsbl_check'] && self::_is_dnsbl_spam($ip) ) {
1660
+ return array(
1661
+ 'reason' => 'dnsbl'
1662
+ );
1663
+ }
1664
+
1665
  /* Erweiterter Schutz */
1666
  if ( $options['advanced_check'] && self::_is_fake_ip($ip) ) {
1667
  return array(
1676
  );
1677
  }
1678
 
 
 
 
 
 
 
 
1679
  /* Country Code prüfen */
1680
  if ( $options['country_code'] && self::_is_spam_country($ip) ) {
1681
  return array(
1738
  }
1739
 
1740
  /* Spam-Grund */
1741
+ self::$_reason = $reason;
1742
 
1743
  /* Spam markieren */
1744
  add_filter(
1770
  if ( $spam_notice ) {
1771
  $comment['comment_content'] = sprintf(
1772
  '[MARKED AS SPAM BY ANTISPAM BEE | %s]%s%s',
1773
+ self::$defaults['reasons'][self::$_reason],
1774
  "\n",
1775
  $comment['comment_content']
1776
  );
1820
  $subject = sprintf(
1821
  '[%s] %s',
1822
  get_bloginfo('name'),
1823
+ __('Comment marked as spam', 'antispam_bee')
1824
  );
1825
 
1826
  /* Content */
1827
  if ( !$content = strip_tags(stripslashes($comment['comment_content'])) ) {
1828
  $content = sprintf(
1829
  '-- %s --',
1830
+ __('Content removed by Antispam Bee', 'antispam_bee')
1831
  );
1832
  }
1833
 
1834
  /* Body */
1835
  $body = sprintf(
1836
  "%s \"%s\"\r\n\r\n",
1837
+ __('New spam comment on your post', 'antispam_bee'),
1838
  strip_tags($post->post_title)
1839
  ).sprintf(
1840
  "%s: %s\r\n",
1845
  esc_url($comment['comment_author_url']) /* empty check exists */
1846
  ).sprintf(
1847
  "%s: %s\r\n",
1848
+ __('Type', 'antispam_bee'),
1849
+ __( ( empty($comment['comment_type']) ? 'Comment' : 'Trackback' ), 'antispam_bee' )
1850
  ).sprintf(
1851
  "Whois: http://whois.arin.net/rest/ip/%s\r\n",
1852
  $comment['comment_author_IP']
1853
  ).sprintf(
1854
  "%s: %s\r\n\r\n",
1855
+ __('Spam Reason', 'antispam_bee'),
1856
+ __(self::$defaults['reasons'][self::$_reason], 'antispam_bee')
1857
  ).sprintf(
1858
  "%s\r\n\r\n\r\n",
1859
  $content
1861
  EMPTY_TRASH_DAYS ? (
1862
  sprintf(
1863
  "%s: %s\r\n",
1864
+ __('Trash it', 'antispam_bee'),
1865
  admin_url('comment.php?action=trash&c=' .$id)
1866
  )
1867
  ) : (
1868
  sprintf(
1869
  "%s: %s\r\n",
1870
+ __('Delete it', 'antispam_bee'),
1871
  admin_url('comment.php?action=delete&c=' .$id)
1872
  )
1873
  )
1874
  ).sprintf(
1875
  "%s: %s\r\n",
1876
+ __('Approve it', 'antispam_bee'),
1877
  admin_url('comment.php?action=approve&c=' .$id)
1878
  ).sprintf(
1879
  "%s: %s\r\n\r\n",
1880
+ __('Spam list', 'antispam_bee'),
1881
  admin_url('edit-comments.php?comment_status=spam')
1882
  ).sprintf(
1883
  "%s\r\n%s\r\n",
1884
+ __('Notify message by Antispam Bee', 'antispam_bee'),
1885
+ __('http://antispambee.com', 'antispam_bee')
1886
  );
1887
 
1888
  /* Send */
css/styles.css CHANGED
@@ -1,11 +1,8 @@
1
  /* @group Icon */
2
 
3
  #icon-ab {
4
- top: -8px;
5
- left: 0;
6
  width: 32px;
7
  height: 32px;
8
- position: absolute;
9
  background: url('../img/icon@2x.png');
10
  background-size: 100%;
11
  }
@@ -13,165 +10,318 @@
13
  /* @end group */
14
 
15
 
16
- /* @group GUI */
17
 
18
- #ab_main {
19
- position: relative;
 
 
 
20
  }
21
- #ab_main .table {
22
- width: 460px;
23
- height: 1%;
24
- margin: 20px 0 0 -10px;
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  }
 
 
 
 
 
 
 
 
 
26
 
27
- #ab_main .hr {
28
- width: 283px;
29
- margin: 10px 0 10px 10px;
30
- border-top: 1px dotted #DFDFDF;
 
 
 
 
31
  }
32
 
33
- #ab_main .related tr {
34
- display: none;
 
 
 
 
 
 
 
 
 
35
  }
36
- #ab_main .related tr:first-child {
37
- display: table-row;
 
 
38
  }
39
 
40
- #ab_main .form-table {
 
 
 
 
 
41
  margin: 0;
 
 
 
 
42
  }
43
- #ab_main .form-table th {
44
- width: 250px;
45
- padding-top: 8px;
46
- vertical-align: middle;
47
- }
48
- #ab_main .form-table label {
49
- text-shadow: none;
 
 
50
  }
51
- #ab_main .form-table small {
52
- color: #aaa;
53
  }
54
- #ab_main .form-table .maxi-text,
55
- #ab_main .form-table .maxi-select {
56
- width: 160px;
57
  }
58
- #ab_main .form-table .mini-select option {
59
- padding-right: 6px;
60
  }
61
 
62
- #ab_main select[multiple] {
63
- height: 110px;
 
 
 
 
 
64
  }
65
 
66
- #ab_main .submit {
67
- width: 431px;
68
- height: 1%;
69
- margin: 20px 0 0;
70
- padding: 15px 0 0;
71
- overflow: hidden;
72
- border-top: 1px solid #bebebe;
 
 
 
 
 
 
 
73
  }
74
- #ab_main .submit .meta {
75
- float: left;
76
- margin: 0;
 
 
 
 
 
 
77
  }
78
- #ab_main .submit .meta a {
79
- color: #bebebe;
 
 
 
 
 
80
  display: inline-block;
81
  font-size: 11px;
82
- line-height: 23px;
83
  }
84
- #ab_main .submit .meta a:before {
85
- margin: 0 4px;
86
- content: '|';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  display: inline-block;
 
 
 
88
  }
89
- #ab_main .submit .meta a:first-child:before {
90
- margin: 0;
 
 
 
 
 
 
 
 
 
 
 
91
  content: '';
 
92
  }
93
- #ab_main .submit .button-primary {
94
- float: right;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95
  }
96
 
97
  /* @end group */
98
 
99
 
100
- /* @group Tabs */
101
 
102
- #ab_main .nav-tab-wrapper {
103
- height: 35px;
104
- margin: 13px 0 0;
105
- padding: 0 0 0 44px;
106
- border-bottom: 1px solid #ccc;
107
  }
108
- #ab_main .nav-tab-wrapper li {
109
- float: left;
110
  margin: 0;
111
- padding: 0;
112
- }
113
- #ab_main .nav-tab-wrapper h2 {
114
- padding: 0;
115
- }
116
- #ab_main .nav-tab-wrapper a {
117
- color: #AAA;
118
  height: 24px;
119
  }
120
- #ab_main .ui-tabs-active a,
121
- #ab_main .ui-tabs-selected a {
122
- color: #464646;
123
- border-color: #ccc;
124
- border-bottom: 1px solid #fff;
125
  }
126
- .ui-tabs .ui-tabs-hide {
127
- display: none;
 
 
 
 
 
 
128
  }
129
 
130
  /* @end group */
131
 
132
 
133
- /* @group Alert */
134
 
135
- #message {
 
136
  display: none;
137
  }
138
- #setting-error-settings_updated {
139
- top: 0;
140
- right: 0;
141
- margin: 0;
142
- padding: 1px 10px 0;
143
- position: absolute;
144
-
145
- animation: blink 1s cubic-bezier(1, 0, 0, 1) 2;
146
- -moz-animation: blink 1s cubic-bezier(1, 0, 0, 1) 2;
147
- -webkit-animation: blink 1s cubic-bezier(1, 0, 0, 1) 2;
148
  }
149
- #setting-error-settings_updated p {
150
- padding: 0;
 
 
 
 
 
 
151
  }
152
 
153
- @keyframes blink {
154
- from {
155
- opacity: 1;
156
- }
157
- to {
158
- opacity: 0;
159
- }
160
  }
161
- @-moz-keyframes blink {
162
- from {
163
- opacity: 1;
164
- }
165
- to {
166
- opacity: 0;
 
 
 
167
  }
168
  }
169
- @-webkit-keyframes blink {
170
- from {
171
- opacity: 1;
172
- }
173
- to {
174
- opacity: 0;
175
  }
176
  }
177
 
1
  /* @group Icon */
2
 
3
  #icon-ab {
 
 
4
  width: 32px;
5
  height: 32px;
 
6
  background: url('../img/icon@2x.png');
7
  background-size: 100%;
8
  }
10
  /* @end group */
11
 
12
 
13
+ /* @group Webfont */
14
 
15
+ @font-face {
16
+ font-family: 'fontello';
17
+ src: url('../font/fontello.woff') format('woff');
18
+ font-weight: normal;
19
+ font-style: normal;
20
  }
21
+
22
+ /* @end group */
23
+
24
+
25
+ /* @group Allgemein */
26
+
27
+ .ab-main *,
28
+ .ab-main *:after,
29
+ .ab-main *:before {
30
+ border: 0;
31
+ margin: 0;
32
+ padding: 0;
33
+ outline: 0;
34
+
35
+ -webkit-box-sizing: border-box;
36
+ -moz-box-sizing: border-box;
37
+ box-sizing: border-box;
38
  }
39
+ .ab-main,
40
+ .ab-main input,
41
+ .ab-main select {
42
+ font-family: sans-serif;
43
+ font-size: 12px;
44
+ line-height: 16px;
45
+ }
46
+
47
+ /* @end group */
48
 
49
+
50
+ /* @group Browse Happy */
51
+
52
+ .browsehappy {
53
+ margin: 0 0 20px;
54
+ padding: 10px;
55
+ border: 1px solid #e66f00;
56
+ text-align: center;
57
  }
58
 
59
+ /* @end group */
60
+
61
+
62
+ /* @group Spalten */
63
+
64
+ .ab-wrap {
65
+ color: #2f353e;
66
+ height: 1%;
67
+ overflow: hidden;
68
+ padding: 20px 0 0 6px;
69
+ text-rendering: optimizeLegibility;
70
  }
71
+ .ab-column {
72
+ float: left;
73
+ margin: 0 20px 0 0;
74
+ position: relative;
75
  }
76
 
77
+ /* @end group */
78
+
79
+
80
+ /* @group Überschriften + Icons */
81
+
82
+ .ab-column h3 {
83
  margin: 0;
84
+ font-size: 14px;
85
+ font-weight: normal;
86
+ line-height: 20px;
87
+ text-transform: uppercase;
88
  }
89
+ .ab-column h3.icon:before {
90
+ font: normal 30px/30px fontello;
91
+ top: 4px;
92
+ right: 20px;
93
+ speak: none;
94
+ width: 1em;
95
+ color: #8e959c;
96
+ position: absolute;
97
+ text-align: center;
98
  }
99
+ .ab-column.ab-arrow h3.icon:before {
100
+ content: '\2387';
101
  }
102
+ .ab-column.ab-join h3.icon:before {
103
+ content: '\e795';
 
104
  }
105
+ .ab-column.ab-diff h3.icon:before {
106
+ content: '\e73c';
107
  }
108
 
109
+ .ab-column h6 {
110
+ clear: both;
111
+ color: #8e959c;
112
+ margin: 0 0 20px;
113
+ font-size: 10px;
114
+ font-weight: normal;
115
+ text-transform: uppercase;
116
  }
117
 
118
+ /* @end group */
119
+
120
+
121
+ /* @group Formular */
122
+
123
+ .ab-column input[type="text"],
124
+ .ab-column select {
125
+ text-align: center;
126
+ font-size: 11px;
127
+ height: 15px;
128
+ margin: 0 2px;
129
+ border: 0;
130
+ border-bottom: 1px solid;
131
+ background: #f8f8f9;
132
  }
133
+ .ab-column select {
134
+ height: 18px;
135
+ }
136
+ .ab-column select[multiple] {
137
+ width: 120px;
138
+ height: 45px;
139
+ }
140
+ .ab-column input.ab-mini-field {
141
+ width: 30px;
142
  }
143
+ .ab-column input.ab-medium-field {
144
+ width: 120px;
145
+ }
146
+ .ab-column input[type="text"] + label,
147
+ .ab-column select + label {
148
+ color: #8e959c;
149
+ margin: 0 0 0 7px;
150
  display: inline-block;
151
  font-size: 11px;
152
+ text-transform: uppercase;
153
  }
154
+
155
+ /* @end group */
156
+
157
+
158
+ /* @group Spalteninhalte */
159
+
160
+ .ab-column > ul {
161
+ padding: 0 20px 0 0;
162
+ border-right: 1px solid #f8f8f9;
163
+ }
164
+ .ab-column:last-of-type > ul {
165
+ border: 0;
166
+ }
167
+ .ab-column > ul > li {
168
+ width: 330px;
169
+ margin: 0 0 36px;
170
+ border: 1px solid #e0e5e9;
171
+ padding: 10px 0 12px 20px;
172
+ position: relative;
173
+ background: #fff;
174
+ list-style: none;
175
+ box-shadow: 0 0 0 0 #fff, 0 0 0 3px #f8f8f9;
176
+
177
+ -webkit-border-radius: 3px;
178
+ -moz-border-radius: 3px;
179
+ border-radius: 3px;
180
+ }
181
+
182
+ .ab-column > ul > li a {
183
+ color: inherit;
184
+ text-decoration: none;
185
+ border-bottom: 1px dotted #e0e5e9;
186
+ }
187
+ .ab-column > ul > li a:hover {
188
+ border-color: inherit;
189
+ }
190
+
191
+ .ab-column > ul > li input[type="checkbox"] {
192
+ float: left;
193
+ margin: 10px 10px 0 0;
194
+ }
195
+ .ab-column > ul > li label {
196
+ cursor: default;
197
  display: inline-block;
198
+ padding: 0 0 0 10px;
199
+ overflow: hidden;
200
+ border-left: 1px solid #f8f8f9;
201
  }
202
+ .ab-column > ul > li label span {
203
+ color: #8e959c;
204
+ display: block;
205
+ }
206
+
207
+ /* @end group */
208
+
209
+
210
+ /* @group Trenner */
211
+
212
+ .ab-column > ul > li:after,
213
+ .ab-column > ul > li:before {
214
+ width: 0;
215
  content: '';
216
+ position: absolute;
217
  }
218
+ .ab-column.ab-arrow > ul > li:before {
219
+ left: 165px;
220
+ bottom: -24px;
221
+ border-width: 10px 10px 0;
222
+ border-color: #e0e5e9 transparent;
223
+ border-style: solid;
224
+ }
225
+ .ab-column.ab-arrow > ul > li:after {
226
+ left: 166px;
227
+ bottom: -22px;
228
+ border-width: 9px 9px 0;
229
+ border-color: #fff transparent;
230
+ border-style: solid;
231
+ }
232
+
233
+ .ab-column.ab-join > ul > li:before {
234
+ left: 175px;
235
+ bottom: -29px;
236
+ height: 20px;
237
+ border-right: 1px solid #e0e5e9;
238
+ }
239
+
240
+ .ab-column.ab-diff > ul > li:before {
241
+ left: 165px;
242
+ bottom: -20px;
243
+ width: 20px;
244
+ height: 0;
245
+ border-bottom: 1px solid #e0e5e9;
246
  }
247
 
248
  /* @end group */
249
 
250
 
251
+ /* @group Submit-Zeile */
252
 
253
+ .ab-column.ab-submit {
254
+ width: 352px;
255
+ margin: 56px 41px 0 0;
256
+ padding: 30px 0;
257
+ border-top: 1px solid #e0e5e9;;
258
  }
259
+ .ab-column.ab-submit > p {
260
+ float: right;
261
  margin: 0;
 
 
 
 
 
 
 
262
  height: 24px;
263
  }
264
+ .ab-column.ab-submit > p > a {
265
+ float: left;
266
+ line-height: 24px;
 
 
267
  }
268
+ .ab-column.ab-submit > p > a:before {
269
+ margin: 0 4px;
270
+ content: '|';
271
+ display: inline-block;
272
+ }
273
+ .ab-column.ab-submit > p > a:first-child:before {
274
+ margin: 0;
275
+ content: '';
276
  }
277
 
278
  /* @end group */
279
 
280
 
281
+ /* @group 2. Ebene */
282
 
283
+ .ab-column > ul > li:last-of-type:after,
284
+ .ab-column > ul > li:last-of-type:before {
285
  display: none;
286
  }
287
+
288
+ .ab-column > ul > li > ul {
289
+ margin: 10px 10px 0 33px;
290
+ display: none;
291
+ list-style: none;
 
 
 
 
 
292
  }
293
+ .ab-column > ul > li > ul li {
294
+ padding: 2px 0;
295
+ }
296
+ .ab-column > ul > li > ul label {
297
+ margin: 0 0 0 7px;
298
+ }
299
+ .ab-column > ul > li > input[type="checkbox"]:checked + ul {
300
+ display: block;
301
  }
302
 
303
+ /* @end group */
304
+
305
+
306
+ /* @group Updated-Fix */
307
+
308
+ .settings_page_antispam_bee #setting-error-settings_updated + form {
309
+ margin: -20px 0 0;
310
  }
311
+
312
+ /* @end group */
313
+
314
+
315
+ /* @group Media Queries */
316
+
317
+ @media (min-width: 1252px) {
318
+ .ab-diff > ul {
319
+ border: 0;
320
  }
321
  }
322
+ @media (-webkit-min-device-pixel-ratio: 2) {
323
+ .ab-column select {
324
+ height: 15px;
 
 
 
325
  }
326
  }
327
 
css/styles.min.css CHANGED
@@ -1 +1 @@
1
- #icon-ab{top:-8px;left:0;width:32px;height:32px;position:absolute;background:url('../img/icon@2x.png');background-size:100%;}#ab_main{position:relative;}#ab_main .table{width:460px;height:1%;margin:20px 0 0 -10px;}#ab_main .hr{width:283px;margin:10px 0 10px 10px;border-top:1px dotted #dfdfdf;}#ab_main .related tr{display:none;}#ab_main .related tr:first-child{display:table-row;}#ab_main .form-table{margin:0;}#ab_main .form-table th{width:250px;padding-top:8px;vertical-align:middle;}#ab_main .form-table label{text-shadow:none;}#ab_main .form-table small{color:#aaa;}#ab_main .form-table .maxi-text,#ab_main .form-table .maxi-select{width:160px;}#ab_main .form-table .mini-select option{padding-right:6px;}#ab_main select[multiple]{height:110px;}#ab_main .submit{width:431px;height:1%;margin:20px 0 0;padding:15px 0 0;overflow:hidden;border-top:1px solid #bebebe;}#ab_main .submit .meta{float:left;margin:0;}#ab_main .submit .meta a{color:#bebebe;display:inline-block;font-size:11px;line-height:23px;}#ab_main .submit .meta a:before{margin:0 4px;content:'|';display:inline-block;}#ab_main .submit .meta a:first-child:before{margin:0;content:'';}#ab_main .submit .button-primary{float:right;}#ab_main .nav-tab-wrapper{height:35px;margin:13px 0 0;padding:0 0 0 44px;border-bottom:1px solid #ccc;}#ab_main .nav-tab-wrapper li{float:left;margin:0;padding:0;}#ab_main .nav-tab-wrapper h2{padding:0;}#ab_main .nav-tab-wrapper a{color:#AAA;height:24px;}#ab_main .ui-tabs-active a,#ab_main .ui-tabs-selected a{color:#464646;border-color:#ccc;border-bottom:1px solid #fff;}.ui-tabs .ui-tabs-hide{display:none;}#message{display:none;}#setting-error-settings_updated{top:0;right:0;margin:0;padding:1px 10px 0;position:absolute;animation:blink 1s cubic-bezier(1,0,0,1) 2;-moz-animation:blink 1s cubic-bezier(1,0,0,1) 2;-webkit-animation:blink 1s cubic-bezier(1,0,0,1) 2;}#setting-error-settings_updated p{padding:0;}@keyframes blink{from{opacity:1;}to{opacity:0;}}@-moz-keyframes blink{from{opacity:1;}to{opacity:0;}}@-webkit-keyframes blink{from{opacity:1;}to{opacity:0;}}
1
+ #icon-ab{width:32px;height:32px;background:url('../img/icon@2x.png');background-size:100%}@font-face{font-family:'fontello';src:url('../font/fontello.woff') format('woff');font-weight:normal;font-style:normal}.ab-main *,.ab-main *:after,.ab-main *:before{border:0;margin:0;padding:0;outline:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ab-main,.ab-main input,.ab-main select{font-family:sans-serif;font-size:12px;line-height:16px}.browsehappy{margin:0 0 20px;padding:10px;border:1px solid #e66f00;text-align:center}.ab-wrap{color:#2f353e;height:1%;overflow:hidden;padding:20px 0 0 6px;text-rendering:optimizeLegibility}.ab-column{float:left;margin:0 20px 0 0;position:relative}.ab-column h3{margin:0;font-size:14px;font-weight:normal;line-height:20px;text-transform:uppercase}.ab-column h3.icon:before{font:normal 30px/30px fontello;top:4px;right:20px;speak:none;width:1em;color:#8e959c;position:absolute;text-align:center}.ab-column.ab-arrow h3.icon:before{content:'\2387'}.ab-column.ab-join h3.icon:before{content:'\e795'}.ab-column.ab-diff h3.icon:before{content:'\e73c'}.ab-column h6{clear:both;color:#8e959c;margin:0 0 20px;font-size:10px;font-weight:normal;text-transform:uppercase}.ab-column input[type="text"],.ab-column select{text-align:center;font-size:11px;height:15px;margin:0 2px;border:0;border-bottom:1px solid;background:#f8f8f9}.ab-column select{height:18px}.ab-column select[multiple]{width:120px;height:45px}.ab-column input.ab-mini-field{width:30px}.ab-column input.ab-medium-field{width:120px}.ab-column input[type="text"]+label,.ab-column select+label{color:#8e959c;margin:0 0 0 7px;display:inline-block;font-size:11px;text-transform:uppercase}.ab-column>ul{padding:0 20px 0 0;border-right:1px solid #f8f8f9}.ab-column:last-of-type>ul{border:0}.ab-column>ul>li{width:330px;margin:0 0 36px;border:1px solid #e0e5e9;padding:10px 0 12px 20px;position:relative;background:#fff;list-style:none;box-shadow:0 0 0 0 #fff,0 0 0 3px #f8f8f9;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.ab-column>ul>li a{color:inherit;text-decoration:none;border-bottom:1px dotted #e0e5e9}.ab-column>ul>li a:hover{border-color:inherit}.ab-column>ul>li input[type="checkbox"]{float:left;margin:10px 10px 0 0}.ab-column>ul>li label{cursor:default;display:inline-block;padding:0 0 0 10px;overflow:hidden;border-left:1px solid #f8f8f9}.ab-column>ul>li label span{color:#8e959c;display:block}.ab-column>ul>li:after,.ab-column>ul>li:before{width:0;content:'';position:absolute}.ab-column.ab-arrow>ul>li:before{left:165px;bottom:-24px;border-width:10px 10px 0;border-color:#e0e5e9 transparent;border-style:solid}.ab-column.ab-arrow>ul>li:after{left:166px;bottom:-22px;border-width:9px 9px 0;border-color:#fff transparent;border-style:solid}.ab-column.ab-join>ul>li:before{left:175px;bottom:-29px;height:20px;border-right:1px solid #e0e5e9}.ab-column.ab-diff>ul>li:before{left:165px;bottom:-20px;width:20px;height:0;border-bottom:1px solid #e0e5e9}.ab-column.ab-submit{width:352px;margin:56px 41px 0 0;padding:30px 0;border-top:1px solid #e0e5e9}.ab-column.ab-submit>p{float:right;margin:0;height:24px}.ab-column.ab-submit>p>a{float:left;line-height:24px}.ab-column.ab-submit>p>a:before{margin:0 4px;content:'|';display:inline-block}.ab-column.ab-submit>p>a:first-child:before{margin:0;content:''}.ab-column>ul>li:last-of-type:after,.ab-column>ul>li:last-of-type:before{display:none}.ab-column>ul>li>ul{margin:10px 10px 0 33px;display:none;list-style:none}.ab-column>ul>li>ul li{padding:2px 0}.ab-column>ul>li>ul label{margin:0 0 0 7px}.ab-column>ul>li>input[type="checkbox"]:checked+ul{display:block}.settings_page_antispam_bee #setting-error-settings_updated+form{margin:-20px 0 0}@media(min-width:1252px){.ab-diff>ul{border:0}}@media(-webkit-min-device-pixel-ratio:2){.ab-column select{height:15px}}
font/fontello.woff ADDED
Binary file
inc/gui.class.php CHANGED
@@ -20,7 +20,7 @@ class Antispam_Bee_GUI extends Antispam_Bee {
20
  * Speicherung der GUI
21
  *
22
  * @since 0.1
23
- * @change 2.4.2
24
  */
25
 
26
  public static function save_changes()
@@ -31,7 +31,7 @@ class Antispam_Bee_GUI extends Antispam_Bee {
31
  }
32
 
33
  /* Referer prüfen */
34
- check_admin_referer(self::$short);
35
 
36
  /* Optionen ermitteln */
37
  $options = array(
@@ -52,37 +52,25 @@ class Antispam_Bee_GUI extends Antispam_Bee {
52
  'ignore_pings' => (int)(!empty($_POST['ab_ignore_pings'])),
53
  'ignore_filter' => (int)(!empty($_POST['ab_ignore_filter'])),
54
  'ignore_type' => (int)self::get_key($_POST, 'ab_ignore_type'),
 
 
55
  'ignore_reasons' => (array)self::get_key($_POST, 'ab_ignore_reasons'),
56
 
57
- 'honey_pot' => (int)(!empty($_POST['ab_honey_pot'])),
58
- 'honey_key' => sanitize_text_field(self::get_key($_POST, 'ab_honey_key')),
59
-
60
  'country_code' => (int)(!empty($_POST['ab_country_code'])),
61
  'country_black' => sanitize_text_field(self::get_key($_POST, 'ab_country_black')),
62
  'country_white' => sanitize_text_field(self::get_key($_POST, 'ab_country_white')),
63
 
64
  'translate_api' => (int)(!empty($_POST['ab_translate_api'])),
65
- 'translate_lang' => sanitize_text_field(self::get_key($_POST, 'ab_translate_lang')),
66
-
67
- 'tab_index' => (int)self::get_key($_POST, 'ab_tab_index')
68
  );
69
 
70
- /* Kein Tag eingetragen? */
71
  if ( empty($options['cronjob_interval']) ) {
72
  $options['cronjob_enable'] = 0;
73
  }
74
-
75
- /* Honey Key reinigen */
76
- if ( !empty($options['honey_key']) ) {
77
- $options['honey_key'] = preg_replace(
78
- '/[^a-z]/',
79
- '',
80
- strtolower($options['honey_key'])
81
- );
82
- }
83
- if ( empty($options['honey_key']) ) {
84
- $options['honey_pot'] = 0;
85
- }
86
 
87
  /* Translate API */
88
  if ( !empty($options['translate_lang']) ) {
@@ -93,7 +81,11 @@ class Antispam_Bee_GUI extends Antispam_Bee {
93
  if ( empty($options['translate_lang']) ) {
94
  $options['translate_api'] = 0;
95
  }
96
-
 
 
 
 
97
 
98
  /* Blacklist reinigen */
99
  if ( !empty($options['country_black']) ) {
@@ -144,15 +136,31 @@ class Antispam_Bee_GUI extends Antispam_Bee {
144
 
145
 
146
  /**
147
- * Der aktive Tab
 
 
 
148
  *
149
- * @since 2.4
150
- * @change 2.4
 
 
151
  */
152
 
153
- private static function _tab_index()
154
  {
155
- echo ( empty($_GET['updated']) ? 0 : (int)self::get_option('tab_index') );
 
 
 
 
 
 
 
 
 
 
 
156
  }
157
 
158
 
@@ -165,307 +173,254 @@ class Antispam_Bee_GUI extends Antispam_Bee {
165
 
166
  function options_page() { ?>
167
  <div class="wrap" id="ab_main">
 
 
 
 
 
 
168
  <form action="<?php echo admin_url('admin-post.php') ?>" method="post">
169
- <?php $options = self::get_options() ?>
170
-
171
- <?php wp_nonce_field(self::$short) ?>
172
-
173
  <input type="hidden" name="action" value="ab_save_changes" />
174
- <input type="hidden" name="ab_tab_index" id="ab_tab_index" value="<?php self::_tab_index() ?>" />
175
 
176
- <?php screen_icon('ab') ?>
177
-
178
- <ul class="nav-tab-wrapper">
179
- <li>
180
- <h2><a href="#ab-tab-general" class="nav-tab"><?php esc_html_e('General', self::$short) ?></a></h2>
181
- </li>
182
- <li>
183
- <h2><a href="#ab-tab-filter" class="nav-tab"><?php esc_html_e('Filter', self::$short) ?></a></h2>
184
- </li>
185
- <li>
186
- <h2><a href="#ab-tab-advanced" class="nav-tab"><?php esc_html_e('Advanced', self::$short) ?></a></h2>
187
- </li>
188
- </ul>
189
 
190
- <!-- Allgemein -->
191
- <div class="table ui-tabs-hide" id="ab-tab-general">
192
- <table class="form-table">
193
- <tr>
194
- <th>
195
- <label for="ab_advanced_check">
196
- <?php esc_html_e('Stricter inspection for comments and pings', self::$short) ?>
197
- </label>
198
- </th>
199
- <td>
200
- <input type="checkbox" name="ab_advanced_check" id="ab_advanced_check" value="1" <?php checked($options['advanced_check'], 1) ?> />
201
- </td>
202
- </tr>
203
-
204
- <tr>
205
- <th>
206
- <label for="ab_spam_ip">
207
- <?php esc_html_e('Consider comments which are already marked as spam', self::$short) ?>
208
- </label>
209
- </th>
210
- <td>
211
- <input type="checkbox" name="ab_spam_ip" id="ab_spam_ip" value="1" <?php checked($options['spam_ip'], 1) ?> />
212
- </td>
213
- </tr>
214
 
215
- <tr>
216
- <th>
217
  <label for="ab_already_commented">
218
- <?php esc_html_e('Do not check if the comment author has already approved', self::$short) ?>
 
219
  </label>
220
- </th>
221
- <td>
222
  <input type="checkbox" name="ab_already_commented" id="ab_already_commented" value="1" <?php checked($options['already_commented'], 1) ?> />
223
- </td>
224
- </tr>
225
-
226
- <tr>
227
- <th>
228
- <label for="ab_ignore_pings">
229
- <?php esc_html_e('Do not check trackbacks / pingbacks', self::$short) ?>
230
- </label>
231
- </th>
232
- <td>
233
- <input type="checkbox" name="ab_ignore_pings" id="ab_ignore_pings" value="1" <?php checked($options['ignore_pings'], 1) ?> />
234
- </td>
235
- </tr>
236
-
237
- <tr>
238
- <th>
239
- <label for="ab_always_allowed">
240
- <?php esc_html_e('Comment form used outside of posts', self::$short) ?>
241
  </label>
242
- </th>
243
- <td>
244
- <input type="checkbox" name="ab_always_allowed" id="ab_always_allowed" value="1" <?php checked($options['always_allowed'], 1) ?> />
245
- </td>
246
- </tr>
247
- </table>
248
-
249
- <p class="hr"></p>
250
-
251
- <table class="form-table">
252
- <tr>
253
- <th>
254
- <label for="ab_dashboard_chart">
255
- <?php esc_html_e('Statistics on the dashboard', self::$short) ?>
256
  </label>
257
- </th>
258
- <td>
259
- <input type="checkbox" name="ab_dashboard_chart" id="ab_dashboard_chart" value="1" <?php checked($options['dashboard_chart'], 1) ?> />
260
- </td>
261
- </tr>
262
-
263
- <tr>
264
- <th>
265
- <label for="ab_dashboard_count">
266
- <?php esc_html_e('Spam counter on the dashboard', self::$short) ?>
267
  </label>
268
- </th>
269
- <td>
270
- <input type="checkbox" name="ab_dashboard_count" id="ab_dashboard_count" value="1" <?php checked($options['dashboard_count'], 1) ?> />
271
- </td>
272
- </tr>
273
- </table>
274
- </div>
275
-
276
-
277
- <!-- Filter -->
278
- <div class="table ui-tabs-hide" id="ab-tab-filter">
279
- <!-- IP info DB -->
280
- <table class="form-table related">
281
- <tr>
282
- <th>
283
  <label for="ab_country_code">
284
- <?php esc_html_e('Block comments and pings from specific countries', self::$short) ?>
 
285
  </label>
286
- </th>
287
- <td>
288
  <input type="checkbox" name="ab_country_code" id="ab_country_code" value="1" <?php checked($options['country_code'], 1) ?> />
289
- </td>
290
- </tr>
291
-
292
- <tr>
293
- <th>
294
- <label for="ab_country_black">
295
- <?php esc_html_e('Blacklist', self::$short) ?> <?php esc_html_e('as', self::$short) ?> <a href="http://www.iso.org/iso/country_names_and_code_elements" target="_blank"><?php esc_html_e('iso codes', self::$short) ?></a>
296
- </label>
297
- </th>
298
- <td>
299
- <input type="text" name="ab_country_black" id="ab_country_black" value="<?php echo esc_attr($options['country_black']); ?>" class="maxi-text code" />
300
- </td>
301
- </tr>
302
-
303
- <tr>
304
- <th>
305
- <label for="ab_country_white">
306
- <?php esc_html_e('Whitelist', self::$short) ?> <?php esc_html_e('as', self::$short) ?> <a href="http://www.iso.org/iso/country_names_and_code_elements" target="_blank"><?php esc_html_e('iso codes', self::$short) ?></a>
307
- </label>
308
- </th>
309
- <td>
310
- <input type="text" name="ab_country_white" id="ab_country_white" value="<?php echo esc_attr($options['country_white']); ?>" class="maxi-text code" />
311
- </td>
312
- </tr>
313
- </table>
314
-
315
- <p class="hr"></p>
316
-
317
- <!-- Translate API -->
318
- <table class="form-table related">
319
- <tr>
320
- <th>
321
  <label for="ab_translate_api">
322
- <?php esc_html_e('Allow comments only in certain language', self::$short) ?>
 
323
  </label>
324
- </th>
325
- <td>
326
  <input type="checkbox" name="ab_translate_api" id="ab_translate_api" value="1" <?php checked($options['translate_api'], 1) ?> />
327
- </td>
328
- </tr>
329
-
330
- <tr>
331
- <th>
332
- <label for="ab_translate_lang">
333
- <?php esc_html_e('Language', self::$short) ?>
334
- </label>
335
- </th>
336
- <td>
337
- <select name="ab_translate_lang" class="maxi-select">
338
- <?php foreach(array('de' => 'German', 'en' => 'English', 'fr' => 'French', 'it' => 'Italian', 'es' => 'Spanish') as $k => $v) { ?>
339
- <option <?php selected($options['translate_lang'], $k); ?> value="<?php echo esc_attr($k) ?>"><?php esc_html_e($v, self::$short) ?></option>
340
- <?php } ?>
341
- </select>
342
- </td>
343
- </tr>
344
- </table>
345
 
346
- <p class="hr"></p>
347
 
348
- <!-- Honey Pot -->
349
- <table class="form-table related">
350
- <tr>
351
- <th>
352
- <label for="ab_honey_pot">
353
- <?php esc_html_e('Search comment spammers in the Project Honey Pot', self::$short) ?>
354
- </label>
355
- </th>
356
- <td>
357
- <input type="checkbox" name="ab_honey_pot" id="ab_honey_pot" value="1" <?php checked($options['honey_pot'], 1) ?> />
358
- </td>
359
- </tr>
360
 
361
- <tr>
362
- <th>
363
- <label for="ab_honey_key">
364
- Project Honey Pot <a href="http://www.projecthoneypot.org/httpbl_configure.php" target="_blank">API Key</a>
365
- </label>
366
- </th>
367
- <td>
368
- <input type="text" name="ab_honey_key" id="ab_honey_key" value="<?php echo esc_attr($options['honey_key']); ?>" class="maxi-text code" />
369
- </td>
370
- </tr>
371
- </table>
372
- </div>
373
-
374
-
375
- <!-- Erweitert -->
376
- <div class="table ui-tabs-hide" id="ab-tab-advanced">
377
- <table class="form-table related">
378
- <tr>
379
- <th>
380
  <label for="ab_flag_spam">
381
- <?php esc_html_e('Mark as Spam, do not delete', self::$short) ?>
 
382
  </label>
383
- </th>
384
- <td>
385
  <input type="checkbox" name="ab_flag_spam" id="ab_flag_spam" value="1" <?php checked($options['flag_spam'], 1) ?> />
386
- </td>
387
- </tr>
388
-
389
- <tr>
390
- <th>
391
  <label for="ab_email_notify">
392
- <?php esc_html_e('Notification by email', self::$short) ?>
 
393
  </label>
394
- </th>
395
- <td>
396
  <input type="checkbox" name="ab_email_notify" id="ab_email_notify" value="1" <?php checked($options['email_notify'], 1) ?> />
397
- </td>
398
- </tr>
399
-
400
- <tr>
401
- <th>
402
- <?php echo sprintf(esc_html__('Spam will be automatically deleted after %s days', self::$short), '<input type="text" name="ab_cronjob_interval" value="' .esc_attr($options['cronjob_interval']). '" class="small-text" />') ?>
403
- <?php if ( $options['cronjob_enable'] && $options['cronjob_timestamp'] ) {
404
- echo sprintf(
405
- '<br /><small>%s @ %s</small>',
406
- esc_html__('Last check', self::$short),
407
- date_i18n('d.m.Y H:i:s', ($options['cronjob_timestamp'] + get_option('gmt_offset') * 3600))
408
- );
409
- } ?>
410
- </th>
411
- <td>
412
- <input type="checkbox" name="ab_cronjob_enable" id="ab_cronjob_enable" value="1" <?php checked($options['cronjob_enable'], 1) ?> />
413
- </td>
414
- </tr>
415
-
416
- <tr>
417
- <th>
418
  <label for="ab_no_notice">
419
- <?php esc_html_e('Hide the &quot;MARKED AS SPAM&quot; note', self::$short) ?>
 
420
  </label>
421
- </th>
422
- <td>
423
  <input type="checkbox" name="ab_no_notice" id="ab_no_notice" value="1" <?php checked($options['no_notice'], 1) ?> />
424
- </td>
425
- </tr>
426
-
427
- <tr>
428
- <th>
429
- <?php esc_html_e('Limit on', self::$short) ?> <select name="ab_ignore_type" class="mini-select"><?php foreach(array(1 => 'Comments', 2 => 'Pings') as $key => $value) {
430
- echo '<option value="' .esc_attr($key). '" ';
431
- selected($options['ignore_type'], $key);
432
- echo '>' .esc_html__($value, self::$short). '</option>';
433
- } ?>
434
- </select>
435
- </th>
436
- <td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
437
  <input type="checkbox" name="ab_ignore_filter" id="ab_ignore_filter" value="1" <?php checked($options['ignore_filter'], 1) ?> />
438
- </td>
439
- </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
440
 
441
- <tr>
442
- <th style="vertical-align: top">
443
- <label for="ab_ignore_reasons">
444
- <?php esc_html_e('Delete comments by spam reasons', self::$short) ?>
445
- <small><?php esc_html_e('Multiple choice or deselection by pressing Ctrl/CMD', self::$short) ?></small>
446
  </label>
447
- </th>
448
- <td>
449
- <select name="ab_ignore_reasons[]" id="ab_ignore_reasons" size="2" multiple="multiple" class="maxi-select">
450
- <?php foreach ( self::$default['reasons'] as $k => $v) { ?>
451
- <option <?php selected(in_array($k, $options['ignore_reasons']), true); ?> value="<?php echo $k ?>"><?php esc_html_e($v, self::$short) ?></option>
452
- <?php } ?>
453
- </select>
454
- </td>
455
- </tr>
456
- </table>
457
- </div>
458
-
459
-
460
- <div class="submit">
461
- <p class="meta">
462
- <?php if ( get_locale() == 'de_DE' ) { ?>
463
- <a href="http://playground.ebiene.de/antispam-bee-wordpress-plugin/" target="_blank">Dokumentation</a>
464
- <?php } ?>
465
- <a href="https://flattr.com/donation/give/to/sergej.mueller" target="_blank">Flattr</a><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5RDDW9FEHGLG6" target="_blank">PayPal</a>
466
- </p>
 
 
 
 
 
 
 
 
 
467
 
468
- <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
 
 
 
 
 
 
 
 
 
469
  </div>
470
  </form>
471
  </div>
20
  * Speicherung der GUI
21
  *
22
  * @since 0.1
23
+ * @change 2.4.5
24
  */
25
 
26
  public static function save_changes()
31
  }
32
 
33
  /* Referer prüfen */
34
+ check_admin_referer('antispam_bee');
35
 
36
  /* Optionen ermitteln */
37
  $options = array(
52
  'ignore_pings' => (int)(!empty($_POST['ab_ignore_pings'])),
53
  'ignore_filter' => (int)(!empty($_POST['ab_ignore_filter'])),
54
  'ignore_type' => (int)self::get_key($_POST, 'ab_ignore_type'),
55
+
56
+ 'reasons_enable' => (int)(!empty($_POST['ab_reasons_enable'])),
57
  'ignore_reasons' => (array)self::get_key($_POST, 'ab_ignore_reasons'),
58
 
59
+ 'dnsbl_check' => (int)(!empty($_POST['ab_dnsbl_check'])),
60
+
 
61
  'country_code' => (int)(!empty($_POST['ab_country_code'])),
62
  'country_black' => sanitize_text_field(self::get_key($_POST, 'ab_country_black')),
63
  'country_white' => sanitize_text_field(self::get_key($_POST, 'ab_country_white')),
64
 
65
  'translate_api' => (int)(!empty($_POST['ab_translate_api'])),
66
+ 'translate_lang' => sanitize_text_field(self::get_key($_POST, 'ab_translate_lang'))
 
 
67
  );
68
 
69
+ /* Keine Tagmenge eingetragen? */
70
  if ( empty($options['cronjob_interval']) ) {
71
  $options['cronjob_enable'] = 0;
72
  }
73
+
 
 
 
 
 
 
 
 
 
 
 
74
 
75
  /* Translate API */
76
  if ( !empty($options['translate_lang']) ) {
81
  if ( empty($options['translate_lang']) ) {
82
  $options['translate_api'] = 0;
83
  }
84
+
85
+ /* Liste der Spamgründe */
86
+ if ( empty($options['reasons_enable']) ) {
87
+ $options['ignore_reasons'] = array();
88
+ }
89
 
90
  /* Blacklist reinigen */
91
  if ( !empty($options['country_black']) ) {
136
 
137
 
138
  /**
139
+ * Generierung eine Selectbox
140
+ *
141
+ * @since 2.4.5
142
+ * @change 2.4.5
143
  *
144
+ * @param string $name Name der Selectbox
145
+ * @param array $data Array mit Werten
146
+ * @param string $selected Selektierter Wert
147
+ * @return string $html Erzeugtes HTML
148
  */
149
 
150
+ private static function _build_select($name, $data, $selected)
151
  {
152
+ /* Start HTML */
153
+ $html = '<select name="' .$name. '">';
154
+
155
+ /* Loop options */
156
+ foreach( $data as $k => $v) {
157
+ $html .= '<option value="' .esc_attr($k). '" ' .selected($selected, $k, false). '>' .esc_html__($v, 'antispam_bee'). '</option>';
158
+ }
159
+
160
+ /* Close HTML */
161
+ $html .= '</select>';
162
+
163
+ return $html;
164
  }
165
 
166
 
173
 
174
  function options_page() { ?>
175
  <div class="wrap" id="ab_main">
176
+ <?php screen_icon('ab') ?>
177
+
178
+ <h2>
179
+ Antispam Bee
180
+ </h2>
181
+
182
  <form action="<?php echo admin_url('admin-post.php') ?>" method="post">
 
 
 
 
183
  <input type="hidden" name="action" value="ab_save_changes" />
 
184
 
185
+ <?php wp_nonce_field('antispam_bee') ?>
186
+
187
+ <?php $options = self::get_options() ?>
 
 
 
 
 
 
 
 
 
 
188
 
189
+ <div class="ab-wrap">
190
+ <!--[if lt IE 9]>
191
+ <p class="browsehappy">
192
+ <a href="http://browsehappy.com">Browse Happy</a>
193
+ </p>
194
+ <![endif]-->
195
+
196
+ <div class="ab-column ab-arrow">
197
+ <h3 class="icon">
198
+ <?php esc_html_e('Antispam filter', 'antispam_bee') ?>
199
+ </h3>
200
+ <h6>
201
+ <?php esc_html_e('Filter in the execution order', 'antispam_bee') ?>
202
+ </h6>
 
 
 
 
 
 
 
 
 
 
203
 
204
+ <ul>
205
+ <li>
206
  <label for="ab_already_commented">
207
+ <?php esc_html_e('Trust approved commentators', 'antispam_bee') ?>
208
+ <span><?php esc_html_e('No check for already commenting users', 'antispam_bee') ?></span>
209
  </label>
 
 
210
  <input type="checkbox" name="ab_already_commented" id="ab_already_commented" value="1" <?php checked($options['already_commented'], 1) ?> />
211
+ </li>
212
+
213
+ <li>
214
+ <label for="ab_dnsbl_check">
215
+ <?php esc_html_e('Use a public antispam database', 'antispam_bee') ?>
216
+ <span><?php esc_html_e('Matching the ip address with', 'antispam_bee') ?> <a href="http://opm.tornevall.org" target="_blank">Tornevall</a></span>
 
 
 
 
 
 
 
 
 
 
 
 
217
  </label>
218
+ <input type="checkbox" name="ab_dnsbl_check" id="ab_dnsbl_check" value="1" <?php checked($options['dnsbl_check'], 1) ?> />
219
+ </li>
220
+
221
+ <li>
222
+ <label for="ab_advanced_check">
223
+ <?php esc_html_e('Validate the ip address of commentators', 'antispam_bee') ?>
224
+ <span><?php esc_html_e('Validity check for used ip address', 'antispam_bee') ?></span>
 
 
 
 
 
 
 
225
  </label>
226
+ <input type="checkbox" name="ab_advanced_check" id="ab_advanced_check" value="1" <?php checked($options['advanced_check'], 1) ?> />
227
+ </li>
228
+
229
+ <li>
230
+ <label for="ab_spam_ip">
231
+ <?php esc_html_e('Look in the local spam database', 'antispam_bee') ?>
232
+ <span><?php esc_html_e('Already marked as spam? Yes? No?', 'antispam_bee') ?></span>
 
 
 
233
  </label>
234
+ <input type="checkbox" name="ab_spam_ip" id="ab_spam_ip" value="1" <?php checked($options['spam_ip'], 1) ?> />
235
+ </li>
236
+
237
+ <li>
 
 
 
 
 
 
 
 
 
 
 
238
  <label for="ab_country_code">
239
+ <?php esc_html_e('Block comments from specific countries', 'antispam_bee') ?>
240
+ <span><?php esc_html_e('Filtering the requests depending on country', 'antispam_bee') ?></span>
241
  </label>
 
 
242
  <input type="checkbox" name="ab_country_code" id="ab_country_code" value="1" <?php checked($options['country_code'], 1) ?> />
243
+
244
+ <ul>
245
+ <li>
246
+ <input type="text" name="ab_country_black" id="ab_country_black" value="<?php echo esc_attr($options['country_black']); ?>" class="ab-medium-field code" />
247
+ <label for="ab_country_black">
248
+ Blacklist <a href="http://www.iso.org/iso/country_names_and_code_elements" target="_blank">ISO Codes</a>
249
+ </label>
250
+ </li>
251
+ <li>
252
+ <input type="text" name="ab_country_white" id="ab_country_white" value="<?php echo esc_attr($options['country_white']); ?>" class="ab-medium-field code" />
253
+ <label for="ab_country_white">
254
+ Whitelist <a href="http://www.iso.org/iso/country_names_and_code_elements" target="_blank">ISO Codes</a>
255
+ </label>
256
+ </li>
257
+ </ul>
258
+ </li>
259
+
260
+ <li>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
261
  <label for="ab_translate_api">
262
+ <?php esc_html_e('Allow comments only in certain language', 'antispam_bee') ?>
263
+ <span><?php esc_html_e('Detection and approval in specified language', 'antispam_bee') ?></span>
264
  </label>
 
 
265
  <input type="checkbox" name="ab_translate_api" id="ab_translate_api" value="1" <?php checked($options['translate_api'], 1) ?> />
266
+
267
+ <ul>
268
+ <li>
269
+ <select name="ab_translate_lang">
270
+ <?php foreach( array('de' => 'German', 'en' => 'English', 'fr' => 'French', 'it' => 'Italian', 'es' => 'Spanish') as $k => $v ) { ?>
271
+ <option <?php selected($options['translate_lang'], $k); ?> value="<?php echo esc_attr($k) ?>"><?php esc_html_e($v, 'antispam_bee') ?></option>
272
+ <?php } ?>
273
+ </select>
274
+ <label for="ab_translate_lang">
275
+ <?php esc_html_e('Language', 'antispam_bee') ?>
276
+ </label>
277
+ </li>
278
+ </ul>
279
+ </li>
280
+ </ul>
281
+ </div>
 
 
282
 
 
283
 
284
+ <div class="ab-column ab-join">
285
+ <h3 class="icon advanced">
286
+ <?php esc_html_e('Advanced', 'antispam_bee') ?>
287
+ </h3>
288
+ <h6>
289
+ <?php esc_html_e('Other antispam tools', 'antispam_bee') ?>
290
+ </h6>
 
 
 
 
 
291
 
292
+ <ul>
293
+ <li>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
294
  <label for="ab_flag_spam">
295
+ <?php esc_html_e('Mark as spam, do not delete', 'antispam_bee') ?>
296
+ <span><?php esc_html_e('Keep the spam in my blog.', 'antispam_bee') ?></span>
297
  </label>
 
 
298
  <input type="checkbox" name="ab_flag_spam" id="ab_flag_spam" value="1" <?php checked($options['flag_spam'], 1) ?> />
299
+ </li>
300
+
301
+ <li>
 
 
302
  <label for="ab_email_notify">
303
+ <?php esc_html_e('Notification by email', 'antispam_bee') ?>
304
+ <span><?php esc_html_e('Sending an alert to the admin', 'antispam_bee') ?></span>
305
  </label>
 
 
306
  <input type="checkbox" name="ab_email_notify" id="ab_email_notify" value="1" <?php checked($options['email_notify'], 1) ?> />
307
+ </li>
308
+
309
+ <li>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
310
  <label for="ab_no_notice">
311
+ <?php esc_html_e('Not store the reason in the comment body', 'antispam_bee') ?>
312
+ <span><?php esc_html_e('Filter name as reason for current suspicion', 'antispam_bee') ?></span>
313
  </label>
 
 
314
  <input type="checkbox" name="ab_no_notice" id="ab_no_notice" value="1" <?php checked($options['no_notice'], 1) ?> />
315
+ </li>
316
+
317
+ <li>
318
+ <label>
319
+ <?php echo sprintf(
320
+ esc_html__('Delete existing spam after %s days', 'antispam_bee'),
321
+ '<input type="text" name="ab_cronjob_interval" value="' .esc_attr($options['cronjob_interval']). '" class="ab-mini-field" />'
322
+ ) ?>
323
+ <span><?php esc_html_e('Cleaning up the database from old entries', 'antispam_bee') ?></span>
324
+ </label>
325
+ <input type="checkbox" name="ab_cronjob_enable" id="ab_cronjob_enable" value="1" <?php checked($options['cronjob_enable'], 1) ?> />
326
+ </li>
327
+
328
+ <li>
329
+ <label>
330
+ <?php echo sprintf(
331
+ esc_html__('Limit on %s', 'antispam_bee'),
332
+ self::_build_select(
333
+ 'ab_ignore_type',
334
+ array(
335
+ 1 => 'Comments',
336
+ 2 => 'Pings'
337
+ ),
338
+ $options['ignore_type']
339
+ )
340
+ ); ?>
341
+ <span><?php esc_html_e('Another type of spam will be deleted immediately', 'antispam_bee') ?></span>
342
+ </label>
343
  <input type="checkbox" name="ab_ignore_filter" id="ab_ignore_filter" value="1" <?php checked($options['ignore_filter'], 1) ?> />
344
+ </li>
345
+
346
+ <li>
347
+ <label for="ab_reasons_enable">
348
+ <?php esc_html_e('Delete comments by spam reasons', 'antispam_bee') ?>
349
+ <span><?php esc_html_e('Multiple choice by pressing Ctrl/CMD', 'antispam_bee') ?></span>
350
+ </label>
351
+ <input type="checkbox" name="ab_reasons_enable" id="ab_reasons_enable" value="1" <?php checked($options['reasons_enable'], 1) ?> />
352
+
353
+ <ul>
354
+ <li>
355
+ <select name="ab_ignore_reasons[]" id="ab_ignore_reasons" size="2" multiple>
356
+ <?php foreach ( self::$defaults['reasons'] as $k => $v ) { ?>
357
+ <option <?php selected(in_array($k, $options['ignore_reasons']), true); ?> value="<?php echo $k ?>"><?php esc_html_e($v, 'antispam_bee') ?></option>
358
+ <?php } ?>
359
+ </select>
360
+ <label for="ab_ignore_reasons">
361
+ <?php esc_html_e('Spam Reason', 'antispam_bee') ?>
362
+ </label>
363
+ </li>
364
+ </ul>
365
+ </li>
366
+ </ul>
367
+ </div>
368
+
369
+
370
+ <div class="ab-column ab-diff">
371
+ <h3 class="icon more">
372
+ <?php esc_html_e('More', 'antispam_bee') ?>
373
+ </h3>
374
+ <h6>
375
+ <?php esc_html_e('A few little things', 'antispam_bee') ?>
376
+ </h6>
377
 
378
+ <ul>
379
+ <li>
380
+ <label for="ab_dashboard_chart">
381
+ <?php esc_html_e('Statistics on the dashboard', 'antispam_bee') ?>
382
+ <span><?php esc_html_e('Spam detection rate with daily values', 'antispam_bee') ?></span>
383
  </label>
384
+ <input type="checkbox" name="ab_dashboard_chart" id="ab_dashboard_chart" value="1" <?php checked($options['dashboard_chart'], 1) ?> />
385
+ </li>
386
+
387
+ <li>
388
+ <label for="ab_dashboard_count">
389
+ <?php esc_html_e('Spam counter on the dashboard', 'antispam_bee') ?>
390
+ <span><?php esc_html_e('Amount of identified spam comments', 'antispam_bee') ?></span>
391
+ </label>
392
+ <input type="checkbox" name="ab_dashboard_count" id="ab_dashboard_count" value="1" <?php checked($options['dashboard_count'], 1) ?> />
393
+ </li>
394
+
395
+ <li>
396
+ <label for="ab_ignore_pings">
397
+ <?php esc_html_e('Do not check trackbacks / pingbacks', 'antispam_bee') ?>
398
+ <span><?php esc_html_e('No spam check for trackback notifications', 'antispam_bee') ?></span>
399
+ </label>
400
+ <input type="checkbox" name="ab_ignore_pings" id="ab_ignore_pings" value="1" <?php checked($options['ignore_pings'], 1) ?> />
401
+ </li>
402
+
403
+ <li>
404
+ <label for="ab_always_allowed">
405
+ <?php esc_html_e('Comment form used outside of posts', 'antispam_bee') ?>
406
+ <span><?php esc_html_e('Check for comment forms on archive pages', 'antispam_bee') ?></span>
407
+ </label>
408
+ <input type="checkbox" name="ab_always_allowed" id="ab_always_allowed" value="1" <?php checked($options['always_allowed'], 1) ?> />
409
+ </li>
410
+ </ul>
411
+ </div>
412
+
413
 
414
+ <div class="ab-column ab-submit">
415
+ <p>
416
+ <?php if ( get_locale() == 'de_DE' ) { ?>
417
+ <a href="http://playground.ebiene.de/antispam-bee-wordpress-plugin/" target="_blank">Dokumentation</a>
418
+ <?php } ?>
419
+ <a href="https://flattr.com/donation/give/to/sergej.mueller" target="_blank">Flattr</a><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5RDDW9FEHGLG6" target="_blank">PayPal</a>
420
+ </p>
421
+
422
+ <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
423
+ </div>
424
  </div>
425
  </form>
426
  </div>
js/scripts.js CHANGED
@@ -1,54 +1,22 @@
1
  jQuery(document).ready(
2
  function($) {
3
- /* Mini Plugin */
4
- $.fn.abManageOptions = function() {
5
- var $$ = this,
6
- obj = $$.parents('tr').nextAll('tr');
7
-
8
- obj.toggle(
9
- 0,
10
- function() {
11
- obj.children().find(':input').attr('disabled', !$$.attr('checked'));
12
- }
13
  );
14
  }
15
 
16
 
17
- /* Tabs steuern */
18
- function abInitTabs() {
19
- $('#ab_main').tabs(
20
- {
21
- 'select': function(event, ui) {
22
- $('#ab_tab_index').val(ui.index);
23
- },
24
- 'selected': $('#ab_tab_index').val()
25
- }
26
- );
27
- }
28
-
29
 
30
- /* Event abwickeln */
31
- $('#ab_main .related tr:first-child :checkbox').click(
32
- function() {
33
- $(this).abManageOptions();
34
- }
35
- ).filter(':checked').abManageOptions();
36
 
37
-
38
- /* jQuery UI geladen? */
39
- if ( jQuery.ui === undefined || jQuery.ui.tabs === undefined ) {
40
- $.getScript(
41
- 'http://code.jquery.com/ui/1.9.1/jquery-ui.min.js',
42
- abInitTabs
43
- );
44
- } else {
45
- abInitTabs();
46
- }
47
-
48
-
49
- /* Alert ausblenden */
50
- if ( typeof $.fn.delay === 'function' ) {
51
- $('#setting-error-settings_updated').delay(5000).fadeOut();
52
- }
53
  }
54
  );
1
  jQuery(document).ready(
2
  function($) {
3
+ function ab_flag_spam() {
4
+ var $$ = $('#ab_flag_spam'),
5
+ nextAll = $$.parent('li').nextAll();
6
+
7
+ nextAll.css(
8
+ 'visibility',
9
+ ( $$.is(':checked') ? 'visible' : 'hidden' )
 
 
 
10
  );
11
  }
12
 
13
 
14
+ $('#ab_flag_spam').on(
15
+ 'change',
16
+ ab_flag_spam
17
+ );
 
 
 
 
 
 
 
 
18
 
 
 
 
 
 
 
19
 
20
+ ab_flag_spam();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  }
22
  );
js/scripts.min.js CHANGED
@@ -1,2 +1 @@
1
- jQuery(document).ready(function(a){function c(){a("#ab_main").tabs({select:function(d,b){a("#ab_tab_index").val(b.index)},selected:a("#ab_tab_index").val()})}a.fn.abManageOptions=function(){var a=this,b=a.parents("tr").nextAll("tr");b.toggle(0,function(){b.children().find(":input").attr("disabled",!a.attr("checked"))})};a("#ab_main .related tr:first-child :checkbox").click(function(){a(this).abManageOptions()}).filter(":checked").abManageOptions();void 0===jQuery.ui||void 0===jQuery.ui.tabs?a.getScript("http://code.jquery.com/ui/1.9.1/jquery-ui.min.js",
2
- c):c();"function"===typeof a.fn.delay&&a("#setting-error-settings_updated").delay(5E3).fadeOut()});
1
+ jQuery(document).ready(function(b){function a(){var a=b("#ab_flag_spam");a.parent("li").nextAll().css("visibility",a.is(":checked")?"visible":"hidden")}b("#ab_flag_spam").on("change",a);a()});
 
lang/antispam_bee-de_DE.mo CHANGED
Binary file
lang/antispam_bee-de_DE.po CHANGED
@@ -21,15 +21,6 @@ msgstr "Noch keine Daten vorhanden."
21
  msgid "New spam comment on your post"
22
  msgstr "Neuer Spam zum Artikel"
23
 
24
- msgid "Advanced"
25
- msgstr "Erweitert"
26
-
27
- msgid "Filter"
28
- msgstr "Filter"
29
-
30
- msgid "General"
31
- msgstr "Allgemein"
32
-
33
  msgid "Comment"
34
  msgstr "Kommentar"
35
 
@@ -52,19 +43,13 @@ msgid "Spam IP"
52
  msgstr "Spam IP"
53
 
54
  msgid "Comment Language"
55
- msgstr "Kommentarsprache"
56
 
57
  msgid "Country Check"
58
  msgstr "Ländercode"
59
 
60
- msgid "Honey Pot"
61
- msgstr "Honey Pot"
62
-
63
- msgid "as"
64
- msgstr "als"
65
-
66
- msgid "iso codes"
67
- msgstr "ISO Codes"
68
 
69
  msgid "Approve it"
70
  msgstr "Freigeben"
@@ -99,44 +84,18 @@ msgstr "Simples, äußerst effektives Plugin zur Bekämpfung von Spam-Kommentare
99
  msgid "http://antispambee.com"
100
  msgstr "http://antispambee.de"
101
 
102
- # Spam detection
103
- msgid "Mark as Spam, do not delete"
104
- msgstr "Spam markieren, nicht löschen"
105
-
106
- msgid "Limit on"
107
- msgstr "Beschränken auf"
108
 
109
- msgid "Spam will be automatically deleted after %s days"
110
- msgstr "Löschung nach %s Tagen"
111
-
112
- msgid "Notification by email"
113
- msgstr "Benachrichtigung via E-Mail"
114
-
115
- msgid "Delete comments by spam reasons"
116
- msgstr "Bei gewählten Spamgründen sofort löschen"
117
-
118
- msgid "Multiple choice or deselection by pressing Ctrl/CMD"
119
- msgstr "Mehrfachauswahl bzw. Abwahl mit Strg/CMD"
120
-
121
- msgid "Hide the &quot;MARKED AS SPAM&quot; note"
122
- msgstr "&quot;MARKED AS SPAM&quot; unterdrücken"
123
 
124
  msgid "Comment marked as spam"
125
  msgstr "Spam-Benachrichtigung"
126
 
127
- # Block countries
128
- msgid "Block comments and pings from specific countries"
129
- msgstr "Länder blockieren bzw. erlauben"
130
-
131
- msgid "Blacklist"
132
- msgstr "Blacklist"
133
-
134
- msgid "Whitelist"
135
- msgstr "Whitelist"
136
-
137
- # Project Honey Pot
138
- msgid "Search comment spammers in the Project Honey Pot"
139
- msgstr "Project Honey Pot als Quelle für Spam"
140
 
141
  msgid "English"
142
  msgstr "Englisch"
@@ -153,39 +112,120 @@ msgstr "Italienisch"
153
  msgid "Spanish"
154
  msgstr "Spanisch"
155
 
156
- # Translate API
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  msgid "Allow comments only in certain language"
158
- msgstr "Inhalte nur in einer Sprache zulassen"
159
 
160
- msgid "Language"
161
- msgstr "Sprache"
162
 
163
- # Extended
164
- msgid "Stricter inspection for comments and pings"
165
- msgstr "Zusatzchecks für Kommentare und Pings"
166
 
167
- msgid "Consider comments which are already marked as spam"
168
- msgstr "Lernfähigkeit für aktuellen Datenbestand"
169
 
170
- msgid "Do not check if the comment author has already approved"
171
- msgstr "Genehmigten Kommentatoren vertrauen"
172
 
173
- # Misc
174
- msgid "Spam counter on the dashboard"
175
- msgstr "Spam-Anzahl auf dem Dashboard"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
176
 
177
  msgid "Statistics on the dashboard"
178
- msgstr "Verlauf-Statistik auf dem Dashboard"
 
 
 
 
 
 
 
 
 
179
 
180
  msgid "Do not check trackbacks / pingbacks"
181
- msgstr "Keine Prüfung der Ping- und Trackbacks"
 
 
 
182
 
183
  msgid "Comment form used outside of posts"
184
  msgstr "Kommentarformular auf Archivseiten"
185
 
186
- msgid "Antispam Bee requires WordPress 3.3 and PHP 5.1.2"
187
- msgstr "Antispam Bee setzt WordPress 3.3 und PHP 5.1.2 voraus"
188
-
189
- msgid "Comments"
190
- msgstr "Kommentare"
191
 
21
  msgid "New spam comment on your post"
22
  msgstr "Neuer Spam zum Artikel"
23
 
 
 
 
 
 
 
 
 
 
24
  msgid "Comment"
25
  msgstr "Kommentar"
26
 
43
  msgstr "Spam IP"
44
 
45
  msgid "Comment Language"
46
+ msgstr "Sprache"
47
 
48
  msgid "Country Check"
49
  msgstr "Ländercode"
50
 
51
+ msgid "DNSBL Spam"
52
+ msgstr "DNSBL Spam"
 
 
 
 
 
 
53
 
54
  msgid "Approve it"
55
  msgstr "Freigeben"
84
  msgid "http://antispambee.com"
85
  msgstr "http://antispambee.de"
86
 
87
+ msgid "Antispam Bee requires WordPress 3.4 and PHP 5.1.2"
88
+ msgstr "Antispam Bee setzt WordPress 3.4 und PHP 5.1.2 voraus"
 
 
 
 
89
 
90
+ msgid "Comments"
91
+ msgstr "Kommentare"
 
 
 
 
 
 
 
 
 
 
 
 
92
 
93
  msgid "Comment marked as spam"
94
  msgstr "Spam-Benachrichtigung"
95
 
96
+ # Sprachen
97
+ msgid "Language"
98
+ msgstr "Sprache"
 
 
 
 
 
 
 
 
 
 
99
 
100
  msgid "English"
101
  msgstr "Englisch"
112
  msgid "Spanish"
113
  msgstr "Spanisch"
114
 
115
+ # Antispam-Filter
116
+ msgid "Antispam filter"
117
+ msgstr "Antispam-Regeln"
118
+
119
+ msgid "Filter in the execution order"
120
+ msgstr "Filter in Reihenfolge der Ausführung"
121
+
122
+ msgid "Trust approved commentators"
123
+ msgstr "Genehmigten Kommentatoren vertrauen"
124
+
125
+ msgid "No check for already commenting users"
126
+ msgstr "Keine Prüfung bereits kommentierender Nutzer"
127
+
128
+ msgid "Use a public antispam database"
129
+ msgstr "Öffentliche Spamdatenbank berücksichtigen"
130
+
131
+ msgid "Matching the ip address with"
132
+ msgstr "Abgleich der IP-Adresse mit"
133
+
134
+ msgid "Validate the ip address of commentators"
135
+ msgstr "IP-Adresse des Kommentators validieren"
136
+
137
+ msgid "Validity check for used ip address"
138
+ msgstr "Kontrolle auf Gültigkeit verwendeter Kennung"
139
+
140
+ msgid "Look in the local spam database"
141
+ msgstr "Lokale Spamdatenbank einbeziehen"
142
+
143
+ msgid "Already marked as spam? Yes? No?"
144
+ msgstr "Suche im Spambestand des eigenen Blogs"
145
+
146
+ msgid "Block comments from specific countries"
147
+ msgstr "Bestimmte Länder blockieren bzw. erlauben"
148
+
149
+ msgid "Filtering the requests depending on country"
150
+ msgstr "Filterung der Anfragen je nach Herkunftsland"
151
+
152
  msgid "Allow comments only in certain language"
153
+ msgstr "Kommentare nur in einer Sprache zulassen"
154
 
155
+ msgid "Detection and approval in specified language"
156
+ msgstr "Erkennung und Freigabe festgelegter Sprache"
157
 
158
+ # Erweitert
159
+ msgid "Advanced"
160
+ msgstr "Erweitert"
161
 
162
+ msgid "Other antispam tools"
163
+ msgstr "Weitere Steuerungselemente"
164
 
165
+ msgid "Mark as spam, do not delete"
166
+ msgstr "Erkannten Spam kennzeichnen, nicht löschen"
167
 
168
+ msgid "Keep the spam in my blog."
169
+ msgstr "Markierung als Spam / Aufbewahrung im Blog"
170
+
171
+ msgid "Notification by email"
172
+ msgstr "Bei Spam via E-Mail informieren"
173
+
174
+ msgid "Sending an alert to the admin"
175
+ msgstr "Versand der Benachrichtigung an den Admin"
176
+
177
+ msgid "Not store the reason in the comment body"
178
+ msgstr "Spamgrund im Kommentar nicht speichern"
179
+
180
+ msgid "Filter name as reason for current suspicion"
181
+ msgstr "Zugeschlagener Filter als Verdachtsgrund"
182
+
183
+ msgid "Delete existing spam after %s days"
184
+ msgstr "Vorhandenen Spam nach %s Tagen löschen"
185
+
186
+ msgid "Cleaning up the database from old entries"
187
+ msgstr "Säuberung der Datenbank von alten Einträgen"
188
+
189
+ msgid "Limit on %s"
190
+ msgstr "Aufbewahrung gilt nur für %s"
191
+
192
+ msgid "Another type of spam will be deleted immediately"
193
+ msgstr "Spam anderes Typs unterliegt sofortiger Löschung"
194
+
195
+ msgid "Delete comments by spam reasons"
196
+ msgstr "Bei definierten Spamgründen sofort löschen"
197
+
198
+ msgid "Multiple choice by pressing Ctrl/CMD"
199
+ msgstr "Mehrfachauswahl bzw. Abwahl mit Strg/CMD"
200
+
201
+ # Sonstiges
202
+ msgid "More"
203
+ msgstr "Sonstiges"
204
+
205
+ msgid "A few little things"
206
+ msgstr "Weniger relevante Optionen"
207
 
208
  msgid "Statistics on the dashboard"
209
+ msgstr "Statistiken als Dashboard-Widget generieren"
210
+
211
+ msgid "Spam detection rate with daily values"
212
+ msgstr "Verlauf der Erkennungsrate mit täglichen Werten"
213
+
214
+ msgid "Spam counter on the dashboard"
215
+ msgstr "Spam-Anzahl auf dem Dashboard anzeigen"
216
+
217
+ msgid "Amount of identified spam comments"
218
+ msgstr "Menge an identifizierten Spam-Kommentaren"
219
 
220
  msgid "Do not check trackbacks / pingbacks"
221
+ msgstr "Eingehende Ping- und Trackbacks ignorieren"
222
+
223
+ msgid "No spam check for trackback notifications"
224
+ msgstr "Kein Spam-Check für Link-Benachrichtigungen"
225
 
226
  msgid "Comment form used outside of posts"
227
  msgstr "Kommentarformular auf Archivseiten"
228
 
229
+ msgid "Check for comment forms on archive pages"
230
+ msgstr "Überwachung des Formulars auf Archivseiten"
 
 
 
231
 
lang/antispam_bee-nl_NL.mo DELETED
Binary file
lang/antispam_bee-nl_NL.po DELETED
@@ -1,190 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Antispam Bee\n"
4
- "POT-Creation-Date: \n"
5
- "PO-Revision-Date: \n"
6
- "Last-Translator: Presis <contact@presis.nl>\n"
7
- "Language-Team: Sergej Müller\n"
8
- "MIME-Version: 1.0\n"
9
- "Content-Type: text/plain; charset=utf-8\n"
10
- "Content-Transfer-Encoding: 8bit\n"
11
- "X-Poedit-SourceCharset: utf-8\n"
12
- "X-Poedit-KeywordsList: __;_e\n"
13
- "X-Poedit-Basepath: .\n"
14
- "Language: de_DE\n"
15
- "X-Generator: Poedit 1.5.4\n"
16
- "X-Poedit-SearchPath-0: .\n"
17
-
18
- msgid "No data available."
19
- msgstr "Geen gegevens beschikbaar."
20
-
21
- msgid "New spam comment on your post"
22
- msgstr "Nieuwe spamreactie op jouw bericht"
23
-
24
- msgid "Advanced"
25
- msgstr "Geavanceerd"
26
-
27
- msgid "Filter"
28
- msgstr "Filter"
29
-
30
- msgid "General"
31
- msgstr "Algemeen"
32
-
33
- msgid "Comment"
34
- msgstr "Reactie"
35
-
36
- msgid "Type"
37
- msgstr "Soort"
38
-
39
- msgid "Spam Reason"
40
- msgstr "Spam reden"
41
-
42
- msgid "Empty Data"
43
- msgstr "Lege data"
44
-
45
- msgid "CSS Hack"
46
- msgstr "CSS Hack"
47
-
48
- msgid "Server IP"
49
- msgstr "Server IP"
50
-
51
- msgid "Spam IP"
52
- msgstr "Spam IP"
53
-
54
- msgid "Comment Language"
55
- msgstr "Reactie taal"
56
-
57
- msgid "Country Check"
58
- msgstr "Land Controle"
59
-
60
- msgid "Honey Pot"
61
- msgstr "Honey Pot"
62
-
63
- msgid "as"
64
- msgstr "als"
65
-
66
- msgid "iso codes"
67
- msgstr "ISO Codes"
68
-
69
- msgid "Approve it"
70
- msgstr "Toestaan"
71
-
72
- msgid "Delete it"
73
- msgstr "Verwijderen"
74
-
75
- msgid "Trash it"
76
- msgstr "Naar prullenbak"
77
-
78
- msgid "Spam list"
79
- msgstr "Spamlijst"
80
-
81
- msgid "Notify message by Antispam Bee"
82
- msgstr "Notificatie van Antispam Bee"
83
-
84
- msgid "Content removed by Antispam Bee"
85
- msgstr "Inhoud verwijderd door Antispam Bee"
86
-
87
- msgid "Last check"
88
- msgstr "Laatste controle"
89
-
90
- msgid "Blocked"
91
- msgstr "Geblokkeerd"
92
-
93
- msgid "Today"
94
- msgstr "Vandaag"
95
-
96
- msgid ""
97
- "Easy and extremely productive spam-fighting plugin with many sophisticated "
98
- "solutions. Includes protection again trackback spam."
99
- msgstr ""
100
- "Eenvoudig en extreme effectieve anti-spam plugin met vele geavanceerde "
101
- "oplossingen. Inclusief bescherming tegen trackback spam."
102
-
103
- msgid "http://antispambee.com"
104
- msgstr "http://antispambee.de"
105
-
106
- # Spam detection
107
- msgid "Mark as Spam, do not delete"
108
- msgstr "Markeer als spam, verwijder niet"
109
-
110
- msgid "Limit on"
111
- msgstr "Limiet op"
112
-
113
- msgid "Spam will be automatically deleted after %s days"
114
- msgstr "Spam wordt automatisch verwijderd na %s dagen"
115
-
116
- msgid "Notification by email"
117
- msgstr "Bericht via e-mail"
118
-
119
- msgid "Delete comments by spam reasons"
120
- msgstr "Verwijder reactie aan de hand van spam reden"
121
-
122
- msgid "Multiple choice or deselection by pressing Ctrl/CMD"
123
- msgstr "Selecteer / deselecteer meerdere opties door Ctrl/CMD in te drukken"
124
-
125
- msgid "Hide the &quot;MARKED AS SPAM&quot; note"
126
- msgstr "Verberg de &quot;GEMARKEERD ALS SPAM&quot; opmerking"
127
-
128
- msgid "Comment marked as spam"
129
- msgstr "Reactie aangemerkt als spam"
130
-
131
- # Block countries
132
- msgid "Block comments and pings from specific countries"
133
- msgstr "Blokkeer reacties en pings vanuit specifieke landen"
134
-
135
- msgid "Blacklist"
136
- msgstr "Zwartelijst"
137
-
138
- msgid "Whitelist"
139
- msgstr "Wittelijst"
140
-
141
- msgid "Search comment spammers in the Project Honey Pot"
142
- msgstr "Zoek reactie spammers in Project Honey Pot"
143
-
144
- msgid "English"
145
- msgstr "Engels"
146
-
147
- msgid "German"
148
- msgstr "Duits"
149
-
150
- msgid "French"
151
- msgstr "Frans"
152
-
153
- msgid "Italian"
154
- msgstr "Italiaans"
155
-
156
- msgid "Spanish"
157
- msgstr "Spaans"
158
-
159
- # Translate API
160
- msgid "Allow comments only in certain language"
161
- msgstr "Sta alleen reacties toe in een bepaalde taal"
162
-
163
- msgid "Language"
164
- msgstr "Taal"
165
-
166
- # Extended
167
- msgid "Stricter inspection for comments and pings"
168
- msgstr "Strikte inspectie voor reacties en pings"
169
-
170
- msgid "Consider comments which are already marked as spam"
171
- msgstr "Overweeg opmerkingen die reeds zijn gemarkeerd als spam"
172
-
173
- msgid "Do not check if the comment author has already approved"
174
- msgstr "Niet controleren als de auteur van de reactie reeds is toegestaan"
175
-
176
- # Misc
177
- msgid "Spam counter on the dashboard"
178
- msgstr "Spam teller op het dashboard"
179
-
180
- msgid "Statistics on the dashboard"
181
- msgstr "Statistieken op het dashboard"
182
-
183
- msgid "Do not check trackbacks / pingbacks"
184
- msgstr "Trackbacks / pingbacks niet controleren"
185
-
186
- msgid "Comment form used outside of posts"
187
- msgstr "Reactieformulier wordt gebruikt buiten berichten"
188
-
189
- msgid "Antispam Bee requires WordPress 3.3 and PHP 5.1.2"
190
- msgstr "Antispam Bee vereist WordPress 3.3 en PHP 5.1.2"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lang/antispam_bee-ru_RU.mo CHANGED
Binary file
lang/antispam_bee-ru_RU.po CHANGED
@@ -1,188 +1,256 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Antispam Bee\n"
4
- "POT-Creation-Date: \n"
5
- "PO-Revision-Date: \n"
6
- "Last-Translator: Sergej Müller\n"
7
- "Language-Team: Sergej Müller\n"
 
 
8
  "MIME-Version: 1.0\n"
9
- "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "X-Poedit-Language: German\n"
12
- "X-Poedit-Country: GERMANY\n"
13
- "X-Poedit-SourceCharset: utf-8\n"
14
- "X-Poedit-KeywordsList: __;_e\n"
15
  "X-Poedit-Basepath: .\n"
 
 
 
 
16
  "X-Poedit-SearchPath-0: .\n"
 
17
 
18
- msgid "No data available."
19
- msgstr "Нет данных."
 
20
 
21
- msgid "New spam comment on your post"
22
- msgstr "Новый спам комментарий"
 
23
 
24
- msgid "Advanced"
25
- msgstr "Расширенные"
 
 
 
 
 
 
 
 
 
 
 
 
 
26
 
27
- msgid "Filter"
28
- msgstr "Фильтры"
 
29
 
30
- msgid "General"
31
- msgstr "Общие"
 
32
 
33
- msgid "Comment"
34
- msgstr "Kомментарий"
 
35
 
 
36
  msgid "Type"
37
- msgstr "Tип"
38
 
 
 
39
  msgid "Spam Reason"
40
  msgstr "Причина спама"
41
 
42
- msgid "Empty Data"
43
- msgstr "Нет данных"
 
44
 
45
- msgid "CSS Hack"
46
- msgstr "CSS Hack"
 
47
 
48
- msgid "Server IP"
49
- msgstr "Server IP"
 
50
 
51
- msgid "Spam IP"
52
- msgstr "Spam IP"
 
53
 
54
- msgid "Comment Language"
55
- msgstr "Язык комментария"
 
56
 
57
- msgid "Country Check"
58
- msgstr "Проверка страны"
 
59
 
60
- msgid "Honey Pot"
61
- msgstr "Honey Pot"
 
62
 
63
- msgid "as"
64
- msgstr "как"
 
65
 
66
- msgid "iso codes"
67
- msgstr "ISO Codes"
 
68
 
69
- msgid "Approve it"
70
- msgstr "Разрешить его"
 
71
 
72
- msgid "Delete it"
73
- msgstr "Удалить его"
 
74
 
75
- msgid "Trash it"
76
- msgstr "В помойку его"
 
77
 
78
- msgid "Spam list"
79
- msgstr "Список спама"
 
80
 
81
- msgid "Notify message by Antispam Bee"
82
- msgstr "Сообщение от Antispam Bee"
 
83
 
84
- msgid "Content removed by Antispam Bee"
85
- msgstr "Содержимое удалено"
 
86
 
87
- msgid "Last check"
88
- msgstr "Последний раз"
 
89
 
90
- msgid "Blocked"
91
- msgstr "Заблокировано"
 
92
 
93
- msgid "Today"
94
- msgstr "Сегодня"
 
95
 
96
- msgid "Easy and extremely productive spam-fighting plugin with many sophisticated solutions. Includes protection again trackback spam."
97
- msgstr "Простой и очень продуктивный антиспам плагин. Включает в себя защиту от trackback спама."
 
98
 
99
- msgid "http://antispambee.com"
100
- msgstr "http://antispambee.de"
101
-
102
- # Spam detection
103
- msgid "Mark as Spam, do not delete"
104
- msgstr "Отметить как спам, не удалять"
105
-
106
- msgid "Limit on"
107
- msgstr "Ограничить на"
108
 
109
- msgid "Spam will be automatically deleted after %s days"
110
- msgstr "Спам машинально удалять через %s дней"
 
111
 
112
- msgid "Notification by email"
113
- msgstr "Отправить емайл при новом спаме"
 
114
 
115
- msgid "Delete comments by spam reasons"
116
- msgstr "Удаление спама в комментариях по причинам"
 
117
 
118
- msgid "Multiple choice or deselection by pressing Ctrl/CMD"
119
- msgstr "Выбор или отменa нажав клавиши Strg/CMD"
 
120
 
121
- msgid "Hide the &quot;MARKED AS SPAM&quot; note"
122
- msgstr "Скрыть замечание &quot;MARKED AS SPAM&quot;"
 
123
 
124
- msgid "Comment marked as spam"
125
- msgstr "Kомментарий помечен как спам"
 
126
 
127
- # Block countries
128
- msgid "Block comments and pings from specific countries"
129
- msgstr "Банить или разрешать страны"
130
 
131
- msgid "Blacklist"
132
- msgstr "Черный список"
 
133
 
134
- msgid "Whitelist"
135
- msgstr "Белый список"
 
136
 
137
- # Project Honey Pot
138
- msgid "Search comment spammers in the Project Honey Pot"
139
- msgstr "Поиск спамеров в Project Honey Pot"
140
 
141
- msgid "English"
142
- msgstr "Английский"
 
 
143
 
144
- msgid "German"
145
- msgstr "Немецкий"
 
146
 
147
- msgid "French"
148
- msgstr "Французский"
 
 
149
 
150
- msgid "Italian"
151
- msgstr "Итальянский"
 
152
 
153
- msgid "Spanish"
154
- msgstr "Испанский"
 
155
 
156
- # Translate API
157
- msgid "Allow comments only in certain language"
158
- msgstr "Разрешить комментарии только в одном языке"
159
 
160
- msgid "Language"
161
- msgstr "Язык"
 
162
 
163
- # Extended
164
- msgid "Stricter inspection for comments and pings"
165
- msgstr "Строгий контроль на входящие комментарии"
166
 
167
- msgid "Consider comments which are already marked as spam"
168
- msgstr "Учитывать сpам из базы данных"
 
169
 
170
- msgid "Do not check if the comment author has already approved"
171
- msgstr "Не проверять, если автор уже комментировал и был утвержден"
 
172
 
173
- # Misc
174
  msgid "Spam counter on the dashboard"
175
- msgstr "Заблокированный спам показать на панели инструментов"
176
 
177
- msgid "Statistics on the dashboard"
178
- msgstr "Статистикa на панели инструментов"
 
179
 
 
180
  msgid "Do not check trackbacks / pingbacks"
181
- msgstr "Не проверять trackbacks и pingbacks"
 
 
 
 
182
 
 
183
  msgid "Comment form used outside of posts"
184
- msgstr "Комментарии также используются вне постов и страниц"
 
 
 
 
185
 
186
- msgid "Antispam Bee requires WordPress 3.3 and PHP 5.1.2"
187
- msgstr "Antispam Bee требуется WordPress 3.3 и PHP 5.1.2"
 
188
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Antispam Bee\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2012-11-21 22:20+0300\n"
6
+ "PO-Revision-Date: 2012-11-21 23:27+0300\n"
7
+ "Last-Translator: Andrey Ananin\n"
8
+ "Language-Team: Andrey Ananin\n"
9
+ "Language: \n"
10
  "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c;_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
 
 
 
14
  "X-Poedit-Basepath: .\n"
15
+ "X-Poedit-Language: Russian\n"
16
+ "X-Poedit-Country: RUSSIAN FEDERATION\n"
17
+ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
18
+ "X-Poedit-SourceCharset: utf-8\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
+ "X-Poedit-SearchPath-1: ..\n"
21
 
22
+ #: ../antispam_bee.php:421
23
+ msgid "Settings"
24
+ msgstr "Настройки"
25
 
26
+ #: ../antispam_bee.php:472
27
+ msgid "Antispam Bee requires WordPress 3.4 and PHP 5.1.2"
28
+ msgstr "Для работы Antispam Bee требуются WordPress 3.4 и PHP 5.1.2"
29
 
30
+ #: ../antispam_bee.php:651
31
+ msgid "Blocked"
32
+ msgstr "заблокировано"
33
+
34
+ #: ../antispam_bee.php:758
35
+ msgid "Today"
36
+ msgstr "Сегодня"
37
+
38
+ #: ../antispam_bee.php:816
39
+ msgid "No data available."
40
+ msgstr "Нет данных"
41
+
42
+ #: ../antispam_bee.php:1823
43
+ msgid "Comment marked as spam"
44
+ msgstr "Комментарий отмечен как спам"
45
 
46
+ #: ../antispam_bee.php:1830
47
+ msgid "Content removed by Antispam Bee"
48
+ msgstr "Содержимое удалено Antispam Bee"
49
 
50
+ #: ../antispam_bee.php:1837
51
+ msgid "New spam comment on your post"
52
+ msgstr "Новый спам-комментарий на запись"
53
 
54
+ #: ../antispam_bee.php:1841
55
+ msgid "Author"
56
+ msgstr "Автор"
57
 
58
+ #: ../antispam_bee.php:1848
59
  msgid "Type"
60
+ msgstr "Тип"
61
 
62
+ #: ../antispam_bee.php:1855
63
+ #: ../inc/gui.class.php:361
64
  msgid "Spam Reason"
65
  msgstr "Причина спама"
66
 
67
+ #: ../antispam_bee.php:1864
68
+ msgid "Trash it"
69
+ msgstr "В корзину"
70
 
71
+ #: ../antispam_bee.php:1870
72
+ msgid "Delete it"
73
+ msgstr "Удалить"
74
 
75
+ #: ../antispam_bee.php:1876
76
+ msgid "Approve it"
77
+ msgstr "Одобрить"
78
 
79
+ #: ../antispam_bee.php:1880
80
+ msgid "Spam list"
81
+ msgstr "Список спам-сообщений"
82
 
83
+ #: ../antispam_bee.php:1884
84
+ msgid "Notify message by Antispam Bee"
85
+ msgstr "Уведомление от Antispam Bee"
86
 
87
+ #: ../antispam_bee.php:1885
88
+ msgid "http://antispambee.com"
89
+ msgstr "http://antispambee.com"
90
 
91
+ #: ../inc/gui.class.php:30
92
+ msgid "Cheatin&#8217; uh?"
93
+ msgstr "Жульничаете?"
94
 
95
+ #: ../inc/gui.class.php:198
96
+ msgid "Antispam filter"
97
+ msgstr "Антиспам-фильтр"
98
 
99
+ #: ../inc/gui.class.php:201
100
+ msgid "Filter in the execution order"
101
+ msgstr "Фильтрация в порядке выполнения"
102
 
103
+ #: ../inc/gui.class.php:207
104
+ msgid "Trust approved commentators"
105
+ msgstr "Доверять одобренным комментаторам"
106
 
107
+ #: ../inc/gui.class.php:208
108
+ msgid "No check for already commenting users"
109
+ msgstr "Не проверять для пользов. с коммент."
110
 
111
+ #: ../inc/gui.class.php:215
112
+ msgid "Use a public antispam database"
113
+ msgstr "Использовать общую БД антиспама"
114
 
115
+ #: ../inc/gui.class.php:216
116
+ msgid "Matching the ip address with"
117
+ msgstr "Проверять IP-адрес в"
118
 
119
+ #: ../inc/gui.class.php:223
120
+ msgid "Validate the ip address of commentators"
121
+ msgstr "Проверять IP-адреса пользователей"
122
 
123
+ #: ../inc/gui.class.php:224
124
+ msgid "Validity check for used ip address"
125
+ msgstr "Проверка используемого IP-адреса"
126
 
127
+ #: ../inc/gui.class.php:231
128
+ msgid "Look in the local spam database"
129
+ msgstr "Поиск в локальной БД спама"
130
 
131
+ #: ../inc/gui.class.php:232
132
+ msgid "Already marked as spam? Yes? No?"
133
+ msgstr "Уже помечен как спам? Да? Нет?"
134
 
135
+ #: ../inc/gui.class.php:239
136
+ msgid "Block comments from specific countries"
137
+ msgstr "Блокировать комментарии по странам"
138
 
139
+ #: ../inc/gui.class.php:240
140
+ msgid "Filtering the requests depending on country"
141
+ msgstr "Фильтр коммент. в зависимости от страны"
142
 
143
+ #: ../inc/gui.class.php:262
144
+ msgid "Allow comments only in certain language"
145
+ msgstr "Разрешить коммент. только на опред. языке"
 
 
 
 
 
 
146
 
147
+ #: ../inc/gui.class.php:263
148
+ msgid "Detection and approval in specified language"
149
+ msgstr "Определ. и одобр. на указанном языке"
150
 
151
+ #: ../inc/gui.class.php:275
152
+ msgid "Language"
153
+ msgstr "Язык"
154
 
155
+ #: ../inc/gui.class.php:286
156
+ msgid "Advanced"
157
+ msgstr "Расширенные настройки"
158
 
159
+ #: ../inc/gui.class.php:289
160
+ msgid "Other antispam tools"
161
+ msgstr "Дополнительные средства против спама"
162
 
163
+ #: ../inc/gui.class.php:295
164
+ msgid "Mark as spam, do not delete"
165
+ msgstr "Помечать как спам, не удалять"
166
 
167
+ #: ../inc/gui.class.php:296
168
+ msgid "Keep the spam in my blog."
169
+ msgstr "Оставить спам в блоге."
170
 
171
+ #: ../inc/gui.class.php:303
172
+ msgid "Notification by email"
173
+ msgstr "Уведомление по email"
174
 
175
+ #: ../inc/gui.class.php:304
176
+ msgid "Sending an alert to the admin"
177
+ msgstr "Послать предупреждение администратору"
178
 
179
+ #: ../inc/gui.class.php:311
180
+ msgid "Not store the reason in the comment body"
181
+ msgstr "Не сохр. причину в теле комментария"
182
 
183
+ #: ../inc/gui.class.php:312
184
+ msgid "Filter name as reason for current suspicion"
185
+ msgstr "Фильтр имени как признака спама"
186
 
187
+ #: ../inc/gui.class.php:320
188
+ #, php-format
189
+ msgid "Delete existing spam after %s days"
190
+ msgstr "Удалять спам через %s дней"
191
 
192
+ #: ../inc/gui.class.php:323
193
+ msgid "Cleaning up the database from old entries"
194
+ msgstr "Очистить БД от старых записей"
195
 
196
+ #: ../inc/gui.class.php:331
197
+ #, php-format
198
+ msgid "Limit on %s"
199
+ msgstr "Ограничить на %s"
200
 
201
+ #: ../inc/gui.class.php:341
202
+ msgid "Another type of spam will be deleted immediately"
203
+ msgstr "Другой тип спама будет сразу удален"
204
 
205
+ #: ../inc/gui.class.php:348
206
+ msgid "Delete comments by spam reasons"
207
+ msgstr "Удалять комментарии по причине спама"
208
 
209
+ #: ../inc/gui.class.php:349
210
+ msgid "Multiple choice by pressing Ctrl/CMD"
211
+ msgstr "Множеств. выбор нажатием Ctrl/CMD"
212
 
213
+ #: ../inc/gui.class.php:372
214
+ msgid "More"
215
+ msgstr "Дополнительно"
216
 
217
+ #: ../inc/gui.class.php:375
218
+ msgid "A few little things"
219
+ msgstr "Несколько мелочей"
220
 
221
+ #: ../inc/gui.class.php:381
222
+ msgid "Statistics on the dashboard"
223
+ msgstr "Статистика в консоли"
224
 
225
+ #: ../inc/gui.class.php:382
226
+ msgid "Spam detection rate with daily values"
227
+ msgstr "Частота выявления спама по дням"
228
 
229
+ #: ../inc/gui.class.php:389
230
  msgid "Spam counter on the dashboard"
231
+ msgstr "Счетчик спама в консоли"
232
 
233
+ #: ../inc/gui.class.php:390
234
+ msgid "Amount of identified spam comments"
235
+ msgstr "Кол-во обнаруженных спам-комментариев"
236
 
237
+ #: ../inc/gui.class.php:397
238
  msgid "Do not check trackbacks / pingbacks"
239
+ msgstr "Не проверять обратные ссылки/уведомления"
240
+
241
+ #: ../inc/gui.class.php:398
242
+ msgid "No spam check for trackback notifications"
243
+ msgstr "Отключить для уведомл. по обр. ссылкам"
244
 
245
+ #: ../inc/gui.class.php:405
246
  msgid "Comment form used outside of posts"
247
+ msgstr "Комментарии вне записей блога"
248
+
249
+ #: ../inc/gui.class.php:406
250
+ msgid "Check for comment forms on archive pages"
251
+ msgstr "Проверять коммент. на страницах архива"
252
 
253
+ #: ../inc/gui.class.php:422
254
+ msgid "Save Changes"
255
+ msgstr "Сохранить изменения"
256
 
readme.txt CHANGED
@@ -2,66 +2,95 @@
2
  Contributors: sergej.mueller
3
  Tags: antispam, spam, comments, trackback
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5RDDW9FEHGLG6
5
- Requires at least: 3.3
6
  Tested up to: 3.5
7
  Stable tag: trunk
 
 
8
 
9
 
10
 
11
- Anonymous and independent antispam solution. Detect comment and trackback spam. Includes statistics and notifications.
12
 
13
 
14
 
15
  == Description ==
16
 
17
- = Kill spam =
18
- Antispam Bee is simple to use, has many options and filters. Does not store data on remote servers. Really.
19
-
20
- = Features =
21
- * Very fast execution
22
- * Spam counter on dashboard
23
- * Anonymous and confidential
24
- * Trackback and pingback check
25
- * Saves no data on remote servers
26
- * No need to adjust any templates
27
- * Cleaning up after plugin removal
28
- * Support for the Project Honey Pot
29
- * Accordingly no outgoing connection
30
- * Interactive statistics on dashboard
31
- * Automatically cleanup the spam folder
32
- * Allow comments only in certain language
33
- * Spam may be marked or deleted immediately
34
- * Email notifications about new spam comments
35
- * Quick & Dirty: activate, set settings, done!
36
- * Optional strict check for incomming comments
37
- * Block comments and pings from specific countries
38
- * WordPress 3.5 ready: Design as well as technical
39
- * Consider comments which are already marked as spam
40
-
41
- = Counter =
42
- `<?php do_action('antispam_bee_count') ?> spam comments blocked by
43
- <a href="http://antispambee.com">Antispam Bee</a>`
44
-
45
- = Requirements =
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  * PHP 5.1.2
47
- * WordPress 3.3
48
 
49
- = Not compatible with =
50
- * Disqus
51
- * Jetpack Comments
52
- * All-in-One Event Calendar
53
 
54
- = Documentation =
55
- * [Antispam Bee: Antispam für WordPress](http://playground.ebiene.de/antispam-bee-wordpress-plugin/ "Antispam für WordPress") (DE)
56
-
57
- = Author =
58
  * [Google+](https://plus.google.com/110569673423509816572 "Google+")
59
  * [Plugins](http://wpcoder.de "Plugins")
60
 
 
 
 
61
 
62
 
63
  == Changelog ==
64
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  = 2.4.4 =
66
  * Technical and visual support for WordPress 3.5
67
  * Modification of the file structure: from `xyz.dev.css` to `xyz.min.css`
@@ -179,4 +208,4 @@ Antispam Bee is simple to use, has many options and filters. Does not store data
179
 
180
  == Screenshots ==
181
 
182
- 1. Antispam Bee settings
2
  Contributors: sergej.mueller
3
  Tags: antispam, spam, comments, trackback
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5RDDW9FEHGLG6
5
+ Requires at least: 3.4
6
  Tested up to: 3.5
7
  Stable tag: trunk
8
+ License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
 
12
 
13
+ Say Goodbye zu Spam in deinem Blog. Kostenlos, werbefrei und datenschutzkonform. Für Kommentare und Trackbacks.
14
 
15
 
16
 
17
  == Description ==
18
 
19
+ Blog-Spam bekämpfen ist die Stärke von *Antispam Bee*. Seit Jahren wird das Plugin darauf trainiert, Spam-Kommentare zuverlässig zu erkennen (auf Wunsch auch sofort zu beseitigen). Dabei greift *Antispam Bee* auf unterschiedliche Techniken zu, die sich zur Identifizierung von Spam-Nachrichten bewährt haben.
20
+
21
+ Im Vergleich zum - für die meisten Blogger kostenpflichtigen - Plugin Akismet, überträgt *Antispam Bee* keine Blog- und Kommentardaten an einen entfernten Server. Ob ein Kommentar böswillig ist, entscheidet das kostenlose Plugin vor Ort im heimischen Blog. Hierfür stehen dem Nutzer zahlreiche Funktionen zur Verfügung, die per Mausklick ein- und abgeschaltet werden können.
22
+
23
+ Als Unterstützung der Erkennung greift *Antispam Bee* auf eine öffentlich zugängliche und seit mehreren Jahren gepflegte [Datenbank](http://opm.tornevall.org) mit aktuellen Spammer-Referenzen zu. Anhand der IP-Adresse des Kommentators kann schnell und unbürokratisch entschieden werden, ob der Kommentar-Absender ein in der Welt bekannter Spam-Vertreiber ist. Aber auch dieser Filter kann im Antispam-Plugin jedezeit deaktiviert werden.
24
+
25
+ = Pluspunkte =
26
+ * Aktive Weiterentwicklung seit 2009
27
+ * Über 20 untereinander kombinierbare Funktionen
28
+ * Keine Speicherung von personenbezogenen Daten
29
+ * Volle Transparenz bei der Prüfung der Kommentare
30
+ * Keine Registrierung notwendig
31
+ * Kostenlos auch für kommerzielle Projekte
32
+ * Keine Anpassung von Theme-Templates vonnöten
33
+ * Alle Funktionen vom Nutzer steuerbar
34
+ * Statistik der letzten 30 Tage als Dashboard-Widget
35
+
36
+ = Einstellungen =
37
+ Nach der Aktivierung nimmt *Antispam Bee* den regulären Betrieb auf, indem vordefinierte Schutzmechanismen scharf geschaltet werden. Es empfiehlt sich jedoch, die Seite mit Plugin-Einstellungen aufzurufen und sich mit wirkungsvollen Optionen auseinander zu setzen. Alle Optionsschalter sind in der [Online-Dokumentation](http://playground.ebiene.de/antispam-bee-wordpress-plugin/) detailliert vorgestellt.
38
+
39
+ Die meisten Auswahlmöglichkeiten innerhalb der Optionsseite sind konfigurierbare Antispam-Filter, die der Blog-Administrator nach Bedarf aktiviert. Zahlreiche Wahlmöglichkeiten steuern hingegen die Benachrichtigungs- und die automatische Löschfunktion des Plugins. Die *Antispam Bee* Optionen in der Kurzfassung:
40
+
41
+ * Genehmigten Kommentatoren vertrauen
42
+ * Öffentliche Spamdatenbank berücksichtigen
43
+ * IP-Adresse des Kommentators validieren
44
+ * Lokale Spamdatenbank einbeziehen
45
+ * Bestimmte Länder blockieren bzw. erlauben
46
+ * Kommentare nur in einer Sprache zulassen
47
+ * Erkannten Spam kennzeichnen, nicht löschen
48
+ * Bei Spam via E-Mail informieren
49
+ * Spamgrund im Kommentar nicht speichern
50
+ * Vorhandenen Spam nach X Tagen löschen
51
+ * Aufbewahrung der Spam-Kommentare für einen Typ
52
+ * Bei definierten Spamgründen sofort löschen
53
+ * Statistiken als Dashboard-Widget generieren
54
+ * Spam-Anzahl auf dem Dashboard anzeigen
55
+ * Eingehende Ping- und Trackbacks ignorieren
56
+ * Kommentarformular befindet sich auf Archivseiten
57
+
58
+ Installiert, probiert die bewährte Antispam-Lösung für WordPress aus. Anmeldefrei und ohne lästige Captchas.
59
+
60
+ = Unterstützung =
61
+ * Per [Flattr](https://flattr.com/donation/give/to/sergej.mueller)
62
+ * Per [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5RDDW9FEHGLG6)
63
+
64
+ = Systemanforderungen =
65
  * PHP 5.1.2
66
+ * WordPress 3.4
67
 
68
+ = Dokumentation =
69
+ * [Antispam Bee: Antispam für WordPress](http://playground.ebiene.de/antispam-bee-wordpress-plugin/)
 
 
70
 
71
+ = Autor =
 
 
 
72
  * [Google+](https://plus.google.com/110569673423509816572 "Google+")
73
  * [Plugins](http://wpcoder.de "Plugins")
74
 
75
+ = Inkompatibilität =
76
+ * Disqus
77
+ * Jetpack Comments
78
 
79
 
80
  == Changelog ==
81
 
82
+ = 2.4.6 =
83
+ * Russische Übersetzung
84
+ * Veränderung der Secret-Zeichenfolge
85
+
86
+ = 2.4.5 =
87
+ * Überarbeitetes Layout der Einstellungen
88
+ * Streichung von Project Honey Pot
89
+ * TornevallNET als neuer DNSBL-Dienst
90
+ * WordPress 3.4 als Mindestvoraussetzung
91
+ * WordPress 3.5 Unterstützung
92
+ * Online-Handbuch in Neufassung
93
+
94
  = 2.4.4 =
95
  * Technical and visual support for WordPress 3.5
96
  * Modification of the file structure: from `xyz.dev.css` to `xyz.min.css`
208
 
209
  == Screenshots ==
210
 
211
+ 1. Antispam Bee Optionen
screenshot-1.png CHANGED
Binary file