From 08e6ed7392aa9d510833dee5b468140de10c22a6 Mon Sep 17 00:00:00 2001 From: Brooklyn Chen Date: Tue, 14 May 2013 14:05:42 +0800 Subject: [PATCH] Use ugettext_lazy instead of ugettext. We should use ugettext_lazy to let users in different languages get correct translation.Though in views or similar places we can use ugettext with no problems, we should make code style consistent. This also fix the issues that the django proxy objects appear on the launching instance page instead of translated strings. Now the translated quota strings are handled correctly. Fixes: bug #1178722 Change-Id: I76f0d31e6546d70e5ece7e86a06f7eefd04861d2 --- horizon/base.py | 2 +- horizon/conf/default.py | 2 +- horizon/decorators.py | 2 +- horizon/exceptions.py | 2 +- horizon/templatetags/branding.py | 2 +- horizon/templatetags/horizon.py | 7 ++++--- horizon/templatetags/sizeformat.py | 14 +++++++------- horizon/utils/fields.py | 2 +- horizon/workflows/base.py | 2 +- openstack_dashboard/api/cinder.py | 2 +- openstack_dashboard/api/nova.py | 2 +- .../dashboards/admin/overview/views.py | 2 +- .../access_and_security/api_access/tables.py | 2 +- .../project/instances/workflows/update_instance.py | 2 +- .../dashboards/project/loadbalancers/tables.py | 2 +- .../dashboards/project/loadbalancers/tabs.py | 2 +- .../dashboards/project/loadbalancers/views.py | 2 +- .../dashboards/project/loadbalancers/workflows.py | 2 +- .../dashboards/settings/user/forms.py | 2 +- openstack_dashboard/usage/base.py | 2 +- 20 files changed, 29 insertions(+), 28 deletions(-) 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