From de20d7271aea8a3e47bd0afec2d3737035813701 Mon Sep 17 00:00:00 2001 From: Doug Fish Date: Thu, 20 Nov 2014 08:14:56 -0600 Subject: [PATCH] Create titles without concatenation Several panels use the template filter "add" to concatenate data and translatable text, for example title=_("Volume Details: ")|add:volume.name|default:_("Volume Details:") These need to be updated to use string formatting. This is needed because it's not clear when looking at the translations if any text follows the translatable segment. Dict based substitution has been used to further clarify the messages for translators. Change-Id: I54d07233d2003904468ef317c352126eb6bf5f70 Closes-bug: #1394573 --- .../admin/volumes/templates/volumes/volumes/detail.html | 2 +- .../dashboards/admin/volumes/volumes/views.py | 8 ++++++++ .../identity/groups/templates/groups/manage.html | 2 +- openstack_dashboard/dashboards/identity/groups/views.py | 6 +++++- .../project/access_and_security/security_groups/views.py | 6 +++++- .../access_and_security/security_groups/detail.html | 2 +- .../templates/database_backups/details.html | 2 +- .../dashboards/project/database_backups/views.py | 4 ++++ .../project/databases/templates/databases/detail.html | 2 +- openstack_dashboard/dashboards/project/databases/views.py | 3 +++ .../firewalls/templates/firewalls/updatefirewall.html | 2 +- .../firewalls/templates/firewalls/updatepolicy.html | 2 +- .../project/firewalls/templates/firewalls/updaterule.html | 2 +- openstack_dashboard/dashboards/project/firewalls/views.py | 8 ++++++++ .../dashboards/project/images/images/views.py | 3 +++ .../project/images/templates/images/images/detail.html | 2 +- .../project/instances/templates/instances/detail.html | 2 +- openstack_dashboard/dashboards/project/instances/views.py | 3 +++ .../project/networks/templates/networks/detail.html | 2 +- openstack_dashboard/dashboards/project/networks/views.py | 3 +++ .../project/stacks/templates/stacks/detail.html | 2 +- .../project/stacks/templates/stacks/resource.html | 2 +- openstack_dashboard/dashboards/project/stacks/views.py | 7 ++++++- .../dashboards/project/volumes/backups/views.py | 3 +++ .../dashboards/project/volumes/snapshots/views.py | 3 +++ .../project/volumes/templates/volumes/backups/detail.html | 2 +- .../volumes/templates/volumes/snapshots/detail.html | 2 +- .../project/volumes/templates/volumes/volumes/detail.html | 2 +- .../dashboards/project/volumes/volumes/views.py | 4 ++++ 29 files changed, 74 insertions(+), 19 deletions(-) diff --git a/openstack_dashboard/dashboards/admin/volumes/templates/volumes/volumes/detail.html b/openstack_dashboard/dashboards/admin/volumes/templates/volumes/volumes/detail.html index 469d662e37..6c6687990c 100644 --- a/openstack_dashboard/dashboards/admin/volumes/templates/volumes/volumes/detail.html +++ b/openstack_dashboard/dashboards/admin/volumes/templates/volumes/volumes/detail.html @@ -3,7 +3,7 @@ {% block title %}{% trans "Volume Details" %}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Volume Details: ")|add:volume.name|default:_("Volume Details:") %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %} diff --git a/openstack_dashboard/dashboards/admin/volumes/volumes/views.py b/openstack_dashboard/dashboards/admin/volumes/volumes/views.py index be19286bb5..f28ddc14e3 100644 --- a/openstack_dashboard/dashboards/admin/volumes/volumes/views.py +++ b/openstack_dashboard/dashboards/admin/volumes/volumes/views.py @@ -28,6 +28,14 @@ from openstack_dashboard.dashboards.project.volumes.volumes \ class DetailView(volumes_views.DetailView): template_name = "admin/volumes/volumes/detail.html" + def get_context_data(self, **kwargs): + context = super(DetailView, self).get_context_data(**kwargs) + volume = context["volume"] + context["page_title"] = _("Volume Details: " + "%(volume_name)s") % {'volume_name': + volume.name} + return context + def get_redirect_url(self): return reverse('horizon:admin:volumes:index') diff --git a/openstack_dashboard/dashboards/identity/groups/templates/groups/manage.html b/openstack_dashboard/dashboards/identity/groups/templates/groups/manage.html index 5e8b778ee7..d665442139 100644 --- a/openstack_dashboard/dashboards/identity/groups/templates/groups/manage.html +++ b/openstack_dashboard/dashboards/identity/groups/templates/groups/manage.html @@ -3,7 +3,7 @@ {% block title %}{% trans 'Group Management' %}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Group Management: ")|add:group.name %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %} diff --git a/openstack_dashboard/dashboards/identity/groups/views.py b/openstack_dashboard/dashboards/identity/groups/views.py index 7c0fbff35a..d8d42bab55 100644 --- a/openstack_dashboard/dashboards/identity/groups/views.py +++ b/openstack_dashboard/dashboards/identity/groups/views.py @@ -114,7 +114,11 @@ class ManageMembersView(GroupManageMixin, tables.DataTableView): def get_context_data(self, **kwargs): context = super(ManageMembersView, self).get_context_data(**kwargs) - context['group'] = self._get_group() + group = self._get_group() + context['group'] = group + context['page_title'] = _("Group Management: " + "%(group_name)s") % {'group_name': + group.name} return context def get_data(self): diff --git a/openstack_dashboard/dashboards/project/access_and_security/security_groups/views.py b/openstack_dashboard/dashboards/project/access_and_security/security_groups/views.py index e656257c49..9bbaf9523c 100644 --- a/openstack_dashboard/dashboards/project/access_and_security/security_groups/views.py +++ b/openstack_dashboard/dashboards/project/access_and_security/security_groups/views.py @@ -61,7 +61,11 @@ class DetailView(tables.DataTableView): def get_context_data(self, **kwargs): context = super(DetailView, self).get_context_data(**kwargs) - context["security_group"] = self._get_data() + security_group = self._get_data() + context["security_group"] = security_group + context["page_title"] = _("Manage Security Group Rules: " + "%(security_group)s") % {'security_group': + security_group.name} return context diff --git a/openstack_dashboard/dashboards/project/access_and_security/templates/access_and_security/security_groups/detail.html b/openstack_dashboard/dashboards/project/access_and_security/templates/access_and_security/security_groups/detail.html index 01dd7e9c53..ed03803078 100644 --- a/openstack_dashboard/dashboards/project/access_and_security/templates/access_and_security/security_groups/detail.html +++ b/openstack_dashboard/dashboards/project/access_and_security/templates/access_and_security/security_groups/detail.html @@ -3,7 +3,7 @@ {% block title %}{% trans "Manage Security Group Rules" %}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Manage Security Group Rules: ")|add:security_group.name %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %} diff --git a/openstack_dashboard/dashboards/project/database_backups/templates/database_backups/details.html b/openstack_dashboard/dashboards/project/database_backups/templates/database_backups/details.html index 27187d3888..4843c00b70 100644 --- a/openstack_dashboard/dashboards/project/database_backups/templates/database_backups/details.html +++ b/openstack_dashboard/dashboards/project/database_backups/templates/database_backups/details.html @@ -3,7 +3,7 @@ {% block title %}{% trans "Backup Details" %}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Backup Details: ")|add:backup.name %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %} diff --git a/openstack_dashboard/dashboards/project/database_backups/views.py b/openstack_dashboard/dashboards/project/database_backups/views.py index e9155e74a0..dc1825d029 100644 --- a/openstack_dashboard/dashboards/project/database_backups/views.py +++ b/openstack_dashboard/dashboards/project/database_backups/views.py @@ -103,4 +103,8 @@ class DetailView(horizon_views.APIView): instance = None context['backup'] = backup context['instance'] = instance + context['page_title'] = _("Backup Details: " + "%(backup_name)s") % {'backup_name': + backup.name} + return context diff --git a/openstack_dashboard/dashboards/project/databases/templates/databases/detail.html b/openstack_dashboard/dashboards/project/databases/templates/databases/detail.html index c4871d16fc..16a984b4b4 100644 --- a/openstack_dashboard/dashboards/project/databases/templates/databases/detail.html +++ b/openstack_dashboard/dashboards/project/databases/templates/databases/detail.html @@ -3,7 +3,7 @@ {% block title %}{% trans "Instance Details" %}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Instance Details: ")|add:instance.name %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %} diff --git a/openstack_dashboard/dashboards/project/databases/views.py b/openstack_dashboard/dashboards/project/databases/views.py index 4c2db269e9..5b00ada8b1 100644 --- a/openstack_dashboard/dashboards/project/databases/views.py +++ b/openstack_dashboard/dashboards/project/databases/views.py @@ -101,6 +101,9 @@ class DetailView(horizon_tabs.TabbedTableView): context["instance"] = instance context["url"] = self.get_redirect_url() context["actions"] = table.render_row_actions(instance) + context["page_title"] = _("Instance Details: " + "%(instance_name)s") % {'instance_name': + instance.name} return context @memoized.memoized_method diff --git a/openstack_dashboard/dashboards/project/firewalls/templates/firewalls/updatefirewall.html b/openstack_dashboard/dashboards/project/firewalls/templates/firewalls/updatefirewall.html index f49734bc9c..dbb6acbf82 100644 --- a/openstack_dashboard/dashboards/project/firewalls/templates/firewalls/updatefirewall.html +++ b/openstack_dashboard/dashboards/project/firewalls/templates/firewalls/updatefirewall.html @@ -3,7 +3,7 @@ {% block title %}{% trans "Edit Firewall" %}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Edit Firewall ")|add:name %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %} diff --git a/openstack_dashboard/dashboards/project/firewalls/templates/firewalls/updatepolicy.html b/openstack_dashboard/dashboards/project/firewalls/templates/firewalls/updatepolicy.html index 6fa06dd05c..52560b3508 100644 --- a/openstack_dashboard/dashboards/project/firewalls/templates/firewalls/updatepolicy.html +++ b/openstack_dashboard/dashboards/project/firewalls/templates/firewalls/updatepolicy.html @@ -3,7 +3,7 @@ {% block title %}{% trans "Edit Policy" %}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Edit Policy ")|add:name %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %} diff --git a/openstack_dashboard/dashboards/project/firewalls/templates/firewalls/updaterule.html b/openstack_dashboard/dashboards/project/firewalls/templates/firewalls/updaterule.html index 40992c62ee..9b39068c8b 100644 --- a/openstack_dashboard/dashboards/project/firewalls/templates/firewalls/updaterule.html +++ b/openstack_dashboard/dashboards/project/firewalls/templates/firewalls/updaterule.html @@ -3,7 +3,7 @@ {% block title %}{% trans "Edit Rule" %}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Edit Rule ")|add:name %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %} diff --git a/openstack_dashboard/dashboards/project/firewalls/views.py b/openstack_dashboard/dashboards/project/firewalls/views.py index c552c59283..e749f452b5 100644 --- a/openstack_dashboard/dashboards/project/firewalls/views.py +++ b/openstack_dashboard/dashboards/project/firewalls/views.py @@ -126,8 +126,12 @@ class UpdateRuleView(forms.ModalFormView): context = super(UpdateRuleView, self).get_context_data(**kwargs) context['rule_id'] = self.kwargs['rule_id'] obj = self._get_object() + context['page_title'] = _("Edit Rule") if obj: context['name'] = obj.name + context['page_title'] = _("Edit Rule " + "%(rule_name)s") % {'rule_name': + obj.name} return context @memoized.memoized_method @@ -161,8 +165,10 @@ class UpdatePolicyView(forms.ModalFormView): context = super(UpdatePolicyView, self).get_context_data(**kwargs) context["policy_id"] = self.kwargs['policy_id'] obj = self._get_object() + context['page_title'] = _("Edit Policy") if obj: context['name'] = obj.name + context['page_title'] = _("Edit Policy %s") % obj.name return context @memoized.memoized_method @@ -193,8 +199,10 @@ class UpdateFirewallView(forms.ModalFormView): context = super(UpdateFirewallView, self).get_context_data(**kwargs) context["firewall_id"] = self.kwargs['firewall_id'] obj = self._get_object() + context['page_title'] = _("Edit Firewall") if obj: context['name'] = obj.name + context['page_title'] = _("Edit Firewall %s") % obj.name return context @memoized.memoized_method diff --git a/openstack_dashboard/dashboards/project/images/images/views.py b/openstack_dashboard/dashboards/project/images/images/views.py index 58fd5ae830..97475b0a03 100644 --- a/openstack_dashboard/dashboards/project/images/images/views.py +++ b/openstack_dashboard/dashboards/project/images/images/views.py @@ -91,6 +91,9 @@ class DetailView(tabs.TabView): context["image"] = image context["url"] = self.get_redirect_url() context["actions"] = table.render_row_actions(image) + context["page_title"] = _("Image Details: " + "%(image_name)s") % {'image_name': + image.name} return context @staticmethod diff --git a/openstack_dashboard/dashboards/project/images/templates/images/images/detail.html b/openstack_dashboard/dashboards/project/images/templates/images/images/detail.html index 137b714383..dd0e163397 100644 --- a/openstack_dashboard/dashboards/project/images/templates/images/images/detail.html +++ b/openstack_dashboard/dashboards/project/images/templates/images/images/detail.html @@ -4,7 +4,7 @@ {% block title %}{% trans "Image Details"%}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Image Details: ")|add:image.name|default:_("Image Details:") %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %} diff --git a/openstack_dashboard/dashboards/project/instances/templates/instances/detail.html b/openstack_dashboard/dashboards/project/instances/templates/instances/detail.html index c4871d16fc..16a984b4b4 100644 --- a/openstack_dashboard/dashboards/project/instances/templates/instances/detail.html +++ b/openstack_dashboard/dashboards/project/instances/templates/instances/detail.html @@ -3,7 +3,7 @@ {% block title %}{% trans "Instance Details" %}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Instance Details: ")|add:instance.name %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %} diff --git a/openstack_dashboard/dashboards/project/instances/views.py b/openstack_dashboard/dashboards/project/instances/views.py index f911d8ab6d..16a98804a5 100644 --- a/openstack_dashboard/dashboards/project/instances/views.py +++ b/openstack_dashboard/dashboards/project/instances/views.py @@ -258,6 +258,9 @@ class DetailView(tabs.TabView): table = project_tables.InstancesTable(self.request) context["url"] = reverse(self.redirect_url) context["actions"] = table.render_row_actions(instance) + context["page_title"] = _("Instance Details: " + "%(instance_name)s") % {'instance_name': + instance.name} return context @memoized.memoized_method diff --git a/openstack_dashboard/dashboards/project/networks/templates/networks/detail.html b/openstack_dashboard/dashboards/project/networks/templates/networks/detail.html index 0145f6762d..34649747e5 100644 --- a/openstack_dashboard/dashboards/project/networks/templates/networks/detail.html +++ b/openstack_dashboard/dashboards/project/networks/templates/networks/detail.html @@ -3,7 +3,7 @@ {% block title %}{% trans "Network Detail"%}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Network Detail: ")|add:network.name %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %} diff --git a/openstack_dashboard/dashboards/project/networks/views.py b/openstack_dashboard/dashboards/project/networks/views.py index 42f33db8ee..6052f72bd9 100644 --- a/openstack_dashboard/dashboards/project/networks/views.py +++ b/openstack_dashboard/dashboards/project/networks/views.py @@ -142,6 +142,9 @@ class DetailView(tables.MultiTableView): table = project_tables.NetworksTable(self.request) context["url"] = self.get_redirect_url() context["actions"] = table.render_row_actions(network) + context["page_title"] = _("Network Detail: " + "%(network_name)s") % {'network_name': + network.name} return context @staticmethod diff --git a/openstack_dashboard/dashboards/project/stacks/templates/stacks/detail.html b/openstack_dashboard/dashboards/project/stacks/templates/stacks/detail.html index c23901eeda..677183312c 100644 --- a/openstack_dashboard/dashboards/project/stacks/templates/stacks/detail.html +++ b/openstack_dashboard/dashboards/project/stacks/templates/stacks/detail.html @@ -3,7 +3,7 @@ {% block title %}{% trans "Stack Detail" %}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Stack Detail: ")|add:stack.stack_name %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %} diff --git a/openstack_dashboard/dashboards/project/stacks/templates/stacks/resource.html b/openstack_dashboard/dashboards/project/stacks/templates/stacks/resource.html index 9afb40ef4c..c61b349823 100644 --- a/openstack_dashboard/dashboards/project/stacks/templates/stacks/resource.html +++ b/openstack_dashboard/dashboards/project/stacks/templates/stacks/resource.html @@ -3,7 +3,7 @@ {% block title %}{% trans "Resource Detail" %}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Resource Detail: ")|add:resource.resource_name %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %} diff --git a/openstack_dashboard/dashboards/project/stacks/views.py b/openstack_dashboard/dashboards/project/stacks/views.py index 729aa7010e..5ef1d0f97c 100644 --- a/openstack_dashboard/dashboards/project/stacks/views.py +++ b/openstack_dashboard/dashboards/project/stacks/views.py @@ -204,6 +204,9 @@ class DetailView(tabs.TabView): context["stack"] = stack context["url"] = self.get_redirect_url() context["actions"] = table.render_row_actions(stack) + context["page_title"] = _("Stack Detail: " + "%(stack_name)s") % {'stack_name': + stack.stack_name} return context @memoized.memoized_method @@ -246,8 +249,10 @@ class ResourceView(tabs.TabView): def get_context_data(self, **kwargs): context = super(ResourceView, self).get_context_data(**kwargs) - context["resource"] = self.get_data(self.request, **kwargs) + resource = self.get_data(self.request, **kwargs) + context["resource"] = resource context["metadata"] = self.get_metadata(self.request, **kwargs) + context["page_title"] = _("Resource Detail: %s") % resource return context @memoized.memoized_method diff --git a/openstack_dashboard/dashboards/project/volumes/backups/views.py b/openstack_dashboard/dashboards/project/volumes/backups/views.py index 7a1eb9e687..fbbad2cf89 100644 --- a/openstack_dashboard/dashboards/project/volumes/backups/views.py +++ b/openstack_dashboard/dashboards/project/volumes/backups/views.py @@ -53,6 +53,9 @@ class BackupDetailView(tabs.TabView): context["backup"] = backup context["url"] = self.get_redirect_url() context["actions"] = table.render_row_actions(backup) + context["page_title"] = _("Volume Backup Details: " + "%(backup_name)s") % {'backup_name': + backup.name} return context diff --git a/openstack_dashboard/dashboards/project/volumes/snapshots/views.py b/openstack_dashboard/dashboards/project/volumes/snapshots/views.py index 2e2227a692..8fa7e18288 100644 --- a/openstack_dashboard/dashboards/project/volumes/snapshots/views.py +++ b/openstack_dashboard/dashboards/project/volumes/snapshots/views.py @@ -69,6 +69,9 @@ class DetailView(tabs.TabView): context["snapshot"] = snapshot context["url"] = self.get_redirect_url() context["actions"] = table.render_row_actions(snapshot) + context["page_title"] = _("Volume Snapshot Details: " + "%(snapshot_name)s") % {'snapshot_name': + snapshot.name} return context @memoized.memoized_method diff --git a/openstack_dashboard/dashboards/project/volumes/templates/volumes/backups/detail.html b/openstack_dashboard/dashboards/project/volumes/templates/volumes/backups/detail.html index 6205e86444..06dd311c9a 100644 --- a/openstack_dashboard/dashboards/project/volumes/templates/volumes/backups/detail.html +++ b/openstack_dashboard/dashboards/project/volumes/templates/volumes/backups/detail.html @@ -3,7 +3,7 @@ {% block title %}{% trans "Volume Backup Details" %}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Volume Backup Details: ")|add:backup.name|default:_("Volume Backup Details:") %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %}
diff --git a/openstack_dashboard/dashboards/project/volumes/templates/volumes/snapshots/detail.html b/openstack_dashboard/dashboards/project/volumes/templates/volumes/snapshots/detail.html index 11ec0a6d10..cdfe652bb8 100644 --- a/openstack_dashboard/dashboards/project/volumes/templates/volumes/snapshots/detail.html +++ b/openstack_dashboard/dashboards/project/volumes/templates/volumes/snapshots/detail.html @@ -3,7 +3,7 @@ {% block title %}{% trans "Volume Snapshot Details" %}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Volume Snapshot Details: ")|add:snapshot.name|default:_("Volume Snapshot Details:") %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %}
diff --git a/openstack_dashboard/dashboards/project/volumes/templates/volumes/volumes/detail.html b/openstack_dashboard/dashboards/project/volumes/templates/volumes/volumes/detail.html index 469d662e37..6c6687990c 100644 --- a/openstack_dashboard/dashboards/project/volumes/templates/volumes/volumes/detail.html +++ b/openstack_dashboard/dashboards/project/volumes/templates/volumes/volumes/detail.html @@ -3,7 +3,7 @@ {% block title %}{% trans "Volume Details" %}{% endblock %} {% block page_header %} - {% include "horizon/common/_page_header.html" with title=_("Volume Details: ")|add:volume.name|default:_("Volume Details:") %} + {% include "horizon/common/_page_header.html" with title=page_title %} {% endblock page_header %} {% block main %} diff --git a/openstack_dashboard/dashboards/project/volumes/volumes/views.py b/openstack_dashboard/dashboards/project/volumes/volumes/views.py index 81449ec158..cbd280d56e 100644 --- a/openstack_dashboard/dashboards/project/volumes/volumes/views.py +++ b/openstack_dashboard/dashboards/project/volumes/volumes/views.py @@ -50,6 +50,10 @@ class DetailView(tabs.TabView): context["volume"] = volume context["url"] = self.get_redirect_url() context["actions"] = table.render_row_actions(volume) + context["page_title"] = _("Volume Details: " + "%(volume_name)s") % {'volume_name': + volume.name} + return context @memoized.memoized_method