diff --git a/disqus.module b/disqus.module
index d70f084..5b4e203 100644
--- a/disqus.module
+++ b/disqus.module
@@ -29,25 +29,25 @@ define('DISQUS_API_REMOVE', 2);
 function disqus_help($route_name, RouteMatchInterface $route_match) {
   switch ($route_name) {
     case 'help.page.disqus':
-      $output = '<p>' . t('Uses the !disqus comment system to enhance comments.', array(
-          '!disqus' => \Drupal::l('Disqus', URL::fromUri('http://disqus.com/')))) . '</p>';
+      $output = '<p>' . t('Uses the <a href=":disqus">Disqus</a> comment system to enhance comments.', array(
+          ':disqus' => URL::fromUri('http://disqus.com/')->toString())) . '</p>';
       $output .= '<h3>' . t('Installation') . '</h3>';
-      $output .= '<ol><li>' . t('Register your site information at !disqus.', array('!disqus' => \Drupal::l('Disqus', URL::fromUri('http://disqus.com/')))) . '</li>';
-      $output .= '<li>' . t('In the !configuration, set the domain to what you registered with Disqus.',
-          array('!configuration' => \Drupal::l('Disqus configuration', Url::fromRoute('disqus.settings')))) . '</li>';
-      $output .= '<li>' . t('Disqus comments can be enabled for any !entity-help (for example, a !content-type). On the Manage fields page for each entity sub-type, you can enable disqus by adding a Disqus comments field.', array(
-          '!entity-help' => \Drupal::l('entity sub-type', Url::fromRoute('help.page', array('name' => 'entity'))),
-          '!content-type' => \Drupal::l('content type', Url::fromRoute('entity.node_type.collection')),
+      $output .= '<ol><li>' . t('Register your site information at <a href=":disqus">Disqus</a>.', array(':disqus' => URL::fromUri('http://disqus.com/')->toString())) . '</li>';
+      $output .= '<li>' . t('In the <a href=":configuration">Disqus configuration</a>, set the domain to what you registered with Disqus.',
+          array(':configuration' => Url::fromRoute('disqus.settings')->toString())) . '</li>';
+      $output .= '<li>' . t('Disqus comments can be enabled for any <a href=":entity-help">entity sub-type</a> (for example, a <a href=":content-type">content type</a>). On the Manage fields page for each entity sub-type, you can enable disqus by adding a Disqus comments field.', array(
+          ':entity-help' => Url::fromRoute('help.page', array('name' => 'entity'))->toString(),
+          ':content-type' => Url::fromRoute('entity.node_type.collection')->toString(),
         )) . '</li>';
-      $output .= '<li>' . t('Alternatively disqus comments can be used on !blocks. You will first need to configure the disqus comment field for any entity sub-type.',
-          array('!blocks' => \Drupal::l('Blocks', Url::fromRoute('block.admin_display')))) . '</li>';
-      $output .= '<li>' . t('Visit the !permissions, and set which users you would like to have the ability to view Disqus threads (recommended for role).',
-          array('!permissions' => \Drupal::l('permissions', Url::fromRoute('user.admin_permissions', array(), array('fragment' => 'module-disqus'))))) . '</li></ol>';
+      $output .= '<li>' . t('Alternatively disqus comments can be used on <a href=":blocks">Blocks</a>. You will first need to configure the disqus comment field for any entity sub-type.',
+          array(':blocks' => Url::fromRoute('block.admin_display')->toString())) . '</li>';
+      $output .= '<li>' . t('Visit the <a href=":permissions">permissions</a>, and set which users you would like to have the ability to view Disqus threads (recommended for role).',
+          array(':permissions' => Url::fromRoute('user.admin_permissions', array(), array('fragment' => 'module-disqus'))->toString())) . '</li></ol>';
       return $output;
 
     case 'disqus.settings':
-      return '<p>' . t('The following provides the general configuration options for the !disqus comment web service.',
-          array('!disqus' => \Drupal::l('Disqus', URL::fromUri('http://disqus.com')))) . '</p>';
+      return '<p>' . t('The following provides the general configuration options for the <a href=":disqus">Disqus</a> comment web service.',
+          array(':disqus' => URL::fromUri('http://disqus.com')->toString())) . '</p>';
   }
 }
 
@@ -126,7 +126,7 @@ function disqus_entity_delete(Drupal\Core\Entity\EntityInterface $entity) {
       catch (Exception $exception) {
         drupal_set_message(t('There was an error loading the thread details from Disqus.'), 'error');
         \Drupal::logger('disqus')
-          ->error('Error loading thread details for entity : !identifier. Check your API keys.', array('!identifier' => "{$entity->getEntityTypeId()}/{$entity->id()}"));
+          ->error('Error loading thread details for entity : @identifier. Check your API keys.', array('@identifier' => "{$entity->getEntityTypeId()}/{$entity->id()}"));
       }
       if (isset($thread->id)) {
         if ($action == DISQUS_API_CLOSE) {
@@ -140,7 +140,7 @@ function disqus_entity_delete(Drupal\Core\Entity\EntityInterface $entity) {
           catch (Exception $exception) {
             drupal_set_message(t('There was an error closing the thread on Disqus.'), 'error');
             \Drupal::logger('disqus')
-              ->error('Error closing thread for entity : !identifier. Check your user access token.', array('!identifier' => "{$entity->getEntityTypeId()}/{$entity->id()}"));
+              ->error('Error closing thread for entity : @identifier. Check your user access token.', array('@identifier' => "{$entity->getEntityTypeId()}/{$entity->id()}"));
           }
         }
         if ($action == DISQUS_API_REMOVE) {
@@ -154,7 +154,7 @@ function disqus_entity_delete(Drupal\Core\Entity\EntityInterface $entity) {
           catch (Exception $exception) {
             drupal_set_message(t('There was an error removing the thread on Disqus.'), 'error');
             \Drupal::logger('disqus')
-              ->error('Error closing thread for entity : !identifier. Check your user access token.', array('!identifier' => "{$entity->getEntityTypeId()}/{$entity->id()}"));
+              ->error('Error closing thread for entity : @identifier. Check your user access token.', array('@identifier' => "{$entity->getEntityTypeId()}/{$entity->id()}"));
           }
         }
       }
@@ -193,7 +193,7 @@ function disqus_entity_update(Drupal\Core\Entity\EntityInterface $entity) {
       catch (Exception $exception) {
         drupal_set_message(t('There was an error loading the thread details from Disqus.'), 'error');
         \Drupal::logger('disqus')
-          ->error('Error loading thread details for entity : !identifier. Check your API keys.', array('!identifier' => "{$entity->getEntityTypeId()}/{$entity->id()}"));
+          ->error('Error loading thread details for entity : @identifier. Check your API keys.', array('@identifier' => "{$entity->getEntityTypeId()}/{$entity->id()}"));
       }
       if (isset($thread->id)) {
         try {
@@ -208,7 +208,7 @@ function disqus_entity_update(Drupal\Core\Entity\EntityInterface $entity) {
         catch (Exception $exception) {
           drupal_set_message(t('There was an error updating the thread details on Disqus.'), 'error');
           \Drupal::logger('disqus')
-            ->error('Error updating thread details for entity : !identifier. Check your user access token.', array('!identifier' => "{$entity->getEntityTypeId()}/{$entity->id()}"));
+            ->error('Error updating thread details for entity : @identifier. Check your user access token.', array('@identifier' => "{$entity->getEntityTypeId()}/{$entity->id()}"));
         }
       }
     }
diff --git a/src/Controller/DisqusController.php b/src/Controller/DisqusController.php
index 49e62a7..9de1113 100644
--- a/src/Controller/DisqusController.php
+++ b/src/Controller/DisqusController.php
@@ -11,7 +11,8 @@ class DisqusController {
    */
   public function closeWindow() {
      $build = array(
-       '#markup'=> t('Thank you for logging in. Please close this window, or <a href="!clickhere">click here</a> to continue.', array('!clickhere' => 'javascript:window.close();')),
+       // Note: We are using '@' on purpose to not have bad protocol filtering.
+       '#markup'=> t('Thank you for logging in. Please close this window, or <a href="@clickhere">click here</a> to continue.', array('@clickhere' => 'javascript:window.close();')),
        '#attached' => array(
          'js' => array(
            array(
diff --git a/src/Form/DisqusSettingsForm.php b/src/Form/DisqusSettingsForm.php
index 6020eb2..9a2e651 100644
--- a/src/Form/DisqusSettingsForm.php
+++ b/src/Form/DisqusSettingsForm.php
@@ -139,9 +139,9 @@ class DisqusSettingsForm extends ConfigFormBase {
       '#type' => 'details',
       '#title' => t('Advanced'),
       '#group' => 'settings',
-      '#description' => t('Use these settings to configure the more advanced uses of Disqus. You can find more information about these in the !applications section of Disqus. To enable some of these features, you will require a !addons.', array(
-        '!applications' => \Drupal::l('Applications', URL::fromUri('http://disqus.com/api/applications/')),
-        '!addons' => \Drupal::l('Disqus Add-on Package', URL::fromUri('http://disqus.com/addons/')),
+      '#description' => t('Use these settings to configure the more advanced uses of Disqus. You can find more information about these in the <a href=":applications">Applications</a> section of Disqus. To enable some of these features, you will require a <a href=":addons">Disqus Add-on Package</a>.', array(
+        ':applications' => URL::fromUri('http://disqus.com/api/applications/')->toString(),
+        ':addons' => URL::fromUri('http://disqus.com/addons/')->toString(),
       )),
     );
     $form['advanced']['disqus_useraccesstoken'] = array(
@@ -163,9 +163,9 @@ class DisqusSettingsForm extends ConfigFormBase {
       '#weight' => 4,
       '#type' => 'fieldset',
       '#title' => t('Disqus API Settings'),
-      '#description' => t('These setting pertain to the official Disqus PHP API. You will need to install the !composer-manager and run the composer-manager\'s install command to download the api files and enable api functionality. Check the !disqus project page for more information.', array(
-        '!composer-manager' => \Drupal::l('Composer Manager module', URL::fromUri('https://www.drupal.org/project/composer_manager')),
-        '!disqus' => \Drupal::l('Disqus module', URL::fromUri('https://www.drupal.org/project/disqus')),
+      '#description' => t('These setting pertain to the official Disqus PHP API. You will need to install the <a href=":composer-manager">Composer Manager module</a> and run the composer-manager\'s install command to download the api files and enable api functionality. Check the <a href=":disqus">Disqus module</a> project page for more information.', array(
+        ':composer-manager' => URL::fromUri('https://www.drupal.org/project/composer_manager')->toString(),
+        ':disqus' => URL::fromUri('https://www.drupal.org/project/disqus')->toString(),
       )),
       '#collapsible' => FALSE,
       '#collapsed' => FALSE,
@@ -215,8 +215,8 @@ class DisqusSettingsForm extends ConfigFormBase {
     $form['advanced']['sso']['disqus_sso'] = array(
       '#type' => 'checkbox',
       '#title' => t('Use Single Sign-On'),
-      '#description' => t('Provide <a href="!sso">Single Sign-On</a> access to your site.', array(
-        '!sso' => 'http://disqus.com/api/sso/',
+      '#description' => t('Provide <a href=":sso">Single Sign-On</a> access to your site.', array(
+        ':sso' => 'http://disqus.com/api/sso/',
       )),
       '#default_value' => $disqus_config->get('advanced.sso.disqus_sso'),
     );
diff --git a/src/Plugin/Block/DisqusCommentsBlock.php b/src/Plugin/Block/DisqusCommentsBlock.php
index f6d2b69..0b3eb1d 100644
--- a/src/Plugin/Block/DisqusCommentsBlock.php
+++ b/src/Plugin/Block/DisqusCommentsBlock.php
@@ -32,7 +32,7 @@ class DisqusCommentsBlock extends DisqusBaseBlock {
       '#tree' => TRUE,
     );
 
-    $form['disqus']['#description'] = t('This block will be used to display the comments from Disqus. You will first need to configure the disqus comment field for any <a href="!entity-help">entity sub-type </a> (for example, a <a href="!content-type">content type</a>).', array('!entity-help' => \Drupal::url('help.page', array('name' => 'entity')), '!content-type' => \Drupal::url('entity.node_type.collection')));
+    $form['disqus']['#description'] = t('This block will be used to display the comments from Disqus. You will first need to configure the disqus comment field for any <a href=":entity-help">entity sub-type </a> (for example, a <a href=":content-type">content type</a>).', array(':entity-help' => \Drupal::url('help.page', array('name' => 'entity')), ':content-type' => \Drupal::url('entity.node_type.collection')));
 
     return $form;
   }
diff --git a/src/Plugin/Field/FieldWidget/DisqusWidget.php b/src/Plugin/Field/FieldWidget/DisqusWidget.php
index 4158245..d6efeeb 100644
--- a/src/Plugin/Field/FieldWidget/DisqusWidget.php
+++ b/src/Plugin/Field/FieldWidget/DisqusWidget.php
@@ -64,7 +64,7 @@ class DisqusWidget extends WidgetBase implements ContainerFactoryPluginInterface
     $element['status'] = array(
       '#type' => 'checkbox',
       '#title' => t('Disqus Comments'),
-      '#description' => t('Users can post comments using <a href="!disqus">Disqus</a>.', array('!disqus' => 'http://disqus.com')),
+      '#description' => t('Users can post comments using <a href=":disqus">Disqus</a>.', array(':disqus' => 'http://disqus.com')),
       '#default_value' => isset($items->status) ? $items->status : TRUE,
       '#access' => $this->currentUser->hasPermission('toggle disqus comments'),
     );
diff --git a/src/Plugin/migrate/destination/DisqusComment.php b/src/Plugin/migrate/destination/DisqusComment.php
index 21c302a..d78a130 100644
--- a/src/Plugin/migrate/destination/DisqusComment.php
+++ b/src/Plugin/migrate/destination/DisqusComment.php
@@ -103,7 +103,7 @@ class DisqusComment extends DestinationBase {
         $thread = $disqus->threads->details(array('forum' => $this->config->get('disqus_domain'), 'thread:ident' => $identifier, 'thread' => '1'));
       }
       catch (Exception $exception) {
-        $this->logger->error('Error loading thread details for entity : !identifier. Check your API keys.', array('!identifier' => $identifier));
+        $this->logger->error('Error loading thread details for entity : @identifier. Check your API keys.', array('@identifier' => $identifier));
         $thread = null;
       }
       if (!isset($thread->id)) {
@@ -111,7 +111,7 @@ class DisqusComment extends DestinationBase {
           $thread = $disqus->threads->create(array('forum' =>  $this->config->get('disqus_domain'), 'access_token' => $this->config->get('advanced.disqus_useraccesstoken'), 'title' => $row->getDestinationProperty('title'),  'identifier' => $identifier));
         }
         catch (Exception $exception) {
-          $this->logger->error('Error creating thread for entity : !identifier. Check your user access token.', array('!identifier' => $identifier));
+          $this->logger->error('Error creating thread for entity : @identifier. Check your user access token.', array('@identifier' => $identifier));
         }
       }
       try {
@@ -146,7 +146,7 @@ class DisqusComment extends DestinationBase {
         return TRUE;
       }
       catch (Exception $exception) {
-        $this->logger->error('Error creating post on thread !thread.', array('!thread' => $thread->id));
+        $this->logger->error('Error creating post on thread @thread.', array('@thread' => $thread->id));
       }
       return FALSE;
     }
