diff --git a/bin/ceilometer-agent-central b/bin/ceilometer-agent-central index a4cfcba4..919f16d7 100755 --- a/bin/ceilometer-agent-central +++ b/bin/ceilometer-agent-central @@ -22,6 +22,10 @@ eventlet.monkey_patch() import sys from oslo.config import cfg + +from ceilometer.openstack.common import gettextutils +gettextutils.install('ceilometer') + from ceilometer.central import manager from ceilometer.service import prepare_service from ceilometer.openstack.common import service diff --git a/bin/ceilometer-agent-compute b/bin/ceilometer-agent-compute index 95770740..27dff947 100755 --- a/bin/ceilometer-agent-compute +++ b/bin/ceilometer-agent-compute @@ -22,6 +22,10 @@ eventlet.monkey_patch() import sys from oslo.config import cfg + +from ceilometer.openstack.common import gettextutils +gettextutils.install('ceilometer') + from ceilometer.compute import manager from ceilometer.service import prepare_service from ceilometer.openstack.common import service diff --git a/bin/ceilometer-api b/bin/ceilometer-api index ffe24a46..06435ba2 100755 --- a/bin/ceilometer-api +++ b/bin/ceilometer-api @@ -24,6 +24,9 @@ from wsgiref import simple_server from oslo.config import cfg +from ceilometer.openstack.common import gettextutils +gettextutils.install('ceilometer') + from ceilometer.api import app from ceilometer import service diff --git a/bin/ceilometer-collector b/bin/ceilometer-collector index 4fa81513..5f3586cf 100755 --- a/bin/ceilometer-collector +++ b/bin/ceilometer-collector @@ -23,6 +23,9 @@ import sys from oslo.config import cfg +from ceilometer.openstack.common import gettextutils +gettextutils.install('ceilometer') + from ceilometer.collector import service as coll_service from ceilometer.service import prepare_service from ceilometer.openstack.common import service diff --git a/bin/ceilometer-dbsync b/bin/ceilometer-dbsync index 26eb7486..f7926367 100755 --- a/bin/ceilometer-dbsync +++ b/bin/ceilometer-dbsync @@ -22,6 +22,9 @@ import sys from oslo.config import cfg +from ceilometer.openstack.common import gettextutils +gettextutils.install('ceilometer') + from ceilometer import service from ceilometer import storage diff --git a/bin/ceilometer-send-counter b/bin/ceilometer-send-counter index e8c62092..33b8adbc 100755 --- a/bin/ceilometer-send-counter +++ b/bin/ceilometer-send-counter @@ -26,6 +26,9 @@ import sys from oslo.config import cfg from stevedore import dispatch +from ceilometer.openstack.common import gettextutils +gettextutils.install('ceilometer') + from ceilometer import counter from ceilometer import pipeline from ceilometer import service diff --git a/ceilometer/__init__.py b/ceilometer/__init__.py index 9ed525a3..8a0b49a4 100644 --- a/ceilometer/__init__.py +++ b/ceilometer/__init__.py @@ -13,7 +13,3 @@ # License for the specific language governing permissions and limitations # under the License. # - -import gettext - -gettext.install('ceilometer', unicode=1) diff --git a/ceilometer/openstack/common/gettextutils.py b/ceilometer/openstack/common/gettextutils.py index 589d3dbe..414d5cec 100644 --- a/ceilometer/openstack/common/gettextutils.py +++ b/ceilometer/openstack/common/gettextutils.py @@ -24,10 +24,27 @@ Usual usage in an openstack.common module: """ import gettext +import os - -t = gettext.translation('ceilometer', 'locale', fallback=True) +_localedir = os.environ.get('ceilometer'.upper() + '_LOCALEDIR') +_t = gettext.translation('ceilometer', 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, + os.environ.get(domain.upper() + '_LOCALEDIR'), + unicode=True) diff --git a/tools/hacking.py b/tools/hacking.py index 2717375b..459fbb96 100755 --- a/tools/hacking.py +++ b/tools/hacking.py @@ -21,6 +21,7 @@ Built on top of pep8.py """ +import gettext import imp import inspect import logging @@ -645,6 +646,7 @@ imports_on_separate_lines_N301_compliant = r""" """ if __name__ == "__main__": + gettext.install('ceilometer', unicode=True) #include nova path sys.path.append(os.getcwd()) #Run once tests (not per line)