summaryrefslogtreecommitdiffstats
path: root/keystone/openstack
diff options
context:
space:
mode:
authorMark McLoughlin <markmc@redhat.com>2013-05-08 12:07:07 +0100
committerMark McLoughlin <markmc@redhat.com>2013-05-29 10:40:00 +0100
commit7ce56d5f45f7112f0b25061473e64145fc840c98 (patch)
treefd0860917372258411ecdd3f512dda1b1111e8da /keystone/openstack
parent2879d42de12cfb5a141197debbf7eaa53cd6750f (diff)
downloadkeystone-7ce56d5f45f7112f0b25061473e64145fc840c98.tar.gz
keystone-7ce56d5f45f7112f0b25061473e64145fc840c98.tar.xz
keystone-7ce56d5f45f7112f0b25061473e64145fc840c98.zip
Add KEYSTONE_LOCALEDIR env variable
Part of fixing bug #995287 Syncs these two commits from oslo-incubator: Support overriding oslo localedir too Add a gettextutils.install() helper function to get a new gettextutils.install() function which allows the default localedir to be overwritten via an environment variable. A few things to note: - the gettext.install() call is moved from common.config to the toplevel scripts to fix cases (e.g. the legacy auth_token middleware) where keystone code might be imported by a program who's default translation domain is not 'keystone'. - we add a gettext.install() call in keystone.test so that tests have the _() builtin installed. Change-Id: I86562b3a65d371673bb21f7179eecc7602bc0775
Diffstat (limited to 'keystone/openstack')
-rw-r--r--keystone/openstack/common/gettextutils.py25
1 files changed, 21 insertions, 4 deletions
diff --git a/keystone/openstack/common/gettextutils.py b/keystone/openstack/common/gettextutils.py
index d52309e6..55ba3387 100644
--- a/keystone/openstack/common/gettextutils.py
+++ b/keystone/openstack/common/gettextutils.py
@@ -20,14 +20,31 @@ gettext for openstack-common modules.
Usual usage in an openstack.common module:
- from nova.openstack.common.gettextutils import _
+ from keystone.openstack.common.gettextutils import _
"""
import gettext
+import os
-
-t = gettext.translation('openstack-common', 'locale', fallback=True)
+_localedir = os.environ.get('keystone'.upper() + '_LOCALEDIR')
+_t = gettext.translation('keystone', 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)