summaryrefslogtreecommitdiff
path: root/docs/topics
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2017-01-26 20:56:34 +0100
committerClaude Paroz <claude@2xlibre.net>2017-01-28 12:01:30 +0100
commite34f4e6f8735a6ad102fda096aa99cbb5600761e (patch)
tree100d6376c40d0da163b0c4ae3ad613ffd371f48b /docs/topics
parent9e9e73735e9aa651b5c8ad7a700f90ccb5d3b18b (diff)
Made ugettext* functions aliases of gettext*
Thanks Tim Graham for the review.
Diffstat (limited to 'docs/topics')
-rw-r--r--docs/topics/i18n/translation.txt24
1 files changed, 6 insertions, 18 deletions
diff --git a/docs/topics/i18n/translation.txt b/docs/topics/i18n/translation.txt
index 0aa16717d9..a1aac296af 100644
--- a/docs/topics/i18n/translation.txt
+++ b/docs/topics/i18n/translation.txt
@@ -53,6 +53,12 @@ Specify a translation string by using the function
as a shorter alias, ``_``, to save typing.
.. note::
+ The ``u`` prefixing of ``gettext`` functions was originally to distinguish
+ usage between unicode strings and bytestrings on Python 2. For code that
+ supports only Python 3, they can be used interchangeably. A deprecation for
+ the prefixed functions may happen in a future Django release.
+
+.. note::
Python's standard library ``gettext`` module installs ``_()`` into the
global namespace, as an alias for ``gettext()``. In Django, we have chosen
not to follow this practice, for a couple of reasons:
@@ -428,24 +434,6 @@ strings before passing them to non-Django code::
requests.post('https://example.com/send', data={'body': str(body)})
-If you try to use a ``ugettext_lazy()`` result where a bytestring (a
-:class:`bytes` object) is expected, things won't work as expected since a
-``ugettext_lazy()`` object doesn't know how to convert itself to a bytestring.
-You can't use a string inside a bytestring, either, so this is consistent with
-normal Python behavior. For example, putting a string proxy into a string is
-fine::
-
- "Hello %s" % ugettext_lazy("people")
-
-But you can't insert a string into a bytestring and nor can you insert
-a string proxy there::
-
- b"Hello %s" % ugettext_lazy("people")
-
-If you ever see output that looks like ``"hello
-<django.utils.functional...>"``, you have tried to insert the result of
-``ugettext_lazy()`` into a bytestring. That's a bug in your code.
-
If you don't like the long ``ugettext_lazy`` name, you can just alias it as
``_`` (underscore), like so::