Name
translation
Synopsis
translation(domain
,localedir
=None,languages
=None)
Searches for a .mo
file similarly to function
install
. When languages
is None
, translation
looks in
the environment for the lang
to use, like
install
. However,
languages
can also be a list of one or
more lang
names separated by colons
(:), in which case translation
uses the first of these names for which it finds a
.mo
file. Returns an instance object that
supplies methods gettext
(to translate a plain
string), ugettext
(to translate a Unicode string),
and install
(to install gettext
or ugettext
under name _
into
Python’s built-in namespace).
Function translation
offers more detailed control
than install
, which is like
translation(
domain
,localedir
).install(
unicode
)
.
With translation
, you can localize a single
package without affecting the built-in namespace by binding name
_
on a per-module basis, for example with:
_ = translation(domain
).ugettext
translation
also lets you switch globally between
several languages, since you can pass an explicit
languages
argument, keep the resulting
instance, and call the install
method of the
appropriate language as needed:
import gettext translators = { } def switch_to_language(lang, domain='my_app', use_unicode=False): if not translators.has_key(lang): translators[lang] = \ gettext.translation(domain, languages=[lang]) translators[lang].install(use_unicode)
Get Python in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.