Improve help messages on modals

Some general guidelines:
1. Removed contractions
2. Changed "Info" to "Information"
3. Removed the "From here you can..." at the beginning of messages.
4. Explained concepts to users instead of just reiterating the modal
title. Thanks Jeff Calcaterra!

Co-Authored-By: Cindy Lu <clu@us.ibm.com>
Closes-Bug: #1329984

Change-Id: I35af81953cafcbafc28c31b3ce305e8c5e21fe84
This commit is contained in:
Ashish Chandra
2014-07-03 01:35:38 +05:30
committed by Cindy Lu
parent 9330c17367
commit 80d05a5c3d
35 changed files with 98 additions and 99 deletions

View File

@@ -16,7 +16,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description" %}:</h3> <h3>{% trans "Description" %}:</h3>
<p>{% trans "From here you can edit the aggregate name and availability zone" %}</p> <p>{% trans "Host aggregates divide an availability zone into logical units by grouping together hosts. Edit the aggregate host to select hosts contained in it." %}</p>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -28,9 +28,10 @@ class SetAggregateInfoAction(workflows.Action):
max_length=255) max_length=255)
class Meta: class Meta:
name = _("Host Aggregate Info") name = _("Host Aggregate Information")
help_text = _("From here you can create a new " help_text = _("Host aggregates divide an availability zone into "
"host aggregate to organize instances.") "logical units by grouping together hosts. Create a "
"host aggregate then select the hosts contained in it.")
slug = "set_aggregate_info" slug = "set_aggregate_info"
def clean(self): def clean(self):
@@ -135,9 +136,8 @@ class ManageAggregateHostsAction(workflows.MembershipAction):
class AddHostsToAggregateStep(workflows.UpdateMembersStep): class AddHostsToAggregateStep(workflows.UpdateMembersStep):
action_class = AddHostsToAggregateAction action_class = AddHostsToAggregateAction
help_text = _("You can add hosts to this aggregate. One host can be added " help_text = _("Add hosts to this aggregate. Hosts can be in multiple "
"to one or more aggregate. You can also add the hosts later " "aggregates.")
"by editing the aggregate.")
available_list_title = _("All available hosts") available_list_title = _("All available hosts")
members_list_title = _("Selected hosts") members_list_title = _("Selected hosts")
no_available_text = _("No hosts found.") no_available_text = _("No hosts found.")
@@ -154,8 +154,8 @@ class AddHostsToAggregateStep(workflows.UpdateMembersStep):
class ManageAggregateHostsStep(workflows.UpdateMembersStep): class ManageAggregateHostsStep(workflows.UpdateMembersStep):
action_class = ManageAggregateHostsAction action_class = ManageAggregateHostsAction
help_text = _("You can add hosts to this aggregate, as well as remove " help_text = _("Add hosts to this aggregate or remove hosts from it. "
"hosts from it.") "Hosts can be in multiple aggregates.")
available_list_title = _("All Available Hosts") available_list_title = _("All Available Hosts")
members_list_title = _("Selected Hosts") members_list_title = _("Selected Hosts")
no_available_text = _("No Hosts found.") no_available_text = _("No Hosts found.")

View File

@@ -55,9 +55,10 @@ class CreateFlavorInfoAction(workflows.Action):
min_value=0) min_value=0)
class Meta: class Meta:
name = _("Flavor Info") name = _("Flavor Information")
help_text = _("From here you can create a new " help_text = _("Flavors define the sizes for RAM, disk, number of "
"flavor to organize instance resources.") "cores, and other resources and can be selected when "
"users deploy instances.")
def clean(self): def clean(self):
cleaned_data = super(CreateFlavorInfoAction, self).clean() cleaned_data = super(CreateFlavorInfoAction, self).clean()
@@ -152,11 +153,9 @@ class UpdateFlavorAccessAction(workflows.MembershipAction):
class UpdateFlavorAccess(workflows.UpdateMembersStep): class UpdateFlavorAccess(workflows.UpdateMembersStep):
action_class = UpdateFlavorAccessAction action_class = UpdateFlavorAccessAction
help_text = _("You can control access to this flavor by moving projects " help_text = _("Select the projects where the flavors will be used. If no "
"from the left column to the right column. Only projects " "projects are selected, then the flavor will be available "
"in the right column can use the flavor. If there are no " "in all projects.")
"projects in the right column, all projects can use the "
"flavor.")
available_list_title = _("All Projects") available_list_title = _("All Projects")
members_list_title = _("Selected Projects") members_list_title = _("Selected Projects")
no_available_text = _("No projects found.") no_available_text = _("No projects found.")
@@ -222,9 +221,11 @@ class UpdateFlavorInfoAction(CreateFlavorInfoAction):
flavor_id = forms.CharField(widget=forms.widgets.HiddenInput) flavor_id = forms.CharField(widget=forms.widgets.HiddenInput)
class Meta: class Meta:
name = _("Flavor Info") name = _("Flavor Information")
slug = 'update_info' slug = 'update_info'
help_text = _("From here you can edit the flavor details.") help_text = _("Edit the flavor details. Flavors define the sizes for "
"RAM, disk, number of cores, and other resources. "
"Flavors are selected when users deploy instances.")
def clean(self): def clean(self):
name = self.cleaned_data.get('name') name = self.cleaned_data.get('name')

View File

@@ -16,7 +16,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description" %}:</h3> <h3>{% trans "Description" %}:</h3>
<p>{% trans "From here you can modify different properties of an image." %}</p> <p>{% trans "Modify different properties of an image." %}</p>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -24,7 +24,7 @@ from openstack_dashboard.dashboards.admin import dashboard
class Info(horizon.Panel): class Info(horizon.Panel):
name = _("System Info") name = _("System Information")
slug = 'info' slug = 'info'

View File

@@ -15,7 +15,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description:" %}</h3> <h3>{% trans "Description:" %}</h3>
<p>{% trans "From here you can live migrate an instance to a specific host." %}</p> <p>{% trans "Live migrate an instance to a specific host." %}</p>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -208,8 +208,8 @@ def _calc_date_args(date_from, date_to, date_options):
else: else:
date_to = datetime.now() date_to = datetime.now()
except Exception: except Exception:
raise ValueError("The dates haven't been " raise ValueError("The dates are not "
"recognized") "recognized.")
else: else:
try: try:
date_from = datetime.now() - timedelta(days=int(date_options)) date_from = datetime.now() - timedelta(days=int(date_options))

View File

@@ -39,10 +39,10 @@ class CreateDomainInfoAction(workflows.Action):
initial=True) initial=True)
class Meta: class Meta:
name = _("Domain Info") name = _("Domain Information")
slug = "create_domain" slug = "create_domain"
help_text = _("From here you can create a new domain to organize " help_text = _("Domains provide separation between users and "
"projects, groups and users.") "infrastructure used by different organizations.")
class CreateDomainInfo(workflows.Step): class CreateDomainInfo(workflows.Step):
@@ -179,9 +179,12 @@ class CreateDomain(workflows.Workflow):
class UpdateDomainInfoAction(CreateDomainInfoAction): class UpdateDomainInfoAction(CreateDomainInfoAction):
class Meta: class Meta:
name = _("Domain Info") name = _("Domain Information")
slug = 'update_domain' slug = 'update_domain'
help_text = _("From here you can edit the domain details.") help_text = _("Domains provide separation between users and "
"infrastructure used by different organizations. "
"Edit the domain details to add or remove "
"groups in the domain.")
class UpdateDomainInfo(workflows.Step): class UpdateDomainInfo(workflows.Step):

View File

@@ -15,7 +15,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description" %}:</h3> <h3>{% trans "Description" %}:</h3>
<p>{% trans "From here you can create a new group to organize users and roles." %}</p> <p>{% trans "Groups are used to manage access and assign roles to multiple users at once. After creating the group, edit the group to add users." %}</p>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -15,7 +15,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description" %}:</h3> <h3>{% trans "Description" %}:</h3>
<p>{% trans "From here you can edit the group's details." %}</p> <p>{% trans "Groups are used to manage access and assign roles to multiple users at once. Edit the group to add users." %}</p>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -86,8 +86,7 @@ class UpdateProjectQuotaAction(workflows.Action):
class Meta: class Meta:
name = _("Quota") name = _("Quota")
slug = 'update_quotas' slug = 'update_quotas'
help_text = _("From here you can set quotas " help_text = _("Set maximum quotas for the project.")
"(max limits) for the project.")
class UpdateProjectQuota(workflows.Step): class UpdateProjectQuota(workflows.Step):
@@ -124,9 +123,8 @@ class CreateProjectInfoAction(workflows.Action):
self.fields["domain_name"].widget = readonlyInput self.fields["domain_name"].widget = readonlyInput
class Meta: class Meta:
name = _("Project Info") name = _("Project Information")
help_text = _("From here you can create a new " help_text = _("Create a project to organize users.")
"project to organize users.")
class CreateProjectInfo(workflows.Step): class CreateProjectInfo(workflows.Step):
@@ -472,9 +470,9 @@ class UpdateProjectInfoAction(CreateProjectInfoAction):
enabled = forms.BooleanField(required=False, label=_("Enabled")) enabled = forms.BooleanField(required=False, label=_("Enabled"))
class Meta: class Meta:
name = _("Project Info") name = _("Project Information")
slug = 'update_info' slug = 'update_info'
help_text = _("From here you can edit the project details.") help_text = _("Edit the project details.")
class UpdateProjectInfo(workflows.Step): class UpdateProjectInfo(workflows.Step):

View File

@@ -15,7 +15,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description" %}:</h3> <h3>{% trans "Description" %}:</h3>
<p>{% trans "From here you can create a new role." %}</p> <p>{% trans "Create a new role." %}</p>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -15,7 +15,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description" %}:</h3> <h3>{% trans "Description" %}:</h3>
<p>{% trans "From here you can edit the role's details." %}</p> <p>{% trans "Edit the role's details." %}</p>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -15,7 +15,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description" %}:</h3> <h3>{% trans "Description" %}:</h3>
<p>{% trans "From here you can create a new user and assign them to a project." %}</p> <p>{% trans "Create a new user and set related properties including the Primary Project and Role." %}</p>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">

View File

@@ -15,7 +15,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description" %}:</h3> <h3>{% trans "Description" %}:</h3>
<p>{% trans "From here you can edit the user's details, including their default project." %}</p> <p>{% trans "Edit the user's details, including the Primary Project and Role." %}</p>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">

View File

@@ -16,7 +16,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description" %}:</h3> <h3>{% trans "Description" %}:</h3>
<p>{% trans "From here you can create a new security group" %}</p> <p>{% trans "Security groups are sets of IP filter rules that are applied to the network settings for the VM. Edit the security group to add and change the rules." %}</p>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -16,7 +16,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description" %}:</h3> <h3>{% trans "Description" %}:</h3>
<p>{% trans "From here you can modify name and description of a security group." %}</p> <p>{% trans "Security groups are sets of IP filter rules that are applied to the networking settings for the VM. Edit the security group to add and change the rules." %}</p>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -15,7 +15,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description:" %}</h3> <h3>{% trans "Description:" %}</h3>
<p>{% trans "From here you can modify different properties of an image." %}</p> <p>{% trans "Modify different properties of an image." %}</p>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -1,3 +1,3 @@
{% load i18n %} {% load i18n %}
<p>{% blocktrans %}You can customize your instance after it's launched using the options available here.{% endblocktrans %}</p> <p>{% blocktrans %}You can customize your instance after it has launched using the options available here.{% endblocktrans %}</p>
<p>{% blocktrans %}The "Customization Script" field is analogous to "User Data" in other systems.{% endblocktrans %}</p> <p>{% blocktrans %}The "Customization Script" field is analogous to "User Data" in other systems.{% endblocktrans %}</p>

View File

@@ -472,7 +472,7 @@ KEYPAIR_IMPORT_URL = "horizon:project:access_and_security:keypairs:import"
class SetAccessControlsAction(workflows.Action): class SetAccessControlsAction(workflows.Action):
keypair = forms.DynamicChoiceField(label=_("Key Pair"), keypair = forms.DynamicChoiceField(label=_("Key Pair"),
required=False, required=False,
help_text=_("Which key pair to use for " help_text=_("Key pair to use for "
"authentication."), "authentication."),
add_item_link=KEYPAIR_IMPORT_URL) add_item_link=KEYPAIR_IMPORT_URL)
admin_pass = forms.RegexField( admin_pass = forms.RegexField(

View File

@@ -49,8 +49,8 @@ class SetFlavorChoiceAction(workflows.Action):
flavor = cleaned_data.get('flavor', None) flavor = cleaned_data.get('flavor', None)
if flavor is None or flavor == cleaned_data['old_flavor_id']: if flavor is None or flavor == cleaned_data['old_flavor_id']:
raise forms.ValidationError(_('Please choose a new flavor that ' raise forms.ValidationError(_('Please choose a new flavor that '
'can not be same as the old one.')) 'is not the same as the old one.'))
return cleaned_data return cleaned_data
def populate_flavor_choices(self, request, context): def populate_flavor_choices(self, request, context):

View File

@@ -83,8 +83,8 @@ class UpdateInstanceSecurityGroupsAction(workflows.MembershipAction):
class UpdateInstanceSecurityGroups(workflows.UpdateMembersStep): class UpdateInstanceSecurityGroups(workflows.UpdateMembersStep):
action_class = UpdateInstanceSecurityGroupsAction action_class = UpdateInstanceSecurityGroupsAction
help_text = _("From here you can add and remove security groups to " help_text = _("Add and remove security groups to this project "
"this project from the list of available security groups.") "from the list of available security groups.")
available_list_title = _("All Security Groups") available_list_title = _("All Security Groups")
members_list_title = _("Instance Security Groups") members_list_title = _("Instance Security Groups")
no_available_text = _("No security groups found.") no_available_text = _("No security groups found.")
@@ -118,7 +118,7 @@ class UpdateInstanceInfoAction(workflows.Action):
class Meta: class Meta:
name = _("Info") name = _("Info")
slug = 'instance_info' slug = 'instance_info'
help_text = _("From here you can edit the instance details.") help_text = _("Edit the instance details.")
class UpdateInstanceInfo(workflows.Step): class UpdateInstanceInfo(workflows.Step):

View File

@@ -229,11 +229,10 @@ class AddVipAction(workflows.Action):
name = _("Specify VIP") name = _("Specify VIP")
permissions = ('openstack.services.network',) permissions = ('openstack.services.network',)
help_text = _("Create a VIP for this pool. " help_text = _("Create a VIP for this pool. "
"Assign a name and description for the VIP. " "Assign a name, description, IP address, port, "
"Specify an IP address and port for the VIP. " "and maximum connections allowed for the VIP. "
"Choose the protocol and session persistence " "Choose the protocol and session persistence "
"method for the VIP." "method for the VIP. "
"Specify the max connections allowed. "
"Admin State is UP (checked) by default.") "Admin State is UP (checked) by default.")
@@ -398,10 +397,9 @@ class AddMemberAction(workflows.Action):
help_text = _("Add member(s) to the selected pool.\n\n" help_text = _("Add member(s) to the selected pool.\n\n"
"Choose one or more listed instances to be " "Choose one or more listed instances to be "
"added to the pool as member(s). " "added to the pool as member(s). "
"Assign a numeric weight for the selected member(s). " "Assign a numeric weight and port number for the "
"Specify the port number the selected member(s) " "selected member(s) to operate(s) on; e.g., 80. \n\n"
"operate(s) on; e.g., 80. \n\n" "Only one port can be associated with "
"There can only be one port associated with "
"each instance.") "each instance.")

View File

@@ -35,9 +35,9 @@ class CreateSubnetInfoAction(network_workflows.CreateSubnetInfoAction):
class Meta: class Meta:
name = _("Subnet") name = _("Subnet")
help_text = _('You can create a subnet associated with the ' help_text = _('Create a subnet associated with the network. '
'network. Advanced configuration are available ' 'Advanced configuration is available by clicking on the '
'at "Subnet Detail" tab.') '"Subnet Detail" tab.')
def clean(self): def clean(self):
cleaned_data = workflows.Action.clean(self) cleaned_data = workflows.Action.clean(self)
@@ -103,9 +103,8 @@ class UpdateSubnetInfoAction(CreateSubnetInfoAction):
required=False, required=False,
initial="", initial="",
help_text=_("IP address of Gateway (e.g. 192.168.0.254). " help_text=_("IP address of Gateway (e.g. 192.168.0.254). "
"You need to specify an explicit address " "Specify an explicit address to set the gateway. "
"to set the gateway. " "If you do not want to use a gateway, "
"If you want to use no gateway, "
"check 'Disable Gateway' below."), "check 'Disable Gateway' below."),
version=forms.IPv4 | forms.IPv6, version=forms.IPv4 | forms.IPv6,
mask=False) mask=False)
@@ -114,9 +113,9 @@ class UpdateSubnetInfoAction(CreateSubnetInfoAction):
class Meta: class Meta:
name = _("Subnet") name = _("Subnet")
help_text = _('You can update a subnet associated with the ' help_text = _('Update a subnet associated with the network. '
'network. Advanced configuration are available ' 'Advanced configuration are available at '
'at "Subnet Detail" tab.') '"Subnet Detail" tab.')
def clean(self): def clean(self):
cleaned_data = workflows.Action.clean(self) cleaned_data = workflows.Action.clean(self)
@@ -135,7 +134,7 @@ class UpdateSubnetDetailAction(network_workflows.CreateSubnetDetailAction):
class Meta: class Meta:
name = _("Subnet Detail") name = _("Subnet Detail")
help_text = _('You can specify additional attributes for the subnet.') help_text = _('Specify additional attributes for the subnet.')
class UpdateSubnetDetail(network_workflows.CreateSubnetDetail): class UpdateSubnetDetail(network_workflows.CreateSubnetDetail):

View File

@@ -71,7 +71,7 @@ class CreateNetworkInfoAction(workflows.Action):
class Meta: class Meta:
name = _("Network") name = _("Network")
help_text = _("From here you can create a new network.\n" help_text = _("Create a new network. "
"In addition a subnet associated with the network " "In addition a subnet associated with the network "
"can be created in the next panel.") "can be created in the next panel.")
@@ -105,7 +105,7 @@ class CreateSubnetInfoAction(workflows.Action):
"network address (e.g. 192.168.0.1 for " "network address (e.g. 192.168.0.1 for "
"192.168.0.0/24). " "192.168.0.0/24). "
"If you use the default, leave blank. " "If you use the default, leave blank. "
"If you want to use no gateway, " "If you do not want to use a gateway, "
"check 'Disable Gateway' below."), "check 'Disable Gateway' below."),
version=forms.IPv4 | forms.IPv6, version=forms.IPv4 | forms.IPv6,
mask=False) mask=False)
@@ -114,10 +114,10 @@ class CreateSubnetInfoAction(workflows.Action):
class Meta: class Meta:
name = _("Subnet") name = _("Subnet")
help_text = _('You can create a subnet associated with the new ' help_text = _('Create a subnet associated with the new network, '
'network, in which case "Network Address" must be ' 'in which case "Network Address" must be specified. '
'specified. If you wish to create a network WITHOUT a ' 'If you wish to create a network without a subnet, '
'subnet, uncheck the "Create Subnet" checkbox.') 'uncheck the "Create Subnet" checkbox.')
def __init__(self, request, context, *args, **kwargs): def __init__(self, request, context, *args, **kwargs):
super(CreateSubnetInfoAction, self).__init__(request, context, *args, super(CreateSubnetInfoAction, self).__init__(request, context, *args,
@@ -198,7 +198,7 @@ class CreateSubnetDetailAction(workflows.Action):
class Meta: class Meta:
name = _("Subnet Detail") name = _("Subnet Detail")
help_text = _('You can specify additional attributes for the subnet.') help_text = _('Specify additional attributes for the subnet.')
def _convert_ip_address(self, ip, field_name): def _convert_ip_address(self, ip, field_name):
try: try:

View File

@@ -29,8 +29,8 @@ class AddInterface(forms.SelfHandlingForm):
subnet_id = forms.ChoiceField(label=_("Subnet")) subnet_id = forms.ChoiceField(label=_("Subnet"))
ip_address = forms.IPField( ip_address = forms.IPField(
label=_("IP Address (optional)"), required=False, initial="", label=_("IP Address (optional)"), required=False, initial="",
help_text=_("You can specify an IP address of the interface " help_text=_("Specify an IP address for the interface "
"created if you want (e.g. 192.168.0.254)."), "created (e.g. 192.168.0.254)."),
version=forms.IPv4 | forms.IPv6, mask=False) version=forms.IPv4 | forms.IPv6, mask=False)
router_name = forms.CharField(label=_("Router Name"), router_name = forms.CharField(label=_("Router Name"),
widget=forms.TextInput( widget=forms.TextInput(

View File

@@ -48,8 +48,7 @@ class TemplateForm(forms.SelfHandlingForm):
class Meta: class Meta:
name = _('Select Template') name = _('Select Template')
help_text = _('From here you can select a template to launch ' help_text = _('Select a template to launch a stack.')
'a stack.')
# TODO(jomara) - update URL choice for template & environment files # TODO(jomara) - update URL choice for template & environment files
# w/ client side download when applicable # w/ client side download when applicable
@@ -224,8 +223,7 @@ class TemplateForm(forms.SelfHandlingForm):
class ChangeTemplateForm(TemplateForm): class ChangeTemplateForm(TemplateForm):
class Meta: class Meta:
name = _('Edit Template') name = _('Edit Template')
help_text = _('From here you can select a new template to re-launch ' help_text = _('Select a new template to re-launch a stack.')
'a stack.')
stack_id = forms.CharField(label=_('Stack ID'), stack_id = forms.CharField(label=_('Stack ID'),
widget=forms.widgets.HiddenInput) widget=forms.widgets.HiddenInput)
stack_name = forms.CharField(label=_('Stack Name'), stack_name = forms.CharField(label=_('Stack Name'),

View File

@@ -16,7 +16,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description" %}:</h3> <h3>{% trans "Description" %}:</h3>
<p>{% trans "Update a stack with the provided values. Please note that any encrypted parameters, such as passwords, will be reset to default if you don't change them here." %}</p> <p>{% trans "Update a stack with the provided values. Please note that any encrypted parameters, such as passwords, will be reset to default if you do not change them here." %}</p>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -16,7 +16,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description:" %}</h3> <h3>{% trans "Description:" %}</h3>
<p>{% trans "From here you can modify the name and description of a snapshot." %}</p> <p>{% trans "Modify the name and description of a snapshot." %}</p>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -2,7 +2,7 @@
<h3>{% trans "Description" %}:</h3> <h3>{% trans "Description" %}:</h3>
<p>{% trans "From here you can extend the size of a volume." %}</p> <p>{% trans "Extend the size of a volume." %}</p>
<h3>{% trans "Volume Limits" %}</h3> <h3>{% trans "Volume Limits" %}</h3>

View File

@@ -16,7 +16,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description" %}:</h3> <h3>{% trans "Description" %}:</h3>
<p>{% trans "From here you can modify name and description of a volume." %}</p> <p>{% trans "Modify name and description of a volume." %}</p>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -90,7 +90,7 @@ class UpdateIKEPolicy(forms.SelfHandlingForm):
lifetime_value = forms.IntegerField( lifetime_value = forms.IntegerField(
min_value=60, min_value=60,
label=_("Lifetime value for IKE keys"), label=_("Lifetime value for IKE keys"),
help_text=_("Equal to or more than 60")) help_text=_("Equal to or greater than 60"))
pfs = forms.ChoiceField( pfs = forms.ChoiceField(
label=_("Perfect Forward Secrecy"), label=_("Perfect Forward Secrecy"),
choices=[('group2', _('group2')), choices=[('group2', _('group2')),
@@ -161,7 +161,7 @@ class UpdateIPSecPolicy(forms.SelfHandlingForm):
lifetime_value = forms.IntegerField( lifetime_value = forms.IntegerField(
min_value=60, min_value=60,
label=_("Lifetime value"), label=_("Lifetime value"),
help_text=_("Equal to or more than 60")) help_text=_("Equal to or greater than 60"))
pfs = forms.ChoiceField( pfs = forms.ChoiceField(
label=_("Perfect Forward Secrecy"), label=_("Perfect Forward Secrecy"),
choices=[('group2', _('group2')), choices=[('group2', _('group2')),
@@ -233,8 +233,9 @@ class UpdateIPSecSiteConnection(forms.SelfHandlingForm):
mtu = forms.IntegerField( mtu = forms.IntegerField(
min_value=68, min_value=68,
label=_("Maximum Transmission Unit size for the connection"), label=_("Maximum Transmission Unit size for the connection"),
help_text=_("Equal to or more than 68 if the local subnet is IPv4. " help_text=_("Equal to or greater than 68 if the local subnet is IPv4. "
"Equal to or more than 1280 if the local subnet is IPv6.")) "Equal to or greater than 1280 if the local subnet "
"is IPv6."))
dpd_action = forms.ChoiceField( dpd_action = forms.ChoiceField(
label=_("Dead peer detection actions"), label=_("Dead peer detection actions"),
choices=[('hold', _('hold')), choices=[('hold', _('hold')),

View File

@@ -69,8 +69,8 @@ class AddVPNServiceAction(workflows.Action):
name = _("Add New VPN Service") name = _("Add New VPN Service")
permissions = ('openstack.services.network',) permissions = ('openstack.services.network',)
help_text = _("Create VPN Service for current project.\n\n" help_text = _("Create VPN Service for current project.\n\n"
"Assign a name and description for the VPN Service. " "Specify a name, description, router, and subnet "
"Select a router and a subnet. " "for the VPN Service. "
"Admin State is Up (checked) by default." "Admin State is Up (checked) by default."
) )
@@ -118,7 +118,7 @@ class AddIKEPolicyAction(workflows.Action):
lifetime_value = forms.IntegerField( lifetime_value = forms.IntegerField(
min_value=60, label=_("Lifetime value for IKE keys"), min_value=60, label=_("Lifetime value for IKE keys"),
initial=3600, initial=3600,
help_text=_("Equal to or more than 60")) help_text=_("Equal to or greater than 60"))
pfs = forms.ChoiceField(label=_("Perfect Forward Secrecy")) pfs = forms.ChoiceField(label=_("Perfect Forward Secrecy"))
phase1_negotiation_mode = forms.ChoiceField( phase1_negotiation_mode = forms.ChoiceField(
label=_("IKE Phase1 negotiation mode")) label=_("IKE Phase1 negotiation mode"))
@@ -217,7 +217,7 @@ class AddIPSecPolicyAction(workflows.Action):
lifetime_value = forms.IntegerField( lifetime_value = forms.IntegerField(
min_value=60, label=_("Lifetime value for IKE keys "), min_value=60, label=_("Lifetime value for IKE keys "),
initial=3600, initial=3600,
help_text=_("Equal to or more than 60")) help_text=_("Equal to or greater than 60"))
pfs = forms.ChoiceField(label=_("Perfect Forward Secrecy")) pfs = forms.ChoiceField(label=_("Perfect Forward Secrecy"))
transform_protocol = forms.ChoiceField(label=_("Transform Protocol")) transform_protocol = forms.ChoiceField(label=_("Transform Protocol"))
@@ -401,8 +401,9 @@ class AddIPSecSiteConnectionOptionalAction(workflows.Action):
min_value=68, min_value=68,
label=_("Maximum Transmission Unit size for the connection"), label=_("Maximum Transmission Unit size for the connection"),
initial=1500, initial=1500,
help_text=_("Equal to or more than 68 if the local subnet is IPv4. " help_text=_("Equal to or greater than 68 if the local subnet is IPv4. "
"Equal to or more than 1280 if the local subnet is IPv6.")) "Equal to or greater than 1280 if the local subnet "
"is IPv6."))
dpd_action = forms.ChoiceField(label=_("Dead peer detection actions")) dpd_action = forms.ChoiceField(label=_("Dead peer detection actions"))
dpd_interval = forms.IntegerField( dpd_interval = forms.IntegerField(
min_value=1, label=_("Dead peer detection interval"), min_value=1, label=_("Dead peer detection interval"),

View File

@@ -16,7 +16,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description:" %}</h3> <h3>{% trans "Description:" %}</h3>
<p>{% trans "From here you can change your password. We highly recommend you create a strong one. " %}</p> <p>{% trans "Change your password. We highly recommend you create a strong one. " %}</p>
</div> </div>
{% endblock %} {% endblock %}

View File

@@ -16,7 +16,7 @@
</div> </div>
<div class="right"> <div class="right">
<h3>{% trans "Description:" %}</h3> <h3>{% trans "Description:" %}</h3>
<p>{% trans "From here you can modify dashboard settings for your user." %}</p> <p>{% trans "Modify dashboard settings for your user." %}</p>
</div> </div>
{% endblock %} {% endblock %}