Fixed hard-coded UI messages.

Some hard-coded messages in ipa.js have been moved into internal.py.
The messages in internal.py have been rearranged to match the output
(ipa_init.json).

A new method IPA.get_message() has been added to take a message ID and
return the translated message or a default message if not found.

Ticket #1701
This commit is contained in:
Endi S. Dewata 2011-08-29 17:34:10 -05:00
parent 6a2dfde086
commit 6c6748748b
5 changed files with 435 additions and 393 deletions

View File

@ -138,8 +138,7 @@ IPA.facet = function (spec) {
that.entity.redirect_facet); that.entity.redirect_facet);
}; };
var redirect_errors = var redirect_errors = [4001];
["IPA Error 4001"];
that.on_error = function(xhr, text_status, error_thrown) { that.on_error = function(xhr, text_status, error_thrown) {
@ -147,7 +146,7 @@ IPA.facet = function (spec) {
as there is nothing any other facet can do either. */ as there is nothing any other facet can do either. */
if (that.entity.redirect_facet) { if (that.entity.redirect_facet) {
for (var i=0; i<redirect_errors.length; i++) { for (var i=0; i<redirect_errors.length; i++) {
if (error_thrown.name === redirect_errors[i]) { if (error_thrown.code === redirect_errors[i]) {
that.redirect(); that.redirect();
return; return;
} }

View File

@ -156,8 +156,8 @@ IPA.hbacrule_details_facet = function(spec) {
section.radio({ section.radio({
name: 'ipaenabledflag', name: 'ipaenabledflag',
options:[ options:[
{'value': 'TRUE',label: IPA.messages['true']}, { value: 'TRUE', label: IPA.get_message('true') },
{'value': 'FALSE',label:IPA.messages['false']} { value: 'FALSE', label: IPA.get_message('false') }
] ]
}); });
return section; return section;

View File

@ -76,7 +76,7 @@ var IPA = ( function () {
// On IE the request is missing after authentication, // On IE the request is missing after authentication,
// so the request needs to be resent. // so the request needs to be resent.
if (error_thrown.name == 'IPA Error 909') { if (error_thrown.code === 909) {
batch.execute(); batch.execute();
} else { } else {
@ -208,6 +208,35 @@ var IPA = ( function () {
} }
}; };
that.get_message = function(id, default_message) {
var messages = IPA.messages;
var keys = id.split(/\./);
for (var i=0; messages && i<keys.length; i++) {
var key = keys[i];
var value = messages[key];
// undefined key => not found
if (!value) return default_message;
// if value is string
if (typeof value === 'string') {
// and it's the last key => found
if (i === keys.length-1) return value;
// otherwise value should have been a container => not found
return default_message;
}
// value is container => check next key
messages = value;
}
// no more keys/messages => not found
return default_message;
};
return that; return that;
}()); }());
@ -242,8 +271,7 @@ IPA.command = function(spec) {
that.retry = typeof spec.retry == 'undefined' ? true : spec.retry; that.retry = typeof spec.retry == 'undefined' ? true : spec.retry;
that.error_message = spec.error_message || (IPA.messages.dialogs ? that.error_message = spec.error_message || IPA.get_message('dialogs.batch_error_message', 'Some operations failed.');
IPA.messages.dialogs.batch_error_message : 'Some operations failed.');
that.get_command = function() { that.get_command = function() {
return (that.entity ? that.entity+'_' : '') + that.method; return (that.entity ? that.entity+'_' : '') + that.method;
@ -299,22 +327,19 @@ IPA.command = function(spec) {
if (xhr.status === 401) { if (xhr.status === 401) {
error_thrown = {}; // error_thrown is string error_thrown = {}; // error_thrown is string
error_thrown.name = 'Kerberos ticket no longer valid.'; error_thrown.name = IPA.get_message('ajax.401.title',
if (IPA.messages && IPA.messages.ajax) { 'Kerberos ticket no longer valid.');
error_thrown.message = IPA.messages.ajax["401"]; error_thrown.message = IPA.get_message('ajax.401.message',
} else {
error_thrown.message =
"Your kerberos ticket is no longer valid. "+ "Your kerberos ticket is no longer valid. "+
"Please run kinit and then click 'Retry'. "+ "Please run kinit and then click 'Retry'. "+
"If this is your first time running the IPA Web UI "+ "If this is your first time running the IPA Web UI "+
"<a href='/ipa/config/unauthorized.html'>"+ "<a href='/ipa/config/unauthorized.html'>"+
"follow these directions</a> to configure your browser."; "follow these directions</a> to configure your browser.");
}
} else if (!error_thrown) { } else if (!error_thrown) {
error_thrown = { error_thrown = {
name: xhr.responseText || 'Unknown Error', name: xhr.responseText || IPA.get_message('errors.unknown_error', 'Unknown Error'),
message: xhr.statusText || 'Unknown Error' message: xhr.statusText || IPA.get_message('errors.unknown_error', 'Unknown Error')
}; };
} else if (typeof error_thrown == 'string') { } else if (typeof error_thrown == 'string') {
@ -338,15 +363,16 @@ IPA.command = function(spec) {
if (!data) { if (!data) {
// error_handler() calls IPA.hide_activity_icon() // error_handler() calls IPA.hide_activity_icon()
error_handler.call(this, xhr, text_status, /* error_thrown */ { error_handler.call(this, xhr, text_status, /* error_thrown */ {
name: 'HTTP Error '+xhr.status, name: IPA.get_message('errors.http_error', 'HTTP Error')+' '+xhr.status,
url: this.url, url: this.url,
message: data ? xhr.statusText : 'No response' message: data ? xhr.statusText : IPA.get_message('errors.no_response', 'No response')
}); });
} else if (data.error) { } else if (data.error) {
// error_handler() calls IPA.hide_activity_icon() // error_handler() calls IPA.hide_activity_icon()
error_handler.call(this, xhr, text_status, /* error_thrown */ { error_handler.call(this, xhr, text_status, /* error_thrown */ {
name: 'IPA Error '+data.error.code, name: IPA.get_message('errors.ipa_error', 'IPA Error')+' '+data.error.code,
code: data.error.code,
message: data.error.message, message: data.error.message,
data: data data: data
}); });
@ -361,8 +387,7 @@ IPA.command = function(spec) {
xhr: xhr, xhr: xhr,
text_status: text_status, text_status: text_status,
error_thrown: { error_thrown: {
name: IPA.messages.dialogs ? IPA.messages.dialogs.batch_error_title : name: IPA.get_message('dialogs.batch_error_title', 'Operations Error'),
'Operations Error',
message: that.error_message message: that.error_message
}, },
command: that, command: that,
@ -416,7 +441,7 @@ IPA.command = function(spec) {
var member = result.failed[association][member_name]; var member = result.failed[association][member_name];
for(var i = 0; i < member.length; i++) { for(var i = 0; i < member.length; i++) {
if(member[i].length > 1) { if(member[i].length > 1) {
var name = 'IPA Error'; var name = IPA.get_message('errors.ipa_error', 'IPA Error');
var message = member[i][1]; var message = member[i][1];
if(member[i][0]) if(member[i][0])
message = member[i][0] + ': ' + message; message = member[i][0] + ': ' + message;
@ -502,8 +527,8 @@ IPA.batch_command = function (spec) {
var message = ''; var message = '';
if (!result) { if (!result) {
name = 'Internal Error '+xhr.status; name = IPA.get_message('errors.internal_error', 'Internal Error')+' '+xhr.status;
message = result ? xhr.statusText : "Internal error"; message = result ? xhr.statusText : IPA.get_message('errors.internal_error', 'Internal Error');
that.errors.add(command, name, message, text_status); that.errors.add(command, name, message, text_status);
@ -518,7 +543,7 @@ IPA.batch_command = function (spec) {
); );
} else if (result.error) { } else if (result.error) {
name = 'IPA Error ' + (result.error.code || ''); name = IPA.get_message('errors.ipa_error', 'IPA Error')+(result.error.code ? ' '+result.error.code : '');
message = result.error.message || result.error; message = result.error.message || result.error;
that.errors.add(command, name, message, text_status); that.errors.add(command, name, message, text_status);
@ -529,6 +554,7 @@ IPA.batch_command = function (spec) {
text_status, text_status,
{ {
name: name, name: name,
code: result.error.code,
message: message, message: message,
data: result data: result
} }
@ -548,8 +574,7 @@ IPA.batch_command = function (spec) {
xhr: xhr, xhr: xhr,
text_status: text_status, text_status: text_status,
error_thrown: { error_thrown: {
name: IPA.messages.dialogs ? IPA.messages.dialogs.batch_error_title : name: IPA.get_message('dialogs.batch_error_title', 'Operations Error'),
'Operations Error',
message: that.error_message message: that.error_message
}, },
command: that, command: that,
@ -728,7 +753,7 @@ IPA.error_dialog = function(spec) {
that.create = function() { that.create = function() {
if (that.error_thrown.url) { if (that.error_thrown.url) {
$('<p/>', { $('<p/>', {
text: 'URL: '+that.error_thrown.url text: IPA.get_message('errors.url', 'URL')+': '+that.error_thrown.url
}).appendTo(that.container); }).appendTo(that.container);
} }
@ -794,21 +819,21 @@ IPA.error_dialog = function(spec) {
var label; var label;
if(that.visible_buttons.indexOf('retry') > -1) { if(that.visible_buttons.indexOf('retry') > -1) {
label = IPA.messages.buttons ? IPA.messages.buttons.retry : 'Retry'; label = IPA.get_message('buttons.retry', 'Retry');
that.add_button(label, function() { that.add_button(label, function() {
that.on_retry(); that.on_retry();
}); });
} }
if(that.visible_buttons.indexOf('ok') > -1) { if(that.visible_buttons.indexOf('ok') > -1) {
label = IPA.messages.buttons ? IPA.messages.buttons.ok : 'OK'; label = IPA.get_message('buttons.ok', 'OK');
that.add_button(label, function() { that.add_button(label, function() {
that.on_ok(); that.on_ok();
}); });
} }
if(that.visible_buttons.indexOf('cancel') > -1) { if(that.visible_buttons.indexOf('cancel') > -1) {
label = IPA.messages.buttons ? IPA.messages.buttons.cancel : 'Cancel'; label = IPA.get_message('buttons.cancel', 'Cancel');
that.add_button(label, function() { that.add_button(label, function() {
that.on_cancel(); that.on_cancel();
}); });

View File

@ -2578,6 +2578,7 @@
"class": "Password", "class": "Password",
"cli_name": "password", "cli_name": "password",
"cli_short_name": null, "cli_short_name": null,
"confirm": false,
"default": null, "default": null,
"doc": "Registration password", "doc": "Registration password",
"exclude": null, "exclude": null,
@ -9057,6 +9058,7 @@
"ipadefaultprimarygroup", "ipadefaultprimarygroup",
"ipaenabledflag", "ipaenabledflag",
"ipaentitlementid", "ipaentitlementid",
"ipaexternalmember",
"ipagroupobjectclasses", "ipagroupobjectclasses",
"ipagroupsearchfields", "ipagroupsearchfields",
"ipahomesrootdir", "ipahomesrootdir",
@ -15474,6 +15476,7 @@
"class": "Password", "class": "Password",
"cli_name": "password", "cli_name": "password",
"cli_short_name": null, "cli_short_name": null,
"confirm": true,
"default": null, "default": null,
"doc": "Prompt to set the user password", "doc": "Prompt to set the user password",
"exclude": [ "exclude": [
@ -15912,7 +15915,10 @@
"error": null, "error": null,
"messages": { "messages": {
"ajax": { "ajax": {
"401": "Your Kerberos ticket is no longer valid. Please run kinit and then click 'Retry'. If this is your first time running the IPA Web UI <a href='/ipa/config/unauthorized.html'>follow these directions</a> to configure your browser." "401": {
"message": "Your Kerberos ticket is no longer valid. Please run kinit and then click 'Retry'. If this is your first time running the IPA Web UI <a href='/ipa/config/unauthorized.html'>follow these directions</a> to configure your browser.",
"title": "Kerberos ticket no longer valid."
}
}, },
"association": { "association": {
"add": { "add": {
@ -15984,8 +15990,16 @@
"remove_empty": "Select entries to be removed.", "remove_empty": "Select entries to be removed.",
"remove_title": "Remove ${entity}", "remove_title": "Remove ${entity}",
"show_details": "Show details", "show_details": "Show details",
"validation_title": "Validation error", "validation_message": "Input form contains invalid or missing values.",
"validation_message": "Input form contains invalid or missing values." "validation_title": "Validation error"
},
"errors": {
"http_error": "HTTP Error",
"internal_error": "Internal Error",
"ipa_error": "IPA Error",
"no_response": "No response",
"unknown_error": "Unknown Error",
"url": "URL"
}, },
"facet_groups": { "facet_groups": {
"managedby": "${primary_key} is managed by:", "managedby": "${primary_key} is managed by:",
@ -16278,7 +16292,7 @@
"Administrator" "Administrator"
], ],
"gidnumber": [ "gidnumber": [
"166000000" "1890800000"
], ],
"has_keytab": true, "has_keytab": true,
"has_password": true, "has_password": true,
@ -16286,24 +16300,18 @@
"/home/admin" "/home/admin"
], ],
"ipauniqueid": [ "ipauniqueid": [
"a632c9f6-cdf7-11e0-89ce-525400e135d8" "dcc874a0-d2d1-11e0-83f8-525400e135d8"
], ],
"krbextradata": [ "krbextradata": [
{ {
"__base64__": "AAJyYFROcm9vdC9hZG1pbkBJRE0uTEFCLkJPUy5SRURIQVQuQ09NAA==" "__base64__": "AAJ/hFxOcm9vdC9hZG1pbkBJRE0uTEFCLkJPUy5SRURIQVQuQ09NAA=="
},
{
"__base64__": "AAgBAA=="
} }
], ],
"krblastpwdchange": [ "krblastpwdchange": [
"20110824022242Z" "20110830063439Z"
],
"krblastsuccessfulauth": [
"20110824023056Z"
], ],
"krbpasswordexpiration": [ "krbpasswordexpiration": [
"20111122022242Z" "20111128063439Z"
], ],
"krbprincipalname": [ "krbprincipalname": [
"admin@IDM.LAB.BOS.REDHAT.COM" "admin@IDM.LAB.BOS.REDHAT.COM"
@ -16331,7 +16339,7 @@
"admin" "admin"
], ],
"uidnumber": [ "uidnumber": [
"166000000" "1890800000"
] ]
} }
], ],

View File

@ -92,364 +92,374 @@ api.register(json_metadata)
class i18n_messages(Command): class i18n_messages(Command):
NO_CLI = True NO_CLI = True
messages={ messages = {
"login": {"header" :_("Logged In As")}, "ajax": {
"true": "True", "401": {
"false": "False", "message": _("Your Kerberos ticket is no longer valid. Please run kinit and then click 'Retry'. If this is your first time running the IPA Web UI <a href='/ipa/config/unauthorized.html'>follow these directions</a> to configure your browser."),
"objects": { "title": _("Kerberos ticket no longer valid."),
"aci": {
"attribute":_("Attribute"),
}, },
"automountlocation": {
"identity":_("Automount Location Settings")
}, },
"automountmap": { "association": {
"map_type":_("Map Type"), "add": {
"direct":_("Direct"), "ipasudorunas": _("Add RunAs ${other_entity} into ${entity} ${primary_key}"),
"indirect":_("Indirect"), "ipasudorunasgroup": _("Add RunAs Groups into ${entity} ${primary_key}"),
"managedby": _("Add ${other_entity} Managing ${entity} ${primary_key}"),
"member": _("Add ${other_entity} into ${entity} ${primary_key}"),
"memberallowcmd": _("Add Allow ${other_entity} into ${entity} ${primary_key}"),
"memberdenycmd": _("Add Deny ${other_entity} into ${entity} ${primary_key}"),
"memberof": _("Add ${entity} ${primary_key} into ${other_entity}"),
"sourcehost": _("Add Source ${other_entity} into ${entity} ${primary_key}"),
}, },
"automountkey": { "direct_enrollment": _("Direct Enrollment"),
}, "indirect_enrollment": _("Indirect Enrollment"),
"cert": { "no_entries": _("No entries."),
"unspecified":_("Unspecified"), "paging": _("Showing ${start} to ${end} of ${total} entries."),
"key_compromise":_("Key Compromise"), "remove": {
"ca_compromise":_("CA Compromise"), "ipasudorunas": _("Remove RunAs ${other_entity} from ${entity} ${primary_key}"),
"affiliation_changed":_("Affiliation Changed"), "ipasudorunasgroup": _("Remove RunAs Groups from ${entity} ${primary_key}"),
"superseded":_("Superseded"), "managedby": _("Remove ${other_entity} Managing ${entity} ${primary_key}"),
"cessation_of_operation":_("Cessation of Operation"), "member": _("Remove ${other_entity} from ${entity} ${primary_key}"),
"certificate_hold":_("Certificate Hold"), "memberallowcmd": _("Remove Allow ${other_entity} from ${entity} ${primary_key}"),
"remove_from_crl":_("Remove from CRL"), "memberdenycmd": _("Remove Deny ${other_entity} from ${entity} ${primary_key}"),
"privilege_withdrawn":_("Privilege Withdrawn"), "memberof": _("Remove ${entity} ${primary_key} from ${other_entity}"),
"aa_compromise":_("AA Compromise"), "sourcehost": _("Remove Source ${other_entity} from ${entity} ${primary_key}"),
"revoke_confirmation":_(
"To confirm your intention to revoke this certificate, select a reason from the pull-down list, and click the \"Revoke\" button."),
"note":_("Note"),
"reason":_("Reason for Revocation"),
"restore_confirmation":_(
"To confirm your intention to restore this certificate, click the \"Restore\" button."),
"issued_to":_("Issued To"),
"common_name":_("Common Name"),
"organization":_("Organization"),
"organizational_unit":_("Organizational Unit"),
"serial_number":_("Serial Number"),
"issued_by":_("Issued By"),
"validity":_("Validity"),
"issued_on":_("Issued On"),
"expires_on":_("Expires On"),
"fingerprints":_("Fingerprints"),
"sha1_fingerprint":_("SHA1 Fingerprint"),
"md5_fingerprint":_("MD5 Fingerprint"),
"enter_csr":_("Enter the Base64-encoded CSR below"),
"valid":_("Valid Certificate Present"),
"new_certificate":_("New Certificate"),
"revoked":_("Certificate Revoked"),
"missing":_("No Valid Certificate"),
"view_certificate":_("Certificate for ${entity} ${primary_key}"),
"issue_certificate":_("Issue New Certificate for ${entity} ${primary_key}"),
"revoke_certificate":_("Revoke Certificate for ${entity} ${primary_key}"),
"restore_certificate":_("Restore Certificate for ${entity} ${primary_key}"),
},
"config": {
"user":_("User Options"),
"search":_("Search Options"),
"group":_("Group Options"),
},
"delegation": {
},
"dnszone": {
"identity":_("DNS Zone Settings"),
},
"dnsrecord": {
"type":_("Record Type"),
"data":_("Data"),
"deleted_no_data":_("DNS record was deleted because it contained no data."),
"redirection_dnszone":_("You will be redirected to DNS Zone."),
"title":_("Records for DNS Zone"),
"standard":_("Standard Record Types"),
"other":_("Other Record Types"),
},
"entitle": {
"account":_("Account"),
"certificate":_("Certificate"),
"certificates":_("Certificates"),
"consume":_("Consume"),
"consume_entitlement":_("Consume Entitlement"),
"consumed":_("Consumed"),
"download":_("Download"),
"download_certificate":_("Download Certificate"),
"end":_("End"),
"import_button":_("Import"),
"import_certificate":_("Import Certificate"),
"import_message":_("Enter the Base64-encoded entitlement certificate below:"),
"loading":_("Loading..."),
"no_certificate":_("No Certificate."),
"product":_("Product"),
"register":_("Register"),
"registration":_("Registration"),
"start":_("Start"),
"status":_("Status"),
},
"group": {
"details":_("Group Settings"),
"posix":_("Is this a POSIX group?"),
},
"hbacrule": {
"active":_("Active"),
"allow":_("Allow"),
"deny":_("Deny"),
"inactive":_("Inactive"),
"ipaenabledflag":_("Rule status"),
"user":_("Who"),
"anyone":_("Anyone"),
"specified_users":_("Specified Users and Groups"),
"host":_("Accessing"),
"any_host":_("Any Host"),
"specified_hosts":_("Specified Hosts and Groups"),
"service":_("Via Service"),
"any_service":_("Any Service"),
"specified_services":_("Specified Services and Groups"),
"sourcehost":_("From"),
},
"hbacsvc": {
},
"hbacsvcgroup": {
"services":_("Services"),
},
"host": {
"certificate":_("Host Certificate"),
"cn":_("Host Name"),
"delete_key_unprovision":_("Delete Key, Unprovision"),
"details":_("Host Settings"),
"enrolled":_("Enrolled?"),
"enrollment":_("Enrollment"),
"fqdn":_("Fully Qualified Host Name"),
"keytab":_("Kerberos Key"),
"keytab_missing":_("Kerberos Key Not Present"),
"keytab_present":_("Kerberos Key Present, Host Provisioned"),
"password":_("One-Time-Password"),
"password_missing":_("One-Time-Password Not Present"),
"password_present":_("One-Time-Password Present"),
"password_reset_button":_("Reset OTP"),
"password_reset_title":_("Reset One-Time-Password"),
"password_set_button":_("Set OTP"),
"password_set_title":_("Set One-Time-Password"),
"status":_("Status"),
"unprovision":_("Unprovision"),
"unprovision_confirmation":_("Are you sure you want to unprovision this host?"),
"unprovision_title":_("Unprovisioning ${entity}"),
},
"hostgroup": {
"identity":_("Host Group Settings"),
},
"krbtpolicy": {
"identity":_("Kerberos ticket policy"),
},
"netgroup": {
"identity":_("Netgroup Settings"),
},
"permission": {
"identity":_("Identity"),
"rights":_("Rights"),
"target":_("Target"),
"filter":_("Filter"),
"subtree":_("By Subtree"),
"targetgroup":_("Target Group"),
"type":_("Object By Type"),
"invalid_target":_("Permission with invalid target specification"),
},
"privilege": {
"identity":_("Privilege Settings"),
},
"pwpolicy": {
"identity":_("Password Policy"),
},
"role": {
"identity":_("Role Settings"),
},
"selfservice": {
},
"service": {
"certificate":_("Service Certificate"),
"details":_("Service Settings"),
"host":_("Host Name"),
"provisioning":_("Provisioning"),
"service":_("Service"),
"status":_("Status"),
"valid":_("Kerberos Key Present, Service Provisioned"),
"delete_key_unprovision":_("Delete Key, Unprovision"),
"missing":_("Kerberos Key Not Present"),
"unprovision_title":_("Unprovisioning ${entity}"),
"unprovision_confirmation":_("Are you sure you want to unprovision this service?"),
"unprovision":_("Unprovision"),
},
"sudocmd": {
"groups":_("Groups"),
},
"sudocmdgroup": {
"commands":_("Commands"),
},
"sudorule": {
"active":_("Active"),
"inactive":_("Inactive"),
"allow":_("Allow"),
"deny":_("Deny"),
"user":_("Who"),
"anyone":_("Anyone"),
"specified_users":_("Specified Users and Groups"),
"host":_("Access this host"),
"any_host":_("Any Host"),
"specified_hosts":_("Specified Hosts and Groups"),
"command":_("Run Commands"),
"any_command":_("Any Command"),
"specified_commands":_("Specified Commands and Groups"),
"options":_("Options"),
"runas":_("As Whom"),
"any_group":_("Any Group"),
"specified_groups":_("Specified Groups"),
"ipaenabledflag":_("Rule status"),
"external":_("External"),
},
"user": {
"account":_("Account Settings"),
"account_status":_("Account Status"),
"activate":_("Activate"),
"activation_link":_("Click to ${action}"),
"activation_confirmation":_("Are you sure you want to ${action} the user?<br/>The change will take effect immediately."),
"active":_("Active"),
"contact":_("Contact Settings"),
"deactivate":_("Deactivate"),
"employee":_("Employee Information"),
"error_changing_status":_("Error changing account status"),
"inactive":_("Inactive"),
"mailing":_("Mailing Address"),
"misc":_("Misc. Information"),
}, },
"show_results": _("Show Results"),
}, },
"buttons": { "buttons": {
"add":_("Add"), "add": _("Add"),
"add_and_add_another":_("Add and Add Another"), "add_and_add_another": _("Add and Add Another"),
"add_and_edit":_("Add and Edit"), "add_and_close": _("Add and Close"),
"add_and_close":_("Add and Close"), "add_and_edit": _("Add and Edit"),
"add_many":_("Add Many"), "add_many": _("Add Many"),
"cancel": _("Cancel"), "cancel": _("Cancel"),
"close": _("Close"), "close": _("Close"),
"enroll":_("Enroll"), "enroll": _("Enroll"),
"find": _("Find"), "find": _("Find"),
"get": _("Get"), "get": _("Get"),
"issue": _("Issue"), "issue": _("Issue"),
"ok": _("OK"), "ok": _("OK"),
"reset":_("Reset"), "remove": _("Delete"),
"remove":_("Delete"), "reset": _("Reset"),
"restore":_("Restore"), "restore": _("Restore"),
"retry":_("Retry"), "retry": _("Retry"),
"revoke":_("Revoke"), "revoke": _("Revoke"),
"update":_("Update"), "update": _("Update"),
"view":_("View"), "view": _("View"),
},
"dialogs": {
"add_title":_("Add ${entity}"),
"available":_("Available"),
"batch_error_message":_("Some operations failed."),
"batch_error_title":_("Operations Error"),
"confirmation":_("Confirmation"),
"dirty_message":_("This page has unsaved changes. Please save or revert."),
"dirty_title":_("Unsaved Changes"),
"hide_details":_("Hide details"),
"redirection":_("Redirection"),
"remove_empty":_("Select entries to be removed."),
"remove_title":_("Remove ${entity}"),
"prospective":_("Prospective"),
"show_details":_("Show details"),
"validation_title":_("Validation error"),
"validation_message":_("Input form contains invalid or missing values."),
},
"facet_groups": {
"managedby":_("${primary_key} is managed by:"),
"member":_("Entities enrolled in ${primary_key}:"),
"memberof":_("${primary_key} is a member of these:"),
},
"facets": {
"search":_("Search"),
"details": _("Settings"),
},
"password": {
"new_password":_("New Password"),
"password_change_complete":_("Password change complete"),
"password_must_match":_("Passwords must match"),
"reset_password":_("Reset Password"),
"verify_password":_("Verify Password"),
},
"search": {
"partial_delete":_("Some entries were not deleted"),
"quick_links":_("Quick Links"),
"select_all":_("Select All"),
"unselect_all":_("Unselect All"),
"delete_confirm":_("Are you sure you want to delete selected entries?"),
"truncated":_(
"Query returned more results than the configured size limit. Displaying the first ${counter} results."),
}, },
"details": { "details": {
"collapse_all":_("Collapse All"), "collapse_all": _("Collapse All"),
"expand_all":_("Expand All"), "expand_all": _("Expand All"),
"general":_("General"), "general": _("General"),
"identity":_("Identity Settings"), "identity": _("Identity Settings"),
"settings":_("${entity} ${primary_key} Settings"), "settings": _("${entity} ${primary_key} Settings"),
"to_top":_("Back to Top") "to_top": _("Back to Top")
},
"dialogs": {
"add_title": _("Add ${entity}"),
"available": _("Available"),
"batch_error_message": _("Some operations failed."),
"batch_error_title": _("Operations Error"),
"confirmation": _("Confirmation"),
"dirty_message": _("This page has unsaved changes. Please save or revert."),
"dirty_title": _("Unsaved Changes"),
"hide_details": _("Hide details"),
"prospective": _("Prospective"),
"redirection": _("Redirection"),
"remove_empty": _("Select entries to be removed."),
"remove_title": _("Remove ${entity}"),
"show_details": _("Show details"),
"validation_title": _("Validation error"),
"validation_message": _("Input form contains invalid or missing values."),
},
"errors": {
"http_error": _("HTTP Error"),
"internal_error": _("Internal Error"),
"ipa_error": _("IPA Error"),
"no_response": _("No response"),
"unknown_error": _("Unknown Error"),
"url": _("URL"),
},
"facet_groups": {
"managedby": _("${primary_key} is managed by:"),
"member": _("Entities enrolled in ${primary_key}:"),
"memberof": _("${primary_key} is a member of these:"),
},
"facets": {
"details": _("Settings"),
"search": _("Search"),
},
"false": _("False"),
"login": {
"header": _("Logged In As")
},
"objects": {
"aci": {
"attribute": _("Attribute"),
},
"automountkey": {
},
"automountlocation": {
"identity": _("Automount Location Settings")
},
"automountmap": {
"map_type": _("Map Type"),
"direct": _("Direct"),
"indirect": _("Indirect"),
},
"cert": {
"aa_compromise": _("AA Compromise"),
"affiliation_changed": _("Affiliation Changed"),
"ca_compromise": _("CA Compromise"),
"certificate_hold": _("Certificate Hold"),
"cessation_of_operation": _("Cessation of Operation"),
"common_name": _("Common Name"),
"enter_csr": _("Enter the Base64-encoded CSR below"),
"expires_on": _("Expires On"),
"fingerprints": _("Fingerprints"),
"issue_certificate": _("Issue New Certificate for ${entity} ${primary_key}"),
"issued_by": _("Issued By"),
"issued_on": _("Issued On"),
"issued_to": _("Issued To"),
"key_compromise": _("Key Compromise"),
"md5_fingerprint": _("MD5 Fingerprint"),
"missing": _("No Valid Certificate"),
"new_certificate": _("New Certificate"),
"note": _("Note"),
"organization": _("Organization"),
"organizational_unit": _("Organizational Unit"),
"privilege_withdrawn": _("Privilege Withdrawn"),
"reason": _("Reason for Revocation"),
"remove_from_crl": _("Remove from CRL"),
"restore_certificate": _("Restore Certificate for ${entity} ${primary_key}"),
"restore_confirmation": _("To confirm your intention to restore this certificate, click the \"Restore\" button."),
"revoke_certificate": _("Revoke Certificate for ${entity} ${primary_key}"),
"revoke_confirmation": _("To confirm your intention to revoke this certificate, select a reason from the pull-down list, and click the \"Revoke\" button."),
"revoked": _("Certificate Revoked"),
"serial_number": _("Serial Number"),
"sha1_fingerprint": _("SHA1 Fingerprint"),
"superseded": _("Superseded"),
"unspecified": _("Unspecified"),
"valid": _("Valid Certificate Present"),
"validity": _("Validity"),
"view_certificate": _("Certificate for ${entity} ${primary_key}"),
},
"config": {
"group": _("Group Options"),
"search": _("Search Options"),
"user": _("User Options"),
},
"delegation": {
},
"dnsrecord": {
"data": _("Data"),
"deleted_no_data": _("DNS record was deleted because it contained no data."),
"other": _("Other Record Types"),
"redirection_dnszone": _("You will be redirected to DNS Zone."),
"standard": _("Standard Record Types"),
"title": _("Records for DNS Zone"),
"type": _("Record Type"),
},
"dnszone": {
"identity": _("DNS Zone Settings"),
},
"entitle": {
"account": _("Account"),
"certificate": _("Certificate"),
"certificates": _("Certificates"),
"consume": _("Consume"),
"consume_entitlement": _("Consume Entitlement"),
"consumed": _("Consumed"),
"download": _("Download"),
"download_certificate": _("Download Certificate"),
"end": _("End"),
"import_button": _("Import"),
"import_certificate": _("Import Certificate"),
"import_message": _("Enter the Base64-encoded entitlement certificate below:"),
"loading": _("Loading..."),
"no_certificate": _("No Certificate."),
"product": _("Product"),
"register": _("Register"),
"registration": _("Registration"),
"start": _("Start"),
"status": _("Status"),
},
"group": {
"details": _("Group Settings"),
"posix": _("Is this a POSIX group?"),
},
"hbacrule": {
"active": _("Active"),
"allow": _("Allow"),
"any_host": _("Any Host"),
"any_service": _("Any Service"),
"anyone": _("Anyone"),
"deny": _("Deny"),
"host": _("Accessing"),
"inactive": _("Inactive"),
"ipaenabledflag": _("Rule status"),
"service": _("Via Service"),
"sourcehost": _("From"),
"specified_hosts": _("Specified Hosts and Groups"),
"specified_services": _("Specified Services and Groups"),
"specified_users": _("Specified Users and Groups"),
"user": _("Who"),
},
"hbacsvc": {
},
"hbacsvcgroup": {
"services": _("Services"),
},
"host": {
"certificate": _("Host Certificate"),
"cn": _("Host Name"),
"delete_key_unprovision": _("Delete Key, Unprovision"),
"details": _("Host Settings"),
"enrolled": _("Enrolled?"),
"enrollment": _("Enrollment"),
"fqdn": _("Fully Qualified Host Name"),
"keytab": _("Kerberos Key"),
"keytab_missing": _("Kerberos Key Not Present"),
"keytab_present": _("Kerberos Key Present, Host Provisioned"),
"password": _("One-Time-Password"),
"password_missing": _("One-Time-Password Not Present"),
"password_present": _("One-Time-Password Present"),
"password_reset_button": _("Reset OTP"),
"password_reset_title": _("Reset One-Time-Password"),
"password_set_button": _("Set OTP"),
"password_set_title": _("Set One-Time-Password"),
"status": _("Status"),
"unprovision": _("Unprovision"),
"unprovision_confirmation": _("Are you sure you want to unprovision this host?"),
"unprovision_title": _("Unprovisioning ${entity}"),
},
"hostgroup": {
"identity": _("Host Group Settings"),
},
"krbtpolicy": {
"identity": _("Kerberos ticket policy"),
},
"netgroup": {
"identity": _("Netgroup Settings"),
},
"permission": {
"filter": _("Filter"),
"identity": _("Identity"),
"invalid_target": _("Permission with invalid target specification"),
"rights": _("Rights"),
"subtree": _("By Subtree"),
"target": _("Target"),
"targetgroup": _("Target Group"),
"type": _("Object By Type"),
},
"privilege": {
"identity": _("Privilege Settings"),
},
"pwpolicy": {
"identity": _("Password Policy"),
},
"role": {
"identity": _("Role Settings"),
},
"selfservice": {
},
"service": {
"certificate": _("Service Certificate"),
"delete_key_unprovision": _("Delete Key, Unprovision"),
"details": _("Service Settings"),
"host": _("Host Name"),
"missing": _("Kerberos Key Not Present"),
"provisioning": _("Provisioning"),
"service": _("Service"),
"status": _("Status"),
"unprovision": _("Unprovision"),
"unprovision_confirmation": _("Are you sure you want to unprovision this service?"),
"unprovision_title": _("Unprovisioning ${entity}"),
"valid": _("Kerberos Key Present, Service Provisioned"),
},
"sudocmd": {
"groups": _("Groups"),
},
"sudocmdgroup": {
"commands": _("Commands"),
},
"sudorule": {
"active": _("Active"),
"allow": _("Allow"),
"any_command": _("Any Command"),
"any_group": _("Any Group"),
"any_host": _("Any Host"),
"anyone": _("Anyone"),
"command": _("Run Commands"),
"deny": _("Deny"),
"external": _("External"),
"host": _("Access this host"),
"inactive": _("Inactive"),
"ipaenabledflag": _("Rule status"),
"options": _("Options"),
"runas": _("As Whom"),
"specified_commands": _("Specified Commands and Groups"),
"specified_groups": _("Specified Groups"),
"specified_hosts": _("Specified Hosts and Groups"),
"specified_users": _("Specified Users and Groups"),
"user": _("Who"),
},
"user": {
"account": _("Account Settings"),
"account_status": _("Account Status"),
"activate": _("Activate"),
"activation_confirmation": _("Are you sure you want to ${action} the user?<br/>The change will take effect immediately."),
"activation_link": _("Click to ${action}"),
"active": _("Active"),
"contact": _("Contact Settings"),
"deactivate": _("Deactivate"),
"employee": _("Employee Information"),
"error_changing_status": _("Error changing account status"),
"inactive": _("Inactive"),
"mailing": _("Mailing Address"),
"misc": _("Misc. Information"),
},
},
"password": {
"new_password": _("New Password"),
"password_change_complete": _("Password change complete"),
"password_must_match": _("Passwords must match"),
"reset_password": _("Reset Password"),
"verify_password": _("Verify Password"),
},
"search": {
"delete_confirm": _("Are you sure you want to delete selected entries?"),
"partial_delete": _("Some entries were not deleted"),
"quick_links": _("Quick Links"),
"select_all": _("Select All"),
"truncated": _("Query returned more results than the configured size limit. Displaying the first ${counter} results."),
"unselect_all": _("Unselect All"),
}, },
"tabs": { "tabs": {
"dns":_("DNS"),
"identity":_("Identity"),
"policy":_("Policy"),
"audit": _("Audit"), "audit": _("Audit"),
"ipaserver":_("IPA Server"), "automount": _("Automount"),
"sudo":_("Sudo"), "dns": _("DNS"),
"hbac":_("Host Based Access Control"), "hbac": _("Host Based Access Control"),
"role":_("Role Based Access Control"), "identity": _("Identity"),
"automount":_("Automount") "ipaserver": _("IPA Server"),
}, "policy": _("Policy"),
"association": { "role": _("Role Based Access Control"),
"add": { "sudo": _("Sudo"),
"ipasudorunas":_("Add RunAs ${other_entity} into ${entity} ${primary_key}"),
"ipasudorunasgroup":_("Add RunAs Groups into ${entity} ${primary_key}"),
"managedby":_("Add ${other_entity} Managing ${entity} ${primary_key}"),
"member":_("Add ${other_entity} into ${entity} ${primary_key}"),
"memberallowcmd":_("Add Allow ${other_entity} into ${entity} ${primary_key}"),
"memberdenycmd":_("Add Deny ${other_entity} into ${entity} ${primary_key}"),
"memberof":_("Add ${entity} ${primary_key} into ${other_entity}"),
"sourcehost":_("Add Source ${other_entity} into ${entity} ${primary_key}"),
},
"direct_enrollment":_("Direct Enrollment"),
"indirect_enrollment":_("Indirect Enrollment"),
"no_entries":_("No entries."),
"paging":_("Showing ${start} to ${end} of ${total} entries."),
"remove": {
"ipasudorunas":_("Remove RunAs ${other_entity} from ${entity} ${primary_key}"),
"ipasudorunasgroup":_("Remove RunAs Groups from ${entity} ${primary_key}"),
"managedby":_("Remove ${other_entity} Managing ${entity} ${primary_key}"),
"member":_("Remove ${other_entity} from ${entity} ${primary_key}"),
"memberallowcmd":_("Remove Allow ${other_entity} from ${entity} ${primary_key}"),
"memberdenycmd":_("Remove Deny ${other_entity} from ${entity} ${primary_key}"),
"memberof":_("Remove ${entity} ${primary_key} from ${other_entity}"),
"sourcehost":_("Remove Source ${other_entity} from ${entity} ${primary_key}"),
},
"show_results":_("Show Results"),
}, },
"true": _("True"),
"widget": { "widget": {
"next":_("Next"), "next": _("Next"),
"optional":_("Optional field: click to show"), "optional": _("Optional field: click to show"),
"page":_("Page"), "page": _("Page"),
"prev":_("Prev"), "prev": _("Prev"),
"validation": { "validation": {
"error":_("Text does not match field pattern"), "error": _("Text does not match field pattern"),
"integer": _("Must be an integer"), "integer": _("Must be an integer"),
"max_value": _("Maximum value is ${value}"), "max_value": _("Maximum value is ${value}"),
"min_value": _("Minimum value is ${value}"), "min_value": _("Minimum value is ${value}"),
"required": _("Required field"), "required": _("Required field"),
}, },
}, },
"ajax": {
"401":_("Your Kerberos ticket is no longer valid. Please run kinit and then click 'Retry'. If this is your first time running the IPA Web UI <a href='/ipa/config/unauthorized.html'>follow these directions</a> to configure your browser.")
},
} }
has_output = ( has_output = (
Output('messages', dict, doc=_('Dict of I18N messages')), Output('messages', dict, doc=_('Dict of I18N messages')),