diff --git a/core/core.services.yml b/core/core.services.yml
index 966ed3d..84c54a9 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -672,8 +672,6 @@ services:
   string_translation:
     class: Drupal\Core\StringTranslation\TranslationManager
     arguments: ['@language_manager', '@state']
-    calls:
-      - [initLanguageManager]
     tags:
       - { name: service_collector, tag: string_translator, call: addTranslator }
   database.replica:
diff --git a/core/lib/Drupal/Core/Language/LanguageManager.php b/core/lib/Drupal/Core/Language/LanguageManager.php
index 2fd1597..79ff3bb 100644
--- a/core/lib/Drupal/Core/Language/LanguageManager.php
+++ b/core/lib/Drupal/Core/Language/LanguageManager.php
@@ -20,13 +20,6 @@ class LanguageManager implements LanguageManagerInterface {
   use DependencySerializationTrait;
 
   /**
-   * The string translation service.
-   *
-   * @var \Drupal\Core\StringTranslation\TranslationInterface
-   */
-  protected $translation;
-
-  /**
    * A static cache of translated language lists.
    *
    * Array of arrays to cache the result of self::getLanguages() keyed by the
@@ -57,19 +50,12 @@ public function __construct(LanguageDefault $default_language) {
   }
 
   /**
-   * {@inheritdoc}
-   */
-  public function setTranslation(TranslationInterface $translation) {
-    $this->translation = $translation;
-  }
-
-  /**
    * Translates a string to the current language or to a given language.
    *
    * @see \Drupal\Core\StringTranslation\TranslationInterface()
    */
   protected function t($string, array $args = array(), array $options = array()) {
-    return $this->translation ? $this->translation->translate($string, $args, $options) : SafeMarkup::format($string, $args);
+    return new TranslationWrapper($string, $args, $options);
   }
 
   /**
@@ -109,13 +95,13 @@ public function getLanguageTypes() {
   public function getDefinedLanguageTypesInfo() {
     $this->definedLanguageTypesInfo = array(
       LanguageInterface::TYPE_INTERFACE => array(
-        'name' => new TranslationWrapper('Interface text'),
-        'description' => new TranslationWrapper('Order of language detection methods for interface text. If a translation of interface text is available in the detected language, it will be displayed.'),
+        'name' => $this->t('Interface text'),
+        'description' => $this->t('Order of language detection methods for interface text. If a translation of interface text is available in the detected language, it will be displayed.'),
         'locked' => TRUE,
       ),
       LanguageInterface::TYPE_CONTENT => array(
-        'name' => new TranslationWrapper('Content'),
-        'description' => new TranslationWrapper('Order of language detection methods for content. If a version of content is available in the detected language, it will be displayed.'),
+        'name' => $this->t('Content'),
+        'description' => $this->t('Order of language detection methods for content. If a version of content is available in the detected language, it will be displayed.'),
         'locked' => TRUE,
       ),
       LanguageInterface::TYPE_URL => array(
@@ -213,13 +199,13 @@ public function getDefaultLockedLanguages($weight = 0) {
     // early t() calls by using the TranslationWrapper.
     $languages[LanguageInterface::LANGCODE_NOT_SPECIFIED] = new Language(array(
       'id' => LanguageInterface::LANGCODE_NOT_SPECIFIED,
-      'name' => new TranslationWrapper('Not specified'),
+      'name' => $this->t('Not specified'),
       'weight' => ++$weight,
     ) + $locked_language);
 
     $languages[LanguageInterface::LANGCODE_NOT_APPLICABLE] = new Language(array(
       'id' => LanguageInterface::LANGCODE_NOT_APPLICABLE,
-      'name' => new TranslationWrapper('Not applicable'),
+      'name' => $this->t('Not applicable'),
       'weight' => ++$weight,
     ) + $locked_language);
 
diff --git a/core/lib/Drupal/Core/Language/LanguageManagerInterface.php b/core/lib/Drupal/Core/Language/LanguageManagerInterface.php
index b536a00..950fc69 100644
--- a/core/lib/Drupal/Core/Language/LanguageManagerInterface.php
+++ b/core/lib/Drupal/Core/Language/LanguageManagerInterface.php
@@ -16,14 +16,6 @@
 interface LanguageManagerInterface {
 
   /**
-   * Injects the string translation service.
-   *
-   * @param \Drupal\Core\StringTranslation\TranslationInterface $translation
-   *   The string translation service.
-   */
-  public function setTranslation(TranslationInterface $translation);
-
-  /**
    * Returns whether or not the site has more than one language added.
    *
    * @return bool
diff --git a/core/lib/Drupal/Core/StringTranslation/TranslationManager.php b/core/lib/Drupal/Core/StringTranslation/TranslationManager.php
index 5bf6a9d..be221ed 100644
--- a/core/lib/Drupal/Core/StringTranslation/TranslationManager.php
+++ b/core/lib/Drupal/Core/StringTranslation/TranslationManager.php
@@ -75,17 +75,6 @@ public function __construct(LanguageManagerInterface $language_manager, StateInt
   }
 
   /**
-   * Initializes the injected language manager with the translation manager.
-   *
-   * This should be called right after instantiating the translation manager to
-   * make it available to the language manager without introducing a circular
-   * dependency.
-   */
-  public function initLanguageManager() {
-    $this->languageManager->setTranslation($this);
-  }
-
-  /**
    * Appends a translation system to the translation chain.
    *
    * @param \Drupal\Core\StringTranslation\Translator\TranslatorInterface $translator
