diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index 369fdfc..753f24b 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -1388,6 +1388,47 @@ function t($string, array $args = array(), array $options = array()) {
 }
 
 /**
+ * Marks a string as translatable for later translation via t().
+ *
+ * Use this function for strings that are translatable, but which should not be
+ * translated immediately. For example, when defining a label in an info hook
+ * whose results will be cached, and the label may only be translated when it is
+ * actually output:
+ * @code
+ * function mymodule_example_info() {
+ *   $items['foo'] = array(
+ *     'label' => tl('Foo'),
+ *   );
+ *   return $items;
+ * }
+ * @endcode
+ *
+ * All strings wrapped in tl() will be extracted by Drupal's translatable string
+ * parser and made available to translators. The untranslated source strings
+ * will be imported into the {locales_source} database table when they are first
+ * output via t():
+ * @code
+ * function example_view(Thing $thing) {
+ *   return t($thing->label());
+ * }
+ * @endcode
+ *
+ * A translated string will appear as soon as a translation was imported (or
+ * manually created).
+ *
+ * @param string $string
+ *   A string containing the English string to translate.
+ *
+ * @return string
+ *   The passed in string.
+ *
+ * @see t()
+ */
+function tl($string) {
+  return $string;
+}
+
+/**
  * Replaces placeholders with sanitized values in a string.
  *
  * @param $string
