diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index 34006cc..7955afb 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -3144,6 +3144,14 @@ function drupal_classloader($class_loader = NULL) {
     $loader->registerPrefixes($prefixes);
     $loader->registerNamespaces($namespaces);
 
+    // Register namespaces for vendor interfaces not managed by Composer. Some
+    // of these may become manageable by Composer in the future, at which time,
+    // they will be moved into the core/vendor directory and be registered by
+    // the code above.
+    $loader->registerNamespaces(array(
+      'Symfony\Component\Translation' => DRUPAL_ROOT . '/core/vendor-interfaces',
+    ));
+
     // Register the loader with PHP.
     $loader->register();
   }
diff --git a/core/vendor-interfaces/README.txt b/core/vendor-interfaces/README.txt
new file mode 100644
index 0000000..3fd63eb
--- /dev/null
+++ b/core/vendor-interfaces/README.txt
@@ -0,0 +1,6 @@
+3rd party interfaces used by Drupal core should be placed in this directory.
+They should not be modified from their original form at any time. They should
+be changed only to keep up to date with upstream projects.
+
+Code in this directory MAY be licensed under a GPL-compatible non-GPL license.
+If so, it must be properly documented in COPYRIGHT.txt.
diff --git a/core/vendor-interfaces/Symfony/Component/Translation/TranslatorInterface.php b/core/vendor-interfaces/Symfony/Component/Translation/TranslatorInterface.php
new file mode 100644
index 0000000..2d75cf6
--- /dev/null
+++ b/core/vendor-interfaces/Symfony/Component/Translation/TranslatorInterface.php
@@ -0,0 +1,69 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation;
+
+/**
+ * TranslatorInterface.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @api
+ */
+interface TranslatorInterface
+{
+    /**
+     * Translates the given message.
+     *
+     * @param string $id         The message id
+     * @param array  $parameters An array of parameters for the message
+     * @param string $domain     The domain for the message
+     * @param string $locale     The locale
+     *
+     * @return string The translated string
+     *
+     * @api
+     */
+    public function trans($id, array $parameters = array(), $domain = null, $locale = null);
+
+    /**
+     * Translates the given choice message by choosing a translation according to a number.
+     *
+     * @param string  $id         The message id
+     * @param integer $number     The number to use to find the indice of the message
+     * @param array   $parameters An array of parameters for the message
+     * @param string  $domain     The domain for the message
+     * @param string  $locale     The locale
+     *
+     * @return string The translated string
+     *
+     * @api
+     */
+    public function transChoice($id, $number, array $parameters = array(), $domain = null, $locale = null);
+
+    /**
+     * Sets the current locale.
+     *
+     * @param string $locale The locale
+     *
+     * @api
+     */
+    public function setLocale($locale);
+
+    /**
+     * Returns the current locale.
+     *
+     * @return string The locale
+     *
+     * @api
+     */
+    public function getLocale();
+}
