Remove gettext.install from ceilometer/__init__.py
The gettext.install() installs a builtin _() function for translation purpose. If it is called multiple times, the last call will win and the translation domain set by the last call will be used. When the ceilometer.compute.nova_notifier driver used within nova, the gettext.install() call in ceilometer/__init__.py would change the previous translation domain set by nova. This is not what we want. We have to remove this shortcut, and put the gettext.install() call early on in a top level script. Instead of directly calling gettext.install(), we leverage the gettextutils.install() in openstack.common, so we can specifiy the localedir for ceilometer through the environment variable CEILOMETER_LOCALEDIR. This is part of the blueprint gettext-i18n-issue. Change-Id: Icb2dcfb319778042cf569dcb607f579d1e0fda3a
This commit is contained in:
parent
9d77054863
commit
6bd416dfaa
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -13,7 +13,3 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
import gettext
|
||||
|
||||
gettext.install('ceilometer', unicode=1)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user