some documentation updates

--HG--
branch : trunk
diff --git a/jinja2/ext.py b/jinja2/ext.py
index c35a9c2..5d2251d 100644
--- a/jinja2/ext.py
+++ b/jinja2/ext.py
@@ -15,7 +15,7 @@
 from jinja2.environment import get_spontaneous_environment
 from jinja2.runtime import Undefined, concat
 from jinja2.exceptions import TemplateAssertionError, TemplateSyntaxError
-from jinja2.utils import import_string, Markup
+from jinja2.utils import contextfunction, import_string, Markup
 
 
 # the only real useful gettext functions for a Jinja template.  Note
@@ -74,14 +74,14 @@
         )
 
 
-class TransExtension(Extension):
+class InternationalizationExtension(Extension):
     """This extension adds gettext support to Jinja."""
     tags = set(['trans'])
 
     def __init__(self, environment):
         Extension.__init__(self, environment)
         environment.globals.update({
-            '_':        lambda x: x,
+            '_':        contextfunction(lambda c, x: c['gettext'](x)),
             'gettext':  lambda x: x,
             'ngettext': lambda s, p, n: (s, p)[n != 1]
         })
@@ -284,11 +284,11 @@
         if not extension:
             continue
         extension = import_string(extension)
-        if extension is TransExtension:
+        if extension is InternationalizationExtension:
             have_trans_extension = True
         extensions.append(extension)
     if not have_trans_extension:
-        extensions.append(TransExtension)
+        extensions.append(InternationalizationExtension)
 
     environment = get_spontaneous_environment(
         options.get('block_start_string', '{%'),
@@ -310,3 +310,8 @@
     node = environment.parse(fileobj.read().decode(encoding))
     for lineno, func, message in extract_from_ast(node, keywords):
         yield lineno, func, message, []
+
+
+#: nicer import names
+i18n = InternationalizationExtension
+cache = CacheExtension