diff --git a/horizon/base.py b/horizon/base.py index a13375549..bc2f37e28 100644 --- a/horizon/base.py +++ b/horizon/base.py @@ -36,7 +36,7 @@ from django.utils.datastructures import SortedDict from django.utils.functional import SimpleLazyObject from django.utils.importlib import import_module from django.utils.module_loading import module_has_submodule -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from horizon import loaders from horizon import conf diff --git a/horizon/conf/default.py b/horizon/conf/default.py index 376a20c6c..445b2571a 100644 --- a/horizon/conf/default.py +++ b/horizon/conf/default.py @@ -1,5 +1,5 @@ from django.conf import settings -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ # Default configuration dictionary. Do not mutate. HORIZON_CONFIG = { diff --git a/horizon/decorators.py b/horizon/decorators.py index 5ee677246..f4d41092b 100644 --- a/horizon/decorators.py +++ b/horizon/decorators.py @@ -24,7 +24,7 @@ General-purpose decorators for use with Horizon. import functools from django.utils.decorators import available_attrs -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ def _current_component(view_func, dashboard=None, panel=None): diff --git a/horizon/exceptions.py b/horizon/exceptions.py index 0402d60a6..e2da6d427 100644 --- a/horizon/exceptions.py +++ b/horizon/exceptions.py @@ -25,7 +25,7 @@ import sys from django.contrib.auth import logout from django.http import HttpRequest from django.utils import termcolors -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from django.views.debug import SafeExceptionReporterFilter, CLEANSED_SUBSTITUTE from horizon import messages diff --git a/horizon/templatetags/branding.py b/horizon/templatetags/branding.py index bead29129..8152c9506 100644 --- a/horizon/templatetags/branding.py +++ b/horizon/templatetags/branding.py @@ -24,7 +24,7 @@ Template tags for customizing Horizon. from django import template from django.conf import settings -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ register = template.Library() diff --git a/horizon/templatetags/horizon.py b/horizon/templatetags/horizon.py index a9c6554b5..c31e56156 100644 --- a/horizon/templatetags/horizon.py +++ b/horizon/templatetags/horizon.py @@ -17,8 +17,9 @@ from __future__ import absolute_import from django import template +from django.utils.encoding import force_unicode from django.utils.datastructures import SortedDict -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from horizon.base import Horizon from horizon import conf @@ -90,9 +91,9 @@ def quota(val, units=None): if val == float("inf"): return _("No Limit") elif units is not None: - return "%s %s %s" % (val, units, _("Available")) + return "%s %s %s" % (val, units, force_unicode(_("Available"))) else: - return "%s %s" % (val, _("Available")) + return "%s %s" % (val, force_unicode(_("Available"))) class JSTemplateNode(template.Node): diff --git a/horizon/templatetags/sizeformat.py b/horizon/templatetags/sizeformat.py index 68d7c1835..8d465596f 100644 --- a/horizon/templatetags/sizeformat.py +++ b/horizon/templatetags/sizeformat.py @@ -42,25 +42,25 @@ def filesizeformat(bytes, filesize_number_format): try: bytes = float(bytes) except (TypeError, ValueError, UnicodeDecodeError): - return translation.ungettext("%(size)d byte", + return translation.ungettext_lazy("%(size)d byte", "%(size)d bytes", 0) % {'size': 0} if bytes < 1024: - return translation.ungettext("%(size)d", + return translation.ungettext_lazy("%(size)d", "%(size)d", bytes) % {'size': bytes} if bytes < 1024 * 1024: - return translation.ugettext("%s KB") % \ + return translation.ugettext_lazy("%s KB") % \ filesize_number_format(bytes / 1024) if bytes < 1024 * 1024 * 1024: - return translation.ugettext("%s MB") % \ + return translation.ugettext_lazy("%s MB") % \ filesize_number_format(bytes / (1024 * 1024)) if bytes < 1024 * 1024 * 1024 * 1024: - return translation.ugettext("%s GB") % \ + return translation.ugettext_lazy("%s GB") % \ filesize_number_format(bytes / (1024 * 1024 * 1024)) if bytes < 1024 * 1024 * 1024 * 1024 * 1024: - return translation.ugettext("%s TB") % \ + return translation.ugettext_lazy("%s TB") % \ filesize_number_format(bytes / (1024 * 1024 * 1024 * 1024)) - return translation.ugettext("%s PB") % \ + return translation.ugettext_lazy("%s PB") % \ filesize_number_format(bytes / (1024 * 1024 * 1024 * 1024 * 1024)) diff --git a/horizon/utils/fields.py b/horizon/utils/fields.py index 90468d141..c739399bd 100644 --- a/horizon/utils/fields.py +++ b/horizon/utils/fields.py @@ -2,7 +2,7 @@ import re import netaddr from django.core.exceptions import ValidationError from django.forms import forms, widgets -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from django.utils.encoding import force_unicode from django.utils.html import escape, conditional_escape from django.utils.functional import Promise diff --git a/horizon/workflows/base.py b/horizon/workflows/base.py index 67761353b..aa8b7ff48 100644 --- a/horizon/workflows/base.py +++ b/horizon/workflows/base.py @@ -24,7 +24,7 @@ from django.core import urlresolvers from django.template.defaultfilters import slugify from django.utils.encoding import force_unicode from django.utils.importlib import import_module -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from django.template.defaultfilters import linebreaks, safe from django.forms.forms import NON_FIELD_ERRORS diff --git a/openstack_dashboard/api/cinder.py b/openstack_dashboard/api/cinder.py index 2917c0774..45f36b7c4 100644 --- a/openstack_dashboard/api/cinder.py +++ b/openstack_dashboard/api/cinder.py @@ -25,7 +25,7 @@ from __future__ import absolute_import import logging from django.conf import settings -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from cinderclient.v1 import client as cinder_client diff --git a/openstack_dashboard/api/nova.py b/openstack_dashboard/api/nova.py index aa0c6e618..bbb2bc0f5 100644 --- a/openstack_dashboard/api/nova.py +++ b/openstack_dashboard/api/nova.py @@ -25,7 +25,7 @@ from __future__ import absolute_import import logging from django.conf import settings -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from novaclient.v1_1 import client as nova_client from novaclient.v1_1 import security_group_rules as nova_rules diff --git a/openstack_dashboard/dashboards/admin/overview/views.py b/openstack_dashboard/dashboards/admin/overview/views.py index 156ea36bb..a05e6bf68 100644 --- a/openstack_dashboard/dashboards/admin/overview/views.py +++ b/openstack_dashboard/dashboards/admin/overview/views.py @@ -19,7 +19,7 @@ # under the License. from django.conf import settings -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from horizon import exceptions diff --git a/openstack_dashboard/dashboards/project/access_and_security/api_access/tables.py b/openstack_dashboard/dashboards/project/access_and_security/api_access/tables.py index f6da44d39..eeb372ce3 100644 --- a/openstack_dashboard/dashboards/project/access_and_security/api_access/tables.py +++ b/openstack_dashboard/dashboards/project/access_and_security/api_access/tables.py @@ -14,7 +14,7 @@ # License for the specific language governing permissions and limitations # under the License. -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from django.template.defaultfilters import title from horizon import tables diff --git a/openstack_dashboard/dashboards/project/instances/workflows/update_instance.py b/openstack_dashboard/dashboards/project/instances/workflows/update_instance.py index c90789b22..e12197af4 100644 --- a/openstack_dashboard/dashboards/project/instances/workflows/update_instance.py +++ b/openstack_dashboard/dashboards/project/instances/workflows/update_instance.py @@ -19,7 +19,7 @@ # under the License. -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from django.core.urlresolvers import reverse from horizon import exceptions diff --git a/openstack_dashboard/dashboards/project/loadbalancers/tables.py b/openstack_dashboard/dashboards/project/loadbalancers/tables.py index 8942dcbca..aedb1c756 100644 --- a/openstack_dashboard/dashboards/project/loadbalancers/tables.py +++ b/openstack_dashboard/dashboards/project/loadbalancers/tables.py @@ -18,7 +18,7 @@ import logging from django.utils import http from django.core.urlresolvers import reverse -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from horizon import tables from openstack_dashboard import api diff --git a/openstack_dashboard/dashboards/project/loadbalancers/tabs.py b/openstack_dashboard/dashboards/project/loadbalancers/tabs.py index e277d4959..15bf3fccb 100644 --- a/openstack_dashboard/dashboards/project/loadbalancers/tabs.py +++ b/openstack_dashboard/dashboards/project/loadbalancers/tabs.py @@ -16,7 +16,7 @@ import re -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from horizon import exceptions from horizon import tabs diff --git a/openstack_dashboard/dashboards/project/loadbalancers/views.py b/openstack_dashboard/dashboards/project/loadbalancers/views.py index 47e398a0a..c0e399034 100644 --- a/openstack_dashboard/dashboards/project/loadbalancers/views.py +++ b/openstack_dashboard/dashboards/project/loadbalancers/views.py @@ -18,7 +18,7 @@ import logging import re from django import http -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from horizon import exceptions from horizon import tables diff --git a/openstack_dashboard/dashboards/project/loadbalancers/workflows.py b/openstack_dashboard/dashboards/project/loadbalancers/workflows.py index f214f8b8c..487b5f030 100644 --- a/openstack_dashboard/dashboards/project/loadbalancers/workflows.py +++ b/openstack_dashboard/dashboards/project/loadbalancers/workflows.py @@ -17,7 +17,7 @@ import logging import re -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from horizon import exceptions from horizon import forms diff --git a/openstack_dashboard/dashboards/settings/user/forms.py b/openstack_dashboard/dashboards/settings/user/forms.py index bb0b385d4..064eb2a57 100644 --- a/openstack_dashboard/dashboards/settings/user/forms.py +++ b/openstack_dashboard/dashboards/settings/user/forms.py @@ -79,6 +79,6 @@ class UserSettingsForm(forms.SelfHandlingForm): request.session['horizon_pagesize'] = data['pagesize'] - messages.success(request, translation.ugettext("Settings saved.")) + messages.success(request, translation.ugettext_lazy("Settings saved.")) return response diff --git a/openstack_dashboard/usage/base.py b/openstack_dashboard/usage/base.py index e67eb441d..829a85bfe 100644 --- a/openstack_dashboard/usage/base.py +++ b/openstack_dashboard/usage/base.py @@ -4,7 +4,7 @@ from calendar import monthrange import datetime import logging -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from django.utils import timezone from horizon import exceptions