summaryrefslogtreecommitdiffstats
path: root/nova/openstack
diff options
context:
space:
mode:
Diffstat (limited to 'nova/openstack')
-rw-r--r--nova/openstack/common/gettextutils.py23
1 files changed, 20 insertions, 3 deletions
diff --git a/nova/openstack/common/gettextutils.py b/nova/openstack/common/gettextutils.py
index b9993b491..2d2e94a7c 100644
--- a/nova/openstack/common/gettextutils.py
+++ b/nova/openstack/common/gettextutils.py
@@ -24,10 +24,27 @@ Usual usage in an openstack.common module:
"""
import gettext
+import os
-
-t = gettext.translation('nova', 'locale', fallback=True)
+_localedir = os.environ.get('nova'.upper() + '_LOCALEDIR')
+_t = gettext.translation('nova', localedir=_localedir, fallback=True)
def _(msg):
- return t.ugettext(msg)
+ return _t.ugettext(msg)
+
+
+def install(domain):
+ """Install a _() function using the given translation domain.
+
+ Given a translation domain, install a _() function using gettext's
+ install() function.
+
+ The main difference from gettext.install() is that we allow
+ overriding the default localedir (e.g. /usr/share/locale) using
+ a translation-domain-specific environment variable (e.g.
+ NOVA_LOCALEDIR).
+ """
+ gettext.install(domain,
+ localedir=os.environ.get(domain.upper() + '_LOCALEDIR'),
+ unicode=True)