? Copy of akismet.module
? Copy of akismet_admin.inc
Index: akismet.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/akismet/akismet.module,v
retrieving revision 1.12
diff -u -r1.12 akismet.module
--- akismet.module	1 Jun 2007 21:41:17 -0000	1.12
+++ akismet.module	1 Jun 2007 21:42:14 -0000
@@ -30,30 +30,30 @@
   $output = '';
   switch ($section) {
     case 'admin/help#akismet':
-      $output = t('<p>In order to use the <a href="@akismet">Akismet Service</a>, you need a <a href="@wpapikey">WordPress.com API key</a>. If you don\'t have one already, you can get it by simply signing up for a free account at <a href="@wordpress-com">wordpress.com</a>. Please, consult the <a href="@akismet-faq">Akismet FAQ</a> for further information.</p>
-<p>The <em>akismet module</em> may automatically check for spam posted in content (nodes and/or comments) by any user, except node or comment administrators respectively. It is also possible, from the <a href="@access-control">access control</a> panel, to grant <em>@no-check-perm</em> permission to <em>user roles</em> of your choice.</p>
-<p>Content marked as <em>spam</em> is still saved into database so it can be reviewed by content administrators. There is <a href="@akismet-settings">an option</a> that allows you to specify how long this information will be kept in the database. <em>Spam</em> older than a specified age will be automatically removed. Requires crontab.</p>
+      $output = t('<p>In order to use the <a href="!akismet">Akismet Service</a>, you need a <a href="!wpapikey">WordPress.com API key</a>. If you don\'t have one already, you can get it by simply signing up for a free account at <a href="!wordpress-com">wordpress.com</a>. Please, consult the <a href="!akismet-faq">Akismet FAQ</a> for further information.</p>
+<p>The <em>akismet module</em> may automatically check for spam posted in content (nodes and/or comments) by any user, except node or comment administrators respectively. It is also possible, from the <a href="!access-control">access control</a> panel, to grant <em>%no-check-perm</em> permission to <em>user roles</em> of your choice.</p>
+<p>Content marked as <em>spam</em> is still saved into database so it can be reviewed by content administrators. There is <a href="!akismet-settings">an option</a> that allows you to specify how long this information will be kept in the database. <em>Spam</em> older than a specified age will be automatically removed. Requires crontab.</p>
 <p>Automatic spam detection can be enabled or disabled by content type and/or comments. In addition to this, the <em>akismet module</em> makes it easy for <em>content administrators</em> to manually <em>publish</em>/<em>unpublish</em> content and <em>mark</em>/<em>unmark</em> content as spam, from links available at the bottom of content.</p>
 <p></p>',
         array(
-          '@akismet' => 'http://akismet.com',
-          '@wpapikey' => 'http://wordpress.com/api-keys/',
-          '@wordpress-com' => 'http://wordpress.com',
-          '@akismet-faq' => 'http://akismet.com/faq/',
-          '@akismet-settings' => url('admin/settings/akismet'),
-          '@access-control' => url('admin/access'),
-          '@no-check-perm' => t('post with no akismet checking')
+          '!akismet' => url('http://akismet.com'),
+          '!wpapikey' => url('http://wordpress.com/api-keys/'),
+          '!wordpress-com' => url('http://wordpress.com'),
+          '!akismet-faq' => url('http://akismet.com/faq/'),
+          '!akismet-settings' => url('admin/settings/akismet'),
+          '!access-control' => url('admin/access'),
+          '%no-check-perm' => t('post with no akismet checking')
         ));
       break;
     case 'admin/help/akismet':
     case 'admin/settings/akismet':
-      $output = t('<p>The <a href="@akismet-module-home">akismet module</a> for <a href="@drupal">Drupal</a> allows you to use the <a href="@akismet">Akismet Service</a> to protect your site from being spammed.</p>',
+      $output = t('<p>The <a href="!akismet-module-home">akismet module</a> for <a href="!drupal">Drupal</a> allows you to use the <a href="!akismet">Akismet Service</a> to protect your site from being spammed.</p>',
         array(
-          '@akismet-module-home' => AKISMET_MODULE_HOMEURL,
-          '@drupal' => 'http://drupal.org',
-          '@akismet' => 'http://akismet.com'
+          '!akismet-module-home' => url(AKISMET_MODULE_HOMEURL),
+          '!drupal' => url('http://drupal.org'),
+          '!akismet' => url('http://akismet.com')
         ));
-      $output .= t('<p>Akismet has caught <strong>@count spam</strong> for you since @since.</p>', array('@count' => akismet_get_spam_counter(), '@since' => akismet_get_counting_since()));
+      $output .= t('<p>Akismet has caught <strong>@count spam</strong> for you since %since.</p>', array('@count' => akismet_get_spam_counter(), '%since' => akismet_get_counting_since()));
       break;
     default:
       if (arg(0) == 'admin' && arg(1) == 'content '&& arg(2) == 'akismet' && !isset($_POST)) {
@@ -82,7 +82,7 @@
           $output .= ' '. t('Click on the subjects to see the comments or the author\'s name to view the author\'s user information. You may also wish to click on the headers to order the comments upon your needs.');
         }
         if (!empty($output)) {
-          $output .= '<br />'. t('<strong>Note:</strong> To interact fully with the <a href="@akismet">Akismet Service</a> you really should try putting data back into the system as well as just taking it out. If it is at all possible, please use the submit <em>ham</em> operation rather than simply publishing content that was identified as spam (false positives). This is necessary in order to let Akismet learn from its mistakes. Thank you.', array('@akismet' => 'http://akismet.com'));
+          $output .= '<br />'. t('<strong>Note:</strong> To interact fully with the <a href="!akismet">Akismet Service</a> you really should try putting data back into the system as well as just taking it out. If it is at all possible, please use the submit <em>ham</em> operation rather than simply publishing content that was identified as spam (false positives). This is necessary in order to let Akismet learn from its mistakes. Thank you.', array('!akismet' => url('http://akismet.com')));
         }
       }
       break;
@@ -99,11 +99,11 @@
       $requirements['akismet_key'] = array(
         'title' => $t('Akismet API key'),
         'value' => $t('Not present'),
-        'description' => $t("Akismet spam protection requires a <a href='@wpapikey'>WordPress.com API key</a> to function. Obtain a key by signing up for a free account at <a href='@wordpress-com'>WordPress.com</a>, then enter the key on the <a href='@akismet-settings'>Akismet settings page</a>.",
+        'description' => $t("Akismet spam protection requires a <a href='!wpapikey'>WordPress.com API key</a> to function. Obtain a key by signing up for a free account at <a href='!wordpress-com'>WordPress.com</a>, then enter the key on the <a href='!akismet-settings'>Akismet settings page</a>.",
           array(
-            '@wpapikey' => 'http://wordpress.com/api-keys/',
-            '@wordpress-com' => 'http://wordpress.com',
-            '@akismet-settings' => url('admin/settings/akismet')
+            '!wpapikey' => url('http://wordpress.com/api-keys/'),
+            '!wordpress-com' => url('http://wordpress.com',)
+            '!akismet-settings' => url('admin/settings/akismet'),
           )),
         'severity' => REQUIREMENT_ERROR,
       );
@@ -934,7 +934,7 @@
       '@title-label' => t('Subject'),
       '%content-title' => check_plain($content->subject),
       '%content-type' => t('comment'),
-      '%content-link' => url('node/'. $content->nid, NULL, 'comment-'. $content->cid, TRUE)
+      '!content-link' => url('node/'. $content->nid, NULL, 'comment-'. $content->cid, TRUE)
     );
     $message_title = t('[%site-name] moderator notification - Posted comment on \'@title\'', array('%site-name' => $site_name, '@title' => check_plain($node->title)));
   }
@@ -943,7 +943,7 @@
       '@title-label' => t('Title'),
       '%content-title' => check_plain($content->title),
       '%content-type' => check_plain($moderator_types[$content->type]),
-      '%content-link' => url('node/'. $content->nid, NULL, NULL, TRUE)
+      '!content-link' => url('node/'. $content->nid, NULL, NULL, TRUE)
     );
     $message_title = t('[%site-name] moderator notification - Posted %type \'@title\'', array('%site-name' => $site_name, '%type' => check_plain($moderator_types[$content->type]), '@title' => check_plain($content->title)));
   }
@@ -957,7 +957,7 @@
 You can use the following information to review this %content-type:
 
 @title-label: %content-title
-URL: %content-link
+URL: !content-link
 Status: %content-status
 
 Please, do not reply to this e-mail. It is an automated notification you are receiving because you are a moderator at %site-name. If you no longer wish to receive such notifications, you can change your moderator settings in your user profile.
@@ -1177,8 +1177,8 @@
             'long'  => check_plain(t('@site_name is proudly protected by Akismet, @count spam caught since @since.', array('@site_name' => variable_get('site_name', 'drupal'), '@count' => $block_args['counter'], '@since' => $block_args['since'])))
           ),
           'html' => array(
-            'short' => t('Proudly protected by <a href="@akismet"@target>Akismet</a>, @count spam caught since @since', array('@site_name' => variable_get('site_name', 'drupal'), '@akismet' => 'http://akismet.com', '@target' => $target, '@count' => $block_args['counter'], '@since' => $block_args['since'])),
-            'long'  => t('@site_name is proudly protected by <a href="@akismet"@target>Akismet</a>, @count spam caught since @since', array('@site_name' => variable_get('site_name', 'drupal'), '@akismet' => 'http://akismet.com', '@target' => $target, '@count' => $block_args['counter'], '@since' => $block_args['since']))
+            'short' => t('Proudly protected by <a href="@akismet"@target>Akismet</a>, @count spam caught since @since', array('@site_name' => variable_get('site_name', 'drupal'), '!akismet' => url('http://akismet.com'), '@target' => $target, '@count' => $block_args['counter'], '@since' => $block_args['since'])),
+            'long'  => t('@site_name is proudly protected by <a href="!akismet"@target>Akismet</a>, @count spam caught since @since', array('@site_name' => variable_get('site_name', 'drupal'), '!akismet' => url('http://akismet.com'), '@target' => $target, '@count' => $block_args['counter'], '@since' => $block_args['since']))
           )
         );
         $text_version = ($block_settings['sitename'] ? 'long' : 'short');
Index: akismet_admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/akismet/akismet_admin.inc,v
retrieving revision 1.5
diff -u -r1.5 akismet_admin.inc
--- akismet_admin.inc	1 Jun 2007 21:41:17 -0000	1.5
+++ akismet_admin.inc	1 Jun 2007 21:42:42 -0000
@@ -28,12 +28,12 @@
     '#type' => 'textfield', '#title' => t('WordPress.com API key'),
     '#size' => 30, '#maxlength' => 60,
     '#default_value' => $akismet_wpapikey,
-    '#description' => t('Please, enter here your <a href="@wpapikey">WordPress.com API key</a>. If you don\'t have one already, you can get it by simply signing up for a free account at <a href="@wordpress-com">WordPress.com</a>. Note that this information is required in order to use the <a href="@akismet">Akismet Service</a>. Please, consult the <a href="@akismet-faq">Akismet FAQ</a> for further information.',
+    '#description' => t('Please, enter here your <a href="!wpapikey">WordPress.com API key</a>. If you don\'t have one already, you can get it by simply signing up for a free account at <a href="!wordpress-com">WordPress.com</a>. Note that this information is required in order to use the <a href="!akismet">Akismet Service</a>. Please, consult the <a href="!akismet-faq">Akismet FAQ</a> for further information.',
       array(
-        '@wpapikey' => 'http://wordpress.com/api-keys/',
-        '@wordpress-com' => 'http://wordpress.com',
-        '@akismet' => 'http://akismet.com',
-        '@akismet-faq' => 'http://akismet.com/faq/'
+        '!wpapikey' => url('http://wordpress.com/api-keys/'),
+        '!wordpress-com' => url('http://wordpress.com'),
+        '!akismet' => url('http://akismet.com'),
+        '!akismet-faq' => url('http://akismet.com/faq/'),
       ))
   );
   if (!empty($akismet_wpapikey) && !$is_valid) {
@@ -43,10 +43,10 @@
     '#type' => 'radios', '#title' => t('Akismet connections'),
     '#options' => $enable_options,
     '#default_value' => variable_get('akismet_connection_enabled', 1),
-    '#description' => t('<strong>This option must be enabled in order to perform real requests to the <a href="@akismet">Akismet Service</a>.</strong> You may want to disable this option for testing purposes, however. In this case, the <em>akismet module</em> will operate as normal, except sending real requests to the <a href="@akismet">Akismet Service</a>. ie. no automatic spam detection will be performed and no remote requests will be made when content is manually <em>marked</em>/<em>unmarked</em> as spam.<br />Note: regardless of this option, the <em>akismet module</em> will still connect, from this panel, to validate your <a href="@wpapikey">WordPress.com API key</a>, if specified.',
+    '#description' => t('<strong>This option must be enabled in order to perform real requests to the <a href="!akismet">Akismet Service</a>.</strong> You may want to disable this option for testing purposes, however. In this case, the <em>akismet module</em> will operate as normal, except sending real requests to the <a href="!akismet">Akismet Service</a>. ie. no automatic spam detection will be performed and no remote requests will be made when content is manually <em>marked</em>/<em>unmarked</em> as spam.<br />Note: regardless of this option, the <em>akismet module</em> will still connect, from this panel, to validate your <a href="!wpapikey">WordPress.com API key</a>, if specified.',
       array(
-        '@akismet' => 'http://akismet.com',
-        '@wpapikey' => 'http://wordpress.com/api-keys/'
+        '!akismet' => url('http://akismet.com'),
+        '!wpapikey' => url('http://wordpress.com/api-keys/'),
       ))
   );
   $timeout_options = array();
@@ -88,9 +88,9 @@
     '#type' => 'select', '#title' => t('Number of blocks'),
     '#default_value' => variable_get('akismet_blocks_counter', 1),
     '#options' => array(0=>t('none'), 1=>1, 2=>2, 3=>3, 4=>4, 5=>5),
-    '#description' => t('The akismet module may generate a number of blocks for you to display the current spam counter anywhere on your site. The number of blocks is variable to help you keep your <a href="@admin-block">blocks administration panel</a> as clean as possible. This option allows you to specify how many blocks you wish to use. If you do not plan to show the spam counter to your visitors, set this option to <em>none</em>.',
+    '#description' => t('The akismet module may generate a number of blocks for you to display the current spam counter anywhere on your site. The number of blocks is variable to help you keep your <a href="!admin-block">blocks administration panel</a> as clean as possible. This option allows you to specify how many blocks you wish to use. If you do not plan to show the spam counter to your visitors, set this option to <em>none</em>.',
       array(
-        '@admin-block' => url('admin/block')
+        '!admin-block' => url('admin/block'),
       ))
   );
   $form['general']['akismet_email_enabled'] = array(
@@ -108,35 +108,35 @@
     '#type' => 'checkboxes', '#title' => t('Check for spam in these node types'),
     '#options' => node_get_types('names'),
     '#default_value' => variable_get('akismet_check_nodetypes', NULL),
-    '#description' => t('Use this option to <em>enable</em> or <em>disable</em> spam check for nodes of types specified here. When this option is enabled, a request will be sent to the <a href="@akismet">Akismet Service</a>, in real time. If the <a href="@akismet">Akismet Service</a> was down, nodes would simply be queued for manual moderation. Users with <a href="@admin-access">@admin-nodes</a> permission and <a href="@admin-access">spam moderators</a> are exempt from this check.',
+    '#description' => t('Use this option to <em>enable</em> or <em>disable</em> spam check for nodes of types specified here. When this option is enabled, a request will be sent to the <a href="!akismet">Akismet Service</a>, in real time. If the <a href="!akismet">Akismet Service</a> was down, nodes would simply be queued for manual moderation. Users with <a href="!admin-access">@admin-nodes</a> permission and <a href="!admin-access">spam moderators</a> are exempt from this check.',
       array(
-        '@akismet' => 'http://akismet.com',
+        '!akismet' => url('http://akismet.com'),
         '@admin-nodes' => t('administer nodes'),
-        '@admin-access' => url('admin/access')
+        '!admin-access' => url('admin/access'),
       ))
   );
   $form['node_options']['akismet_node_publish_links'] = array(
     '#type' => 'radios', '#title' => t('Show publish/unpublish links'),
     '#options' => $enable_options,
     '#default_value' => variable_get('akismet_node_publish_links', 0),
-    '#description' => t('Use this option to <em>enable</em> or <em>disable</em> links for <em>publish</em>/<em>unpublish</em> operations in nodes. If enabled, these links will only be displayed to <a href="@admin-access">spam moderators</a> and users with <a href="@admin-access">@admin-nodes</a> permission.',
+    '#description' => t('Use this option to <em>enable</em> or <em>disable</em> links for <em>publish</em>/<em>unpublish</em> operations in nodes. If enabled, these links will only be displayed to <a href="!admin-access">spam moderators</a> and users with <a href="!admin-access">@admin-nodes</a> permission.',
       array(
         '@admin-nodes' => t('administer nodes'),
-        '@admin-access' => url('admin/access')
+        '!admin-access' => url('admin/access'),
       ))
   );
   $form['node_options']['akismet_node_spam_links'] = array(
     '#type' => 'radios', '#title' => t('Show submit spam/ham links'),
     '#options' => $enable_options,
     '#default_value' => variable_get('akismet_node_spam_links', 0),
-    '#description' => t('Use this option to <em>enable</em> or <em>disable</em> links for <em>submit spam</em>/<em>ham</em> operations in nodes. If enabled, these links will only be displayed to <a href="@admin-access">spam moderators</a> and users with <a href="@admin-access">@admin-nodes</a> permission.',
+    '#description' => t('Use this option to <em>enable</em> or <em>disable</em> links for <em>submit spam</em>/<em>ham</em> operations in nodes. If enabled, these links will only be displayed to <a href="!admin-access">spam moderators</a> and users with <a href="!admin-access">@admin-nodes</a> permission.',
       array(
         '@admin-nodes' => t('administer nodes'),
-        '@admin-access' => url('admin/access')
+        '!admin-access' => url('admin/access'),
       ))
-      .'<br />'. t('<strong>Note:</strong> To interact fully with the <a href="@akismet">Akismet Service</a> you really should try putting data back into the system as well as just taking it out. If it is at all possible, please use these links to submit missed spam and false positives (ham), otherwise Akismet will never learn from its mistakes. Thank you.',
+      .'<br />'. t('<strong>Note:</strong> To interact fully with the <a href="!akismet">Akismet Service</a> you really should try putting data back into the system as well as just taking it out. If it is at all possible, please use these links to submit missed spam and false positives (ham), otherwise Akismet will never learn from its mistakes. Thank you.',
       array(
-        '@akismet' => 'http://akismet.com'
+        '!akismet' => url('http://akismet.com'),
       ))
   );
 
@@ -149,35 +149,35 @@
       '#type' => 'radios', '#title' => t('Check for spam in comments'),
       '#options' => $enable_options,
       '#default_value' => variable_get('akismet_check_comments', 1),
-      '#description' => t('Use this option to <em>enable</em> or <em>disable</em> spam check for comments. When this option is enabled, a request will be sent to the <a href="@akismet">Akismet Service</a>, in real time. If the <a href="@akismet">Akismet Service</a> was down, comments would simply be queued for manual moderation. Users with <a href="@admin-access">@admin-comments</a> permission and <a href="@admin-access">spam moderators</a> are exempt from this check.',
+      '#description' => t('Use this option to <em>enable</em> or <em>disable</em> spam check for comments. When this option is enabled, a request will be sent to the <a href="!akismet">Akismet Service</a>, in real time. If the <a href="!akismet">Akismet Service</a> was down, comments would simply be queued for manual moderation. Users with <a href="!admin-access">@admin-comments</a> permission and <a href="!admin-access">spam moderators</a> are exempt from this check.',
         array(
-          '@akismet' => 'http://akismet.com',
+          '!akismet' => url('http://akismet.com'),
           '@admin-comments' => t('administer comments'),
-          '@admin-access' => url('admin/access')
+          '!admin-access' => url('admin/access'),
         ))
     );
     $form['comment_options']['akismet_comment_publish_links'] = array(
       '#type' => 'radios', '#title' => t('Show publish/unpublish links'),
       '#options' => $enable_options,
       '#default_value' => variable_get('akismet_comment_publish_links', 1),
-      '#description' => t('Use this option to <em>enable</em> or <em>disable</em> links for <em>publish</em>/<em>unpublish</em> operations in comments. If enabled, these links will only be displayed to <a href="@admin-access">spam moderators</a> and users with <a href="@admin-access">@admin-comments</a> permission.',
+      '#description' => t('Use this option to <em>enable</em> or <em>disable</em> links for <em>publish</em>/<em>unpublish</em> operations in comments. If enabled, these links will only be displayed to <a href="!admin-access">spam moderators</a> and users with <a href="!admin-access">@admin-comments</a> permission.',
         array(
           '@admin-comments' => t('administer comments'),
-          '@admin-access' => url('admin/access')
+          '!admin-access' => url('admin/access'),
         ))
     );
     $form['comment_options']['akismet_comment_spam_links'] = array(
       '#type' => 'radios', '#title' => t('Show submit spam/ham links'),
       '#options' => $enable_options,
       '#default_value' => variable_get('akismet_comment_spam_links', 1),
-      '#description' => t('Use this option to <em>enable</em> or <em>disable</em> links for <em>submit spam</em>/<em>ham</em> operations in comments. If enabled, these links will only be displayed to <a href="@admin-access">spam moderators</a> and users with <a href="@admin-access">@admin-comments</a> permission.',
+      '#description' => t('Use this option to <em>enable</em> or <em>disable</em> links for <em>submit spam</em>/<em>ham</em> operations in comments. If enabled, these links will only be displayed to <a href="!admin-access">spam moderators</a> and users with <a href="!admin-access">@admin-comments</a> permission.',
         array(
           '@admin-comments' => t('administer comments'),
-          '@admin-access' => url('admin/access')
+          '!admin-access' => url('admin/access'),
         ))
-        .'<br />'. t('<strong>Note:</strong> To interact fully with the <a href="@akismet">Akismet Service</a> you really should try putting data back into the system as well as just taking it out. If it is at all possible, please use these links to submit missed spam and false positives (ham), otherwise Akismet will never learn from its mistakes. Thank you.',
+        .'<br />'. t('<strong>Note:</strong> To interact fully with the <a href="!akismet">Akismet Service</a> you really should try putting data back into the system as well as just taking it out. If it is at all possible, please use these links to submit missed spam and false positives (ham), otherwise Akismet will never learn from its mistakes. Thank you.',
         array(
-          '@akismet' => 'http://akismet.com'
+          '!akismet' => url('http://akismet.com'),
         ))
     );
   }
@@ -219,9 +219,9 @@
   $form['anti_spambot'] = array(
     '#type' => 'fieldset', '#title' => t('Anti-Spambot Options'),
     '#collapsible' => TRUE, '#collapsed' => TRUE,
-    '#description' => t('The goal of this section is not to replace anything that the <a href="@akismet">Akismet Service</a> itself can do a lot better than us, but to provide a set of simple rules aimed to prevent Denial of Service (DoS) situations that could be caused by certain spambots.',
+    '#description' => t('The goal of this section is not to replace anything that the <a href="!akismet">Akismet Service</a> itself can do a lot better than us, but to provide a set of simple rules aimed to prevent Denial of Service (DoS) situations that could be caused by certain spambots.',
       array(
-        '@akismet' => 'http://akismet.com'
+        '!akismet' => url('http://akismet.com'),
       ))
   );
   $delay_options = drupal_map_assoc(array(0, 30, 60, 90, 120, 150, 180), 'format_interval');
@@ -241,10 +241,10 @@
     '#type' => 'checkboxes', '#title' => t('Identify spambots by'),
     '#options' => $anti_spambot_rules,
     '#default_value' => variable_get('akismet_antispambot_rules', NULL),
-    '#description' => t('These rules will be applied before sending any request to the <a href="@akismet">Akismet Service</a>. If a request to send content matches any of these rules, the actions defined below will be triggered. Requests to send content are checked against spam that is stored locally (visible from the <a href="@moderation-queue">moderation queue</a>).',
+    '#description' => t('These rules will be applied before sending any request to the <a href="!akismet">Akismet Service</a>. If a request to send content matches any of these rules, the actions defined below will be triggered. Requests to send content are checked against spam that is stored locally (visible from the <a href="!moderation-queue">moderation queue</a>).',
       array(
-        '@akismet' => 'http://akismet.com',
-        '@moderation-queue' => url('admin/content/akismet')
+        '!akismet' => url('http://akismet.com'),
+        '!moderation-queue' => url('admin/content/akismet'),
       ))
   );
   $anti_spambot_actions = array(
@@ -257,10 +257,10 @@
     '#type' => 'radios', '#title' => t('Actions against spambots'),
     '#options' => $anti_spambot_actions,
     '#default_value' => variable_get('akismet_antispambot_action', '503'),
-    '#description' => t('Use this option to specify what to do against spambots identified by any of the above rules. When a <em>HTTP error</em> is generated (403 or 503), no request to the <a href="@akismet">Akismet Service</a> will be made, the request to post content will not be stored into database and no further moderator notifications will be sent. In any case, when a rule matches, a record of the event will be <a href="@admin-logs">logged</a> for further analysis.',
+    '#description' => t('Use this option to specify what to do against spambots identified by any of the above rules. When a <em>HTTP error</em> is generated (403 or 503), no request to the <a href="!akismet">Akismet Service</a> will be made, the request to post content will not be stored into database and no further moderator notifications will be sent. In any case, when a rule matches, a record of the event will be <a href="!admin-logs">logged</a> for further analysis.',
       array(
-        '@akismet' => 'http://akismet.com',
-        '@admin-logs' => url('admin/logs')
+        '!akismet' => url('http://akismet.com'),
+        '!admin-logs' => url('admin/logs'),
       ))
   );
 
