diff --git a/src/Plugin/tmgmt/Translator/MicrosoftTranslator.php b/src/Plugin/tmgmt/Translator/MicrosoftTranslator.php
index 575f167..6ca6ea2 100755
--- a/src/Plugin/tmgmt/Translator/MicrosoftTranslator.php
+++ b/src/Plugin/tmgmt/Translator/MicrosoftTranslator.php
@@ -20,6 +20,8 @@ use GuzzleHttp\Exception\BadResponseException;
 use GuzzleHttp\Exception\RequestException;
 use GuzzleHttp\Psr7\Request;
 use Symfony\Component\DependencyInjection\ContainerInterface;
+use Drupal\tmgmt\Translator\AvailableResult;
+use Drupal\tmgmt\Translator\TranslatableResult;
 
 /**
  * Microsoft translator plugin.
@@ -96,28 +98,28 @@ class MicrosoftTranslator extends TranslatorPluginBase implements ContainerFacto
   /**
    * {@inheritdoc}
    */
-  public function isAvailable(TranslatorInterface $translator) {
+  public function checkAvailable(TranslatorInterface $translator) {
     if ($translator->getSetting('client_id') && $translator->getSetting('client_secret')) {
-      return TRUE;
+      return AvailableResult::yes();
     }
-    return FALSE;
+    return AvailableResult::no(t('@translator is not available. Make sure it is properly :configured.'), array('@translator' => $translator->label(), ':configured' => $translator->link(t('configured'))));
   }
 
   /**
    * {@inheritdoc}
    */
-  public function canTranslate(TranslatorInterface $translator, JobInterface $job) {
-    if (!parent::canTranslate($translator, $job)) {
-      return FALSE;
+  public function checkTranslatable(TranslatorInterface $translator, JobInterface $job) {
+    if (!parent::checkTranslatable($translator, $job)) {
+      return TranslatableResult::no(t('Cannot translate job.'));
     }
     foreach (\Drupal::service('tmgmt.data')->filterTranslatable($job->getData()) as $value) {
       // If one of the texts in this job exceeds the max character count
       // the job can't be translated.
       if (Unicode::strlen($value['#text']) > $this->maxCharacters) {
-        return FALSE;
+        return TranslatableResult::no(t('Cannot translate job.'));
       }
     }
-    return TRUE;
+    return TranslatableResult::yes();
   }
 
   /**
