Adds i18n support for Javascript.

Uses Django's built-in client-side i18n machinery to
support translation strings in javascript code as well.

Various cleanup, etc. included to make translation file
generation succeed and remove obsolete strings.

Implements blueprint javascript-i18n.

Change-Id: I62c237ae98b26307e1e7d8a7d913237530e7324f
This commit is contained in:
Gabriel Hurley 2012-08-12 14:48:51 -07:00
parent 05cf900492
commit ee17b1588b
34 changed files with 11181 additions and 4511 deletions

View File

@ -73,11 +73,10 @@ class CreateSubnetInfoAction(workflows.Action):
class Meta:
name = ("Subnet")
help_text = _("You can create a subnet associated with the new "
"network. \"Network Address\" must be specified. "
"\n\n"
"If you are creating a network WITHOUT a subnet, "
"clear \"Create Subnet\" checkbox.")
help_text = _('You can create a subnet associated with the new '
'network, in which case "Network Address" must be '
'specified. If you wish to create a network WITHOUT a '
'subnet, uncheck the "Create Subnet" checkbox.')
def clean(self):
cleaned_data = super(CreateSubnetInfoAction, self).clean()
@ -110,7 +109,7 @@ class CreateNetwork(workflows.Workflow):
slug = "create_network"
name = _("Create Network")
finalize_button_name = _("Create")
success_message = _('Created new network "%s".')
success_message = _('Created network "%s".')
failure_message = _('Unable to create network "%s".')
success_url = "horizon:nova:networks:index"
default_steps = (CreateNetworkInfo,
@ -127,10 +126,10 @@ class CreateNetwork(workflows.Workflow):
name=data['net_name'])
network.set_id_as_name_if_empty()
self.context['net_id'] = network.id
msg = _('Network %s was successfully created.') % network.name
msg = _('Network "%s" was successfully created.') % network.name
LOG.debug(msg)
except:
msg = _('Failed to create network %s') % data['net_name']
msg = _('Failed to create network "%s".') % data['net_name']
LOG.info(msg)
redirect = reverse('horizon:nova:networks:index')
exceptions.handle(request, msg, redirect=redirect)
@ -140,7 +139,7 @@ class CreateNetwork(workflows.Workflow):
if not data['with_subnet']:
return True
# create the subnet
# Create the subnet.
try:
params = {'network_id': network.id,
'name': data['subnet_name'],
@ -149,14 +148,14 @@ class CreateNetwork(workflows.Workflow):
if data['gateway_ip']:
params['gateway_ip'] = data['gateway_ip']
api.quantum.subnet_create(request, **params)
msg = _('Subnet %s was successfully created.') % data['cidr']
msg = _('Subnet "%s" was successfully created.') % data['cidr']
LOG.debug(msg)
except Exception:
msg = _('Failed to create subnet %s for network %s') % \
(data['cidr'], network.id)
LOG.info(msg)
msg = _('Failed to create subnet "%(sub)s" for network "%(net)s".')
redirect = reverse('horizon:nova:networks:index')
exceptions.handle(request, msg, redirect=redirect)
exceptions.handle(request,
msg % {"sub": data['cidr'], "net": network.id},
redirect=redirect)
return False
return True

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,71 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-12 21:48+0000\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: static/horizon/js/horizon.forms.js:57
msgid "Additional information here..."
msgstr ""
#: static/horizon/js/horizon.forms.js:63
#: static/horizon/js/horizon.projects.js:12
msgid "Filter"
msgstr ""
#: static/horizon/js/horizon.instances.js:28
msgid "There was a problem communicating with the server, please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:125
msgid "There was an error submitting the form. Please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:159 static/horizon/js/horizon.tabs.js:9
msgid "Loading"
msgstr ""
#: static/horizon/js/horizon.modals.js:178
msgid "An error occurred. Please try again."
msgstr ""
#: static/horizon/js/horizon.projects.js:9
msgid "This project currently has no members."
msgstr ""
#: static/horizon/js/horizon.projects.js:10
msgid "No more available users to add."
msgstr ""
#: static/horizon/js/horizon.projects.js:11
msgid "No users found."
msgstr ""
#: static/horizon/js/horizon.tables.js:52
msgid "An error occurred while updating."
msgstr ""
#: static/horizon/js/horizon.tables.js:130
msgid "Confirm "
msgstr ""
#: static/horizon/js/horizon.tables.js:131
msgid "Please confirm your selection. This action cannot be undone."
msgstr ""
#: static/horizon/js/horizon.tables.js:145
msgid "Working"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,72 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-12 21:48+0000\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: static/horizon/js/horizon.forms.js:57
msgid "Additional information here..."
msgstr ""
#: static/horizon/js/horizon.forms.js:63
#: static/horizon/js/horizon.projects.js:12
msgid "Filter"
msgstr ""
#: static/horizon/js/horizon.instances.js:28
msgid "There was a problem communicating with the server, please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:125
msgid "There was an error submitting the form. Please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:159 static/horizon/js/horizon.tabs.js:9
msgid "Loading"
msgstr ""
#: static/horizon/js/horizon.modals.js:178
msgid "An error occurred. Please try again."
msgstr ""
#: static/horizon/js/horizon.projects.js:9
msgid "This project currently has no members."
msgstr ""
#: static/horizon/js/horizon.projects.js:10
msgid "No more available users to add."
msgstr ""
#: static/horizon/js/horizon.projects.js:11
msgid "No users found."
msgstr ""
#: static/horizon/js/horizon.tables.js:52
msgid "An error occurred while updating."
msgstr ""
#: static/horizon/js/horizon.tables.js:130
msgid "Confirm "
msgstr ""
#: static/horizon/js/horizon.tables.js:131
msgid "Please confirm your selection. This action cannot be undone."
msgstr ""
#: static/horizon/js/horizon.tables.js:145
msgid "Working"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,72 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-12 21:48+0000\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
#: static/horizon/js/horizon.forms.js:57
msgid "Additional information here..."
msgstr ""
#: static/horizon/js/horizon.forms.js:63
#: static/horizon/js/horizon.projects.js:12
msgid "Filter"
msgstr ""
#: static/horizon/js/horizon.instances.js:28
msgid "There was a problem communicating with the server, please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:125
msgid "There was an error submitting the form. Please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:159 static/horizon/js/horizon.tabs.js:9
msgid "Loading"
msgstr ""
#: static/horizon/js/horizon.modals.js:178
msgid "An error occurred. Please try again."
msgstr ""
#: static/horizon/js/horizon.projects.js:9
msgid "This project currently has no members."
msgstr ""
#: static/horizon/js/horizon.projects.js:10
msgid "No more available users to add."
msgstr ""
#: static/horizon/js/horizon.projects.js:11
msgid "No users found."
msgstr ""
#: static/horizon/js/horizon.tables.js:52
msgid "An error occurred while updating."
msgstr ""
#: static/horizon/js/horizon.tables.js:130
msgid "Confirm "
msgstr ""
#: static/horizon/js/horizon.tables.js:131
msgid "Please confirm your selection. This action cannot be undone."
msgstr ""
#: static/horizon/js/horizon.tables.js:145
msgid "Working"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,72 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-12 21:48+0000\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0\n"
#: static/horizon/js/horizon.forms.js:57
msgid "Additional information here..."
msgstr ""
#: static/horizon/js/horizon.forms.js:63
#: static/horizon/js/horizon.projects.js:12
msgid "Filter"
msgstr ""
#: static/horizon/js/horizon.instances.js:28
msgid "There was a problem communicating with the server, please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:125
msgid "There was an error submitting the form. Please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:159 static/horizon/js/horizon.tabs.js:9
msgid "Loading"
msgstr ""
#: static/horizon/js/horizon.modals.js:178
msgid "An error occurred. Please try again."
msgstr ""
#: static/horizon/js/horizon.projects.js:9
msgid "This project currently has no members."
msgstr ""
#: static/horizon/js/horizon.projects.js:10
msgid "No more available users to add."
msgstr ""
#: static/horizon/js/horizon.projects.js:11
msgid "No users found."
msgstr ""
#: static/horizon/js/horizon.tables.js:52
msgid "An error occurred while updating."
msgstr ""
#: static/horizon/js/horizon.tables.js:130
msgid "Confirm "
msgstr ""
#: static/horizon/js/horizon.tables.js:131
msgid "Please confirm your selection. This action cannot be undone."
msgstr ""
#: static/horizon/js/horizon.tables.js:145
msgid "Working"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,73 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-12 21:48+0000\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2)\n"
#: static/horizon/js/horizon.forms.js:57
msgid "Additional information here..."
msgstr ""
#: static/horizon/js/horizon.forms.js:63
#: static/horizon/js/horizon.projects.js:12
msgid "Filter"
msgstr ""
#: static/horizon/js/horizon.instances.js:28
msgid "There was a problem communicating with the server, please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:125
msgid "There was an error submitting the form. Please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:159 static/horizon/js/horizon.tabs.js:9
msgid "Loading"
msgstr ""
#: static/horizon/js/horizon.modals.js:178
msgid "An error occurred. Please try again."
msgstr ""
#: static/horizon/js/horizon.projects.js:9
msgid "This project currently has no members."
msgstr ""
#: static/horizon/js/horizon.projects.js:10
msgid "No more available users to add."
msgstr ""
#: static/horizon/js/horizon.projects.js:11
msgid "No users found."
msgstr ""
#: static/horizon/js/horizon.tables.js:52
msgid "An error occurred while updating."
msgstr ""
#: static/horizon/js/horizon.tables.js:130
msgid "Confirm "
msgstr ""
#: static/horizon/js/horizon.tables.js:131
msgid "Please confirm your selection. This action cannot be undone."
msgstr ""
#: static/horizon/js/horizon.tables.js:145
msgid "Working"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,72 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-12 21:48+0000\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: static/horizon/js/horizon.forms.js:57
msgid "Additional information here..."
msgstr ""
#: static/horizon/js/horizon.forms.js:63
#: static/horizon/js/horizon.projects.js:12
msgid "Filter"
msgstr ""
#: static/horizon/js/horizon.instances.js:28
msgid "There was a problem communicating with the server, please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:125
msgid "There was an error submitting the form. Please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:159 static/horizon/js/horizon.tabs.js:9
msgid "Loading"
msgstr ""
#: static/horizon/js/horizon.modals.js:178
msgid "An error occurred. Please try again."
msgstr ""
#: static/horizon/js/horizon.projects.js:9
msgid "This project currently has no members."
msgstr ""
#: static/horizon/js/horizon.projects.js:10
msgid "No more available users to add."
msgstr ""
#: static/horizon/js/horizon.projects.js:11
msgid "No users found."
msgstr ""
#: static/horizon/js/horizon.tables.js:52
msgid "An error occurred while updating."
msgstr ""
#: static/horizon/js/horizon.tables.js:130
msgid "Confirm "
msgstr ""
#: static/horizon/js/horizon.tables.js:131
msgid "Please confirm your selection. This action cannot be undone."
msgstr ""
#: static/horizon/js/horizon.tables.js:145
msgid "Working"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,72 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-12 21:48+0000\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0\n"
#: static/horizon/js/horizon.forms.js:57
msgid "Additional information here..."
msgstr ""
#: static/horizon/js/horizon.forms.js:63
#: static/horizon/js/horizon.projects.js:12
msgid "Filter"
msgstr ""
#: static/horizon/js/horizon.instances.js:28
msgid "There was a problem communicating with the server, please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:125
msgid "There was an error submitting the form. Please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:159 static/horizon/js/horizon.tabs.js:9
msgid "Loading"
msgstr ""
#: static/horizon/js/horizon.modals.js:178
msgid "An error occurred. Please try again."
msgstr ""
#: static/horizon/js/horizon.projects.js:9
msgid "This project currently has no members."
msgstr ""
#: static/horizon/js/horizon.projects.js:10
msgid "No more available users to add."
msgstr ""
#: static/horizon/js/horizon.projects.js:11
msgid "No users found."
msgstr ""
#: static/horizon/js/horizon.tables.js:52
msgid "An error occurred while updating."
msgstr ""
#: static/horizon/js/horizon.tables.js:130
msgid "Confirm "
msgstr ""
#: static/horizon/js/horizon.tables.js:131
msgid "Please confirm your selection. This action cannot be undone."
msgstr ""
#: static/horizon/js/horizon.tables.js:145
msgid "Working"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,72 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-12 21:48+0000\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0\n"
#: static/horizon/js/horizon.forms.js:57
msgid "Additional information here..."
msgstr ""
#: static/horizon/js/horizon.forms.js:63
#: static/horizon/js/horizon.projects.js:12
msgid "Filter"
msgstr ""
#: static/horizon/js/horizon.instances.js:28
msgid "There was a problem communicating with the server, please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:125
msgid "There was an error submitting the form. Please try again."
msgstr ""
#: static/horizon/js/horizon.modals.js:159 static/horizon/js/horizon.tabs.js:9
msgid "Loading"
msgstr ""
#: static/horizon/js/horizon.modals.js:178
msgid "An error occurred. Please try again."
msgstr ""
#: static/horizon/js/horizon.projects.js:9
msgid "This project currently has no members."
msgstr ""
#: static/horizon/js/horizon.projects.js:10
msgid "No more available users to add."
msgstr ""
#: static/horizon/js/horizon.projects.js:11
msgid "No users found."
msgstr ""
#: static/horizon/js/horizon.tables.js:52
msgid "An error occurred while updating."
msgstr ""
#: static/horizon/js/horizon.tables.js:130
msgid "Confirm "
msgstr ""
#: static/horizon/js/horizon.tables.js:131
msgid "Please confirm your selection. This action cannot be undone."
msgstr ""
#: static/horizon/js/horizon.tables.js:145
msgid "Working"
msgstr ""

View File

@ -28,7 +28,11 @@ urlpatterns = patterns('horizon.views',
)
urlpatterns += patterns('',
url(r'^i18n/setlang/$', 'django.views.i18n.set_language',
url(r'^i18n/js/(?P<packages>\S+?)/$',
'django.views.i18n.javascript_catalog',
name='jsi18n'),
url(r'^i18n/setlang/$',
'django.views.i18n.set_language',
name="set_language"),
url(r'^i18n/', include('django.conf.urls.i18n'))
)

View File

@ -50,6 +50,22 @@ horizon.forms.prevent_multiple_submission = function (el) {
});
};
horizon.forms.init_examples = function (el) {
var $el = $(el);
// Generic examples.
$el.find("#id_description").example(gettext("Additional information here..."));
// Update/create image form.
$el.find("#create_image_form input#id_copy_from").example("http://example.com/image.iso");
// Table search box.
$el.find(".table_search input").example(gettext("Filter"));
// Volume attachment form.
$el.find("#attach_volume_form #id_device").example("/dev/vdc/");
};
horizon.addInitFunction(function () {
horizon.forms.prevent_multiple_submission($('body'));
horizon.modals.addModalInitFunction(horizon.forms.prevent_multiple_submission);
@ -57,6 +73,9 @@ horizon.addInitFunction(function () {
horizon.forms.bind_add_item_handlers($("body"));
horizon.modals.addModalInitFunction(horizon.forms.bind_add_item_handlers);
horizon.forms.init_examples($("body"));
horizon.modals.addModalInitFunction(horizon.forms.init_examples);
horizon.forms.handle_source_group();
horizon.forms.handle_snapshot_source();
@ -112,45 +131,4 @@ horizon.addInitFunction(function () {
});
// Hide the help text for js-capable browsers
$('span.help-block').hide();
/* Form examples */
// Update/create image form.
$("#image_form input#id_name").example("ami-ubuntu");
$("#image_form input#id_kernel").example("123");
$("#image_form input#id_ramdisk").example("123");
$("#image_form input#id_state").example("available");
$("#image_form input#id_location").example("file:///var/lib/glance/images/123");
$("#image_form input#id_architecture").example("x86_64");
$("#image_form input#id_project_id").example("some");
$("#image_form input#id_disk_format").example("ari");
$("#image_form input#id_container_format").example("ari");
$("#image_form input#id_ramdisk").example("123");
// Launch instance form.
$("#launch_img input#id_name").example("YetAnotherInstance");
$("#launch_img input#id_security_groups").example("group1,group2");
// Create flavor form.
$("#flavor_form input#id_flavorid").example("1234");
$("#flavor_form input#id_name").example("small");
$("#flavor_form input#id_vcpus").example("256");
$("#flavor_form input#id_memory_mb").example("256");
$("#flavor_form input#id_disk_gb").example("256");
// Update/create tenant.
$("#tenant_form input#id__id").example("YetAnotherTenant");
$("#tenant_form textarea#id_description").example("One or two sentence description.");
// Update/create tenant.
$("#user_form input#id_id").example("username");
$("#user_form input#id_email").example("email@example.com");
$("#user_form input#id_password").example("password");
// Table search box.
$(".table_search input").example("Filter");
// Volume attachment form.
$("#attach_volume_form #id_device").example("/dev/vdc/");
});

View File

@ -25,7 +25,7 @@ horizon.instances = {
error: function(response) {
if(via_user_submit) {
horizon.clearErrorMessages();
horizon.alert('error', 'There was a problem communicating with the server, please try again.');
horizon.alert('error', gettext('There was a problem communicating with the server, please try again.'));
}
}
});

View File

@ -122,7 +122,7 @@ horizon.addInitFunction(function() {
},
error: function (jqXHR, status, errorThrown) {
$form.closest(".modal").modal("hide");
horizon.alert("error", "There was an error submitting the form. Please try again.");
horizon.alert("error", gettext("There was an error submitting the form. Please try again."));
}
});
});
@ -156,7 +156,7 @@ horizon.addInitFunction(function() {
horizon.modals._request = $.ajax($this.attr('href'), {
beforeSend: function () {
horizon.modals.modal_spinner("Loading");
horizon.modals.modal_spinner(gettext("Loading"));
},
complete: function () {
// Clear the global storage;
@ -175,7 +175,7 @@ horizon.addInitFunction(function() {
else {
if (!horizon.ajax.get_messages(jqXHR)) {
// Generic error handler. Really generic.
horizon.alert("error", "An error occurred. Please try again.");
horizon.alert("error", gettext("An error occurred. Please try again."));
}
}
},

View File

@ -6,11 +6,10 @@ horizon.projects = {
roles: [],
default_role_id: "",
workflow_loaded: false,
no_project_members: 'This project currently has no members.',
no_available_users: 'No more available users to add.',
no_filter_results: 'No users found.',
filter_btn_text: 'Filter',
no_project_members: gettext('This project currently has no members.'),
no_available_users: gettext('No more available users to add.'),
no_filter_results: gettext('No users found.'),
filter_btn_text: gettext('Filter'),
/* Parses the form field selector's ID to get either the
* role or user id (i.e. returns "id12345" when
@ -20,7 +19,6 @@ horizon.projects = {
return id_string.slice(id_string.lastIndexOf("_") + 1);
},
/*
* Gets the html select element associated with a given
* role id for role_id.
@ -29,7 +27,6 @@ horizon.projects = {
return $('select[id^="id_role_' + role_id + '"]');
},
/*
* Initializes all of the horizon.projects lists with
* data parsed from the hidden form fields, as well as the
@ -42,7 +39,6 @@ horizon.projects = {
horizon.projects.init_current_membership();
},
/*
* Initializes an associative array mapping user ids to user names.
**/
@ -52,7 +48,6 @@ horizon.projects = {
});
},
/*
* Initializes an associative array mapping role ids to role names.
**/
@ -63,7 +58,6 @@ horizon.projects = {
});
},
/*
* Initializes an associative array of lists of the current
* members for each available role.
@ -88,13 +82,12 @@ horizon.projects = {
});
},
/*
* Checks to see whether a user is a member of the current project.
* If they are, returns the id of their primary role.
**/
is_project_member: function(user_id) {
for (role in horizon.projects.current_membership) {
for (var role in horizon.projects.current_membership) {
if ($.inArray(user_id, horizon.projects.current_membership[role]) >= 0) {
return role;
}
@ -102,7 +95,6 @@ horizon.projects = {
return false;
},
/*
* Updates the selected values on the role_list's form field, as
* well as the current_membership dictionary's list.
@ -114,7 +106,6 @@ horizon.projects = {
horizon.projects.current_membership[role_id] = new_list;
},
/*
* Helper function for remove_user_from_role.
**/
@ -127,36 +118,34 @@ horizon.projects = {
}
},
/*
* Searches through the role lists and removes a given user
* from the lists.
**/
remove_user_from_role: function(user_id, role_id) {
var role_list;
if (role_id) {
var role_list = horizon.projects.current_membership[role_id];
horizon.projects.remove_user(user_id, role_id, role_list)
role_list = horizon.projects.current_membership[role_id];
horizon.projects.remove_user(user_id, role_id, role_list);
}
else {
// search for membership in role lists
for (var role in horizon.projects.current_membership) {
var role_list = horizon.projects.current_membership[role];
horizon.projects.remove_user(user_id, role, role_list)
role_list = horizon.projects.current_membership[role];
horizon.projects.remove_user(user_id, role, role_list);
}
}
},
/*
* Adds a given user to a given role list.
**/
add_user_to_role: function(user_id, role_id) {
var role_list = horizon.projects.current_membership[role_id];
role_list.push(user_id);
horizon.projects.update_role_lists(role_id, role_list)
horizon.projects.update_role_lists(role_id, role_list);
},
/*
* Generates the HTML structure for a user that will be displayed
* as a list item in the project member list.
@ -191,6 +180,7 @@ horizon.projects = {
* Generates the HTML structure for the project membership UI.
**/
generate_html: function() {
var user;
for (user in horizon.projects.users) {
var user_id = user;
var user_name = horizon.projects.users[user];
@ -198,7 +188,7 @@ horizon.projects = {
if (role_id) {
$(".project_members").append(this.generate_user_element(user_name, user_id, "-"));
var $selected_role = $("li[data-user-id$='" + user_id + "']").siblings('.dropdown').children('.dropdown-toggle').children('span');
horizon.projects.set_selected_role($selected_role, role_id)
horizon.projects.set_selected_role($selected_role, role_id);
}
else {
$(".available_users").append(this.generate_user_element(user_name, user_id, "+"));
@ -207,14 +197,13 @@ horizon.projects = {
horizon.projects.detect_no_results();
},
/*
* Triggers on click of link to add/remove member from the project.
**/
update_membership: function() {
$(".available_users, .project_members").on('click', ".btn-group a[href='#add_remove']", function (evt) {
var available = $(".available_users").has($(this)).length;
var user_id = horizon.projects.get_field_id($(this).parent().siblings().attr('data-user-id'))
var user_id = horizon.projects.get_field_id($(this).parent().siblings().attr('data-user-id'));
if (available) {
$(this).text("-");
@ -232,7 +221,7 @@ horizon.projects = {
// set the selection back to default role
var $selected_role = $(this).parent().siblings('.dropdown').children('.dropdown-toggle').children('.selected_role');
horizon.projects.set_selected_role($selected_role, horizon.projects.default_role_id)
horizon.projects.set_selected_role($selected_role, horizon.projects.default_role_id);
}
// update lists
@ -244,21 +233,21 @@ horizon.projects = {
});
},
/*
* Detects whether each list has members and if it does not
* displays a message to the user.
**/
detect_no_results: function () {
$('.filterable').each( function () {
var filter = $(this).find('ul').attr('class');
var filter = $(this).find('ul').attr('class'),
text;
if (filter == 'project_members')
var text = horizon.projects.no_project_members;
text = horizon.projects.no_project_members;
else
var text = horizon.projects.no_available_users;
text = horizon.projects.no_available_users;
if ($('.' + filter).children('ul').length == 0) {
$('#no_' + filter).text(text)
if (!$('.' + filter).children('ul').length) {
$('#no_' + filter).text(text);
$('#no_' + filter).show();
$("input[id='" + filter + "']").attr('disabled', 'disabled');
}
@ -269,14 +258,13 @@ horizon.projects = {
});
},
/*
* Triggers on selection of new role for a member.
**/
select_member_role: function() {
$(".available_users, .project_members").on('click', '.role_dropdown li', function (evt) {
var $selected_el = $(this).parent().prev().children('.selected_role');
$selected_el.text($(this).text())
$selected_el.text($(this).text());
// get the newly selected role and the member's name
var new_role_id = $(this).attr("data-role-id");
@ -285,11 +273,10 @@ horizon.projects = {
// update role lists
horizon.projects.remove_user_from_role(user_id, $selected_el.attr('data-role-id'));
horizon.projects.add_user_to_role(user_id, new_role_id)
horizon.projects.add_user_to_role(user_id, new_role_id);
});
},
/*
* Triggers on the addition of a new user via the inline object creation field.
**/
@ -302,7 +289,7 @@ horizon.projects = {
// add the user to the hidden role lists and the users list
horizon.projects.users[user_id] = user_name;
$("select[multiple='multiple']").append("<option value='" + user_id + "'>" + horizon.projects.users[user_id] + "</option>")
$("select[multiple='multiple']").append("<option value='" + user_id + "'>" + horizon.projects.users[user_id] + "</option>");
horizon.projects.add_user_to_role(user_id, horizon.projects.default_role_id);
// remove option from hidden select
@ -314,12 +301,11 @@ horizon.projects = {
$("input.filter").val(horizon.projects.filter_btn_text);
// fix styling
$(".project_members .btn-group").css('border-bottom','none')
$(".project_members .btn-group:last").css('border-bottom','1px solid #ddd')
$(".project_members .btn-group").css('border-bottom','none');
$(".project_members .btn-group:last").css('border-bottom','1px solid #ddd');
});
},
/*
* Style the inline object creation button, hide the associated field.
**/
@ -331,7 +317,6 @@ horizon.projects = {
$(add_user_el).find("label, .input").addClass("add_user_btn");
},
/*
* Fixes the striping of the fake table upon modification of the lists.
**/
@ -362,7 +347,6 @@ horizon.projects = {
});
},
/*
* Sets up filtering for each list of users.
**/
@ -415,7 +399,6 @@ horizon.projects = {
});
},
/*
* Calls set-up functions upon loading the workflow.
**/
@ -455,10 +438,8 @@ horizon.projects = {
});
}
}
};
horizon.addInitFunction(function() {
$('.btn').on('click', function (evt) {
horizon.projects.workflow_loaded = false;

View File

@ -49,7 +49,7 @@ horizon.datatables = {
break;
default:
if (horizon.conf.debug) {
horizon.alert("error", "An error occurred while updating.");
horizon.alert("error", gettext("An error occurred while updating."));
}
$row.removeClass("ajax-update");
$row.find("i.ajax-updating").remove();
@ -127,8 +127,8 @@ horizon.datatables.confirm = function (action) {
return;
}
action_string = $action.text();
title = "Confirm " + action_string;
body = "Please confirm your selection. This action cannot be undone.";
title = gettext("Confirm ") + action_string;
body = gettext("Please confirm your selection. This action cannot be undone.");
modal = horizon.modals.create(title, body, action_string);
modal.modal();
if($modal_parent.length) {
@ -142,7 +142,7 @@ horizon.datatables.confirm = function (action) {
form.append("<input type='hidden' name='" + $action.attr('name') + "' value='" + $action.attr('value') + "'/>");
form.submit();
modal.modal('hide');
horizon.modals.modal_spinner("Working");
horizon.modals.modal_spinner(gettext("Working"));
return false;
});
return modal;

View File

@ -6,7 +6,7 @@ horizon.tabs.load_tab = function (evt) {
tab_pane = $(tab_id);
// FIXME(gabriel): This style mucking shouldn't be in the javascript.
tab_pane.append("<span style='margin-left: 30px;'>loading&hellip;</span>");
tab_pane.append("<span style='margin-left: 30px;'>" + gettext("Loading") + "&hellip;</span>");
tab_pane.spin(horizon.conf.spinner_options.inline);
$(tab_pane.data().spinner.el).css('top', '9px');
$(tab_pane.data().spinner.el).css('left', '15px');

View File

@ -1,5 +1,8 @@
{% load compress %}
{% comment %} Django's JavaScript i18n Implementation {% endcomment %}
<script type="text/javascript" src="{% url horizon:jsi18n 'horizon' %}"></script>
{% compress js %}
{% comment %} jQuery and Plugins {% endcomment %}
<script src='{{ STATIC_URL }}horizon/lib/jquery/jquery.min.js' type='text/javascript' charset="utf-8"></script>

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-07-09 02:29+0000\n"
"POT-Creation-Date: 2012-08-12 21:48+0000\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"
@ -17,39 +17,39 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: settings.py:136
#: settings.py:141
msgid "English"
msgstr ""
#: settings.py:137
#: settings.py:142
msgid "Italiano"
msgstr ""
#: settings.py:138
#: settings.py:143
msgid "Spanish"
msgstr ""
#: settings.py:139
#: settings.py:144
msgid "French"
msgstr ""
#: settings.py:140
#: settings.py:145
msgid "Japanese"
msgstr ""
#: settings.py:141
#: settings.py:146
msgid "Portuguese"
msgstr ""
#: settings.py:142
#: settings.py:147
msgid "Polish"
msgstr ""
#: settings.py:143
#: settings.py:148
msgid "Simplified Chinese"
msgstr ""
#: settings.py:144
#: settings.py:149
msgid "Traditional Chinese"
msgstr ""
@ -86,27 +86,3 @@ msgid ""
"An unexpected error occurred while processing your request. Please try your "
"request again."
msgstr ""
#: templates/_header.html:3
msgid "Logged in as"
msgstr ""
#: templates/_header.html:4
msgid "Settings"
msgstr ""
#: templates/_header.html:5
msgid "Sign Out"
msgstr ""
#: templates/splash.html:7 templates/auth/login.html:4
msgid "Login"
msgstr ""
#: templates/auth/_login.html:4
msgid "Log In"
msgstr ""
#: templates/auth/_login.html:17
msgid "Sign In"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-07-09 02:29+0000\n"
"POT-Creation-Date: 2012-08-12 21:48+0000\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"
@ -18,39 +18,39 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: settings.py:136
#: settings.py:141
msgid "English"
msgstr ""
#: settings.py:137
#: settings.py:142
msgid "Italiano"
msgstr ""
#: settings.py:138
#: settings.py:143
msgid "Spanish"
msgstr ""
#: settings.py:139
#: settings.py:144
msgid "French"
msgstr ""
#: settings.py:140
#: settings.py:145
msgid "Japanese"
msgstr ""
#: settings.py:141
#: settings.py:146
msgid "Portuguese"
msgstr ""
#: settings.py:142
#: settings.py:147
msgid "Polish"
msgstr ""
#: settings.py:143
#: settings.py:148
msgid "Simplified Chinese"
msgstr ""
#: settings.py:144
#: settings.py:149
msgid "Traditional Chinese"
msgstr ""
@ -87,27 +87,3 @@ msgid ""
"An unexpected error occurred while processing your request. Please try your "
"request again."
msgstr ""
#: templates/_header.html:3
msgid "Logged in as"
msgstr ""
#: templates/_header.html:4
msgid "Settings"
msgstr ""
#: templates/_header.html:5
msgid "Sign Out"
msgstr ""
#: templates/splash.html:7 templates/auth/login.html:4
msgid "Login"
msgstr ""
#: templates/auth/_login.html:4
msgid "Log In"
msgstr ""
#: templates/auth/_login.html:17
msgid "Sign In"
msgstr ""

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: openstack-dashboard\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-07-09 02:29+0000\n"
"POT-Creation-Date: 2012-08-12 21:48+0000\n"
"PO-Revision-Date: 2012-05-08 00:20+0100\n"
"Last-Translator: Erwan Gallen <erwan@zinux.com>\n"
"Language-Team: French <fr@zinux.com>\n"
@ -16,39 +16,39 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
#: settings.py:136
#: settings.py:141
msgid "English"
msgstr "Anglais"
#: settings.py:137
#: settings.py:142
msgid "Italiano"
msgstr "Italien"
#: settings.py:138
#: settings.py:143
msgid "Spanish"
msgstr "Espagnol"
#: settings.py:139
#: settings.py:144
msgid "French"
msgstr "Français"
#: settings.py:140
#: settings.py:145
msgid "Japanese"
msgstr "Japonais"
#: settings.py:141
#: settings.py:146
msgid "Portuguese"
msgstr "Portugais"
#: settings.py:142
#: settings.py:147
msgid "Polish"
msgstr "Polonais"
#: settings.py:143
#: settings.py:148
msgid "Simplified Chinese"
msgstr "Chinois simplifié"
#: settings.py:144
#: settings.py:149
msgid "Traditional Chinese"
msgstr "Chinois traditionnel"
@ -88,28 +88,3 @@ msgid ""
msgstr ""
"Une erreur inattendue s'est produite lors du traitement de votre demande. "
"Veuillez essayer à nouveau votre demande."
#: templates/_header.html:3
msgid "Logged in as"
msgstr "Connecté"
#: templates/_header.html:4
msgid "Settings"
msgstr "Réglages"
#: templates/_header.html:5
msgid "Sign Out"
msgstr "Déconnexion"
#: templates/splash.html:7 templates/auth/login.html:4
msgid "Login"
msgstr ""
#: templates/auth/_login.html:4
msgid "Log In"
msgstr ""
#: templates/auth/_login.html:17
#, fuzzy
msgid "Sign In"
msgstr "Déconnexion"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-07-09 02:29+0000\n"
"POT-Creation-Date: 2012-08-12 21:48+0000\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"
@ -18,39 +18,39 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0\n"
#: settings.py:136
#: settings.py:141
msgid "English"
msgstr ""
#: settings.py:137
#: settings.py:142
msgid "Italiano"
msgstr ""
#: settings.py:138
#: settings.py:143
msgid "Spanish"
msgstr ""
#: settings.py:139
#: settings.py:144
msgid "French"
msgstr ""
#: settings.py:140
#: settings.py:145
msgid "Japanese"
msgstr ""
#: settings.py:141
#: settings.py:146
msgid "Portuguese"
msgstr ""
#: settings.py:142
#: settings.py:147
msgid "Polish"
msgstr ""
#: settings.py:143
#: settings.py:148
msgid "Simplified Chinese"
msgstr ""
#: settings.py:144
#: settings.py:149
msgid "Traditional Chinese"
msgstr ""
@ -87,27 +87,3 @@ msgid ""
"An unexpected error occurred while processing your request. Please try your "
"request again."
msgstr ""
#: templates/_header.html:3
msgid "Logged in as"
msgstr ""
#: templates/_header.html:4
msgid "Settings"
msgstr ""
#: templates/_header.html:5
msgid "Sign Out"
msgstr ""
#: templates/splash.html:7 templates/auth/login.html:4
msgid "Login"
msgstr ""
#: templates/auth/_login.html:4
msgid "Log In"
msgstr ""
#: templates/auth/_login.html:17
msgid "Sign In"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-07-09 02:29+0000\n"
"POT-Creation-Date: 2012-08-12 21:48+0000\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"
@ -19,39 +19,39 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2)\n"
#: settings.py:136
#: settings.py:141
msgid "English"
msgstr ""
#: settings.py:137
#: settings.py:142
msgid "Italiano"
msgstr ""
#: settings.py:138
#: settings.py:143
msgid "Spanish"
msgstr ""
#: settings.py:139
#: settings.py:144
msgid "French"
msgstr ""
#: settings.py:140
#: settings.py:145
msgid "Japanese"
msgstr ""
#: settings.py:141
#: settings.py:146
msgid "Portuguese"
msgstr ""
#: settings.py:142
#: settings.py:147
msgid "Polish"
msgstr ""
#: settings.py:143
#: settings.py:148
msgid "Simplified Chinese"
msgstr ""
#: settings.py:144
#: settings.py:149
msgid "Traditional Chinese"
msgstr ""
@ -88,27 +88,3 @@ msgid ""
"An unexpected error occurred while processing your request. Please try your "
"request again."
msgstr ""
#: templates/_header.html:3
msgid "Logged in as"
msgstr ""
#: templates/_header.html:4
msgid "Settings"
msgstr ""
#: templates/_header.html:5
msgid "Sign Out"
msgstr ""
#: templates/splash.html:7 templates/auth/login.html:4
msgid "Login"
msgstr ""
#: templates/auth/_login.html:4
msgid "Log In"
msgstr ""
#: templates/auth/_login.html:17
msgid "Sign In"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-07-09 02:29+0000\n"
"POT-Creation-Date: 2012-08-12 21:48+0000\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"
@ -18,39 +18,39 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: settings.py:136
#: settings.py:141
msgid "English"
msgstr ""
#: settings.py:137
#: settings.py:142
msgid "Italiano"
msgstr ""
#: settings.py:138
#: settings.py:143
msgid "Spanish"
msgstr ""
#: settings.py:139
#: settings.py:144
msgid "French"
msgstr ""
#: settings.py:140
#: settings.py:145
msgid "Japanese"
msgstr ""
#: settings.py:141
#: settings.py:146
msgid "Portuguese"
msgstr ""
#: settings.py:142
#: settings.py:147
msgid "Polish"
msgstr ""
#: settings.py:143
#: settings.py:148
msgid "Simplified Chinese"
msgstr ""
#: settings.py:144
#: settings.py:149
msgid "Traditional Chinese"
msgstr ""
@ -87,27 +87,3 @@ msgid ""
"An unexpected error occurred while processing your request. Please try your "
"request again."
msgstr ""
#: templates/_header.html:3
msgid "Logged in as"
msgstr ""
#: templates/_header.html:4
msgid "Settings"
msgstr ""
#: templates/_header.html:5
msgid "Sign Out"
msgstr ""
#: templates/splash.html:7 templates/auth/login.html:4
msgid "Login"
msgstr ""
#: templates/auth/_login.html:4
msgid "Log In"
msgstr ""
#: templates/auth/_login.html:17
msgid "Sign In"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-07-09 02:29+0000\n"
"POT-Creation-Date: 2012-08-12 21:48+0000\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"
@ -17,39 +17,39 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: settings.py:136
#: settings.py:141
msgid "English"
msgstr ""
#: settings.py:137
#: settings.py:142
msgid "Italiano"
msgstr ""
#: settings.py:138
#: settings.py:143
msgid "Spanish"
msgstr ""
#: settings.py:139
#: settings.py:144
msgid "French"
msgstr ""
#: settings.py:140
#: settings.py:145
msgid "Japanese"
msgstr ""
#: settings.py:141
#: settings.py:146
msgid "Portuguese"
msgstr ""
#: settings.py:142
#: settings.py:147
msgid "Polish"
msgstr ""
#: settings.py:143
#: settings.py:148
msgid "Simplified Chinese"
msgstr ""
#: settings.py:144
#: settings.py:149
msgid "Traditional Chinese"
msgstr ""
@ -86,27 +86,3 @@ msgid ""
"An unexpected error occurred while processing your request. Please try your "
"request again."
msgstr ""
#: templates/_header.html:3
msgid "Logged in as"
msgstr ""
#: templates/_header.html:4
msgid "Settings"
msgstr ""
#: templates/_header.html:5
msgid "Sign Out"
msgstr ""
#: templates/splash.html:7 templates/auth/login.html:4
msgid "Login"
msgstr ""
#: templates/auth/_login.html:4
msgid "Log In"
msgstr ""
#: templates/auth/_login.html:17
msgid "Sign In"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-07-09 02:29+0000\n"
"POT-Creation-Date: 2012-08-12 21:48+0000\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"
@ -17,39 +17,39 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: settings.py:136
#: settings.py:141
msgid "English"
msgstr ""
#: settings.py:137
#: settings.py:142
msgid "Italiano"
msgstr ""
#: settings.py:138
#: settings.py:143
msgid "Spanish"
msgstr ""
#: settings.py:139
#: settings.py:144
msgid "French"
msgstr ""
#: settings.py:140
#: settings.py:145
msgid "Japanese"
msgstr ""
#: settings.py:141
#: settings.py:146
msgid "Portuguese"
msgstr ""
#: settings.py:142
#: settings.py:147
msgid "Polish"
msgstr ""
#: settings.py:143
#: settings.py:148
msgid "Simplified Chinese"
msgstr ""
#: settings.py:144
#: settings.py:149
msgid "Traditional Chinese"
msgstr ""
@ -86,27 +86,3 @@ msgid ""
"An unexpected error occurred while processing your request. Please try your "
"request again."
msgstr "處理過程中發生無法預期的錯誤。請再嘗試。"
#: templates/_header.html:3
msgid "Logged in as"
msgstr "目前登入者"
#: templates/_header.html:4
msgid "Settings"
msgstr "設定"
#: templates/_header.html:5
msgid "Sign Out"
msgstr "登出"
#: templates/splash.html:7 templates/auth/login.html:4
msgid "Login"
msgstr ""
#: templates/auth/_login.html:4
msgid "Log In"
msgstr ""
#: templates/auth/_login.html:17
msgid "Sign In"
msgstr "登入"

View File

@ -301,13 +301,15 @@ function run_tests {
function run_makemessages {
cd horizon
${command_wrapper} $root/manage.py makemessages --all
HORIZON_RESULT=$?
${command_wrapper} $root/manage.py makemessages --all --no-obsolete
HORIZON_PY_RESULT=$?
${command_wrapper} $root/manage.py makemessages -d djangojs --all --no-obsolete
HORIZON_JS_RESULT=$?
cd ../openstack_dashboard
${command_wrapper} $root/manage.py makemessages --all
${command_wrapper} $root/manage.py makemessages --all --no-obsolete
DASHBOARD_RESULT=$?
cd ..
exit $(($HORIZON_RESULT || $DASHBOARD_RESULT))
exit $(($HORIZON_PY_RESULT || $HORIZON_JS_RESULT || $DASHBOARD_RESULT))
}