Enable translation jobs

This patch adds translation support as suggested by the global
guidelines.

Co-Authored-By: Liuqing Jing <lawrancejing@gmail.com>

Change-Id: Ia57a0a88b57a53543f35275254dc9dd1827fc17b
This commit is contained in:
tengqm 2016-02-21 00:13:01 -05:00 committed by Liuqing Jing
parent 85fb2463f0
commit 8ffeba91a7
5 changed files with 848 additions and 0 deletions

5
babel-django.cfg Normal file
View File

@ -0,0 +1,5 @@
[extractors]
django = django_babel.extract:extract_django
[python: **.py]
[django: **/templates/**.html]

14
babel-djangojs.cfg Normal file
View File

@ -0,0 +1,14 @@
[extractors]
# We use a custom extractor to find translatable strings in AngularJS
# templates. The extractor is included in horizon.utils for now.
# See http://babel.pocoo.org/docs/messages/#referencing-extraction-methods for
# details on how this works.
angular = horizon.utils.babel_extract_angular:extract_angular
[javascript: **.js]
# We need to look into all static folders for HTML files.
# The **/static ensures that we also search within
# /openstack_dashboard/dashboards/XYZ/static which will ensure
# that plugins are also translated.
[angular: **/static/**.html]

View File

@ -0,0 +1,805 @@
# Translations template for PROJECT.
# Copyright (C) 2016 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2016-02-19 11:27-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.2.0\n"
#: senlin_dashboard/cluster/dashboard.py:19
#: senlin_dashboard/cluster/nodes/forms.py:33
#: senlin_dashboard/cluster/receivers/forms.py:36
msgid "Cluster"
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:31
msgid "Cluster Name"
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:32
#: senlin_dashboard/cluster/nodes/forms.py:30
msgid "Profile"
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:34
msgid "Min Size"
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:37
msgid "Min size of the cluster. Default to 0."
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:39
msgid "Max Size"
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:42
msgid "Max size of the cluster. Default to -1, means unlimited."
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:45
msgid "Desired Capacity"
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:47
msgid "Desired capacity of the cluster. Default to 0."
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:49
msgid "Parent Cluster"
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:53
msgid "Timeout"
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:55
msgid "Cluster creation timeout in seconds."
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:58
#: senlin_dashboard/cluster/nodes/forms.py:42
#: senlin_dashboard/cluster/nodes/templates/nodes/_detail_overview.html:30
#: senlin_dashboard/cluster/profiles/forms.py:105
#: senlin_dashboard/cluster/profiles/forms.py:169
#: senlin_dashboard/cluster/profiles/templates/profiles/_detail_overview.html:28
msgid "Metadata"
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:60
msgid "YAML formated metadata"
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:67
#: senlin_dashboard/cluster/nodes/forms.py:51
msgid "Select Profile"
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:81
#, python-format
msgid "The specified metadata is not a valid YAML format: %s"
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:86
#, python-format
msgid "Creating cluster \"%s\" successfully"
msgstr ""
#: senlin_dashboard/cluster/clusters/forms.py:92
msgid "Unable to create cluster."
msgstr ""
#: senlin_dashboard/cluster/clusters/panel.py:21
#: senlin_dashboard/cluster/clusters/tables.py:132
#: senlin_dashboard/cluster/clusters/views.py:31
#: senlin_dashboard/cluster/clusters/templates/clusters/index.html:3
msgid "Clusters"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:27
#: senlin_dashboard/cluster/clusters/views.py:46
#: senlin_dashboard/cluster/clusters/templates/clusters/_create.html:4
#: senlin_dashboard/cluster/clusters/templates/clusters/_create.html:13
#: senlin_dashboard/cluster/clusters/templates/clusters/create.html:3
msgid "Create Cluster"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:47
msgid "Delete Cluster"
msgid_plural "Delete Clusters"
msgstr[0] ""
msgstr[1] ""
#: senlin_dashboard/cluster/clusters/tables.py:55
msgid "Deleted Cluster"
msgid_plural "Deleted Clusters"
msgstr[0] ""
msgstr[1] ""
#: senlin_dashboard/cluster/clusters/tables.py:90
msgctxt "Current status of a Cluster"
msgid "INIT"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:91
msgctxt "Current status of a Cluster"
msgid "ACTIVE"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:92
msgctxt "Current status of a Cluster"
msgid "ERROR"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:93
msgctxt "Current status of a Cluster"
msgid "DELETED"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:94
msgctxt "Current status of a Cluster"
msgid "CRITICAL"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:96
msgctxt "Current status of a Cluster"
msgid "WARNING"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:97
msgctxt "Current status of a Cluster"
msgid "CREATING"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:99
msgctxt "Current status of a Cluster"
msgid "UPDATING"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:101
msgctxt "Current status of a Cluster"
msgid "DELETING"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:105
#: senlin_dashboard/cluster/clusters/templates/clusters/_detail_overview.html:7
#: senlin_dashboard/cluster/nodes/tables.py:105
#: senlin_dashboard/cluster/nodes/templates/nodes/_detail_overview.html:7
#: senlin_dashboard/cluster/policies/forms.py:35
#: senlin_dashboard/cluster/policies/tables.py:58
#: senlin_dashboard/cluster/policies/templates/policies/_detail_overview.html:7
#: senlin_dashboard/cluster/profiles/forms.py:72
#: senlin_dashboard/cluster/profiles/forms.py:156
#: senlin_dashboard/cluster/profiles/tables.py:66
#: senlin_dashboard/cluster/profiles/templates/profiles/_detail_overview.html:7
#: senlin_dashboard/cluster/receivers/forms.py:34
#: senlin_dashboard/cluster/receivers/tables.py:58
msgid "Name"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:108
#: senlin_dashboard/cluster/clusters/templates/clusters/_detail_overview.html:13
#: senlin_dashboard/cluster/nodes/event_tables.py:49
#: senlin_dashboard/cluster/nodes/tables.py:115
#: senlin_dashboard/cluster/nodes/templates/nodes/_detail_overview.html:13
msgid "Status"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:113
#: senlin_dashboard/cluster/nodes/event_tables.py:54
#: senlin_dashboard/cluster/nodes/tables.py:120
msgid "Status Reason"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:116
#: senlin_dashboard/cluster/clusters/templates/clusters/_detail_overview.html:9
#: senlin_dashboard/cluster/nodes/tables.py:109
#: senlin_dashboard/cluster/nodes/templates/nodes/_detail_overview.html:9
msgid "Profile Name"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:119
#: senlin_dashboard/cluster/clusters/templates/clusters/_detail_overview.html:15
#: senlin_dashboard/cluster/nodes/tables.py:123
#: senlin_dashboard/cluster/nodes/templates/nodes/_detail_overview.html:21
#: senlin_dashboard/cluster/policies/tables.py:63
#: senlin_dashboard/cluster/policies/templates/policies/_detail_overview.html:13
#: senlin_dashboard/cluster/profiles/tables.py:71
#: senlin_dashboard/cluster/profiles/templates/profiles/_detail_overview.html:19
#: senlin_dashboard/cluster/receivers/tables.py:64
msgid "Created"
msgstr ""
#: senlin_dashboard/cluster/clusters/tables.py:126
#: senlin_dashboard/cluster/clusters/templates/clusters/_detail_overview.html:18
#: senlin_dashboard/cluster/nodes/tables.py:130
#: senlin_dashboard/cluster/nodes/templates/nodes/_detail_overview.html:24
#: senlin_dashboard/cluster/policies/tables.py:70
#: senlin_dashboard/cluster/policies/templates/policies/_detail_overview.html:16
#: senlin_dashboard/cluster/profiles/tables.py:78
#: senlin_dashboard/cluster/profiles/templates/profiles/_detail_overview.html:22
#: senlin_dashboard/cluster/receivers/tables.py:71
msgid "Updated"
msgstr ""
#: senlin_dashboard/cluster/clusters/tabs.py:24
#: senlin_dashboard/cluster/nodes/tabs.py:23
#: senlin_dashboard/cluster/policies/tabs.py:19
#: senlin_dashboard/cluster/profiles/tabs.py:19
msgid "Overview"
msgstr ""
#: senlin_dashboard/cluster/clusters/tabs.py:42
msgid "Unable to retrieve cluster event list."
msgstr ""
#: senlin_dashboard/cluster/clusters/tabs.py:47
#: senlin_dashboard/cluster/nodes/panel.py:21
#: senlin_dashboard/cluster/nodes/tables.py:136
#: senlin_dashboard/cluster/nodes/views.py:31
#: senlin_dashboard/cluster/nodes/templates/nodes/index.html:3
msgid "Nodes"
msgstr ""
#: senlin_dashboard/cluster/clusters/tabs.py:61
msgid "Unable to retrieve nodes from cluster."
msgstr ""
#: senlin_dashboard/cluster/clusters/views.py:40
msgid "Unable to retrieve clusters."
msgstr ""
#: senlin_dashboard/cluster/clusters/views.py:67
msgid "Unable to retrieve cluster."
msgstr ""
#: senlin_dashboard/cluster/clusters/templates/clusters/_create.html:7
#: senlin_dashboard/cluster/nodes/templates/nodes/_create.html:7
#: senlin_dashboard/cluster/policies/templates/policies/_create.html:7
#: senlin_dashboard/cluster/profiles/templates/profiles/_create.html:8
#: senlin_dashboard/cluster/profiles/templates/profiles/_update.html:7
#: senlin_dashboard/cluster/receivers/templates/receivers/_create.html:7
msgid "Description:"
msgstr ""
#: senlin_dashboard/cluster/clusters/templates/clusters/_create.html:8
msgid ""
"Cluster is the collection of cloud objects, e.g. Nova servers, Heat "
"stacks, Cinder volumes, etc."
msgstr ""
#: senlin_dashboard/cluster/clusters/templates/clusters/_create.html:12
#: senlin_dashboard/cluster/nodes/templates/nodes/_create.html:12
#: senlin_dashboard/cluster/policies/templates/policies/_create.html:13
#: senlin_dashboard/cluster/profiles/templates/profiles/_create.html:14
#: senlin_dashboard/cluster/profiles/templates/profiles/_update.html:12
#: senlin_dashboard/cluster/receivers/templates/receivers/_create.html:12
msgid "Cancel"
msgstr ""
#: senlin_dashboard/cluster/clusters/templates/clusters/_detail_overview.html:4
#: senlin_dashboard/cluster/nodes/templates/nodes/_detail_overview.html:4
#: senlin_dashboard/cluster/policies/templates/policies/_detail_overview.html:4
#: senlin_dashboard/cluster/profiles/templates/profiles/_detail_overview.html:4
msgid "Information"
msgstr ""
#: senlin_dashboard/cluster/clusters/templates/clusters/_detail_overview.html:11
#: senlin_dashboard/cluster/nodes/templates/nodes/_detail_overview.html:11
#: senlin_dashboard/cluster/policies/templates/policies/_detail_overview.html:9
#: senlin_dashboard/cluster/profiles/templates/profiles/_detail_overview.html:9
msgid "ID"
msgstr ""
#: senlin_dashboard/cluster/nodes/event_tables.py:33
msgctxt "Current status of the event"
msgid "INIT"
msgstr ""
#: senlin_dashboard/cluster/nodes/event_tables.py:34
msgctxt "Current status of the event"
msgid "ACTIVE"
msgstr ""
#: senlin_dashboard/cluster/nodes/event_tables.py:35
msgctxt "Current status of the event"
msgid "ERROR"
msgstr ""
#: senlin_dashboard/cluster/nodes/event_tables.py:36
msgctxt "Current status of the event"
msgid "DELETED"
msgstr ""
#: senlin_dashboard/cluster/nodes/event_tables.py:37
msgctxt "Current status of the event"
msgid "WARNING"
msgstr ""
#: senlin_dashboard/cluster/nodes/event_tables.py:39
msgctxt "Current status of the event"
msgid "CREATING"
msgstr ""
#: senlin_dashboard/cluster/nodes/event_tables.py:41
msgctxt "Current status of the event"
msgid "UPDATING"
msgstr ""
#: senlin_dashboard/cluster/nodes/event_tables.py:43
msgctxt "Current status of the event"
msgid "DELETING"
msgstr ""
#: senlin_dashboard/cluster/nodes/event_tables.py:46
msgid "Object ID"
msgstr ""
#: senlin_dashboard/cluster/nodes/event_tables.py:47
msgid "Object Name"
msgstr ""
#: senlin_dashboard/cluster/nodes/event_tables.py:55
#: senlin_dashboard/cluster/receivers/forms.py:40
#: senlin_dashboard/cluster/receivers/tables.py:61
msgid "Action"
msgstr ""
#: senlin_dashboard/cluster/nodes/event_tables.py:57
msgid "Timestamp"
msgstr ""
#: senlin_dashboard/cluster/nodes/event_tables.py:62
#: senlin_dashboard/cluster/nodes/tabs.py:32
msgid "Event"
msgstr ""
#: senlin_dashboard/cluster/nodes/forms.py:28
msgid "Node Name"
msgstr ""
#: senlin_dashboard/cluster/nodes/forms.py:31
msgid "Profile used for this node."
msgstr ""
#: senlin_dashboard/cluster/nodes/forms.py:35
msgid "Cluster for this node."
msgstr ""
#: senlin_dashboard/cluster/nodes/forms.py:38
#: senlin_dashboard/cluster/nodes/tables.py:113
#: senlin_dashboard/cluster/nodes/templates/nodes/_detail_overview.html:18
msgid "Role"
msgstr ""
#: senlin_dashboard/cluster/nodes/forms.py:40
msgid "Role for this node in the specific cluster."
msgstr ""
#: senlin_dashboard/cluster/nodes/forms.py:44
#: senlin_dashboard/cluster/profiles/forms.py:108
#: senlin_dashboard/cluster/profiles/forms.py:172
msgid "YAML formatted metadata."
msgstr ""
#: senlin_dashboard/cluster/nodes/forms.py:56
#: senlin_dashboard/cluster/receivers/forms.py:57
msgid "Select Cluster"
msgstr ""
#: senlin_dashboard/cluster/nodes/forms.py:67
#, python-format
msgid "The specified metadata is not a valid YAML: %s"
msgstr ""
#: senlin_dashboard/cluster/nodes/forms.py:75
#, python-format
msgid "Creating node \"%s\" successfully"
msgstr ""
#: senlin_dashboard/cluster/nodes/forms.py:81
msgid "Unable to create node."
msgstr ""
#: senlin_dashboard/cluster/nodes/tables.py:27
#: senlin_dashboard/cluster/nodes/views.py:46
#: senlin_dashboard/cluster/nodes/templates/nodes/_create.html:4
#: senlin_dashboard/cluster/nodes/templates/nodes/_create.html:13
#: senlin_dashboard/cluster/nodes/templates/nodes/create.html:3
msgid "Create Node"
msgstr ""
#: senlin_dashboard/cluster/nodes/tables.py:38
msgid "Delete Node"
msgid_plural "Delete Nodes"
msgstr[0] ""
msgstr[1] ""
#: senlin_dashboard/cluster/nodes/tables.py:46
msgid "Deleted Node"
msgid_plural "Deleted Nodes"
msgstr[0] ""
msgstr[1] ""
#: senlin_dashboard/cluster/nodes/tables.py:95
msgctxt "Current status of a Node"
msgid "INIT"
msgstr ""
#: senlin_dashboard/cluster/nodes/tables.py:96
msgctxt "Current status of a Node"
msgid "ACTIVE"
msgstr ""
#: senlin_dashboard/cluster/nodes/tables.py:97
msgctxt "Current status of a Node"
msgid "ERROR"
msgstr ""
#: senlin_dashboard/cluster/nodes/tables.py:98
msgctxt "Current status of a Node"
msgid "DELETED"
msgstr ""
#: senlin_dashboard/cluster/nodes/tables.py:99
msgctxt "Current status of a Node"
msgid "WARNING"
msgstr ""
#: senlin_dashboard/cluster/nodes/tables.py:100
msgctxt "Current status of a Node"
msgid "CREATING"
msgstr ""
#: senlin_dashboard/cluster/nodes/tables.py:101
msgctxt "Current status of a Node"
msgid "UPDATING"
msgstr ""
#: senlin_dashboard/cluster/nodes/tables.py:102
msgctxt "Current status of a Node"
msgid "DELETING"
msgstr ""
#: senlin_dashboard/cluster/nodes/tables.py:112
#: senlin_dashboard/cluster/nodes/templates/nodes/_detail_overview.html:15
msgid "Physical ID"
msgstr ""
#: senlin_dashboard/cluster/nodes/tabs.py:46
msgid "Unable to retrieve node event list."
msgstr ""
#: senlin_dashboard/cluster/nodes/views.py:40
msgid "Unable to retrieve nodes."
msgstr ""
#: senlin_dashboard/cluster/nodes/views.py:65
msgid "Unable to retrieve node."
msgstr ""
#: senlin_dashboard/cluster/nodes/templates/nodes/_create.html:8
msgid ""
"Nodes are the physical objects, which can belong to any cluster of the "
"same profile type."
msgstr ""
#: senlin_dashboard/cluster/policies/forms.py:37
#: senlin_dashboard/cluster/policies/templates/policies/_detail_overview.html:11
#: senlin_dashboard/cluster/profiles/forms.py:158
#: senlin_dashboard/cluster/profiles/templates/profiles/_detail_overview.html:13
msgid "Spec"
msgstr ""
#: senlin_dashboard/cluster/policies/forms.py:39
msgid "The spec yaml used to create the policy."
msgstr ""
#: senlin_dashboard/cluster/policies/forms.py:41
msgid "Cooldown"
msgstr ""
#: senlin_dashboard/cluster/policies/forms.py:45
msgid ""
"An integer indicating the cooldown seconds once the policy is effected. "
"Default to 0."
msgstr ""
#: senlin_dashboard/cluster/policies/forms.py:48
msgid "Level"
msgstr ""
#: senlin_dashboard/cluster/policies/forms.py:53
msgid ""
"An integer between 0 and 100 representing the enforcement level. Default "
"to 0."
msgstr ""
#: senlin_dashboard/cluster/policies/forms.py:60
#, python-format
msgid "The specified data is not a valid YAML data: %s"
msgstr ""
#: senlin_dashboard/cluster/policies/forms.py:72
#, python-format
msgid "Your policy %s has been created."
msgstr ""
#: senlin_dashboard/cluster/policies/forms.py:77
msgid "Unable to create new policy"
msgstr ""
#: senlin_dashboard/cluster/policies/panel.py:21
#: senlin_dashboard/cluster/policies/tables.py:75
#: senlin_dashboard/cluster/policies/views.py:33
#: senlin_dashboard/cluster/policies/templates/policies/index.html:3
msgid "Policies"
msgstr ""
#: senlin_dashboard/cluster/policies/tables.py:25
#: senlin_dashboard/cluster/policies/views.py:48
#: senlin_dashboard/cluster/policies/templates/policies/_create.html:4
#: senlin_dashboard/cluster/policies/templates/policies/_create.html:14
#: senlin_dashboard/cluster/policies/templates/policies/create.html:3
msgid "Create Policy"
msgstr ""
#: senlin_dashboard/cluster/policies/tables.py:35
msgid "Delete Policy"
msgid_plural "Delete Policies"
msgstr[0] ""
msgstr[1] ""
#: senlin_dashboard/cluster/policies/tables.py:43
msgid "Deleted Policy"
msgid_plural "Deleted Policies"
msgstr[0] ""
msgstr[1] ""
#: senlin_dashboard/cluster/policies/tables.py:60
#: senlin_dashboard/cluster/profiles/tables.py:68
#: senlin_dashboard/cluster/profiles/templates/profiles/_detail_overview.html:11
#: senlin_dashboard/cluster/receivers/forms.py:43
#: senlin_dashboard/cluster/receivers/tables.py:59
msgid "Type"
msgstr ""
#: senlin_dashboard/cluster/policies/views.py:42
msgid "Unable to retrieve policies."
msgstr ""
#: senlin_dashboard/cluster/policies/views.py:68
msgid "Unable to retrieve policy."
msgstr ""
#: senlin_dashboard/cluster/policies/templates/policies/_create.html:8
msgid ""
"A policy is a set of rules that can be checked and/or enforced when an "
"Action is performed on a Cluster."
msgstr ""
#: senlin_dashboard/cluster/policies/templates/policies/_create.html:9
msgid "Policy Spec Examples"
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:46
#: senlin_dashboard/cluster/profiles/forms.py:58
#, python-format
msgid "The specified file is not a valid YAML file: %s"
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:74
msgid "Spec Source"
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:76
msgid "File"
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:77
msgid "YAML"
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:82
#: senlin_dashboard/cluster/profiles/forms.py:86
msgid "Spec File"
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:88
msgid "The spec file used to create the profile."
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:90
#: senlin_dashboard/cluster/profiles/forms.py:96
msgid "Spec YAML"
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:97
#: senlin_dashboard/cluster/profiles/forms.py:161
msgid "The spec yaml used to create the profile."
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:100
#: senlin_dashboard/cluster/profiles/forms.py:164
#: senlin_dashboard/cluster/profiles/templates/profiles/_detail_overview.html:16
msgid "Permission"
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:103
#: senlin_dashboard/cluster/profiles/forms.py:167
msgid "A string format permission for this profile."
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:118
msgid "A spec file or yaml must be specified."
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:121
msgid "Can not specify both sepc file and yaml."
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:141
#, python-format
msgid "Your profile %s has been created."
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:149
msgid "Unable to create new profile"
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:186
#, python-format
msgid "Your profile %s has been updated."
msgstr ""
#: senlin_dashboard/cluster/profiles/forms.py:194
msgid "Unable to update profile"
msgstr ""
#: senlin_dashboard/cluster/profiles/panel.py:21
#: senlin_dashboard/cluster/profiles/tables.py:83
#: senlin_dashboard/cluster/profiles/views.py:33
#: senlin_dashboard/cluster/profiles/templates/profiles/index.html:3
msgid "Profiles"
msgstr ""
#: senlin_dashboard/cluster/profiles/tables.py:25
#: senlin_dashboard/cluster/profiles/views.py:49
#: senlin_dashboard/cluster/profiles/templates/profiles/_create.html:5
#: senlin_dashboard/cluster/profiles/templates/profiles/_create.html:15
#: senlin_dashboard/cluster/profiles/templates/profiles/create.html:3
msgid "Create Profile"
msgstr ""
#: senlin_dashboard/cluster/profiles/tables.py:33
#: senlin_dashboard/cluster/profiles/views.py:57
#: senlin_dashboard/cluster/profiles/templates/profiles/_update.html:4
#: senlin_dashboard/cluster/profiles/templates/profiles/_update.html:13
#: senlin_dashboard/cluster/profiles/templates/profiles/update.html:3
msgid "Update Profile"
msgstr ""
#: senlin_dashboard/cluster/profiles/tables.py:43
msgid "Delete Profile"
msgid_plural "Delete Profiles"
msgstr[0] ""
msgstr[1] ""
#: senlin_dashboard/cluster/profiles/tables.py:51
msgid "Deleted Profile"
msgid_plural "Deleted Profiles"
msgstr[0] ""
msgstr[1] ""
#: senlin_dashboard/cluster/profiles/views.py:41
msgid "Unable to retrieve profiles."
msgstr ""
#: senlin_dashboard/cluster/profiles/views.py:85
#: senlin_dashboard/cluster/profiles/views.py:119
msgid "Unable to retrieve profile."
msgstr ""
#: senlin_dashboard/cluster/profiles/templates/profiles/_create.html:9
#: senlin_dashboard/cluster/profiles/templates/profiles/_update.html:8
msgid "A profile encodes the information needed for node creation."
msgstr ""
#: senlin_dashboard/cluster/profiles/templates/profiles/_create.html:10
msgid "Profile Spec Examples"
msgstr ""
#: senlin_dashboard/cluster/receivers/forms.py:37
msgid "Targeted cluster for this receiver."
msgstr ""
#: senlin_dashboard/cluster/receivers/forms.py:41
msgid "Name or ID of the targeted action to be triggered."
msgstr ""
#: senlin_dashboard/cluster/receivers/forms.py:45
msgid "Type of the receiver to create. Defailt to webhook"
msgstr ""
#: senlin_dashboard/cluster/receivers/forms.py:47
msgid "Parameters"
msgstr ""
#: senlin_dashboard/cluster/receivers/forms.py:50
msgid ""
"YAML formatted parameters that will be passed to target action when the "
"receiver is triggered."
msgstr ""
#: senlin_dashboard/cluster/receivers/forms.py:61
msgid "Select Type"
msgstr ""
#: senlin_dashboard/cluster/receivers/forms.py:70
#, python-format
msgid "The parameters is not a valid YAML formatted: %s"
msgstr ""
#: senlin_dashboard/cluster/receivers/forms.py:78
#, python-format
msgid "Your receiver %s has been created successfully."
msgstr ""
#: senlin_dashboard/cluster/receivers/forms.py:83
msgid "Unable to create new receiver"
msgstr ""
#: senlin_dashboard/cluster/receivers/panel.py:21
#: senlin_dashboard/cluster/receivers/tables.py:76
#: senlin_dashboard/cluster/receivers/views.py:28
#: senlin_dashboard/cluster/receivers/templates/receivers/index.html:3
msgid "Receivers"
msgstr ""
#: senlin_dashboard/cluster/receivers/tables.py:24
#: senlin_dashboard/cluster/receivers/views.py:43
#: senlin_dashboard/cluster/receivers/templates/receivers/_create.html:4
#: senlin_dashboard/cluster/receivers/templates/receivers/_create.html:13
#: senlin_dashboard/cluster/receivers/templates/receivers/create.html:3
msgid "Create Receiver"
msgstr ""
#: senlin_dashboard/cluster/receivers/tables.py:35
msgid "Delete Receiver"
msgid_plural "Delete Receivers"
msgstr[0] ""
msgstr[1] ""
#: senlin_dashboard/cluster/receivers/tables.py:43
msgid "Deleted Receiver"
msgid_plural "Deleted Receivers"
msgstr[0] ""
msgstr[1] ""
#: senlin_dashboard/cluster/receivers/tables.py:60
msgid "Cluster ID"
msgstr ""
#: senlin_dashboard/cluster/receivers/views.py:37
msgid "Unable to retrieve receivers."
msgstr ""
#: senlin_dashboard/cluster/receivers/templates/receivers/_create.html:8
msgid ""
"A Receiver is used to prepare Senlin engine to react to external alarms "
"or events so that a specific Action can be initiated on a senlin cluster "
"automatically. For example, when workload on a cluster climbs high, a "
"receiver can change the size of a specified cluster."
msgstr ""

View File

@ -0,0 +1,19 @@
# Translations template for PROJECT.
# Copyright (C) 2016 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2016-02-19 11:27-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.2.0\n"

View File

@ -36,6 +36,11 @@ commands = python setup.py build_sphinx
[testenv:debug]
commands = oslo_debug_helper {posargs}
[testenv:makemessages]
commands =
pybabel extract -F babel-django.cfg -o senlin_dashboard/locale/django.pot -k gettext_noop -k gettext_lazy -k ngettext_lazy:1,2 -k ugettext_noop -k ugettext_lazy -k ungettext_lazy:1,2 -k npgettext:1c,2,3 -k pgettext_lazy:1c,2 -k npgettext_lazy:1c,2,3 senlin_dashboard
pybabel extract -F babel-djangojs.cfg -o senlin_dashboard/locale/djangojs.pot -k gettext_noop -k gettext_lazy -k ngettext_lazy:1,2 -k ugettext_noop -k ugettext_lazy -k ungettext_lazy:1,2 -k npgettext:1c,2,3 -k pgettext_lazy:1c,2 -k npgettext_lazy:1c,2,3 senlin_dashboard
[flake8]
show-source = True
exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,.ropeproject,tools