diff --git a/core/lib/Drupal/Core/StringTranslation/TranslationWrapper.php b/core/lib/Drupal/Core/StringTranslation/TranslationWrapper.php
index 7b4abfc..6025629 100644
--- a/core/lib/Drupal/Core/StringTranslation/TranslationWrapper.php
+++ b/core/lib/Drupal/Core/StringTranslation/TranslationWrapper.php
@@ -79,6 +79,7 @@ class TranslationWrapper implements SafeStringInterface {
    *   (optional) The string translation service.
    */
   public function __construct($string, array $arguments = array(), array $options = array(), TranslationInterface $string_translation = NULL) {
+    assert('is_string($string)', '$string must be a string.');
     $this->string = $string;
     $this->arguments = $arguments;
     $this->options = $options;
diff --git a/core/lib/Drupal/Core/Validation/DrupalTranslator.php b/core/lib/Drupal/Core/Validation/DrupalTranslator.php
index ba1a1f9..6a9cd1b 100644
--- a/core/lib/Drupal/Core/Validation/DrupalTranslator.php
+++ b/core/lib/Drupal/Core/Validation/DrupalTranslator.php
@@ -8,6 +8,7 @@
 namespace Drupal\Core\Validation;
 
 use Drupal\Component\Utility\SafeStringInterface;
+use Drupal\Core\StringTranslation\TranslationWrapper;
 
 /**
  * Translates strings using Drupal's translation system.
@@ -28,7 +29,9 @@ class DrupalTranslator implements TranslatorInterface {
    */
   public function trans($id, array $parameters = array(), $domain = NULL, $locale = NULL) {
 
-    return t($id, $this->processParameters($parameters), $this->getOptions($domain, $locale));
+    // If a TranslationWrapper is passed as $id, return it (since the messag
+    // has already been translated).
+    return $id instanceof TranslationWrapper ? $id : t($id, $this->processParameters($parameters), $this->getOptions($domain, $locale));
   }
 
   /**
diff --git a/core/modules/system/tests/modules/module_test/module_test.module b/core/modules/system/tests/modules/module_test/module_test.module
index cead329..ff7af57 100644
--- a/core/modules/system/tests/modules/module_test/module_test.module
+++ b/core/modules/system/tests/modules/module_test/module_test.module
@@ -47,7 +47,7 @@ function module_test_system_info_alter(&$info, Extension $file, $type) {
     }
   }
   if ($file->getName() == 'seven' && $type == 'theme') {
-    $info['regions']['test_region'] = t('Test region');
+    $info['regions']['test_region'] = 'Test region';
   }
 }
 
